gdkprivate.pp 12 KB

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