gdkprivate.pp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. PDisplay = pointer;
  9. PXImage = pointer;
  10. PVisual = pointer;
  11. TWindow = longint;
  12. TCursor = longint;
  13. TAtom = longint;
  14. TGC = longint;
  15. TColorMap = longint;
  16. TXStandardColorMap = array [0..9] of longint;
  17. TVisualID = longint;
  18. PXEvent = pointer;
  19. TRegion = pointer;
  20. TXID = longint;
  21. Time_T = longint;
  22. PGdkWindowPrivate = ^TGdkWindowPrivate;
  23. TGdkWindowPrivate = record
  24. window : TGdkWindow;
  25. parent : PGdkWindow;
  26. xwindow : TWindow;
  27. xdisplay : PDisplay;
  28. x : gint16;
  29. y : gint16;
  30. width : guint16;
  31. height : guint16;
  32. resize_count : guint8;
  33. window_type : guint8;
  34. ref_count : guint;
  35. flag0 : {$ifdef win32}longint{$else}word{$endif};
  36. extension_events : gint;
  37. filters : PGList;
  38. colormap : PGdkColormap;
  39. children : PGList;
  40. end;
  41. const
  42. bm_TGdkWindowPrivate_destroyed = $3;
  43. bp_TGdkWindowPrivate_destroyed = 0;
  44. bm_TGdkWindowPrivate_mapped = $4;
  45. bp_TGdkWindowPrivate_mapped = 2;
  46. bm_TGdkWindowPrivate_guffaw_gravity = $8;
  47. bp_TGdkWindowPrivate_guffaw_gravity = 3;
  48. function destroyed(var a : TGdkWindowPrivate) : guint;
  49. procedure set_destroyed(var a : TGdkWindowPrivate; __destroyed : guint);
  50. function mapped(var a : TGdkWindowPrivate) : guint;
  51. procedure set_mapped(var a : TGdkWindowPrivate; __mapped : guint);
  52. function guffaw_gravity(var a : TGdkWindowPrivate) : guint;
  53. procedure set_guffaw_gravity(var a : TGdkWindowPrivate; __guffaw_gravity : guint);
  54. type
  55. PGdkImagePrivate = ^TGdkImagePrivate;
  56. TGdkImagePrivate = record
  57. image : TGdkImage;
  58. ximage : PXImage;
  59. xdisplay : PDisplay;
  60. x_shm_info : gpointer;
  61. image_put : procedure (window:PGdkDrawable; gc:PGdkGC; image:PGdkImage; xsrc:gint; ysrc:gint; xdest:gint; ydest:gint; width:gint; height:gint);cdecl;
  62. end;
  63. PGdkGCPrivate = ^TGdkGCPrivate;
  64. TGdkGCPrivate = record
  65. gc : TGdkGC;
  66. xgc : TGC;
  67. xdisplay : PDisplay;
  68. ref_count : guint;
  69. end;
  70. TGdkColorInfoFlags = (GDK_COLOR_WRITEABLE := 1 shl 0);
  71. PGdkColorInfo = ^TGdkColorInfo;
  72. TGdkColorInfo = record
  73. flags : TGdkColorInfoFlags;
  74. ref_count : guint;
  75. end;
  76. PGdkColormapPrivate = ^TGdkColormapPrivate;
  77. TGdkColormapPrivate = record
  78. colormap : TGdkColormap;
  79. xcolormap : TColormap;
  80. xdisplay : PDisplay;
  81. visual : PGdkVisual;
  82. private_val : gint;
  83. hash : PGHashTable;
  84. info : PGdkColorInfo;
  85. last_sync_time : time_t;
  86. ref_count : guint;
  87. end;
  88. PGdkVisualPrivate = ^TGdkVisualPrivate;
  89. TGdkVisualPrivate = record
  90. visual : TGdkVisual;
  91. xvisual : PVisual;
  92. end;
  93. PGdkFontPrivate = ^TGdkFontPrivate;
  94. TGdkFontPrivate = record
  95. font : TGdkFont;
  96. xfont : gpointer;
  97. xdisplay : PDisplay;
  98. ref_count : guint;
  99. names : PGSList;
  100. end;
  101. PGdkCursorPrivate = ^TGdkCursorPrivate;
  102. TGdkCursorPrivate = record
  103. cursor : TGdkCursor;
  104. xcursor : TCursor;
  105. xdisplay : PDisplay;
  106. end;
  107. PGdkDndCursorInfo = ^TGdkDndCursorInfo;
  108. TGdkDndCursorInfo = record
  109. gdk_cursor_dragdefault : TCursor;
  110. gdk_cursor_dragok : TCursor;
  111. drag_pm_default : PGdkWindow;
  112. drag_pm_ok : PGdkWindow;
  113. default_hotspot : TGdkPoint;
  114. ok_hotspot : TGdkPoint;
  115. xids : PGList;
  116. end;
  117. PGdkDndGlobals = ^TGdkDndGlobals;
  118. TGdkDndGlobals = record
  119. gdk_XdeEnter : TGdkAtom;
  120. gdk_XdeLeave : TGdkAtom;
  121. gdk_XdeRequest : TGdkAtom;
  122. gdk_XdeDataAvailable : TGdkAtom;
  123. gdk_XdeDataShow : TGdkAtom;
  124. gdk_XdeCancel : TGdkAtom;
  125. gdk_XdeTypelist : TGdkAtom;
  126. c : PGdkDndCursorInfo;
  127. drag_startwindows : PPGdkWindow;
  128. drag_numwindows : guint;
  129. drag_really : gboolean;
  130. drag_perhaps : gboolean;
  131. dnd_grabbed : gboolean;
  132. dnd_drag_target : TWindow;
  133. drag_dropcoords : TGdkPoint;
  134. dnd_drag_start : TGdkPoint;
  135. dnd_drag_oldpos : TGdkPoint;
  136. dnd_drag_dropzone : TGdkRectangle;
  137. real_sw : PGdkWindowPrivate;
  138. dnd_drag_curwin : TWindow;
  139. last_drop_time : Time_T;
  140. end;
  141. PGdkEventFilter = ^TGdkEventFilter;
  142. TGdkEventFilter = record
  143. thefunction : TGdkFilterFunc;
  144. data : gpointer;
  145. end;
  146. PGdkClientFilter = ^TGdkClientFilter;
  147. TGdkClientFilter = record
  148. thetype : TGdkAtom;
  149. thefunction : TGdkFilterFunc;
  150. data : gpointer;
  151. end;
  152. {$ifdef USE_XIM}
  153. PGdkICPrivate = ^TGdkICPrivate;
  154. TGdkICPrivate = record
  155. xic : XIC;
  156. attr : PGdkICAttr;
  157. mask : TGdkICAttributesType;
  158. end;
  159. {$endif}
  160. PGdkColorContextPrivate = ^TGdkColorContextPrivate;
  161. TGdkColorContextPrivate = record
  162. color_context : TGdkColorContext;
  163. xdisplay : PDisplay;
  164. std_cmap : TXStandardColormap;
  165. end;
  166. PGdkRegionPrivate = ^TGdkRegionPrivate;
  167. TGdkRegionPrivate = record
  168. region : TGdkRegion;
  169. xregion : TRegion;
  170. end;
  171. TGdkDebugFlag = (GDK_DEBUG_MISC := 1 shl 0,GDK_DEBUG_EVENTS := 1 shl 1,
  172. GDK_DEBUG_DND := 1 shl 2,GDK_DEBUG_COLOR_CONTEXT := 1 shl 3,
  173. GDK_DEBUG_XIM := 1 shl 4);
  174. procedure gdk_xid_table_insert(xid:TXID; data:gpointer);cdecl;external gdkdll name 'gdk_xid_table_insert';
  175. function gdk_xid_table_lookup(xid:TXID):gpointer;cdecl;external gdkdll name 'gdk_xid_table_lookup';
  176. function GDK_window_lookup(xid : longint) : PGdkWindow;
  177. function GDK_pixmap_lookup(xid : longint) : PGdkPixmap;
  178. function GDK_font_lookup(xid : longint) : PGdkFont;
  179. {$ifndef os2}
  180. var
  181. gdk_selection_property : TAtom;external gdkdll name 'gdk_selection_property';
  182. gdk_progclass : Pgchar;external gdkdll name 'gdk_progclass';
  183. gdk_error_code : gint;external gdkdll name 'gdk_error_code';
  184. gdk_null_window_warnings : gint;external gdkdll name 'gdk_null_window_warnings';
  185. {$endif}
  186. {$ifndef gtkwin}
  187. procedure gdk_events_init;cdecl;external gdkdll name 'gdk_events_init';
  188. procedure gdk_window_init;cdecl;external gdkdll name 'gdk_window_init';
  189. procedure gdk_visual_init;cdecl;external gdkdll name 'gdk_visual_init';
  190. procedure gdk_dnd_init;cdecl;external gdkdll name 'gdk_dnd_init';
  191. procedure gdk_image_init;cdecl;external gdkdll name 'gdk_image_init';
  192. procedure gdk_image_exit;cdecl;external gdkdll name 'gdk_image_exit';
  193. function gdk_colormap_lookup(xcolormap:TColormap):PGdkColormap;cdecl;external gdkdll name 'gdk_colormap_lookup';
  194. function gdk_visual_lookup(xvisual:pVisual):PGdkVisual;cdecl;external gdkdll name 'gdk_visual_lookup';
  195. procedure gdk_window_add_colormap_windows(window:PGdkWindow);cdecl;external gdkdll name 'gdk_window_add_colormap_windows';
  196. procedure gdk_window_destroy_notify(window:PGdkWindow);cdecl;external gdkdll name 'gdk_window_destroy_notify';
  197. procedure gdk_xid_table_remove(xid:TXID);cdecl;external gdkdll name 'gdk_xid_table_remove';
  198. function gdk_send_xevent(window:TWindow; propagate:gboolean; event_mask:glong; event_send:pXEvent):gint;cdecl;external gdkdll name 'gdk_send_xevent';
  199. {$ifndef gtkdarwin}
  200. procedure gdk_dnd_display_drag_cursor(x:gint; y:gint; drag_ok:gboolean; change_made:gboolean);cdecl;external gdkdll name 'gdk_dnd_display_drag_cursor';
  201. {$endif not gtkdarwin}
  202. function gdk_window_xid_at(base:TWindow; bx:gint; by:gint; x:gint; y:gint; excludes:PGList; excl_child:gboolean):TWindow;cdecl;external gdkdll name 'gdk_window_xid_at';
  203. function gdk_window_xid_at_coords(x:gint; y:gint; excludes:PGList; excl_child:gboolean):TWindow;cdecl;external gdkdll name 'gdk_window_xid_at_coords';
  204. {$ifndef os2}
  205. var
  206. gdk_use_xshm : gint;external gdkdll name 'gdk_use_xshm';
  207. gdk_display_name : Pgchar;external gdkdll name 'gdk_display_name';
  208. gdk_display : PDisplay;external gdkdll name 'gdk_display';
  209. gdk_screen : gint;external gdkdll name 'gdk_screen';
  210. gdk_root_window : TWindow;external gdkdll name 'gdk_root_window';
  211. gdk_leader_window : TWindow;external gdkdll name 'gdk_leader_window';
  212. gdk_root_parent : TGdkWindowPrivate;external gdkdll name 'gdk_root_parent';
  213. gdk_wm_delete_window : TAtom;external gdkdll name 'gdk_wm_delete_window';
  214. gdk_wm_take_focus : TAtom;external gdkdll name 'gdk_wm_take_focus';
  215. gdk_wm_protocols : TAtom;external gdkdll name 'gdk_wm_protocols';
  216. gdk_dnd : TGdkDndGlobals;external gdkdll name 'gdk_dnd';
  217. gdk_error_warnings : gint;external gdkdll name 'gdk_error_warnings';
  218. gdk_default_filters : PGList;external gdkdll name 'gdk_default_filters';
  219. gdk_nevent_masks : longint;external gdkdll name 'gdk_nevent_masks';
  220. gdk_xgrab_window : PGdkWindowPrivate;external gdkdll name 'gdk_xgrab_window';
  221. {$endif}
  222. {$ifdef USE_XIM}
  223. function gdk_im_open:gint;cdecl;external gdkdll name 'gdk_im_open';
  224. procedure gdk_im_close;cdecl;external gdkdll name 'gdk_im_close';
  225. procedure gdk_ic_cleanup;cdecl;external gdkdll name 'gdk_ic_cleanup';
  226. var
  227. gdk_xim_ic : PGdkICPrivate;external gdkdll name 'gdk_xim_ic';
  228. gdk_xim_window : PGdkWindow;external gdkdll name 'gdk_xim_window';
  229. {$endif}
  230. {$endif win32}
  231. {$endif read_interface}
  232. {****************************************************************************
  233. Implementation
  234. ****************************************************************************}
  235. {$ifdef read_implementation}
  236. function destroyed(var a : TGdkWindowPrivate) : guint;
  237. begin
  238. destroyed:=(a.flag0 and bm_TGdkWindowPrivate_destroyed) shr bp_TGdkWindowPrivate_destroyed;
  239. end;
  240. procedure set_destroyed(var a : TGdkWindowPrivate; __destroyed : guint);
  241. begin
  242. a.flag0:=a.flag0 or ((__destroyed shl bp_TGdkWindowPrivate_destroyed) and bm_TGdkWindowPrivate_destroyed);
  243. end;
  244. function mapped(var a : TGdkWindowPrivate) : guint;
  245. begin
  246. mapped:=(a.flag0 and bm_TGdkWindowPrivate_mapped) shr bp_TGdkWindowPrivate_mapped;
  247. end;
  248. procedure set_mapped(var a : TGdkWindowPrivate; __mapped : guint);
  249. begin
  250. a.flag0:=a.flag0 or ((__mapped shl bp_TGdkWindowPrivate_mapped) and bm_TGdkWindowPrivate_mapped);
  251. end;
  252. function guffaw_gravity(var a : TGdkWindowPrivate) : guint;
  253. begin
  254. guffaw_gravity:=(a.flag0 and bm_TGdkWindowPrivate_guffaw_gravity) shr bp_TGdkWindowPrivate_guffaw_gravity;
  255. end;
  256. procedure set_guffaw_gravity(var a : TGdkWindowPrivate; __guffaw_gravity : guint);
  257. begin
  258. a.flag0:=a.flag0 or ((__guffaw_gravity shl bp_TGdkWindowPrivate_guffaw_gravity) and bm_TGdkWindowPrivate_guffaw_gravity);
  259. end;
  260. function GDK_window_lookup(xid : longint) : PGdkWindow;
  261. begin
  262. gdk_window_lookup:=PGdkWindow(gdk_xid_table_lookup(xid));
  263. end;
  264. function GDK_pixmap_lookup(xid : longint) : PGdkPixmap;
  265. begin
  266. gdk_pixmap_lookup:=PGdkPixmap(gdk_xid_table_lookup(xid));
  267. end;
  268. function GDK_font_lookup(xid : longint) : PGdkFont;
  269. begin
  270. gdk_font_lookup:=PGdkFont(gdk_xid_table_lookup(xid));
  271. end;
  272. {$endif read_implementation}