atkrelation.inc 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. // included by atk.pp
  2. {
  3. An AtkRelation describes a relation between the anObject and one or more
  4. other objects. The actual relations that an anObject has with other objects
  5. are defined as an AtkRelationSet, which is a set of AtkRelations.
  6. }
  7. {$IFDEF read_forward_definitions}
  8. {$ENDIF read_forward_definitions}
  9. //------------------------------------------------------------------------------
  10. {$IFDEF read_interface_types}
  11. {
  12. AtkRelationType:
  13. @ATK_RELATION_NULL:
  14. @ATK_RELATION_CONTROLLED_BY: Indicates an anObject controlled by one or more target objects.
  15. @ATK_RELATION_CONTROLLER_FOR: Indicates an anObject is an controller for one or more target objects.
  16. @ATK_RELATION_LABEL_FOR: Indicates an anObject is a label for one or more target objects.
  17. @ATK_RELATION_LABELLED_BY: Indicates an anObject is labelled by one or more target objects.
  18. @ATK_RELATION_MEMBER_OF: Indicates an anObject is a member of a group of one or more target objects.
  19. @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.
  20. @ATK_RELATION_LAST_DEFINED:
  21. Describes the type of the relation
  22. }
  23. PAtkRelationType = ^TAtkRelationType;
  24. TAtkRelationType = (
  25. ATK_RELATION_NULL {:= 0},
  26. ATK_RELATION_CONTROLLED_BY,
  27. ATK_RELATION_CONTROLLER_FOR,
  28. ATK_RELATION_LABEL_FOR,
  29. ATK_RELATION_LABELLED_BY,
  30. ATK_RELATION_MEMBER_OF,
  31. ATK_RELATION_NODE_CHILD_OF,
  32. ATK_RELATION_LAST_DEFINED
  33. );
  34. PAtkRelation = ^TAtkRelation;
  35. TAtkRelation = record
  36. parent : TGObject;
  37. target : PGPtrArray;
  38. relationship : TAtkRelationType;
  39. end;
  40. PAtkRelationClass = ^TAtkRelationClass;
  41. TAtkRelationClass = record
  42. parent : TGObjectClass;
  43. end;
  44. {$ENDIF read_interface_types}
  45. //------------------------------------------------------------------------------
  46. {$IFDEF read_interface_rest}
  47. function ATK_TYPE_RELATION : GType;
  48. function ATK_RELATION(obj: pointer) : PAtkRelation;
  49. function ATK_RELATION_CLASS(klass: pointer) : PAtkRelationClass;
  50. function ATK_IS_RELATION(obj: pointer) : boolean;
  51. function ATK_IS_RELATION_CLASS(klass: pointer) : boolean;
  52. function ATK_RELATION_GET_CLASS(obj: pointer) : PAtkRelationClass;
  53. function atk_relation_get_type:GType; cdecl; external atklib;
  54. function atk_relation_type_register(name:Pgchar):TAtkRelationType; cdecl; external atklib;
  55. function atk_relation_type_get_name(_type:TAtkRelationType):Pgchar; cdecl; external atklib;
  56. function atk_relation_type_for_name(name:Pgchar):TAtkRelationType; cdecl; external atklib;
  57. { Create a new relation for the specified key and the specified list of targets. }
  58. function atk_relation_new(targets:PPAtkObject; n_targets:gint; relationship:TAtkRelationType):PAtkRelation; cdecl; external atklib;
  59. { Returns the type of a relation. }
  60. function atk_relation_get_relation_type(relation:PAtkRelation):TAtkRelationType; cdecl; external atklib;
  61. { Returns the target list of a relation. }
  62. function atk_relation_get_target(relation:PAtkRelation):PGPtrArray; cdecl; external atklib;
  63. {$ENDIF read_interface_rest}
  64. //------------------------------------------------------------------------------
  65. {$IFDEF read_implementation}
  66. function ATK_TYPE_RELATION : GType;
  67. begin
  68. ATK_TYPE_RELATION:=atk_relation_get_type;
  69. end;
  70. function ATK_RELATION(obj: pointer) : PAtkRelation;
  71. begin
  72. ATK_RELATION:=PAtkRelation(G_TYPE_CHECK_INSTANCE_CAST(obj,ATK_TYPE_RELATION));
  73. end;
  74. function ATK_RELATION_CLASS(klass: pointer) : PAtkRelationClass;
  75. begin
  76. ATK_RELATION_CLASS:=PAtkRelationClass(G_TYPE_CHECK_CLASS_CAST(klass,ATK_TYPE_RELATION));
  77. end;
  78. function ATK_IS_RELATION(obj: pointer) : boolean;
  79. begin
  80. ATK_IS_RELATION:=G_TYPE_CHECK_INSTANCE_TYPE(obj,ATK_TYPE_RELATION);
  81. end;
  82. function ATK_IS_RELATION_CLASS(klass: pointer) : boolean;
  83. begin
  84. ATK_IS_RELATION_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,ATK_TYPE_RELATION);
  85. end;
  86. function ATK_RELATION_GET_CLASS(obj: pointer) : PAtkRelationClass;
  87. begin
  88. ATK_RELATION_GET_CLASS:=PAtkRelationClass(G_TYPE_INSTANCE_GET_CLASS(obj,ATK_TYPE_RELATION));
  89. end;
  90. {$ENDIF read_implementation}