fix crash when copy'ing latent plugins
[ardour.git] / libs / clearlooks-older / clearlooks_draw.h
1 #ifndef CLEARLOOKS_DRAW_H
2 #define CLEARLOOKS_DRAW_H
3
4 #include <gtk/gtk.h>
5 #include <gdk/gdk.h>
6
7 typedef struct
8 {
9         GdkColor *from;
10         GdkColor *to;
11 } CLGradient;
12
13 typedef enum
14 {
15         CL_GRADIENT_NONE,
16         CL_GRADIENT_HORIZONTAL,
17         CL_GRADIENT_VERTICAL
18 } CLGradientType;
19
20 typedef struct
21 {
22         CLGradient      fill_gradient;
23         CLGradient      border_gradient;
24
25         CLGradientType  gradient_type;
26
27         GdkGC          *bordergc;
28         GdkGC          *fillgc;
29
30         guint8          corners[4];
31
32         GdkGC          *topleft;                /* top + left shadow */
33         GdkGC          *bottomright;    /* bottom + right shadow */
34
35         GdkColor        tmp_color;              /* used for gradient */
36 } CLRectangle;
37
38 typedef enum /* DON'T CHANGE THE ORDER! */
39 {
40         CL_CORNER_TOPRIGHT,
41         CL_CORNER_BOTTOMRIGHT,
42         CL_CORNER_BOTTOMLEFT,
43         CL_CORNER_TOPLEFT
44 } CLCornerSide;
45
46 typedef enum /* DON'T CHANGE THE ORDER! */
47 {
48         CL_BORDER_TOP,
49         CL_BORDER_RIGHT,
50         CL_BORDER_BOTTOM,
51         CL_BORDER_LEFT
52 } CLBorderType;
53
54 typedef enum
55 {
56         CL_CORNER_NONE   = 0,
57         CL_CORNER_NARROW = 1,
58         CL_CORNER_ROUND  = 2
59 } CLCornerSharpness;
60
61
62
63 CLRectangle *cl_rectangle_new(GdkGC *fillgc, GdkGC *bordergc,
64                               int tl, int tr, int bl, int br);
65
66 void cl_draw_rectangle (GdkWindow *window, GtkWidget *widget, GtkStyle *style,
67                         int x, int y, int width, int height, CLRectangle *r);
68
69 void cl_rectangle_set_color (CLGradient *g, GdkColor *color);
70 void cl_rectangle_set_gradient (CLGradient *g, GdkColor *from, GdkColor *to);
71
72 void cl_rectangle_set_button (CLRectangle *r, GtkStyle *style,
73                              GtkStateType state_type, gboolean hasdefault, gboolean has_focus,
74                              CLBorderType tl, CLBorderType tr,
75                              CLBorderType bl, CLBorderType br);
76
77 void cl_rectangle_set_entry (CLRectangle *r, GtkStyle *style,
78                             GtkStateType state_type,
79                             CLBorderType tl, CLBorderType tr,
80                             CLBorderType bl, CLBorderType br,
81                             gboolean has_focus);
82
83 void cl_draw_shadow(GdkWindow *window, GtkWidget *widget, GtkStyle *style,
84                     int x, int y, int width, int height, CLRectangle *r);
85
86 void cl_rectangle_set_clip_rectangle (CLRectangle *r, GdkRectangle *area);
87 void cl_rectangle_reset_clip_rectangle (CLRectangle *r);
88
89 void cl_set_corner_sharpness (const gchar *detail, GtkWidget *widget, CLRectangle *r);
90
91
92 void cl_rectangle_set_corners (CLRectangle *r, int tl, int tr, int bl, int br);
93
94 void cl_rectangle_init (CLRectangle *r, GdkGC *fillgc, GdkGC *bordergc,
95                         int tl, int tr, int bl, int br);
96
97 void cl_rectangle_reset (CLRectangle *r, GtkStyle *style);
98
99
100 GdkPixmap* cl_progressbar_tile_new (GdkDrawable *drawable, GtkWidget *widget,
101                               GtkStyle *style, gint height, gint offset);
102
103 void cl_progressbar_fill (GdkDrawable *drawable, GtkWidget *widget,
104                           GtkStyle *style, GdkGC *gc,
105                           gint x, gint y, gint width, gint height,
106                                                   guint8 offset, GdkRectangle *area);
107
108 GdkColor cl_gc_set_fg_color_shade (GdkGC *gc, GdkColormap *colormap,
109                                    GdkColor *from, gfloat s);
110
111 void cl_draw_spinbutton(GtkStyle *style, GdkWindow *window,
112                         GtkStateType state_type, GtkShadowType shadow_type,
113                         GdkRectangle *area,
114                         GtkWidget *widget, const gchar *detail,
115                         gint x, gint y, gint width, gint height);
116
117 void cl_draw_button(GtkStyle *style, GdkWindow *window,
118                     GtkStateType state_type, GtkShadowType shadow_type,
119                     GdkRectangle *area,
120                     GtkWidget *widget, const gchar *detail,
121                     gint x, gint y, gint width, gint height);
122
123 void cl_draw_entry (GtkStyle *style, GdkWindow *window,
124                     GtkStateType state_type, GtkShadowType shadow_type,
125                     GdkRectangle *area,
126                     GtkWidget *widget, const gchar *detail,
127                     gint x, gint y, gint width, gint height);
128
129 void cl_draw_combobox_entry (GtkStyle *style, GdkWindow *window,
130                              GtkStateType state_type, GtkShadowType shadow_type,
131                              GdkRectangle *area,
132                              GtkWidget *widget, const gchar *detail,
133                              gint x, gint y, gint width, gint height);
134
135 void cl_draw_combobox_button (GtkStyle *style, GdkWindow *window,
136                              GtkStateType state_type, GtkShadowType shadow_type,
137                              GdkRectangle *area,
138                              GtkWidget *widget, const gchar *detail,
139                              gint x, gint y, gint width, gint height);
140
141 void cl_draw_menuitem_button (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
142                               GdkRectangle *area, GtkStateType state_type,
143                               int x, int y, int wiidth, int height, CLRectangle *r);
144
145 void cl_draw_menuitem_flat (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
146                             GdkRectangle *area, GtkStateType state_type,
147                             int x, int y, int wiidth, int height, CLRectangle *r);
148
149 void cl_draw_menuitem_gradient (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
150                                 GdkRectangle *area, GtkStateType state_type,
151                                 int x, int y, int wiidth, int height, CLRectangle *r);
152
153 void cl_draw_treeview_header (GtkStyle *style, GdkWindow *window,
154                               GtkStateType state_type, GtkShadowType shadow_type,
155                               GdkRectangle *area,
156                               GtkWidget *widget, const gchar *detail,
157                               gint x, gint y, gint width, gint height);
158
159 #endif /* CLEARLOOKS_DRAW_H */