gsignal.inc 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // included by glib2.pas
  2. { --- typedefs --- }
  3. type
  4. PGSignalInvocationHint = ^TGSignalInvocationHint;
  5. PGSignalCMarshaller = ^TGSignalCMarshaller;
  6. TGSignalCMarshaller = TGClosureMarshal;
  7. TGSignalEmissionHook = function (ihint:PGSignalInvocationHint; n_param_values:guint; param_values:PGValue; data:gpointer):gboolean; cdecl;
  8. TGSignalAccumulator = function (ihint:PGSignalInvocationHint; return_accu:PGValue; handler_return:PGValue; data:gpointer):gboolean; cdecl;
  9. { --- run, match and connect types --- }
  10. PGSignalFlags = ^TGSignalFlags;
  11. TGSignalFlags = longint;
  12. { --- signal information --- }
  13. TGSignalInvocationHint = record
  14. signal_id : guint;
  15. detail : TGQuark;
  16. run_type : TGSignalFlags;
  17. end;
  18. { mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag }
  19. { mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag }
  20. PGSignalQuery = ^TGSignalQuery;
  21. TGSignalQuery = record
  22. signal_id : guint;
  23. signal_name : Pgchar;
  24. itype : GType;
  25. signal_flags : TGSignalFlags;
  26. return_type : GType;
  27. n_params : guint;
  28. param_types : PGType;
  29. end;
  30. const
  31. G_SIGNAL_RUN_FIRST = 1 shl 0;
  32. G_SIGNAL_RUN_LAST = 1 shl 1;
  33. G_SIGNAL_RUN_CLEANUP = 1 shl 2;
  34. G_SIGNAL_NO_RECURSE = 1 shl 3;
  35. G_SIGNAL_DETAILED = 1 shl 4;
  36. G_SIGNAL_ACTION = 1 shl 5;
  37. G_SIGNAL_NO_HOOKS = 1 shl 6;
  38. G_SIGNAL_FLAGS_MASK = $7f;
  39. type
  40. PGConnectFlags = ^TGConnectFlags;
  41. TGConnectFlags = longint;
  42. const
  43. G_CONNECT_AFTER = 1 shl 0;
  44. G_CONNECT_SWAPPED = 1 shl 1;
  45. type
  46. PGSignalMatchType = ^TGSignalMatchType;
  47. TGSignalMatchType = longint;
  48. const
  49. G_SIGNAL_MATCH_ID = 1 shl 0;
  50. G_SIGNAL_MATCH_DETAIL = 1 shl 1;
  51. G_SIGNAL_MATCH_CLOSURE = 1 shl 2;
  52. G_SIGNAL_MATCH_FUNC = 1 shl 3;
  53. G_SIGNAL_MATCH_DATA = 1 shl 4;
  54. G_SIGNAL_MATCH_UNBLOCKED = 1 shl 5;
  55. G_SIGNAL_MATCH_MASK = $3f;
  56. G_SIGNAL_TYPE_STATIC_SCOPE = G_TYPE_FLAG_RESERVED_ID_BIT;
  57. { --- signals --- }
  58. function g_signal_newv(signal_name:Pgchar; itype:GType; signal_flags:TGSignalFlags; class_closure:PGClosure; accumulator:TGSignalAccumulator;
  59. accu_data:gpointer; c_marshaller:TGSignalCMarshaller; return_type:GType; n_params:guint; param_types:PGType):guint; cdecl; external gobjectlib;
  60. function g_signal_new_valist(signal_name:Pgchar; itype:GType; signal_flags:TGSignalFlags; class_closure:PGClosure; accumulator:TGSignalAccumulator;
  61. accu_data:gpointer; c_marshaller:TGSignalCMarshaller; return_type:GType; n_params:guint):guint; varargs; cdecl; external gobjectlib;
  62. function g_signal_new(signal_name:Pgchar; itype:GType; signal_flags:TGSignalFlags; class_offset:guint; accumulator:TGSignalAccumulator;
  63. accu_data:gpointer; c_marshaller:TGSignalCMarshaller; return_type:GType; n_params:guint):guint; varargs; cdecl; external gobjectlib;
  64. procedure g_signal_emitv(instance_and_params:PGValue; signal_id:guint; detail:TGQuark; return_value:PGValue); cdecl; external gobjectlib;
  65. procedure g_signal_emit_valist(instance:gpointer; signal_id:guint; detail:TGQuark); varargs; cdecl; external gobjectlib;
  66. procedure g_signal_emit(instance:gpointer; signal_id:guint; detail:TGQuark); varargs; cdecl; external gobjectlib;
  67. procedure g_signal_emit_by_name(instance:gpointer; detailed_signal:Pgchar); varargs; cdecl; external gobjectlib;
  68. function g_signal_lookup(name:Pgchar; itype:GType):guint; cdecl; external gobjectlib;
  69. function g_signal_name(signal_id:guint):Pgchar; cdecl; external gobjectlib;
  70. procedure g_signal_query(signal_id:guint; query:PGSignalQuery); cdecl; external gobjectlib;
  71. function g_signal_list_ids(itype:GType; n_ids:Pguint):Pguint; cdecl; external gobjectlib;
  72. function g_signal_parse_name(detailed_signal:Pgchar; itype:GType; signal_id_p:Pguint; detail_p:PGQuark; force_detail_quark:gboolean):gboolean; cdecl; external gobjectlib;
  73. function g_signal_get_invocation_hint(instance:gpointer):PGSignalInvocationHint; cdecl; external gobjectlib;
  74. { --- signal emissions --- }
  75. procedure g_signal_stop_emission(instance:gpointer; signal_id:guint; detail:TGQuark); cdecl; external gobjectlib;
  76. procedure g_signal_stop_emission_by_name(instance:gpointer; detailed_signal:Pgchar); cdecl; external gobjectlib;
  77. function g_signal_add_emission_hook(signal_id:guint; quark:TGQuark; hook_func:TGSignalEmissionHook; hook_data:gpointer; data_destroy:TGDestroyNotify):gulong; cdecl; external gobjectlib;
  78. procedure g_signal_remove_emission_hook(signal_id:guint; hook_id:gulong); cdecl; external gobjectlib;
  79. { --- signal handlers --- }
  80. function g_signal_has_handler_pending(instance:gpointer; signal_id:guint; detail:TGQuark; may_be_blocked:gboolean):gboolean; cdecl; external gobjectlib;
  81. function g_signal_connect_closure_by_id(instance:gpointer; signal_id:guint; detail:TGQuark; closure:PGClosure; after:gboolean):gulong; cdecl; external gobjectlib;
  82. function g_signal_connect_closure(instance:gpointer; detailed_signal:Pgchar; closure:PGClosure; after:gboolean):gulong; cdecl; external gobjectlib;
  83. function g_signal_connect_data(instance:gpointer; detailed_signal:Pgchar; c_handler:TGCallback; data:gpointer; destroy_data:TGClosureNotify;
  84. connect_flags:TGConnectFlags):gulong; cdecl; external gobjectlib;
  85. procedure g_signal_handler_block(instance:gpointer; handler_id:gulong); cdecl; external gobjectlib;
  86. procedure g_signal_handler_unblock(instance:gpointer; handler_id:gulong); cdecl; external gobjectlib;
  87. procedure g_signal_handler_disconnect(instance:gpointer; handler_id:gulong); cdecl; external gobjectlib;
  88. function g_signal_handler_is_connected(instance:gpointer; handler_id:gulong):gboolean; cdecl; external gobjectlib;
  89. function g_signal_handler_find(instance: gpointer; mask: TGSignalMatchType;
  90. signal_id: guint; detail: TGQuark; closure: PGClosure;
  91. func:gpointer; data:gpointer):gulong; cdecl; external gobjectlib;
  92. function g_signal_handlers_block_matched(instance:gpointer; mask:TGSignalMatchType; signal_id:guint; detail:TGQuark; closure:PGClosure;
  93. func:gpointer; data:gpointer):guint; cdecl; external gobjectlib;
  94. function g_signal_handlers_unblock_matched(instance:gpointer; mask:TGSignalMatchType; signal_id:guint; detail:TGQuark; closure:PGClosure;
  95. func:gpointer; data:gpointer):guint; cdecl; external gobjectlib;
  96. function g_signal_handlers_disconnect_matched(instance:gpointer; mask:TGSignalMatchType; signal_id:guint; detail:TGQuark; closure:PGClosure;
  97. func:gpointer; data:gpointer):guint; cdecl; external gobjectlib;
  98. { --- chaining for language bindings --- }
  99. procedure g_signal_override_class_closure(signal_id:guint; instance_type:GType; class_closure:PGClosure); cdecl; external gobjectlib;
  100. procedure g_signal_chain_from_overridden(instance_and_params:PGValue; return_value:PGValue); cdecl; external gobjectlib;
  101. { --- convenience --- }
  102. function g_signal_connect(instance:gpointer; detailed_signal:Pgchar; c_handler:TGCallback; data:gpointer) : gulong;
  103. function g_signal_connect_after(instance:gpointer; detailed_signal:Pgchar; c_handler:TGCallback; data:gpointer) : gulong;
  104. function g_signal_connect_swapped(instance:gpointer; detailed_signal:Pgchar; c_handler:TGCallback; data:gpointer) : gulong;
  105. function g_signal_handlers_disconnect_by_func(instance:gpointer; func, data: gpointer) : guint;
  106. procedure g_signal_handlers_block_by_func(instance: gpointer; func, data: gpointer);
  107. procedure g_signal_handlers_unblock_by_func(instance: gpointer; func, data: gpointer);
  108. {< private > }
  109. procedure g_signal_handlers_destroy(instance:gpointer); cdecl; external gobjectlib;
  110. procedure _g_signals_destroy(itype:GType); cdecl; external gobjectlib;
  111. // included by glib2.pas