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
|
// included by gtk2.pas
{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}
//------------------------------------------------------------------------------
{$IFDEF read_interface_types}
PGtkRcFlags = ^TGtkRcFlags;
TGtkRcFlags = longint;
{< public > }
{< private > }
{ list of RC style lists including this RC style }
{ The RC file specified the engine }
PGtkRcStyle = ^TGtkRcStyle;
TGtkRcStyle = record
parent_instance : TGObject;
name : Pgchar;
bg_pixmap_name : array[0..4] of Pgchar;
font_desc : PPangoFontDescription;
color_flags : array[0..4] of TGtkRcFlags;
fg : array[0..4] of TGdkColor;
bg : array[0..4] of TGdkColor;
text : array[0..4] of TGdkColor;
base : array[0..4] of TGdkColor;
xthickness : gint;
ythickness : gint;
rc_properties : PGArray;
rc_style_lists : PGSList;
icon_factories : PGSList;
flag0 : word;
end;
{ Create an empty RC style of the same type as this RC style.
The default implementation, which does
g_object_new (G_OBJECT_TYPE (style), NULL);
should work in most cases.
}
{ Fill in engine specific parts of GtkRcStyle by parsing contents
of brackets. Returns G_TOKEN_NONE if succesful, otherwise returns
the token it expected but didn't get.
}
{ Combine RC style data from src into dest. If overridden, this
function should chain to the parent.
}
{ Create an empty style suitable to this RC style
}
{ Padding for future expansion }
PGtkRcStyleClass = ^TGtkRcStyleClass;
TGtkRcStyleClass = record
parent_class : TGObjectClass;
create_rc_style : function (rc_style:PGtkRcStyle):PGtkRcStyle; cdecl;
parse : function (rc_style:PGtkRcStyle; settings:PGtkSettings; scanner:PGScanner):guint; cdecl;
merge : procedure (dest:PGtkRcStyle; src:PGtkRcStyle); cdecl;
create_style : function (rc_style:PGtkRcStyle):PGtkStyle; cdecl;
_gtk_reserved1 : procedure ; cdecl;
_gtk_reserved2 : procedure ; cdecl;
_gtk_reserved3 : procedure ; cdecl;
_gtk_reserved4 : procedure ; cdecl;
end;
{ private functions/definitions }
PGtkRcTokenType = ^TGtkRcTokenType;
TGtkRcTokenType = (
GTK_RC_TOKEN_INVALID {:= G_TOKEN_LAST},
GTK_RC_TOKEN_INCLUDE,
GTK_RC_TOKEN_NORMAL,
GTK_RC_TOKEN_ACTIVE,
GTK_RC_TOKEN_PRELIGHT,
GTK_RC_TOKEN_SELECTED,
GTK_RC_TOKEN_INSENSITIVE,
GTK_RC_TOKEN_FG,
GTK_RC_TOKEN_BG,
GTK_RC_TOKEN_TEXT,
GTK_RC_TOKEN_BASE,
GTK_RC_TOKEN_XTHICKNESS,
GTK_RC_TOKEN_YTHICKNESS,
GTK_RC_TOKEN_FONT,
GTK_RC_TOKEN_FONTSET,
GTK_RC_TOKEN_FONT_NAME,
GTK_RC_TOKEN_BG_PIXMAP,
GTK_RC_TOKEN_PIXMAP_PATH,
GTK_RC_TOKEN_STYLE,
GTK_RC_TOKEN_BINDING,
GTK_RC_TOKEN_BIND,
GTK_RC_TOKEN_WIDGET,
GTK_RC_TOKEN_WIDGET_CLASS,
GTK_RC_TOKEN_CLASS,
GTK_RC_TOKEN_LOWEST,
GTK_RC_TOKEN_GTK,
GTK_RC_TOKEN_APPLICATION,
GTK_RC_TOKEN_THEME,
GTK_RC_TOKEN_RC,
GTK_RC_TOKEN_HIGHEST,
GTK_RC_TOKEN_ENGINE,
GTK_RC_TOKEN_MODULE_PATH,
GTK_RC_TOKEN_IM_MODULE_PATH,
GTK_RC_TOKEN_IM_MODULE_FILE,
GTK_RC_TOKEN_STOCK,
GTK_RC_TOKEN_LTR,
GTK_RC_TOKEN_RTL,
GTK_RC_TOKEN_LAST
);
{ rc properties
(structure forward declared in gtkstyle.h)
}
{ quark-ified property identifier like "GtkScrollbar::spacing" }
{ fields similar to GtkSettingsValue }
PGtkRcProperty = ^TGtkRcProperty;
TGtkRcProperty = record
type_name : TGQuark;
property_name : TGQuark;
origin : Pgchar;
value : TGValue;
end;
{$ENDIF read_interface_types}
//------------------------------------------------------------------------------
{$IFDEF read_interface_rest}
const
GTK_RC_FG = 1 shl 0;
GTK_RC_BG = 1 shl 1;
GTK_RC_TEXT = 1 shl 2;
GTK_RC_BASE = 1 shl 3;
const
bm_TGtkRcStyle_engine_specified = $1;
bp_TGtkRcStyle_engine_specified = 0;
function GTK_TYPE_RC_STYLE : GType;
function GTK_RC_STYLE_get(anObject: pointer) : PGtkRcStyle;
function GTK_RC_STYLE_CLASS(klass: pointer) : PGtkRcStyleClass;
function GTK_IS_RC_STYLE(anObject: pointer) : boolean;
function GTK_IS_RC_STYLE_CLASS(klass: pointer) : boolean;
function GTK_RC_STYLE_GET_CLASS(obj: pointer) : PGtkRcStyleClass;
function engine_specified(var a : TGtkRcStyle) : guint;
procedure set_engine_specified(var a : TGtkRcStyle; __engine_specified : guint);
procedure _gtk_rc_init; cdecl; external gtklib;
procedure gtk_rc_add_default_file(filename:Pgchar); cdecl; external gtklib;
procedure gtk_rc_set_default_files(filenames:PPgchar); cdecl; external gtklib;
function gtk_rc_get_default_files:PPgchar; cdecl; external gtklib;
function gtk_rc_get_style(widget:PGtkWidget):PGtkStyle; cdecl; external gtklib;
function gtk_rc_get_style_by_paths(settings:PGtkSettings; widget_path:Pchar; class_path:Pchar; _type:GType):PGtkStyle; cdecl; external gtklib;
function gtk_rc_reparse_all_for_settings(settings:PGtkSettings; force_load:gboolean):gboolean; cdecl; external gtklib;
function gtk_rc_find_pixmap_in_path(settings:PGtkSettings; scanner:PGScanner; pixmap_file:Pgchar):Pgchar; cdecl; external gtklib;
procedure gtk_rc_parse(filename:Pgchar); cdecl; external gtklib;
procedure gtk_rc_parse_string(rc_string:Pgchar); cdecl; external gtklib;
function gtk_rc_reparse_all:gboolean; cdecl; external gtklib;
{$ifndef GTK_DISABLE_DEPRECATED}
procedure gtk_rc_add_widget_name_style(rc_style:PGtkRcStyle; pattern:Pgchar); cdecl; external gtklib;
procedure gtk_rc_add_widget_class_style(rc_style:PGtkRcStyle; pattern:Pgchar); cdecl; external gtklib;
procedure gtk_rc_add_class_style(rc_style:PGtkRcStyle; pattern:Pgchar); cdecl; external gtklib;
{$endif}
{ GTK_DISABLE_DEPRECATED }
function gtk_rc_style_get_type:GType; cdecl; external gtklib;
function gtk_rc_style_new:PGtkRcStyle; cdecl; external gtklib;
function gtk_rc_style_copy(orig:PGtkRcStyle):PGtkRcStyle; cdecl; external gtklib;
procedure gtk_rc_style_ref(rc_style:PGtkRcStyle); cdecl; external gtklib;
procedure gtk_rc_style_unref(rc_style:PGtkRcStyle); cdecl; external gtklib;
function gtk_rc_find_module_in_path(module_file:Pgchar):Pgchar; cdecl; external gtklib;
function gtk_rc_get_theme_dir:Pgchar; cdecl; external gtklib;
function gtk_rc_get_module_dir:Pgchar; cdecl; external gtklib;
function gtk_rc_get_im_module_path:Pgchar; cdecl; external gtklib;
function gtk_rc_get_im_module_file:Pgchar; cdecl; external gtklib;
function gtk_rc_scanner_new:PGScanner; cdecl; external gtklib;
function gtk_rc_parse_color(scanner:PGScanner; color:PGdkColor):guint; cdecl; external gtklib;
function gtk_rc_parse_state(scanner:PGScanner; state:PGtkStateType):guint; cdecl; external gtklib;
function gtk_rc_parse_priority(scanner:PGScanner; priority:PGtkPathPriorityType):guint; cdecl; external gtklib;
function _gtk_rc_style_lookup_rc_property(rc_style:PGtkRcStyle; type_name:TGQuark; property_name:TGQuark):PGtkRcProperty; cdecl; external gtklib;
function _gtk_rc_context_get_default_font_name(settings:PGtkSettings):Pgchar; cdecl; external gtklib;
{$ifdef HasGTK2_4}
procedure gtk_rc_reset_styles(settings: PGtkSettings); cdecl; external gtklib;
{$endif}
{$ENDIF read_interface_rest}
//------------------------------------------------------------------------------
{$IFDEF read_implementation}
function GTK_TYPE_RC_STYLE : GType;
begin
GTK_TYPE_RC_STYLE:=gtk_rc_style_get_type;
end;
function GTK_RC_STYLE_get(anObject: pointer) : PGtkRcStyle;
begin
GTK_RC_STYLE_get:=PGtkRcStyle(G_TYPE_CHECK_INSTANCE_CAST(anObject,GTK_TYPE_RC_STYLE));
end;
function GTK_RC_STYLE_CLASS(klass: pointer) : PGtkRcStyleClass;
begin
GTK_RC_STYLE_CLASS:=PGtkRcStyleClass(G_TYPE_CHECK_CLASS_CAST(klass,GTK_TYPE_RC_STYLE));
end;
function GTK_IS_RC_STYLE(anObject: pointer) : boolean;
begin
GTK_IS_RC_STYLE:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,GTK_TYPE_RC_STYLE);
end;
function GTK_IS_RC_STYLE_CLASS(klass: pointer) : boolean;
begin
GTK_IS_RC_STYLE_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GTK_TYPE_RC_STYLE);
end;
function GTK_RC_STYLE_GET_CLASS(obj: pointer) : PGtkRcStyleClass;
begin
GTK_RC_STYLE_GET_CLASS:=PGtkRcStyleClass(G_TYPE_INSTANCE_GET_CLASS(obj,GTK_TYPE_RC_STYLE));
end;
function engine_specified(var a : TGtkRcStyle) : guint;
begin
engine_specified:=(a.flag0 and bm_TGtkRcStyle_engine_specified) shr bp_TGtkRcStyle_engine_specified;
end;
procedure set_engine_specified(var a : TGtkRcStyle; __engine_specified : guint);
begin
a.flag0:=a.flag0 or ((__engine_specified shl bp_TGtkRcStyle_engine_specified) and bm_TGtkRcStyle_engine_specified);
end;
{$ENDIF read_implementation}
// included by gtk2.pas
|