summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/atk/atkrelation.inc
blob: 38a57a6da8f96696507593a845aa5923419d10e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// included by atk.pp

{
   An AtkRelation describes a relation between the anObject and one or more
   other objects. The actual relations that an anObject has with other objects
   are defined as an AtkRelationSet, which is a set of AtkRelations.
  }

{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}

//------------------------------------------------------------------------------

{$IFDEF read_interface_types}
{
  AtkRelationType:
  @ATK_RELATION_NULL:
  @ATK_RELATION_CONTROLLED_BY: Indicates an anObject controlled by one or more target objects.
  @ATK_RELATION_CONTROLLER_FOR: Indicates an anObject is an controller for one or more target objects.
  @ATK_RELATION_LABEL_FOR: Indicates an anObject is a label for one or more target objects.
  @ATK_RELATION_LABELLED_BY: Indicates an anObject is labelled by one or more target objects.
  @ATK_RELATION_MEMBER_OF: Indicates an anObject is a member of a group of one or more target objects.
  @ATK_RELATION_NODE_CHILD_OF: Indicates an anObject is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell.
  @ATK_RELATION_LAST_DEFINED:

  Describes the type of the relation
   }
   PAtkRelationType = ^TAtkRelationType;
   TAtkRelationType = (
     ATK_RELATION_NULL {:= 0},
     ATK_RELATION_CONTROLLED_BY,
     ATK_RELATION_CONTROLLER_FOR,
     ATK_RELATION_LABEL_FOR,
     ATK_RELATION_LABELLED_BY,
     ATK_RELATION_MEMBER_OF,
     ATK_RELATION_NODE_CHILD_OF,
     ATK_RELATION_LAST_DEFINED
   );


   PAtkRelation = ^TAtkRelation;
   TAtkRelation = record
        parent : TGObject;
        target : PGPtrArray;
        relationship : TAtkRelationType;
     end;

   PAtkRelationClass = ^TAtkRelationClass;
   TAtkRelationClass = record
        parent : TGObjectClass;
     end;

{$ENDIF read_interface_types}

//------------------------------------------------------------------------------

{$IFDEF read_interface_rest}

function ATK_TYPE_RELATION : GType;
function ATK_RELATION(obj: pointer) : PAtkRelation;
function ATK_RELATION_CLASS(klass: pointer) : PAtkRelationClass;
function ATK_IS_RELATION(obj: pointer) : boolean;
function ATK_IS_RELATION_CLASS(klass: pointer) : boolean;
function ATK_RELATION_GET_CLASS(obj: pointer) : PAtkRelationClass;


function atk_relation_get_type:GType; cdecl; external atklib;
function atk_relation_type_register(name:Pgchar):TAtkRelationType; cdecl; external atklib;
function atk_relation_type_get_name(_type:TAtkRelationType):Pgchar; cdecl; external atklib;
function atk_relation_type_for_name(name:Pgchar):TAtkRelationType; cdecl; external atklib;
{ Create a new relation for the specified key and the specified list of targets. }
function atk_relation_new(targets:PPAtkObject; n_targets:gint; relationship:TAtkRelationType):PAtkRelation; cdecl; external atklib;
{ Returns the type of a relation. }
function atk_relation_get_relation_type(relation:PAtkRelation):TAtkRelationType; cdecl; external atklib;
{ Returns the target list of a relation. }
function atk_relation_get_target(relation:PAtkRelation):PGPtrArray; cdecl; external atklib;
{$ENDIF read_interface_rest}

//------------------------------------------------------------------------------

{$IFDEF read_implementation}
function ATK_TYPE_RELATION : GType;
begin
   ATK_TYPE_RELATION:=atk_relation_get_type;
end;

function ATK_RELATION(obj: pointer) : PAtkRelation;
begin
   ATK_RELATION:=PAtkRelation(G_TYPE_CHECK_INSTANCE_CAST(obj,ATK_TYPE_RELATION));
end;

function ATK_RELATION_CLASS(klass: pointer) : PAtkRelationClass;
begin
   ATK_RELATION_CLASS:=PAtkRelationClass(G_TYPE_CHECK_CLASS_CAST(klass,ATK_TYPE_RELATION));
end;

function ATK_IS_RELATION(obj: pointer) : boolean;
begin
   ATK_IS_RELATION:=G_TYPE_CHECK_INSTANCE_TYPE(obj,ATK_TYPE_RELATION);
end;

function ATK_IS_RELATION_CLASS(klass: pointer) : boolean;
begin
   ATK_IS_RELATION_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,ATK_TYPE_RELATION);
end;

function ATK_RELATION_GET_CLASS(obj: pointer) : PAtkRelationClass;
begin
   ATK_RELATION_GET_CLASS:=PAtkRelationClass(G_TYPE_INSTANCE_GET_CLASS(obj,ATK_TYPE_RELATION));
end;

{$ENDIF read_implementation}