]> Pileus Git - ~andy/gtk/blob - gtk/gtkstyle.h
Adapt to uscore-ification of gtktextiterprivate
[~andy/gtk] / gtk / gtkstyle.h
1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 /*
21  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
22  * file for a list of people on the GTK+ Team.  See the ChangeLog
23  * files for a list of changes.  These files are distributed with
24  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
25  */
26
27 #ifndef __GTK_STYLE_H__
28 #define __GTK_STYLE_H__
29
30
31 #include <gdk/gdk.h>
32 #include <gtk/gtkenums.h>
33 #include <pango/pango.h>
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif /* __cplusplus */
38
39 typedef struct _GtkStyle       GtkStyle;
40 typedef struct _GtkStyleClass  GtkStyleClass;
41
42 #define GTK_TYPE_STYLE              (gtk_style_get_type ())
43 #define GTK_STYLE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_STYLE, GtkStyle))
44 #define GTK_STYLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_STYLE, GtkStyleClass))
45 #define GTK_IS_STYLE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GTK_TYPE_STYLE))
46 #define GTK_IS_STYLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_STYLE))
47 #define GTK_STYLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_STYLE, GtkStyleClass))
48
49 /* Some forward declarations needed to rationalize the header
50  * files.
51  */
52 typedef struct _GtkThemeEngine GtkThemeEngine;
53 typedef struct _GtkRcStyle     GtkRcStyle;
54 typedef struct _GtkIconSet     GtkIconSet;
55 typedef struct _GtkIconSource  GtkIconSource;
56
57 /* We make this forward declaration here, since we pass
58  * GtkWidgt's to the draw functions.
59  */
60 typedef struct _GtkWidget      GtkWidget;
61
62 /* This is used for having dynamic style changing stuff
63  * fg, bg, light, dark, mid, text, base
64  */
65 #define GTK_STYLE_NUM_STYLECOLORS()     (7 * 5)
66
67 #define GTK_STYLE_ATTACHED(style)       (((GtkStyle*) (style))->attach_count > 0)
68
69 struct _GtkStyle
70 {
71   GObject parent_instance;
72
73   /*< public >*/
74   
75   GdkColor fg[5];
76   GdkColor bg[5];
77   GdkColor light[5];
78   GdkColor dark[5];
79   GdkColor mid[5];
80   GdkColor text[5];
81   GdkColor base[5];
82   
83   GdkColor black;
84   GdkColor white;
85   GdkFont *font;
86   PangoFontDescription *font_desc;
87   
88   gint xthickness;
89   gint ythickness;
90   
91   GdkGC *fg_gc[5];
92   GdkGC *bg_gc[5];
93   GdkGC *light_gc[5];
94   GdkGC *dark_gc[5];
95   GdkGC *mid_gc[5];
96   GdkGC *text_gc[5];
97   GdkGC *base_gc[5];
98   GdkGC *black_gc;
99   GdkGC *white_gc;
100   
101   GdkPixmap *bg_pixmap[5];
102
103   /*< private >*/
104   
105   gint attach_count;
106   
107   gint depth;
108   GdkColormap *colormap;
109   
110   GtkRcStyle     *rc_style;     /* the Rc style from which this style
111                                  * was created
112                                  */
113   GSList         *styles;
114
115   GSList         *icon_factories;
116 };
117
118 struct _GtkStyleClass
119 {
120   GObjectClass parent_class;
121
122   /* Initialize for a particular colormap/depth
123    * combination. style->colormap/style->depth will have
124    * been set at this point. Will typically chain to parent.
125    */
126   void (*realize)               (GtkStyle               *style);
127
128   /* Clean up for a particular colormap/depth combination. Will
129    * typically chain to parent.
130    */
131   void (*unrealize)             (GtkStyle               *style);
132
133   /* Make style an exact duplicate of src.
134    */
135   void (*copy)                  (GtkStyle               *style,
136                                  GtkStyle               *src);
137
138   /* Create an empty style of the same type as this style.
139    * The default implementation, which does
140    * g_object_new (G_OBJECT_TYPE (style), NULL);
141    * should work in most cases.
142    */
143   GtkStyle *(*clone)             (GtkStyle               *style);
144
145   /* Initialize the GtkStyle with the values in the GtkRcStyle.
146    * should chain to the parent implementation.
147    */
148   void     (*init_from_rc)      (GtkStyle               *style,
149                                  GtkRcStyle             *rc_style);
150
151   void (*set_background)        (GtkStyle               *style,
152                                  GdkWindow              *window,
153                                  GtkStateType            state_type);
154
155
156   GdkPixbuf * (* render_icon)   (GtkStyle               *style,
157                                  const GtkIconSource    *source,
158                                  GtkTextDirection        direction,
159                                  GtkStateType            state,
160                                  const gchar            *size,
161                                  GtkWidget              *widget,
162                                  const gchar            *detail);
163   
164   /* Drawing functions
165    */
166   
167   void (*draw_hline)            (GtkStyle               *style,
168                                  GdkWindow              *window,
169                                  GtkStateType            state_type,
170                                  GdkRectangle           *area,
171                                  GtkWidget              *widget,
172                                  const gchar            *detail,
173                                  gint                    x1,
174                                  gint                    x2,
175                                  gint                    y);
176   void (*draw_vline)            (GtkStyle               *style,
177                                  GdkWindow              *window,
178                                  GtkStateType            state_type,
179                                  GdkRectangle           *area,
180                                  GtkWidget              *widget,
181                                  const gchar            *detail,
182                                  gint                    y1,
183                                  gint                    y2,
184                                  gint                    x);
185   void (*draw_shadow)           (GtkStyle               *style,
186                                  GdkWindow              *window,
187                                  GtkStateType            state_type,
188                                  GtkShadowType           shadow_type,
189                                  GdkRectangle           *area,
190                                  GtkWidget              *widget,
191                                  const gchar            *detail,
192                                  gint                    x,
193                                  gint                    y,
194                                  gint                    width,
195                                  gint                    height);
196   void (*draw_polygon)          (GtkStyle               *style,
197                                  GdkWindow              *window,
198                                  GtkStateType            state_type,
199                                  GtkShadowType           shadow_type,
200                                  GdkRectangle           *area,
201                                  GtkWidget              *widget,
202                                  const gchar            *detail,
203                                  GdkPoint               *point,
204                                  gint                    npoints,
205                                  gboolean                fill);
206   void (*draw_arrow)            (GtkStyle               *style,
207                                  GdkWindow              *window,
208                                  GtkStateType            state_type,
209                                  GtkShadowType           shadow_type,
210                                  GdkRectangle           *area,
211                                  GtkWidget              *widget,
212                                  const gchar            *detail,
213                                  GtkArrowType            arrow_type,
214                                  gboolean                fill,
215                                  gint                    x,
216                                  gint                    y,
217                                  gint                    width,
218                                  gint                    height);
219   void (*draw_diamond)          (GtkStyle               *style,
220                                  GdkWindow              *window,
221                                  GtkStateType            state_type,
222                                  GtkShadowType           shadow_type,
223                                  GdkRectangle           *area,
224                                  GtkWidget              *widget,
225                                  const gchar            *detail,
226                                  gint                    x,
227                                  gint                    y,
228                                  gint                    width,
229                                  gint                    height);
230   void (*draw_string)           (GtkStyle               *style,
231                                  GdkWindow              *window,
232                                  GtkStateType            state_type,
233                                  GdkRectangle           *area,
234                                  GtkWidget              *widget,
235                                  const gchar            *detail,
236                                  gint                    x,
237                                  gint                    y,
238                                  const gchar            *string);
239   void (*draw_box)              (GtkStyle               *style,
240                                  GdkWindow              *window,
241                                  GtkStateType            state_type,
242                                  GtkShadowType           shadow_type,
243                                  GdkRectangle           *area,
244                                  GtkWidget              *widget,
245                                  const gchar            *detail,
246                                  gint                    x,
247                                  gint                    y,
248                                  gint                    width,
249                                  gint                    height);
250   void (*draw_flat_box)         (GtkStyle               *style,
251                                  GdkWindow              *window,
252                                  GtkStateType            state_type,
253                                  GtkShadowType           shadow_type,
254                                  GdkRectangle           *area,
255                                  GtkWidget              *widget,
256                                  const gchar            *detail,
257                                  gint                    x,
258                                  gint                    y,
259                                  gint                    width,
260                                  gint                    height);
261   void (*draw_check)            (GtkStyle               *style,
262                                  GdkWindow              *window,
263                                  GtkStateType            state_type,
264                                  GtkShadowType           shadow_type,
265                                  GdkRectangle           *area,
266                                  GtkWidget              *widget,
267                                  const gchar            *detail,
268                                  gint                    x,
269                                  gint                    y,
270                                  gint                    width,
271                                  gint                    height);
272   void (*draw_option)           (GtkStyle               *style,
273                                  GdkWindow              *window,
274                                  GtkStateType            state_type,
275                                  GtkShadowType           shadow_type,
276                                  GdkRectangle           *area,
277                                  GtkWidget              *widget,
278                                  const gchar            *detail,
279                                  gint                    x,
280                                  gint                    y,
281                                  gint                    width,
282                                  gint                    height);
283   void (*draw_tab)              (GtkStyle               *style,
284                                  GdkWindow              *window,
285                                  GtkStateType            state_type,
286                                  GtkShadowType           shadow_type,
287                                  GdkRectangle           *area,
288                                  GtkWidget              *widget,
289                                  const gchar            *detail,
290                                  gint                    x,
291                                  gint                    y,
292                                  gint                    width,
293                                  gint                    height); 
294   void (*draw_shadow_gap)       (GtkStyle               *style,
295                                  GdkWindow              *window,
296                                  GtkStateType            state_type,
297                                  GtkShadowType           shadow_type,
298                                  GdkRectangle           *area,
299                                  GtkWidget              *widget,
300                                  const gchar            *detail,
301                                  gint                    x,
302                                  gint                    y,
303                                  gint                    width,
304                                  gint                    height,
305                                  GtkPositionType         gap_side,
306                                  gint                    gap_x,
307                                  gint                    gap_width);
308   void (*draw_box_gap)          (GtkStyle               *style,
309                                  GdkWindow              *window,
310                                  GtkStateType            state_type,
311                                  GtkShadowType           shadow_type,
312                                  GdkRectangle           *area,
313                                  GtkWidget              *widget,
314                                  const gchar            *detail,
315                                  gint                    x,
316                                  gint                    y,
317                                  gint                    width,
318                                  gint                    height,
319                                  GtkPositionType         gap_side,
320                                  gint                    gap_x,
321                                  gint                    gap_width);
322   void (*draw_extension)        (GtkStyle               *style,
323                                  GdkWindow              *window,
324                                  GtkStateType            state_type,
325                                  GtkShadowType           shadow_type,
326                                  GdkRectangle           *area,
327                                  GtkWidget              *widget,
328                                  const gchar            *detail,
329                                  gint                    x,
330                                  gint                    y,
331                                  gint                    width,
332                                  gint                    height,
333                                  GtkPositionType         gap_side);
334   void (*draw_focus)            (GtkStyle               *style,
335                                  GdkWindow              *window,
336                                  GdkRectangle           *area,
337                                  GtkWidget              *widget,
338                                  const gchar            *detail,
339                                  gint                    x,
340                                  gint                    y,
341                                  gint                    width,
342                                  gint                    height);
343   void (*draw_slider)           (GtkStyle               *style,
344                                  GdkWindow              *window,
345                                  GtkStateType            state_type,
346                                  GtkShadowType           shadow_type,
347                                  GdkRectangle           *area,
348                                  GtkWidget              *widget,
349                                  const gchar            *detail,
350                                  gint                    x,
351                                  gint                    y,
352                                  gint                    width,
353                                  gint                    height,
354                                  GtkOrientation          orientation);
355   void (*draw_handle)           (GtkStyle               *style,
356                                  GdkWindow              *window,
357                                  GtkStateType            state_type,
358                                  GtkShadowType           shadow_type,
359                                  GdkRectangle           *area,
360                                  GtkWidget              *widget,
361                                  const gchar            *detail,
362                                  gint                    x,
363                                  gint                    y,
364                                  gint                    width,
365                                  gint                    height,
366                                  GtkOrientation          orientation);
367
368   void (*draw_expander)         (GtkStyle               *style,
369                                  GdkWindow              *window,
370                                  GtkStateType            state_type,
371                                  GdkRectangle           *area,
372                                  GtkWidget              *widget,
373                                  const gchar            *detail,
374                                  gint                    x,
375                                  gint                    y,
376                                  gboolean                is_open);
377   void (*draw_layout)           (GtkStyle               *style,
378                                  GdkWindow              *window,
379                                  GtkStateType            state_type,
380                                  GdkRectangle           *area,
381                                  GtkWidget              *widget,
382                                  const gchar            *detail,
383                                  gint                    x,
384                                  gint                    y,
385                                  PangoLayout            *layout);
386   
387 };
388
389 GType     gtk_style_get_type                 (void) G_GNUC_CONST;
390 GtkStyle* gtk_style_new                      (void);
391 GtkStyle* gtk_style_copy                     (GtkStyle      *style);
392 GtkStyle* gtk_style_attach                   (GtkStyle      *style,
393                                               GdkWindow     *window);
394 void      gtk_style_detach                   (GtkStyle     *style);
395 GtkStyle* gtk_style_ref                      (GtkStyle     *style);
396 void      gtk_style_unref                    (GtkStyle     *style);
397 void      gtk_style_set_background           (GtkStyle     *style,
398                                               GdkWindow    *window,
399                                               GtkStateType  state_type);
400 void      gtk_style_apply_default_background (GtkStyle     *style,
401                                               GdkWindow    *window,
402                                               gboolean      set_bg,
403                                               GtkStateType  state_type, 
404                                               GdkRectangle *area, 
405                                               gint          x, 
406                                               gint          y, 
407                                               gint          width, 
408                                               gint          height);
409
410 GtkIconSet* gtk_style_lookup_icon_set (GtkStyle            *style,
411                                        const gchar         *stock_id);
412 GdkPixbuf * gtk_style_render_icon     (GtkStyle            *style,
413                                        const GtkIconSource *source,
414                                        GtkTextDirection     direction,
415                                        GtkStateType         state,
416                                        const gchar *        size,
417                                        GtkWidget           *widget,
418                                        const gchar         *detail);
419 void gtk_draw_hline      (GtkStyle        *style,
420                           GdkWindow       *window,
421                           GtkStateType     state_type,
422                           gint             x1,
423                           gint             x2,
424                           gint             y);
425 void gtk_draw_vline      (GtkStyle        *style,
426                           GdkWindow       *window,
427                           GtkStateType     state_type,
428                           gint             y1,
429                           gint             y2,
430                           gint             x);
431 void gtk_draw_shadow     (GtkStyle        *style,
432                           GdkWindow       *window,
433                           GtkStateType     state_type,
434                           GtkShadowType    shadow_type,
435                           gint             x,
436                           gint             y,
437                           gint             width,
438                           gint             height);
439 void gtk_draw_polygon    (GtkStyle        *style,
440                           GdkWindow       *window,
441                           GtkStateType     state_type,
442                           GtkShadowType    shadow_type,
443                           GdkPoint        *points,
444                           gint             npoints,
445                           gboolean         fill);
446 void gtk_draw_arrow      (GtkStyle        *style,
447                           GdkWindow       *window,
448                           GtkStateType     state_type,
449                           GtkShadowType    shadow_type,
450                           GtkArrowType     arrow_type,
451                           gboolean         fill,
452                           gint             x,
453                           gint             y,
454                           gint             width,
455                           gint             height);
456 void gtk_draw_diamond    (GtkStyle        *style,
457                           GdkWindow       *window,
458                           GtkStateType     state_type,
459                           GtkShadowType    shadow_type,
460                           gint             x,
461                           gint             y,
462                           gint             width,
463                           gint             height);
464 void gtk_draw_string     (GtkStyle        *style,
465                           GdkWindow       *window,
466                           GtkStateType     state_type,
467                           gint             x,
468                           gint             y,
469                           const gchar     *string);
470 void gtk_draw_box        (GtkStyle        *style,
471                           GdkWindow       *window,
472                           GtkStateType     state_type,
473                           GtkShadowType    shadow_type,
474                           gint             x,
475                           gint             y,
476                           gint             width,
477                           gint             height);
478 void gtk_draw_flat_box   (GtkStyle        *style,
479                           GdkWindow       *window,
480                           GtkStateType     state_type,
481                           GtkShadowType    shadow_type,
482                           gint             x,
483                           gint             y,
484                           gint             width,
485                           gint             height);
486 void gtk_draw_check      (GtkStyle        *style,
487                           GdkWindow       *window,
488                           GtkStateType     state_type,
489                           GtkShadowType    shadow_type,
490                           gint             x,
491                           gint             y,
492                           gint             width,
493                           gint             height);
494 void gtk_draw_option     (GtkStyle        *style,
495                           GdkWindow       *window,
496                           GtkStateType     state_type,
497                           GtkShadowType    shadow_type,
498                           gint             x,
499                           gint             y,
500                           gint             width,
501                           gint             height);
502 void gtk_draw_tab        (GtkStyle        *style,
503                           GdkWindow       *window,
504                           GtkStateType     state_type,
505                           GtkShadowType    shadow_type,
506                           gint             x,
507                           gint             y,
508                           gint             width,
509                           gint             height);
510 void gtk_draw_shadow_gap (GtkStyle        *style,
511                           GdkWindow       *window,
512                           GtkStateType     state_type,
513                           GtkShadowType    shadow_type,
514                           gint             x,
515                           gint             y,
516                           gint             width,
517                           gint             height,
518                           GtkPositionType  gap_side,
519                           gint             gap_x,
520                           gint             gap_width);
521 void gtk_draw_box_gap    (GtkStyle        *style,
522                           GdkWindow       *window,
523                           GtkStateType     state_type,
524                           GtkShadowType    shadow_type,
525                           gint             x,
526                           gint             y,
527                           gint             width,
528                           gint             height,
529                           GtkPositionType  gap_side,
530                           gint             gap_x,
531                           gint             gap_width);
532 void gtk_draw_extension  (GtkStyle        *style,
533                           GdkWindow       *window,
534                           GtkStateType     state_type,
535                           GtkShadowType    shadow_type,
536                           gint             x,
537                           gint             y,
538                           gint             width,
539                           gint             height,
540                           GtkPositionType  gap_side);
541 void gtk_draw_focus      (GtkStyle        *style,
542                           GdkWindow       *window,
543                           gint             x,
544                           gint             y,
545                           gint             width,
546                           gint             height);
547 void gtk_draw_slider     (GtkStyle        *style,
548                           GdkWindow       *window,
549                           GtkStateType     state_type,
550                           GtkShadowType    shadow_type,
551                           gint             x,
552                           gint             y,
553                           gint             width,
554                           gint             height,
555                           GtkOrientation   orientation);
556 void gtk_draw_handle     (GtkStyle        *style,
557                           GdkWindow       *window,
558                           GtkStateType     state_type,
559                           GtkShadowType    shadow_type,
560                           gint             x,
561                           gint             y,
562                           gint             width,
563                           gint             height,
564                           GtkOrientation   orientation);
565 void gtk_draw_expander   (GtkStyle        *style,
566                           GdkWindow       *window,
567                           GtkStateType     state_type,
568                           gint             x,
569                           gint             y,
570                           gboolean         is_open);
571 void gtk_draw_layout     (GtkStyle        *style,
572                           GdkWindow       *window,
573                           GtkStateType     state_type,
574                           gint             x,
575                           gint             y,
576                           PangoLayout     *layout);
577
578 void gtk_paint_hline      (GtkStyle        *style,
579                            GdkWindow       *window,
580                            GtkStateType     state_type,
581                            GdkRectangle    *area,
582                            GtkWidget       *widget,
583                            const gchar     *detail,
584                            gint             x1,
585                            gint             x2,
586                            gint             y);
587 void gtk_paint_vline      (GtkStyle        *style,
588                            GdkWindow       *window,
589                            GtkStateType     state_type,
590                            GdkRectangle    *area,
591                            GtkWidget       *widget,
592                            const gchar     *detail,
593                            gint             y1,
594                            gint             y2,
595                            gint             x);
596 void gtk_paint_shadow     (GtkStyle        *style,
597                            GdkWindow       *window,
598                            GtkStateType     state_type,
599                            GtkShadowType    shadow_type,
600                            GdkRectangle    *area,
601                            GtkWidget       *widget,
602                            const gchar     *detail,
603                            gint             x,
604                            gint             y,
605                            gint             width,
606                            gint             height);
607 void gtk_paint_polygon    (GtkStyle        *style,
608                            GdkWindow       *window,
609                            GtkStateType     state_type,
610                            GtkShadowType    shadow_type,
611                            GdkRectangle    *area,
612                            GtkWidget       *widget,
613                            const gchar     *detail,
614                            GdkPoint        *points,
615                            gint             npoints,
616                            gboolean         fill);
617 void gtk_paint_arrow      (GtkStyle        *style,
618                            GdkWindow       *window,
619                            GtkStateType     state_type,
620                            GtkShadowType    shadow_type,
621                            GdkRectangle    *area,
622                            GtkWidget       *widget,
623                            const gchar     *detail,
624                            GtkArrowType     arrow_type,
625                            gboolean         fill,
626                            gint             x,
627                            gint             y,
628                            gint             width,
629                            gint             height);
630 void gtk_paint_diamond    (GtkStyle        *style,
631                            GdkWindow       *window,
632                            GtkStateType     state_type,
633                            GtkShadowType    shadow_type,
634                            GdkRectangle    *area,
635                            GtkWidget       *widget,
636                            const gchar     *detail,
637                            gint             x,
638                            gint             y,
639                            gint             width,
640                            gint             height);
641 void gtk_paint_string     (GtkStyle        *style,
642                            GdkWindow       *window,
643                            GtkStateType     state_type,
644                            GdkRectangle    *area,
645                            GtkWidget       *widget,
646                            const gchar     *detail,
647                            gint             x,
648                            gint             y,
649                            const gchar     *string);
650 void gtk_paint_box        (GtkStyle        *style,
651                            GdkWindow       *window,
652                            GtkStateType     state_type,
653                            GtkShadowType    shadow_type,
654                            GdkRectangle    *area,
655                            GtkWidget       *widget,
656                            const gchar     *detail,
657                            gint             x,
658                            gint             y,
659                            gint             width,
660                            gint             height);
661 void gtk_paint_flat_box   (GtkStyle        *style,
662                            GdkWindow       *window,
663                            GtkStateType     state_type,
664                            GtkShadowType    shadow_type,
665                            GdkRectangle    *area,
666                            GtkWidget       *widget,
667                            const gchar     *detail,
668                            gint             x,
669                            gint             y,
670                            gint             width,
671                            gint             height);
672 void gtk_paint_check      (GtkStyle        *style,
673                            GdkWindow       *window,
674                            GtkStateType     state_type,
675                            GtkShadowType    shadow_type,
676                            GdkRectangle    *area,
677                            GtkWidget       *widget,
678                            const gchar     *detail,
679                            gint             x,
680                            gint             y,
681                            gint             width,
682                            gint             height);
683 void gtk_paint_option     (GtkStyle        *style,
684                            GdkWindow       *window,
685                            GtkStateType     state_type,
686                            GtkShadowType    shadow_type,
687                            GdkRectangle    *area,
688                            GtkWidget       *widget,
689                            const gchar     *detail,
690                            gint             x,
691                            gint             y,
692                            gint             width,
693                            gint             height);
694 void gtk_paint_tab        (GtkStyle        *style,
695                            GdkWindow       *window,
696                            GtkStateType     state_type,
697                            GtkShadowType    shadow_type,
698                            GdkRectangle    *area,
699                            GtkWidget       *widget,
700                            const gchar     *detail,
701                            gint             x,
702                            gint             y,
703                            gint             width,
704                            gint             height);
705 void gtk_paint_shadow_gap (GtkStyle        *style,
706                            GdkWindow       *window,
707                            GtkStateType     state_type,
708                            GtkShadowType    shadow_type,
709                            GdkRectangle    *area,
710                            GtkWidget       *widget,
711                            gchar           *detail,
712                            gint             x,
713                            gint             y,
714                            gint             width,
715                            gint             height,
716                            GtkPositionType  gap_side,
717                            gint             gap_x,
718                            gint             gap_width);
719 void gtk_paint_box_gap    (GtkStyle        *style,
720                            GdkWindow       *window,
721                            GtkStateType     state_type,
722                            GtkShadowType    shadow_type,
723                            GdkRectangle    *area,
724                            GtkWidget       *widget,
725                            gchar           *detail,
726                            gint             x,
727                            gint             y,
728                            gint             width,
729                            gint             height,
730                            GtkPositionType  gap_side,
731                            gint             gap_x,
732                            gint             gap_width);
733 void gtk_paint_extension  (GtkStyle        *style,
734                            GdkWindow       *window,
735                            GtkStateType     state_type,
736                            GtkShadowType    shadow_type,
737                            GdkRectangle    *area,
738                            GtkWidget       *widget,
739                            gchar           *detail,
740                            gint             x,
741                            gint             y,
742                            gint             width,
743                            gint             height,
744                            GtkPositionType  gap_side);
745 void gtk_paint_focus      (GtkStyle        *style,
746                            GdkWindow       *window,
747                            GdkRectangle    *area,
748                            GtkWidget       *widget,
749                            const gchar     *detail,
750                            gint             x,
751                            gint             y,
752                            gint             width,
753                            gint             height);
754 void gtk_paint_slider     (GtkStyle        *style,
755                            GdkWindow       *window,
756                            GtkStateType     state_type,
757                            GtkShadowType    shadow_type,
758                            GdkRectangle    *area,
759                            GtkWidget       *widget,
760                            const gchar     *detail,
761                            gint             x,
762                            gint             y,
763                            gint             width,
764                            gint             height,
765                            GtkOrientation   orientation);
766 void gtk_paint_handle     (GtkStyle        *style,
767                            GdkWindow       *window,
768                            GtkStateType     state_type,
769                            GtkShadowType    shadow_type,
770                            GdkRectangle    *area,
771                            GtkWidget       *widget,
772                            const gchar     *detail,
773                            gint             x,
774                            gint             y,
775                            gint             width,
776                            gint             height,
777                            GtkOrientation   orientation);
778 void gtk_paint_expander   (GtkStyle        *style,
779                            GdkWindow       *window,
780                            GtkStateType     state_type,
781                            GdkRectangle    *area,
782                            GtkWidget       *widget,
783                            const gchar     *detail,
784                            gint             x,
785                            gint             y,
786                            gboolean         is_open);
787 void gtk_paint_layout     (GtkStyle        *style,
788                            GdkWindow       *window,
789                            GtkStateType     state_type,
790                            GdkRectangle    *area,
791                            GtkWidget       *widget,
792                            const gchar     *detail,
793                            gint             x,
794                            gint             y,
795                            PangoLayout     *layout);
796
797
798 #ifdef __cplusplus
799 }
800 #endif /* __cplusplus */
801
802
803 #endif /* __GTK_STYLE_H__ */