gtkobjects.pp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. TGtkType = guint;
  9. PGtkType = ^TGtkType;
  10. PGtkArg = ^TGtkArg;
  11. PGtkTypeClass = ^TGtkTypeClass;
  12. PGtkObject = ^TGtkObject;
  13. PGtkObjectClass = ^TGtkObjectClass;
  14. {***************************************
  15. Inserted from gtktypeutils
  16. ***************************************}
  17. TGtkClassInitFunc = procedure (klass:gpointer);cdecl;
  18. TGtkObjectInitFunc = procedure (theobject:gpointer; klass:gpointer);cdecl;
  19. TGtkSignalFunc = procedure ;cdecl;
  20. TGtkfunction = function (data:gpointer):gint;cdecl;
  21. TGtkDestroyNotify = procedure (data:gpointer);cdecl;
  22. TGtkCallbackMarshal = procedure (theobject:PGtkObject; data:gpointer; n_args:guint; args:PGtkArg);cdecl;
  23. TGtkSignalMarshaller = procedure (theobject:PGtkObject; func:TGtkSignalFunc; func_data:gpointer; args:PGtkArg);cdecl;
  24. TGtkArgGetFunc = procedure (_para1:PGtkObject; _para2:PGtkArg; _para3:guint);cdecl;
  25. TGtkArgSetFunc = procedure (_para1:PGtkObject; _para2:PGtkArg; _para3:guint);cdecl;
  26. GTK_SIGNAL_FUNC = TGtkSignalFunc;
  27. PGtkTypeObject = ^TGtkTypeObject;
  28. TGtkTypeObject = record
  29. klass : PGtkTypeClass;
  30. end;
  31. TGtkTypeClass = record
  32. thetype : TGtkType;
  33. end;
  34. TGtkArg = record
  35. thetype : TGtkType;
  36. name : Pgchar;
  37. d : record
  38. case longint of
  39. 0 : ( char_data : gchar );
  40. 1 : ( uchar_data : guchar );
  41. 2 : ( bool_data : gboolean );
  42. 3 : ( int_data : gint );
  43. 4 : ( uint_data : guint );
  44. 5 : ( long_data : glong );
  45. 6 : ( ulong_data : gulong );
  46. 7 : ( float_data : gfloat );
  47. 8 : ( double_data : gdouble );
  48. 9 : ( string_data : Pgchar );
  49. 10 : ( pointer_data : gpointer );
  50. 11 : ( object_data : PGtkObject );
  51. 12 : ( signal_data : record
  52. f : TGtkSignalFunc;
  53. d : gpointer;
  54. end );
  55. 13 : ( args_data : record
  56. n_args : gint;
  57. args : PGtkArg;
  58. end );
  59. 14 : ( callback_data : record
  60. marshal : TGtkCallbackMarshal;
  61. data : gpointer;
  62. notify : TGtkDestroyNotify;
  63. end );
  64. 15 : ( c_callback_data : record
  65. func : TGtkfunction;
  66. func_data : gpointer;
  67. end );
  68. 16 : ( foreign_data : record
  69. data : gpointer;
  70. notify : TGtkDestroyNotify;
  71. end );
  72. end;
  73. end;
  74. {***************************************
  75. Inserted from gtkarg
  76. ***************************************}
  77. PGtkArgInfo = ^TGtkArgInfo;
  78. PPGtkArgInfo = ^PGtkArgInfo;
  79. TGtkArgInfo = record
  80. class_type : TGtkType;
  81. name : Pgchar;
  82. _type : TGtkType;
  83. arg_flags : guint;
  84. full_name : Pgchar;
  85. arg_id : guint;
  86. seq_id : guint;
  87. end;
  88. {***************************************
  89. End of insertions
  90. ***************************************}
  91. TGtkObject = record
  92. klass : PGtkObjectClass;
  93. flags : guint32;
  94. ref_count : guint;
  95. object_data : PGData;
  96. end;
  97. TGtkObjectClass = record
  98. thetype : TGtkType;
  99. signals : Pguint;
  100. nsignals : guint;
  101. n_args : guint;
  102. construct_args : PGSList;
  103. set_arg : procedure (theobject:PGtkObject; arg:PGtkArg; arg_id:guint);cdecl;
  104. get_arg : procedure (theobject:PGtkObject; arg:PGtkArg; arg_id:guint);cdecl;
  105. shutdown : procedure (theobject:PGtkObject);cdecl;
  106. destroy : procedure (theobject:PGtkObject);cdecl;
  107. finalize : procedure (theobject:PGtkObject);cdecl;
  108. end;
  109. TGtkObjectFlags = longint;
  110. const
  111. GTK_DESTROYED = 1 shl 0;
  112. GTK_FLOATING = 1 shl 1;
  113. GTK_CONNECTED = 1 shl 2;
  114. GTK_CONSTRUCTED = 1 shl 3;
  115. Type
  116. GTK_OBJECT = PGtkObject;
  117. GTK_OBJECT_CLASS = PGtkObjectClass;
  118. function GTK_OBJECT_TYPE(obj : PGtkobject) : TGtkType;
  119. function GTK_OBJECT_SIGNALS(obj : PGtkobject) : Pguint;
  120. function GTK_OBJECT_NSIGNALS(obj : PGtkobject) : guint;
  121. function GTK_OBJECT_FLAGS(obj : PGtkobject) : longint;
  122. function GTK_OBJECT_DESTROYED(obj : PGtkobject) : boolean;
  123. function GTK_OBJECT_FLOATING(obj : PGtkobject) : boolean;
  124. function GTK_OBJECT_CONNECTED(obj : PGtkobject) : boolean;
  125. function GTK_OBJECT_IS_CONSTRUCTED(obj : PGtkobject) : boolean;
  126. function GTK_IS_OBJECT(obj:pointer):boolean;
  127. function GTK_IS_OBJECT_CLASS(klass:pointer):boolean;
  128. function gtk_object_get_type:TGtkType;cdecl;external gtkdll name 'gtk_object_get_type';
  129. function gtk_object_class_user_signal_new(klass:PGtkObjectClass; name:Pgchar; signal_flags:TGtkSignalRunType; marshaller:TGtkSignalMarshaller; return_val:TGtkType; nparams:guint; args:array of const):guint;cdecl;external gtkdll name 'gtk_object_class_user_signal_new';
  130. function gtk_object_class_user_signal_newv(klass:PGtkObjectClass; name:Pgchar; signal_flags:TGtkSignalRunType; marshaller:TGtkSignalMarshaller; return_val:TGtkType; nparams:guint; params:PGtkType):guint;cdecl;external gtkdll name 'gtk_object_class_user_signal_newv';
  131. function gtk_object_new(thetype:TGtkType; first_arg_name:Pgchar; args:array of const):PGtkObject;cdecl;external gtkdll name 'gtk_object_new';
  132. function gtk_object_newv(theobject_type:TGtkType; n_args:guint; args:PGtkArg):PGtkObject;cdecl;external gtkdll name 'gtk_object_newv';
  133. procedure gtk_object_default_construct(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_default_construct';
  134. procedure gtk_object_constructed(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_constructed';
  135. procedure gtk_object_sink(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_sink';
  136. procedure gtk_object_ref(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_ref';
  137. procedure gtk_object_unref(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_unref';
  138. procedure gtk_object_weakref(theobject:PGtkObject; notify:TGtkDestroyNotify; data:gpointer);cdecl;external gtkdll name 'gtk_object_weakref';
  139. procedure gtk_object_weakunref(theobject:PGtkObject; notify:TGtkDestroyNotify; data:gpointer);cdecl;external gtkdll name 'gtk_object_weakunref';
  140. procedure gtk_object_destroy(theobject:PGtkObject);cdecl;external gtkdll name 'gtk_object_destroy';
  141. procedure gtk_object_getv(theobject:PGtkObject; n_args:guint; args:PGtkArg);cdecl;external gtkdll name 'gtk_object_getv';
  142. procedure gtk_object_get(theobject:PGtkObject; first_arg_name:Pgchar; args:array of const);cdecl;external gtkdll name 'gtk_object_get';
  143. procedure gtk_object_set(theobject:PGtkObject; first_arg_name:Pgchar; args:array of const);cdecl;external gtkdll name 'gtk_object_set';
  144. procedure gtk_object_setv(theobject:PGtkObject; n_args:guint; args:PGtkArg);cdecl;external gtkdll name 'gtk_object_setv';
  145. function gtk_object_query_args(class_type:TGtkType; arg_flags:PPguint32; n_args:Pguint):PGtkArg;cdecl;external gtkdll name 'gtk_object_query_args';
  146. procedure gtk_object_set_data(theobject:PGtkObject; key:Pgchar; data:gpointer);cdecl;external gtkdll name 'gtk_object_set_data';
  147. procedure gtk_object_set_data_full(theobject:PGtkObject; key:Pgchar; data:gpointer; destroy:TGtkDestroyNotify);cdecl;external gtkdll name 'gtk_object_set_data_full';
  148. procedure gtk_object_remove_data(theobject:PGtkObject; key:Pgchar);cdecl;external gtkdll name 'gtk_object_remove_data';
  149. function gtk_object_get_data(theobject:PGtkObject; key:Pgchar):gpointer;cdecl;external gtkdll name 'gtk_object_get_data';
  150. procedure gtk_object_remove_no_notify(theobject:PGtkObject; key:Pgchar);cdecl;external gtkdll name 'gtk_object_remove_no_notify';
  151. procedure gtk_object_set_user_data(theobject:PGtkObject; data:gpointer);cdecl;external gtkdll name 'gtk_object_set_user_data';
  152. function gtk_object_get_user_data(theobject:PGtkObject):gpointer;cdecl;external gtkdll name 'gtk_object_get_user_data';
  153. procedure gtk_object_class_add_signals(klass:PGtkObjectClass; signals:Pguint; nsignals:guint);cdecl;external gtkdll name 'gtk_object_class_add_signals';
  154. procedure gtk_object_add_arg_type(arg_name:Pgchar; arg_type:TGtkType; arg_flags:guint; arg_id:guint);cdecl;external gtkdll name 'gtk_object_add_arg_type';
  155. procedure gtk_object_set_data_by_id(theobject:PGtkObject; data_id:TGQuark; data:gpointer);cdecl;external gtkdll name 'gtk_object_set_data_by_id';
  156. procedure gtk_object_set_data_by_id_full(theobject:PGtkObject; data_id:TGQuark; data:gpointer; destroy:TGtkDestroyNotify);cdecl;external gtkdll name 'gtk_object_set_data_by_id_full';
  157. function gtk_object_get_data_by_id(theobject:PGtkObject; data_id:TGQuark):gpointer;cdecl;external gtkdll name 'gtk_object_get_data_by_id';
  158. procedure gtk_object_remove_data_by_id(theobject:PGtkObject; data_id:TGQuark);cdecl;external gtkdll name 'gtk_object_remove_data_by_id';
  159. procedure gtk_object_remove_no_notify_by_id(theobject:PGtkObject; key_id:TGQuark);cdecl;external gtkdll name 'gtk_object_remove_no_notify_by_id';
  160. procedure gtk_object_arg_set(theobject:PGtkObject; arg:PGtkArg; info:PGtkArgInfo);cdecl;external gtkdll name 'gtk_object_arg_set';
  161. procedure gtk_object_arg_get(theobject:PGtkObject; arg:PGtkArg; info:PGtkArgInfo);cdecl;external gtkdll name 'gtk_object_arg_get';
  162. function gtk_object_args_collect(theobject_type:TGtkType; arg_list_p:PPGSList; info_list_p:PPGSList; first_arg_name:Pgchar; var_args:array of const):Pgchar;cdecl;external gtkdll name 'gtk_object_args_collect';
  163. function gtk_object_arg_get_info(theobject_type:TGtkType; arg_name:Pgchar; info_p:PPGtkArgInfo):Pgchar;cdecl;external gtkdll name 'gtk_object_arg_get_info';
  164. procedure gtk_trace_referencing(theobject:PGtkObject; func:Pgchar; dummy:guint; line:guint; do_ref:gboolean);cdecl;external gtkdll name 'gtk_trace_referencing';
  165. { const
  166. gtk_object_data_try_key = g_quark_try_string;
  167. gtk_object_data_force_id = g_quark_from_string; }
  168. {$endif read_interface}
  169. {****************************************************************************
  170. Implementation
  171. ****************************************************************************}
  172. {$ifdef read_implementation}
  173. function GTK_OBJECT_TYPE(obj : PGtkobject) : TGtkType;
  174. begin
  175. GTK_OBJECT_TYPE:=obj^.klass^.thetype;
  176. end;
  177. function GTK_OBJECT_SIGNALS(obj : PGtkobject) : Pguint;
  178. begin
  179. GTK_OBJECT_SIGNALS:=obj^.klass^.signals;
  180. end;
  181. function GTK_OBJECT_NSIGNALS(obj : PGtkobject) : guint;
  182. begin
  183. GTK_OBJECT_NSIGNALS:=obj^.klass^.nsignals;
  184. end;
  185. function GTK_OBJECT_FLAGS(obj : PGtkobject) : longint;
  186. begin
  187. GTK_OBJECT_FLAGS:=obj^.flags;
  188. end;
  189. function GTK_OBJECT_DESTROYED(obj : PGtkobject) : boolean;
  190. begin
  191. GTK_OBJECT_DESTROYED:=(GTK_OBJECT_FLAGS(obj)) and longint(GTK_DESTROYED)<>0;
  192. end;
  193. function GTK_OBJECT_FLOATING(obj : PGtkobject) : boolean;
  194. begin
  195. GTK_OBJECT_FLOATING:=(GTK_OBJECT_FLAGS(obj)) and longint(GTK_FLOATING)<>0;
  196. end;
  197. function GTK_OBJECT_CONNECTED(obj : PGtkobject) : boolean;
  198. begin
  199. GTK_OBJECT_CONNECTED:=((GTK_OBJECT_FLAGS(obj)) and longint(GTK_CONNECTED)) <> 0;
  200. end;
  201. function GTK_OBJECT_IS_CONSTRUCTED(obj : PGtkobject) : boolean;
  202. begin
  203. GTK_OBJECT_IS_CONSTRUCTED:=((GTK_OBJECT_FLAGS(obj)) and longint(GTK_CONSTRUCTED)) <> 0;
  204. end;
  205. function GTK_IS_OBJECT(obj:pointer):boolean;
  206. begin
  207. GTK_IS_OBJECT:=(obj<>nil) and GTK_IS_OBJECT_CLASS(PGtkTypeObject(obj)^.klass);
  208. end;
  209. function GTK_IS_OBJECT_CLASS(klass:pointer):boolean;
  210. begin
  211. GTK_IS_OBJECT_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=longint(GTK_TYPE_OBJECT));
  212. end;
  213. {$endif read_implementation}