1// included by gtk2.pas
2
3{$IFDEF read_forward_definitions}
4   PGtkStyle = ^TGtkStyle;
5{$ENDIF read_forward_definitions}
6
7//------------------------------------------------------------------------------
8
9{$IFDEF read_interface_types}
10  // internal type
11  PGtkIconSource = pointer;
12
13
14{ Some forward declarations needed to rationalize the header
15   files.
16  }
17   TGtkRcPropertyParser = function (pspec:PGParamSpec; rc_string:PGString; property_value:PGValue):gboolean; cdecl;
18{ We make this forward declaration here, since we pass
19   GtkWidget's to the draw functions.
20  }
21
22
23{< public > }
24{ Halfway between text/base  }
25{< private > }
26{ Font description for style->private_font or %NULL  }
27{ the RcStyle from which this style was created  }
28{ of type GtkStyle   }
29{ of type GtkIconFactory   }
30   TGtkStyle = record
31        parent_instance : TGObject;
32        fg : array[0..4] of TGdkColor;
33        bg : array[0..4] of TGdkColor;
34        light : array[0..4] of TGdkColor;
35        dark : array[0..4] of TGdkColor;
36        mid : array[0..4] of TGdkColor;
37        text : array[0..4] of TGdkColor;
38        base : array[0..4] of TGdkColor;
39        text_aa : array[0..4] of TGdkColor;
40        black : TGdkColor;
41        white : TGdkColor;
42        font_desc : PPangoFontDescription;
43        xthickness : gint;
44        ythickness : gint;
45        fg_gc : array[0..4] of PGdkGC;
46        bg_gc : array[0..4] of PGdkGC;
47        light_gc : array[0..4] of PGdkGC;
48        dark_gc : array[0..4] of PGdkGC;
49        mid_gc : array[0..4] of PGdkGC;
50        text_gc : array[0..4] of PGdkGC;
51        base_gc : array[0..4] of PGdkGC;
52        text_aa_gc : array[0..4] of PGdkGC;
53        black_gc : PGdkGC;
54        white_gc : PGdkGC;
55        bg_pixmap : array[0..4] of PGdkPixmap;
56        attach_count : gint;
57        depth : gint;
58        colormap : PGdkColormap;
59        private_font : PGdkFont;
60        private_font_desc : PPangoFontDescription;
61        rc_style : PGtkRcStyle;
62        styles : PGSList;
63        property_cache : PGArray;
64        icon_factories : PGSList;
65     end;
66
67{ Initialize for a particular colormap/depth
68     combination. style->colormap/style->depth will have
69     been set at this point. Will typically chain to parent.
70    }
71{ Clean up for a particular colormap/depth combination. Will
72     typically chain to parent.
73    }
74{ Make style an exact duplicate of src.
75    }
76{ Create an empty style of the same type as this style.
77     The default implementation, which does
78     g_object_new (G_OBJECT_TYPE (style), NULL);
79     should work in most cases.
80    }
81{ Initialize the GtkStyle with the values in the GtkRcStyle.
82     should chain to the parent implementation.
83    }
84{ Drawing functions
85    }
86{ Padding for future expansion  }
87   PGtkStyleClass = ^TGtkStyleClass;
88   TGtkStyleClass = record
89        parent_class : TGObjectClass;
90        realize : procedure (style:PGtkStyle); cdecl;
91        unrealize : procedure (style:PGtkStyle); cdecl;
92        copy : procedure (style:PGtkStyle; src:PGtkStyle); cdecl;
93        clone : function (style:PGtkStyle):PGtkStyle; cdecl;
94        init_from_rc : procedure (style:PGtkStyle; rc_style:PGtkRcStyle); cdecl;
95        set_background : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType); cdecl;
96        render_icon : function (style:PGtkStyle; source:PGtkIconSource; direction:TGtkTextDirection; state:TGtkStateType; size:TGtkIconSize;
97                     widget:PGtkWidget; detail:Pgchar):PGdkPixbuf; cdecl;
98        draw_hline : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
99                      detail:Pgchar; x1:gint; x2:gint; y:gint); cdecl;
100        draw_vline : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
101                      detail:Pgchar; y1:gint; y2:gint; x:gint); cdecl;
102        draw_shadow : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
103                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
104                      height:gint); cdecl;
105        draw_polygon : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
106                      widget:PGtkWidget; detail:Pgchar; point:PGdkPoint; npoints:gint; fill:gboolean); cdecl;
107        draw_arrow : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
108                      widget:PGtkWidget; detail:Pgchar; arrow_type:TGtkArrowType; fill:gboolean; x:gint;
109                      y:gint; width:gint; height:gint); cdecl;
110        draw_diamond : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
111                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
112                      height:gint); cdecl;
113        draw_string : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
114                      detail:Pgchar; x:gint; y:gint; _string:Pgchar); cdecl;
115        draw_box : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
116                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
117                      height:gint); cdecl;
118        draw_flat_box : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
119                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
120                      height:gint); cdecl;
121        draw_check : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
122                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
123                      height:gint); cdecl;
124        draw_option : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
125                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
126                      height:gint); cdecl;
127        draw_tab : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
128                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
129                      height:gint); cdecl;
130        draw_shadow_gap : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
131                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
132                      height:gint; gap_side:TGtkPositionType; gap_x:gint; gap_width:gint); cdecl;
133        draw_box_gap : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
134                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
135                      height:gint; gap_side:TGtkPositionType; gap_x:gint; gap_width:gint); cdecl;
136        draw_extension : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
137                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
138                      height:gint; gap_side:TGtkPositionType); cdecl;
139        draw_focus : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
140                      detail:Pgchar; x:gint; y:gint; width:gint; height:gint); cdecl;
141        draw_slider : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
142                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
143                      height:gint; orientation:TGtkOrientation); cdecl;
144        draw_handle : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
145                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
146                      height:gint; orientation:TGtkOrientation); cdecl;
147        draw_expander : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
148                      detail:Pgchar; x:gint; y:gint; expander_style:TGtkExpanderStyle); cdecl;
149        draw_layout : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; use_text:gboolean; area:PGdkRectangle;
150                      widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; layout:PPangoLayout); cdecl;
151        draw_resize_grip : procedure (style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
152                      detail:Pgchar; edge:TGdkWindowEdge; x:gint; y:gint; width:gint;
153                      height:gint); cdecl;
154        _gtk_reserved1 : procedure ; cdecl;
155        _gtk_reserved2 : procedure ; cdecl;
156        _gtk_reserved3 : procedure ; cdecl;
157        _gtk_reserved4 : procedure ; cdecl;
158        _gtk_reserved5 : procedure ; cdecl;
159        _gtk_reserved6 : procedure ; cdecl;
160        _gtk_reserved7 : procedure ; cdecl;
161        _gtk_reserved8 : procedure ; cdecl;
162        _gtk_reserved9 : procedure ; cdecl;
163        _gtk_reserved10 : procedure ; cdecl;
164        _gtk_reserved11 : procedure ; cdecl;
165        _gtk_reserved12 : procedure ; cdecl;
166     end;
167
168   PGtkBorder = ^TGtkBorder;
169   TGtkBorder = record
170        left : gint;
171        right : gint;
172        top : gint;
173        bottom : gint;
174     end;
175
176{$ENDIF read_interface_types}
177
178//------------------------------------------------------------------------------
179
180{$IFDEF read_interface_rest}
181function GTK_TYPE_STYLE : GType;
182function GTK_STYLE(anObject: pointer) : PGtkStyle;
183function GTK_STYLE_CLASS(klass: pointer) : PGtkStyleClass;
184function GTK_IS_STYLE(anObject: pointer) : boolean;
185function GTK_IS_STYLE_CLASS(klass: pointer) : boolean;
186function GTK_STYLE_GET_CLASS(obj: pointer) : PGtkStyleClass;
187function GTK_TYPE_BORDER : GType;
188function GTK_STYLE_ATTACHED(style : pointer) : boolean;
189
190
191function gtk_style_get_type:GType; cdecl; external gtklib;
192function gtk_style_new:PGtkStyle; cdecl; external gtklib;
193function gtk_style_copy(style:PGtkStyle):PGtkStyle; cdecl; external gtklib;
194function gtk_style_attach(style:PGtkStyle; window:PGdkWindow):PGtkStyle; cdecl; external gtklib;
195procedure gtk_style_detach(style:PGtkStyle); cdecl; external gtklib;
196
197{$ifndef GTK_DISABLE_DEPRECATED}
198function gtk_style_ref(style:PGtkStyle):PGtkStyle; cdecl; external gtklib;
199procedure gtk_style_unref(style:PGtkStyle); cdecl; external gtklib;
200
201{$ifndef GDK_MULTIHEAD_SAFE}
202function gtk_style_get_font(style:PGtkStyle):PGdkFont; cdecl; external gtklib;
203{$endif}
204
205function gtk_style_get_font_for_display(display:PGdkDisplay; style:PGtkStyle):PGdkFont; cdecl; external gtklib;
206procedure gtk_style_set_font(style:PGtkStyle; font:PGdkFont); cdecl; external gtklib;
207{$endif}
208{ GTK_DISABLE_DEPRECATED  }
209
210procedure gtk_style_set_background(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType); cdecl; external gtklib;
211procedure gtk_style_apply_default_background(style:PGtkStyle; window:PGdkWindow; set_bg:gboolean; state_type:TGtkStateType; area:PGdkRectangle;
212            x:gint; y:gint; width:gint; height:gint); cdecl; external gtklib;
213function gtk_style_lookup_icon_set(style:PGtkStyle; stock_id:Pgchar):PGtkIconSet; cdecl; external gtklib;
214function gtk_style_render_icon(style:PGtkStyle; source:PGtkIconSource; direction:TGtkTextDirection; state:TGtkStateType; size:TGtkIconSize;
215           widget:PGtkWidget; detail:Pgchar):PGdkPixbuf; cdecl; external gtklib;
216{$ifndef GTK_DISABLE_DEPRECATED}
217
218procedure gtk_draw_hline(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; x1:gint; x2:gint;
219            y:gint); cdecl; external gtklib;
220procedure gtk_draw_vline(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; y1:gint; y2:gint;
221            x:gint); cdecl; external gtklib;
222procedure gtk_draw_shadow(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
223            y:gint; width:gint; height:gint); cdecl; external gtklib;
224procedure gtk_draw_polygon(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; points:PGdkPoint;
225            npoints:gint; fill:gboolean); cdecl; external gtklib;
226procedure gtk_draw_arrow(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; arrow_type:TGtkArrowType;
227            fill:gboolean; x:gint; y:gint; width:gint; height:gint); cdecl; external gtklib;
228procedure gtk_draw_diamond(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
229            y:gint; width:gint; height:gint); cdecl; external gtklib;
230procedure gtk_draw_box(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
231            y:gint; width:gint; height:gint); cdecl; external gtklib;
232procedure gtk_draw_flat_box(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
233            y:gint; width:gint; height:gint); cdecl; external gtklib;
234procedure gtk_draw_check(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
235            y:gint; width:gint; height:gint); cdecl; external gtklib;
236procedure gtk_draw_option(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
237            y:gint; width:gint; height:gint); cdecl; external gtklib;
238procedure gtk_draw_tab(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
239            y:gint; width:gint; height:gint); cdecl; external gtklib;
240procedure gtk_draw_shadow_gap(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
241            y:gint; width:gint; height:gint; gap_side:TGtkPositionType; gap_x:gint;
242            gap_width:gint); cdecl; external gtklib;
243procedure gtk_draw_box_gap(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
244            y:gint; width:gint; height:gint; gap_side:TGtkPositionType; gap_x:gint;
245            gap_width:gint); cdecl; external gtklib;
246procedure gtk_draw_extension(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
247            y:gint; width:gint; height:gint; gap_side:TGtkPositionType); cdecl; external gtklib;
248procedure gtk_draw_focus(style:PGtkStyle; window:PGdkWindow; x:gint; y:gint; width:gint;
249            height:gint); cdecl; external gtklib;
250procedure gtk_draw_slider(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
251            y:gint; width:gint; height:gint; orientation:TGtkOrientation); cdecl; external gtklib;
252procedure gtk_draw_handle(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; x:gint;
253            y:gint; width:gint; height:gint; orientation:TGtkOrientation); cdecl; external gtklib;
254procedure gtk_draw_expander(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; x:gint; y:gint;
255            expander_style:TGtkExpanderStyle); cdecl; external gtklib;
256procedure gtk_draw_layout(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; use_text:gboolean; x:gint;
257            y:gint; layout:PPangoLayout); cdecl; external gtklib;
258procedure gtk_draw_resize_grip(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; edge:TGdkWindowEdge; x:gint;
259            y:gint; width:gint; height:gint); cdecl; external gtklib;
260{$endif}
261{ GTK_DISABLE_DEPRECATED  }
262
263procedure gtk_paint_hline(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
264            detail:Pgchar; x1:gint; x2:gint; y:gint); cdecl; external gtklib;
265procedure gtk_paint_vline(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
266            detail:Pgchar; y1:gint; y2:gint; x:gint); cdecl; external gtklib;
267procedure gtk_paint_shadow(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
268            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
269            height:gint); cdecl; external gtklib;
270procedure gtk_paint_polygon(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
271            widget:PGtkWidget; detail:Pgchar; points:PGdkPoint; npoints:gint; fill:gboolean); cdecl; external gtklib;
272procedure gtk_paint_arrow(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
273            widget:PGtkWidget; detail:Pgchar; arrow_type:TGtkArrowType; fill:gboolean; x:gint;
274            y:gint; width:gint; height:gint); cdecl; external gtklib;
275procedure gtk_paint_diamond(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
276            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
277            height:gint); cdecl; external gtklib;
278procedure gtk_paint_box(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
279            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
280            height:gint); cdecl; external gtklib;
281procedure gtk_paint_flat_box(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
282            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
283            height:gint); cdecl; external gtklib;
284procedure gtk_paint_check(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
285            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
286            height:gint); cdecl; external gtklib;
287procedure gtk_paint_option(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
288            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
289            height:gint); cdecl; external gtklib;
290procedure gtk_paint_tab(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
291            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
292            height:gint); cdecl; external gtklib;
293procedure gtk_paint_shadow_gap(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
294            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
295            height:gint; gap_side:TGtkPositionType; gap_x:gint; gap_width:gint); cdecl; external gtklib;
296procedure gtk_paint_box_gap(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
297            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
298            height:gint; gap_side:TGtkPositionType; gap_x:gint; gap_width:gint); cdecl; external gtklib;
299procedure gtk_paint_extension(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
300            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
301            height:gint; gap_side:TGtkPositionType); cdecl; external gtklib;
302procedure gtk_paint_focus(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
303            detail:Pgchar; x:gint; y:gint; width:gint; height:gint); cdecl; external gtklib;
304procedure gtk_paint_slider(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
305            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
306            height:gint; orientation:TGtkOrientation); cdecl; external gtklib;
307procedure gtk_paint_handle(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; shadow_type:TGtkShadowType; area:PGdkRectangle;
308            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; width:gint;
309            height:gint; orientation:TGtkOrientation); cdecl; external gtklib;
310procedure gtk_paint_expander(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
311            detail:Pgchar; x:gint; y:gint; expander_style:TGtkExpanderStyle); cdecl; external gtklib;
312procedure gtk_paint_layout(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; use_text:gboolean; area:PGdkRectangle;
313            widget:PGtkWidget; detail:Pgchar; x:gint; y:gint; layout:PPangoLayout); cdecl; external gtklib;
314procedure gtk_paint_resize_grip(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
315            detail:Pgchar; edge:TGdkWindowEdge; x:gint; y:gint; width:gint;
316            height:gint); cdecl; external gtklib;
317function gtk_border_get_type:GType; cdecl; external gtklib;
318function gtk_border_copy(border:PGtkBorder):PGtkBorder; cdecl; external gtklib;
319procedure gtk_border_free(border:PGtkBorder); cdecl; external gtklib;
320{ --- private API ---  }
321function _gtk_style_peek_property_value(style:PGtkStyle; widget_type:GType; pspec:PGParamSpec; parser:TGtkRcPropertyParser):PGValue; cdecl; external gtklib;
322
323{ deprecated  }
324{$ifndef GTK_DISABLE_DEPRECATED}
325procedure gtk_style_apply_default_pixmap(style:PGtkStyle; window:PGdkWindow;
326  state_type:TGtkStateType; area:PGdkRectangle;
327  x:gint; y:gint; width:gint; height:gint);
328
329procedure gtk_draw_string(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; x:gint; y:gint;
330            _string:Pgchar); cdecl; external gtklib;
331procedure gtk_paint_string(style:PGtkStyle; window:PGdkWindow; state_type:TGtkStateType; area:PGdkRectangle; widget:PGtkWidget;
332            detail:Pgchar; x:gint; y:gint; _string:Pgchar); cdecl; external gtklib;
333{$endif}
334{ GTK_DISABLE_DEPRECATED  }
335
336function _gtk_get_insertion_cursor_gc(widget:PGtkWidget; is_primary:gboolean):PGdkGC; cdecl; external gtklib;
337procedure _gtk_draw_insertion_cursor(widget:PGtkWidget; drawable:PGdkDrawable; gc:PGdkGC; location:PGdkRectangle; direction:TGtkTextDirection;
338            draw_arrow:gboolean); cdecl; external gtklib;
339
340{$ifdef HasGTK2_4}
341procedure gtk_draw_insertion_cursor(widget:PGtkWidget; drawable:PGdkDrawable; area:PGdkRectangle; location:PGdkRectangle; is_primary:gboolean;
342            direction:TGtkTextDirection; draw_arrow:gboolean); cdecl; external gtklib;
343{$endif}
344{$ENDIF read_interface_rest}
345
346//------------------------------------------------------------------------------
347
348{$IFDEF read_implementation}
349function GTK_TYPE_STYLE : GType;
350begin
351   GTK_TYPE_STYLE:=gtk_style_get_type;
352end;
353
354function GTK_STYLE(anObject: pointer) : PGtkStyle;
355begin
356   GTK_STYLE:=PGtkStyle(G_TYPE_CHECK_INSTANCE_CAST(anObject,GTK_TYPE_STYLE));
357end;
358
359function GTK_STYLE_CLASS(klass: pointer) : PGtkStyleClass;
360begin
361   GTK_STYLE_CLASS:=PGtkStyleClass(G_TYPE_CHECK_CLASS_CAST(klass,GTK_TYPE_STYLE));
362end;
363
364function GTK_IS_STYLE(anObject: pointer) : boolean;
365begin
366   GTK_IS_STYLE:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,GTK_TYPE_STYLE);
367end;
368
369function GTK_IS_STYLE_CLASS(klass: pointer) : boolean;
370begin
371   GTK_IS_STYLE_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GTK_TYPE_STYLE);
372end;
373
374function GTK_STYLE_GET_CLASS(obj: pointer) : PGtkStyleClass;
375begin
376   GTK_STYLE_GET_CLASS:=PGtkStyleClass(G_TYPE_INSTANCE_GET_CLASS(obj,GTK_TYPE_STYLE));
377end;
378
379function GTK_TYPE_BORDER : GType;
380begin
381   GTK_TYPE_BORDER:=gtk_border_get_type;
382end;
383
384function GTK_STYLE_ATTACHED(style : pointer) : boolean;
385begin
386   GTK_STYLE_ATTACHED:=((GTK_STYLE(style))^.attach_count) > 0;
387end;
388
389procedure gtk_style_apply_default_pixmap(style:PGtkStyle; window:PGdkWindow;
390  state_type:TGtkStateType; area:PGdkRectangle;
391  x:gint; y:gint; width:gint; height:gint);
392begin
393   gtk_style_apply_default_background(style,window,true,state_type,area,x,y,width,height);
394end;
395
396{$ENDIF read_implementation}
397// included by gtk2.pas
398
399