2 #ifndef __SFI_PARAMS_H__
3 #define __SFI_PARAMS_H__
12 #define SFI_TYPE_PARAM_BOOL (G_TYPE_PARAM_BOOLEAN)
13 #define SFI_IS_PSPEC_BOOL(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_BOOL))
14 #define SFI_PSPEC_BOOL(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_BOOL, SfiParamSpecBool))
15 #define SFI_TYPE_PARAM_INT (G_TYPE_PARAM_INT)
16 #define SFI_IS_PSPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_INT))
17 #define SFI_PSPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_INT, SfiParamSpecInt))
18 #define SFI_TYPE_PARAM_NUM (G_TYPE_PARAM_INT64)
19 #define SFI_IS_PSPEC_NUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_NUM))
20 #define SFI_PSPEC_NUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_NUM, SfiParamSpecNum))
21 #define SFI_TYPE_PARAM_REAL (G_TYPE_PARAM_DOUBLE)
22 #define SFI_IS_PSPEC_REAL(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_REAL))
23 #define SFI_PSPEC_REAL(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_REAL, SfiParamSpecReal))
24 #define SFI_TYPE_PARAM_STRING (G_TYPE_PARAM_STRING)
25 #define SFI_IS_PSPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_STRING))
26 #define SFI_PSPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_STRING, SfiParamSpecString))
27 #define SFI_TYPE_PARAM_CHOICE (sfi__param_spec_types[0])
28 #define SFI_IS_PSPEC_CHOICE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_CHOICE))
29 #define SFI_PSPEC_CHOICE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_CHOICE, SfiParamSpecChoice))
30 #define SFI_TYPE_PARAM_BBLOCK (sfi__param_spec_types[1])
31 #define SFI_IS_PSPEC_BBLOCK(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_BBLOCK))
32 #define SFI_PSPEC_BBLOCK(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_BBLOCK, SfiParamSpecBBlock))
33 #define SFI_TYPE_PARAM_FBLOCK (sfi__param_spec_types[2])
34 #define SFI_IS_PSPEC_FBLOCK(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_FBLOCK))
35 #define SFI_PSPEC_FBLOCK(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_FBLOCK, SfiParamSpecFBlock))
36 #define SFI_TYPE_PARAM_PSPEC (G_TYPE_PARAM_PARAM)
37 #define SFI_IS_PSPEC_PSPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_PSPEC))
38 #define SFI_PSPEC_PSPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_PSPEC, SfiParamSpecPSpec))
39 #define SFI_TYPE_PARAM_SEQ (sfi__param_spec_types[3])
40 #define SFI_IS_PSPEC_SEQ(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_SEQ))
41 #define SFI_PSPEC_SEQ(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_SEQ, SfiParamSpecSeq))
42 #define SFI_TYPE_PARAM_REC (sfi__param_spec_types[4])
43 #define SFI_IS_PSPEC_REC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_REC))
44 #define SFI_PSPEC_REC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_REC, SfiParamSpecRec))
45 #define SFI_TYPE_PARAM_PROXY (sfi__param_spec_types[5])
46 #define SFI_IS_PSPEC_PROXY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_PROXY))
47 #define SFI_PSPEC_PROXY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_PROXY, SfiParamSpecProxy))
48 #define SFI_TYPE_PARAM_NOTE (sfi__param_spec_types[6])
49 #define SFI_IS_PSPEC_NOTE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), SFI_TYPE_PARAM_NOTE))
50 #define SFI_PSPEC_NOTE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), SFI_TYPE_PARAM_NOTE, SfiParamSpecNote))
54 typedef GParamSpecBoolean SfiParamSpecBool;
55 typedef GParamSpecInt SfiParamSpecInt;
56 typedef GParamSpecInt64 SfiParamSpecNum;
57 typedef GParamSpecDouble SfiParamSpecReal;
58 typedef GParamSpecString SfiParamSpecString;
59 typedef GParamSpecParam SfiParamSpecPSpec;
64 const gchar *choice_ident;
65 const gchar *choice_label;
66 const gchar *choice_blurb;
73 GParamSpecString pspec;
77 GParamSpecBoxed pspec;
80 GParamSpecBoxed pspec;
83 GParamSpecBoxed pspec;
87 GParamSpecBoxed pspec;
91 GParamSpecPointer pspec;
100 GParamSpec* sfi_pspec_bool (
const gchar *name,
103 SfiBool default_value,
105 GParamSpec* sfi_pspec_int (
const gchar *name,
108 SfiInt default_value,
109 SfiInt minimum_value,
110 SfiInt maximum_value,
113 GParamSpec* sfi_pspec_num (
const gchar *name,
116 SfiNum default_value,
117 SfiNum minimum_value,
118 SfiNum maximum_value,
121 GParamSpec* sfi_pspec_real (
const gchar *name,
124 SfiReal default_value,
125 SfiReal minimum_value,
126 SfiReal maximum_value,
129 GParamSpec* sfi_pspec_log_scale (
const gchar *name,
132 SfiReal default_value,
133 SfiReal minimum_value,
134 SfiReal maximum_value,
140 GParamSpec* sfi_pspec_string (
const gchar *name,
143 const gchar *default_value,
145 GParamSpec* sfi_pspec_choice (
const gchar *name,
148 const gchar *default_value,
151 GParamSpec* sfi_pspec_bblock (
const gchar *name,
155 GParamSpec* sfi_pspec_fblock (
const gchar *name,
159 GParamSpec* sfi_pspec_pspec (
const gchar *name,
163 GParamSpec* sfi_pspec_seq (
const gchar *name,
166 GParamSpec *element_spec,
168 GParamSpec* sfi_pspec_rec (
const gchar *name,
173 GParamSpec* sfi_pspec_rec_generic (
const gchar *name,
177 GParamSpec* sfi_pspec_proxy (
const gchar *name,
184 #define sfi_pspec_ref g_param_spec_ref
185 #define sfi_pspec_unref g_param_spec_unref
186 #define sfi_pspec_sink g_param_spec_sink
187 #define sfi_pspec_get_qdata g_param_spec_get_qdata
188 #define sfi_pspec_set_qdata g_param_spec_set_qdata
189 #define sfi_pspec_set_qdata_full g_param_spec_set_qdata_full
190 #define sfi_pspec_steal_qdata g_param_spec_steal_qdata
191 #define sfi_pspec_get_name g_param_spec_get_name
192 #define sfi_pspec_get_nick g_param_spec_get_nick
193 #define sfi_pspec_get_blurb g_param_spec_get_blurb
198 GParamSpec* sfi_pspec_to_serializable (GParamSpec *pspec);
199 GParamSpec* sfi_pspec_choice_from_enum (GParamSpec *enum_pspec);
200 GParamSpec* sfi_pspec_proxy_from_object (GParamSpec *object_pspec);
201 void sfi_enum_type_set_choice_value_getter (GType gtype,
202 SfiChoiceValueGetter cvgetter);
203 void sfi_boxed_type_set_rec_fields (GType boxed_type,
205 SfiRecFields sfi_boxed_type_get_rec_fields (GType boxed_type);
206 void sfi_boxed_type_set_seq_element (GType boxed_type,
207 GParamSpec *element);
208 GParamSpec* sfi_boxed_type_get_seq_element (GType boxed_type);
213 #define SFI_PARAM_READWRITE ":r:w:"
214 #define SFI_PARAM_STORAGE ":r:w:S:"
215 #define SFI_PARAM_STANDARD ":r:w:S:G:"
216 #define SFI_PARAM_STANDARD_RDONLY ":r:w:S:G:ro:"
217 #define SFI_PARAM_GUI ":r:w:G:"
218 #define SFI_PARAM_GUI_RDONLY ":r:w:G:ro:"
219 #define SFI_PARAM_GUI_READABLE ":r:G:"
230 SFI_SCAT_STRING =
's',
231 SFI_SCAT_CHOICE =
'C',
232 SFI_SCAT_BBLOCK =
'B',
233 SFI_SCAT_FBLOCK =
'F',
234 SFI_SCAT_PSPEC =
'P',
237 SFI_SCAT_PROXY =
'p',
238 SFI_SCAT_TYPE_MASK = 0x00ff,
239 SFI_SCAT_NOTE = 0x0100 | SFI_SCAT_INT,
240 SFI_SCAT_TIME = 0x0200 | SFI_SCAT_NUM,
243 SfiSCategory sfi_categorize_type (GType value_type);
244 SfiSCategory sfi_categorize_pspec (GParamSpec *pspec);
245 GType sfi_category_type (SfiSCategory pspec_cat);
246 GType sfi_category_param_type (SfiSCategory pspec_cat);
250 GParamSpec* sfi_pspec_note (
const gchar *name,
253 SfiInt default_value,
258 #define SFI_IS_PSPEC_TIME SFI_IS_PSPEC_TIME
259 GParamSpec* sfi_pspec_time (
const gchar *name,
266 GParamSpec* sfi_pspec_set_group (GParamSpec *pspec,
268 const gchar* sfi_pspec_get_group (GParamSpec *pspec);
269 void sfi_pspec_set_owner (GParamSpec *pspec,
271 const gchar* sfi_pspec_get_owner (GParamSpec *pspec);
272 #define sfi_pspec_set_options(pspec, opts) g_param_spec_set_options (pspec, opts)
273 #define sfi_pspec_add_option(pspec, opt, val) g_param_spec_add_option (pspec, opt, val)
274 #define sfi_pspec_check_option(pspec, opt) g_param_spec_check_option (pspec, opt)
275 #define sfi_pspec_provides_options(pspec, opts) g_param_spec_provides_options (pspec, opts)
276 #define sfi_pspec_get_options(pspec) g_param_spec_get_options (pspec)
277 SfiBool sfi_pspec_get_bool_default (GParamSpec *pspec);
278 SfiInt sfi_pspec_get_int_default (GParamSpec *pspec);
279 void sfi_pspec_get_int_range (GParamSpec *pspec,
280 SfiInt *minimum_value,
281 SfiInt *maximum_value,
283 gboolean sfi_pspec_allows_void_note (GParamSpec *pspec);
284 #define sfi_pspec_get_note_default sfi_pspec_get_int_default
285 #define sfi_pspec_get_note_range sfi_pspec_get_int_range
286 SfiNum sfi_pspec_get_num_default (GParamSpec *pspec);
287 void sfi_pspec_get_num_range (GParamSpec *pspec,
288 SfiNum *minimum_value,
289 SfiNum *maximum_value,
291 SfiReal sfi_pspec_get_real_default (GParamSpec *pspec);
292 void sfi_pspec_get_real_range (GParamSpec *pspec,
293 SfiReal *minimum_value,
294 SfiReal *maximum_value,
296 #define sfi_pspec_set_log_scale(p, c, b, n) g_param_spec_set_log_scale (p, c, b, n)
297 #define sfi_pspec_get_log_scale(p, c, b, n) g_param_spec_get_log_scale (p, c, b, n)
298 const gchar* sfi_pspec_get_string_default (GParamSpec *pspec);
299 const gchar* sfi_pspec_get_choice_default (GParamSpec *pspec);
301 guint64 sfi_pspec_get_choice_hash (GParamSpec *pspec);
302 GParamSpec* sfi_pspec_get_seq_element (GParamSpec *pspec);
303 SfiRecFields sfi_pspec_get_rec_fields (GParamSpec *pspec);
304 GParamSpec* sfi_pspec_get_rec_field (GParamSpec *pspec,
305 const gchar *field_name);
309 void _sfi_init_params (
void);
310 extern GType* sfi__param_spec_types;
311 SfiRec* sfi_pspec_to_rec (GParamSpec *pspec);
312 GParamSpec* sfi_pspec_from_rec (SfiRec *prec);
Definition: sfiparams.hh:63
Definition: sfiparams.hh:93
Definition: sfitypes.hh:32
Definition: sfiparams.hh:68
Definition: sfiparams.hh:82
Definition: sfiparams.hh:72
Definition: sfiparams.hh:86
Definition: sfiparams.hh:76
Definition: sfiparams.hh:79
Definition: sfiparams.hh:90