summaryrefslogtreecommitdiff
path: root/libs/clearlooks-older/clearlooks_draw.h
blob: eb707db6c0e80ab3d052720d63d0d273b8f718e7 (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
#ifndef CLEARLOOKS_DRAW_H
#define CLEARLOOKS_DRAW_H

#include <gtk/gtk.h>
#include <gdk/gdk.h>

typedef struct
{
	GdkColor *from;
	GdkColor *to;
} CLGradient;

typedef enum
{
	CL_GRADIENT_NONE,
	CL_GRADIENT_HORIZONTAL,
	CL_GRADIENT_VERTICAL
} CLGradientType;

typedef struct
{
	CLGradient      fill_gradient;
	CLGradient      border_gradient;

	CLGradientType  gradient_type;

	GdkGC          *bordergc;
	GdkGC          *fillgc;

	guint8          corners[4];

	GdkGC          *topleft;		/* top + left shadow */
	GdkGC          *bottomright;	/* bottom + right shadow */

	GdkColor        tmp_color;		/* used for gradient */
} CLRectangle;

typedef enum /* DON'T CHANGE THE ORDER! */
{
	CL_CORNER_TOPRIGHT,
	CL_CORNER_BOTTOMRIGHT,
	CL_CORNER_BOTTOMLEFT,
	CL_CORNER_TOPLEFT
} CLCornerSide;

typedef enum /* DON'T CHANGE THE ORDER! */
{
	CL_BORDER_TOP,
	CL_BORDER_RIGHT,
	CL_BORDER_BOTTOM,
	CL_BORDER_LEFT
} CLBorderType;

typedef enum
{
	CL_CORNER_NONE   = 0,
	CL_CORNER_NARROW = 1,
	CL_CORNER_ROUND  = 2
} CLCornerSharpness;



CLRectangle *cl_rectangle_new(GdkGC *fillgc, GdkGC *bordergc,
                              int tl, int tr, int bl, int br);

void cl_draw_rectangle (GdkWindow *window, GtkWidget *widget, GtkStyle *style,
                        int x, int y, int width, int height, CLRectangle *r);

void cl_rectangle_set_color (CLGradient *g, GdkColor *color);
void cl_rectangle_set_gradient (CLGradient *g, GdkColor *from, GdkColor *to);

void cl_rectangle_set_button (CLRectangle *r, GtkStyle *style,
                             GtkStateType state_type, gboolean hasdefault, gboolean has_focus,
                             CLBorderType tl, CLBorderType tr,
                             CLBorderType bl, CLBorderType br);

void cl_rectangle_set_entry (CLRectangle *r, GtkStyle *style,
                            GtkStateType state_type,
                            CLBorderType tl, CLBorderType tr,
                            CLBorderType bl, CLBorderType br,
                            gboolean has_focus);

void cl_draw_shadow(GdkWindow *window, GtkWidget *widget, GtkStyle *style,
                    int x, int y, int width, int height, CLRectangle *r);

void cl_rectangle_set_clip_rectangle (CLRectangle *r, GdkRectangle *area);
void cl_rectangle_reset_clip_rectangle (CLRectangle *r);

void cl_set_corner_sharpness (const gchar *detail, GtkWidget *widget, CLRectangle *r);


void cl_rectangle_set_corners (CLRectangle *r, int tl, int tr, int bl, int br);

void cl_rectangle_init (CLRectangle *r, GdkGC *fillgc, GdkGC *bordergc,
                        int tl, int tr, int bl, int br);

void cl_rectangle_reset (CLRectangle *r, GtkStyle *style);


GdkPixmap* cl_progressbar_tile_new (GdkDrawable *drawable, GtkWidget *widget,
                              GtkStyle *style, gint height, gint offset);

void cl_progressbar_fill (GdkDrawable *drawable, GtkWidget *widget,
                          GtkStyle *style, GdkGC *gc,
                          gint x, gint y, gint width, gint height,
						  guint8 offset, GdkRectangle *area);

GdkColor cl_gc_set_fg_color_shade (GdkGC *gc, GdkColormap *colormap,
                                   GdkColor *from, gfloat s);

void cl_draw_spinbutton(GtkStyle *style, GdkWindow *window,
                        GtkStateType state_type, GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget, const gchar *detail,
                        gint x, gint y, gint width, gint height);

void cl_draw_button(GtkStyle *style, GdkWindow *window,
                    GtkStateType state_type, GtkShadowType shadow_type,
                    GdkRectangle *area,
                    GtkWidget *widget, const gchar *detail,
                    gint x, gint y, gint width, gint height);

void cl_draw_entry (GtkStyle *style, GdkWindow *window,
                    GtkStateType state_type, GtkShadowType shadow_type,
                    GdkRectangle *area,
                    GtkWidget *widget, const gchar *detail,
                    gint x, gint y, gint width, gint height);

void cl_draw_combobox_entry (GtkStyle *style, GdkWindow *window,
                             GtkStateType state_type, GtkShadowType shadow_type,
                             GdkRectangle *area,
                             GtkWidget *widget, const gchar *detail,
                             gint x, gint y, gint width, gint height);

void cl_draw_combobox_button (GtkStyle *style, GdkWindow *window,
                             GtkStateType state_type, GtkShadowType shadow_type,
                             GdkRectangle *area,
                             GtkWidget *widget, const gchar *detail,
                             gint x, gint y, gint width, gint height);

void cl_draw_menuitem_button (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
                              GdkRectangle *area, GtkStateType state_type,
                              int x, int y, int wiidth, int height, CLRectangle *r);

void cl_draw_menuitem_flat (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
                            GdkRectangle *area, GtkStateType state_type,
                            int x, int y, int wiidth, int height, CLRectangle *r);

void cl_draw_menuitem_gradient (GdkDrawable *window, GtkWidget *widget, GtkStyle *style,
                                GdkRectangle *area, GtkStateType state_type,
                                int x, int y, int wiidth, int height, CLRectangle *r);

void cl_draw_treeview_header (GtkStyle *style, GdkWindow *window,
                              GtkStateType state_type, GtkShadowType shadow_type,
                              GdkRectangle *area,
                              GtkWidget *widget, const gchar *detail,
                              gint x, gint y, gint width, gint height);

#endif /* CLEARLOOKS_DRAW_H */