blob: 962538d16f130f8025ae55d28aa1904742bb95ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
{%MainUnit ../gdk2x.pas}
{$IFDEF read_forward_definitions}
// remove this TXRenderColor, when it has been added to the X11 bindings of FPC
TXRenderColor = record
red: word;
green: word;
blue: word;
alpha: word;
end;
PPXRectangle = ^PXRectangle;
{$ENDIF read_forward_definitions}
{$IFDEF read_interface_rest}
type
PGdkGCX11 = ^TGdkGCX11;
TGdkGCX11 = record
parent_instance : TGdkGC;
xgc : TGC;
screen : PGdkScreen;
clip_region : PGdkRegion;
dirty_mask : guint;
fg_picture : TPicture;
fg_picture_color : TXRenderColor;
fg_pixel : gulong;
end;
PGdkGCX11Class = ^TGdkGCX11Class;
TGdkGCX11Class = record
parent_class : TGdkGCClass;
end;
PGdkCursorPrivate = ^TGdkCursorPrivate;
TGdkCursorPrivate = record
cursor : TGdkCursor;
xcursor : TCursor;
screen : PGdkScreen;
end;
PGdkVisualPrivate = ^TGdkVisualPrivate;
TGdkVisualPrivate = record
visual : TGdkVisual;
xvisual : PVisual;
screen : PGdkScreen;
end;
// Private function GDK_TYPE_GC_X11 : GType;
function GDK_GC_X11(obj : pointer) : PGdkGCX11;
function GDK_GC_X11_CLASS(klass : pointer) : PGdkGCX11Class;
// Private function GDK_IS_GC_X11(obj : pointer) : boolean;
// Private function GDK_IS_GC_X11_CLASS(klass : pointer) : boolean;
// Private function GDK_GC_X11_GET_CLASS(obj : pointer) : PGdkGCX11Class;
procedure _gdk_xid_table_insert(display:PGdkDisplay; xid:PXID; data:gpointer);cdecl;external;
procedure _gdk_xid_table_remove(display:PGdkDisplay; xid:TXID);cdecl;external;
function _gdk_send_xevent(display:PGdkDisplay; window:TWindow; propagate:gboolean; event_mask:glong; event_send:PXEvent):gint;cdecl;external;
// Private function _gdk_gc_x11_get_type:GType;cdecl;external;
{$ifdef HAVE_XFT}
function _gdk_x11_have_render(display:PGdkDisplay):gboolean;cdecl;external;
function _gdk_x11_gc_get_fg_picture(gc:PGdkGC):TPicture;cdecl;external;
{$endif HAVE_XFT}
function _gdk_x11_gc_new(drawable:PGdkDrawable; values:PGdkGCValues; values_mask:TGdkGCValuesMask):PGdkGC;cdecl;external;
function gdk_colormap_lookup(xcolormap:TColormap):PGdkColormap;cdecl;external;
function gdk_visual_lookup(xvisual:PVisual):PGdkVisual;cdecl;external;
procedure gdk_window_add_colormap_windows(window:PGdkWindow);cdecl;external;
function _gdk_x11_copy_to_image(drawable:PGdkDrawable; image:PGdkImage; src_x:gint; src_y:gint; dest_x:gint;
dest_y:gint; width:gint; height:gint):PGdkImage;cdecl;external;
function _gdk_x11_image_get_shm_pixmap(image:PGdkImage):TPixmap;cdecl;external;
{ Routines from gdkgeometry-x11.c }
procedure _gdk_window_init_position(window:PGdkWindow);cdecl;external;
procedure _gdk_window_move_resize_child(window:PGdkWindow; x:gint; y:gint; width:gint; height:gint);cdecl;external;
procedure _gdk_window_process_expose(window:PGdkWindow; serial:gulong; area:PGdkRectangle);cdecl;external;
procedure _gdk_selection_window_destroyed(window:PGdkWindow);cdecl;external;
function _gdk_selection_filter_clear_event(event:PXSelectionClearEvent):gboolean;cdecl;external;
procedure _gdk_region_get_xrectangles(region:PGdkRegion; x_offset:gint; y_offset:gint; rects:PPXRectangle; n_rects:Pgint);cdecl;external;
function _gdk_moveresize_handle_event(event:PXEvent):gboolean;cdecl;external;
function _gdk_moveresize_configure_done(display:PGdkDisplay; window:PGdkWindow):gboolean;cdecl;external;
procedure _gdk_keymap_state_changed(display:PGdkDisplay);cdecl;external;
function _gdk_x11_get_group_for_state(display:PGdkDisplay; state:TGdkModifierType):gint;cdecl;external;
//function _gdk_x11_gc_flush(gc:PGdkGC):TGC;cdecl;external;
procedure _gdk_x11_initialize_locale;cdecl;external;
procedure _gdk_xgrab_check_unmap(window:PGdkWindow; serial:gulong);cdecl;external;
procedure _gdk_xgrab_check_destroy(window:PGdkWindow);cdecl;external;
function _gdk_x11_display_is_root_window(display:PGdkDisplay; xroot_window:TWindow):gboolean;cdecl;external;
procedure _gdk_x11_events_init_screen(screen:PGdkScreen);cdecl;external;
procedure _gdk_events_init(display:PGdkDisplay);cdecl;external;
procedure _gdk_windowing_window_init(screen:PGdkScreen);cdecl;external;
procedure _gdk_visual_init(screen:PGdkScreen);cdecl;external;
procedure _gdk_dnd_init(display:PGdkDisplay);cdecl;external;
procedure _gdk_windowing_image_init(display:PGdkDisplay);cdecl;external;
procedure _gdk_input_init(display:PGdkDisplay);cdecl;external;
var
_gdk_x11_drawable_class : TGdkDrawableClass;cvar;external;
_gdk_use_xshm : gboolean;cvar;external;
(* Const before type ignored *)
_gdk_nenvent_masks : longint;cvar;external;
(* Const before type ignored *)
_gdk_event_mask_table : array of longint;cvar;external;
_gdk_selection_property : TGdkAtom;cvar;external;
_gdk_synchronize : gboolean;cvar;external;
function GDK_PIXMAP_SCREEN(pix : pointer) : PGdkScreen;
function GDK_PIXMAP_DISPLAY(pix : pointer) : PGdkDisplay;
function GDK_PIXMAP_XROOTWIN(pix : pointer) : TWindow;
function GDK_DRAWABLE_DISPLAY(win : PGdkDrawable) : PGdkDisplay;
function GDK_DRAWABLE_SCREEN(win : PGdkDrawable) : PGdkScreen;
function GDK_DRAWABLE_XROOTWIN(win : PGdkDrawable) : TWindow;
function GDK_SCREEN_DISPLAY(screen : PGdkScreen) : PGdkDisplay;
function GDK_SCREEN_XROOTWIN(screen : PGdkScreen) : TWindow;
function GDK_WINDOW_SCREEN(win : PGdkDrawable) : PGdkScreen;
function GDK_WINDOW_DISPLAY(win : PGdkDrawable) : PGdkDisplay;
function GDK_WINDOW_XROOTWIN(win : PGdkDrawable) : TWindow;
function GDK_GC_DISPLAY(gc : PGdkGC) : PGdkDisplay;
{$ENDIF read_interface_rest}
//------------------------------------------------------------------------------
{$IFDEF read_implementation}
{ Private
function GDK_TYPE_GC_X11 : GType;
begin
GDK_TYPE_GC_X11:=_gdk_gc_x11_get_type;
end;}
function GDK_GC_X11(obj : pointer) : PGdkGCX11;
begin
GDK_GC_X11:=PGdkGCX11(obj);
//GDK_GC_X11:=PGdkGCX11(G_TYPE_CHECK_INSTANCE_CAST(obj,GDK_TYPE_GC_X11));
end;
function GDK_GC_X11_CLASS(klass : pointer) : PGdkGCX11Class;
begin
GDK_GC_X11_CLASS:=PGdkGCX11Class(klass);
//GDK_GC_X11_CLASS:=PGdkGCX11Class(G_TYPE_CHECK_CLASS_CAST(klass,GDK_TYPE_GC_X11));
end;
{ Private
function GDK_IS_GC_X11(obj : pointer) : boolean;
begin
GDK_IS_GC_X11:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GDK_TYPE_GC_X11);
end;
function GDK_IS_GC_X11_CLASS(klass : pointer) : boolean;
begin
GDK_IS_GC_X11_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GDK_TYPE_GC_X11);
end;
function GDK_GC_X11_GET_CLASS(obj : pointer) : PGdkGCX11Class;
begin
GDK_GC_X11_GET_CLASS:=PGdkGCX11Class(G_TYPE_INSTANCE_GET_CLASS(obj,GDK_TYPE_GC_X11));
end; }
function GDK_PIXMAP_SCREEN(pix : pointer) : PGdkScreen;
begin
GDK_PIXMAP_SCREEN:=(GDK_DRAWABLE_IMPL_X11((PGdkPixmapObject(pix))^.impl))^.screen;
end;
function GDK_PIXMAP_DISPLAY(pix : pointer) : PGdkDisplay;
begin
GDK_PIXMAP_DISPLAY:=(GDK_SCREEN_X11(GDK_PIXMAP_SCREEN(pix)))^.display;
end;
function GDK_PIXMAP_XROOTWIN(pix : pointer) : TWindow;
begin
GDK_PIXMAP_XROOTWIN:=(GDK_SCREEN_X11(GDK_PIXMAP_SCREEN(pix)))^.xroot_window;
end;
function GDK_DRAWABLE_DISPLAY(win : PGdkDrawable) : PGdkDisplay;
var
if_local1 : PGdkDisplay;
begin
if GDK_IS_WINDOW(win) then
if_local1:=GDK_WINDOW_DISPLAY(win)
else
if_local1:=GDK_PIXMAP_DISPLAY(win);
GDK_DRAWABLE_DISPLAY:=if_local1;
end;
function GDK_DRAWABLE_SCREEN(win : PGdkDrawable) : PGdkScreen;
var
if_local1 : PGdkScreen;
begin
if GDK_IS_WINDOW(win) then
if_local1:=GDK_WINDOW_SCREEN(win)
else
if_local1:=GDK_PIXMAP_SCREEN(win);
GDK_DRAWABLE_SCREEN:=if_local1;
end;
function GDK_DRAWABLE_XROOTWIN(win : PGdkDrawable) : TWindow;
var
if_local1 : TWindow;
begin
if GDK_IS_WINDOW(win) then
if_local1:=GDK_WINDOW_XROOTWIN(win)
else
if_local1:=GDK_PIXMAP_XROOTWIN(win);
GDK_DRAWABLE_XROOTWIN:=if_local1;
end;
function GDK_SCREEN_DISPLAY(screen : PGdkScreen) : PGdkDisplay;
begin
GDK_SCREEN_DISPLAY:=(GDK_SCREEN_X11(screen))^.display;
end;
function GDK_SCREEN_XROOTWIN(screen : PGdkScreen) : TWindow;
begin
GDK_SCREEN_XROOTWIN:=(GDK_SCREEN_X11(screen))^.xroot_window;
end;
function GDK_WINDOW_SCREEN(win : PGdkDrawable) : PGdkScreen;
begin
GDK_WINDOW_SCREEN:=(GDK_DRAWABLE_IMPL_X11((PGdkWindowObject(win))^.impl))^.screen;
end;
function GDK_WINDOW_DISPLAY(win : PGdkDrawable) : PGdkDisplay;
begin
GDK_WINDOW_DISPLAY:=(GDK_SCREEN_X11(GDK_WINDOW_SCREEN(win)))^.display;
end;
function GDK_WINDOW_XROOTWIN(win : PGdkDrawable) : TWindow;
begin
GDK_WINDOW_XROOTWIN:=(GDK_SCREEN_X11(GDK_WINDOW_SCREEN(win)))^.xroot_window;
end;
function GDK_GC_DISPLAY(gc : PGdkGC) : PGdkDisplay;
begin
GDK_GC_DISPLAY:=GDK_SCREEN_DISPLAY((GDK_GC_X11(gc))^.screen);
end;
{$ENDIF read_implementation}
|