105
<refsect1 role="desc">
103
<refsect1 id="gobject-GParamSpec.description" role="desc">
106
104
<title role="desc.title">Description</title>
108
106
<link linkend="GParamSpec"><type>GParamSpec</type></link> is an object structure that encapsulates the metadata
109
107
required to specify parameters, such as e.g. <link linkend="GObject"><type>GObject</type></link> properties.
111
110
<para id="canonical-parameter-name">
112
111
Parameter names need to start with a letter (a-z or A-Z). Subsequent
113
112
characters can be letters, numbers or a '-'.
114
113
All other characters are replaced by a '-' during construction.
115
114
The result of this replacement is called the canonical name of the
120
<refsect1 role="details">
121
<refsect1 id="gobject-GParamSpec.details" role="details">
121
122
<title role="details.title">Details</title>
123
<title><anchor id="G-TYPE-IS-PARAM:CAPS" role="macro"/>G_TYPE_IS_PARAM()</title>
124
<indexterm><primary>G_TYPE_IS_PARAM</primary></indexterm><programlisting>#define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
123
<refsect2 id="G-TYPE-IS-PARAM--CAPS" role="macro">
124
<title>G_TYPE_IS_PARAM()</title>
125
<indexterm zone="G-TYPE-IS-PARAM--CAPS"><primary sortas="G_TYPE_IS_PARAM">G_TYPE_IS_PARAM</primary></indexterm><programlisting>#define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
125
126
</programlisting>
127
Returns whether <parameter>type</parameter> "is a" <link linkend="G-TYPE-PARAM:CAPS"><literal>G_TYPE_PARAM</literal></link>.
128
Checks whether <parameter>type</parameter> "is a" <link linkend="G-TYPE-PARAM--CAPS"><literal>G_TYPE_PARAM</literal></link>.</para>
128
130
</para><variablelist role="params">
129
<varlistentry><term><parameter>type</parameter> :</term>
130
<listitem><simpara>a <link linkend="GType"><type>GType</type></link> ID
131
<varlistentry><term><parameter>type</parameter> :</term>
132
<listitem><simpara> a <link linkend="GType"><type>GType</type></link> ID
133
133
</simpara></listitem></varlistentry>
134
134
</variablelist></refsect2>
136
<title><anchor id="G-PARAM-SPEC:CAPS" role="macro"/>G_PARAM_SPEC()</title>
137
<indexterm><primary>G_PARAM_SPEC</primary></indexterm><programlisting>#define G_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
135
<refsect2 id="G-PARAM-SPEC--CAPS" role="macro">
136
<title>G_PARAM_SPEC()</title>
137
<indexterm zone="G-PARAM-SPEC--CAPS"><primary sortas="G_PARAM_SPEC">G_PARAM_SPEC</primary></indexterm><programlisting>#define G_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
138
138
</programlisting>
140
140
Casts a derived <link linkend="GParamSpec"><type>GParamSpec</type></link> object (e.g. of type <link linkend="GParamSpecInt"><type>GParamSpecInt</type></link>) into
141
a <link linkend="GParamSpec"><type>GParamSpec</type></link> object.
142
</para><variablelist role="params">
143
<varlistentry><term><parameter>pspec</parameter> :</term>
144
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
147
</simpara></listitem></varlistentry>
148
</variablelist></refsect2>
150
<title><anchor id="G-IS-PARAM-SPEC:CAPS" role="macro"/>G_IS_PARAM_SPEC()</title>
151
<indexterm><primary>G_IS_PARAM_SPEC</primary></indexterm><programlisting>#define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
154
Checks whether <parameter>pspec</parameter> "is a" valid <link linkend="GParamSpec"><type>GParamSpec</type></link> structure of type <link linkend="G-TYPE-PARAM:CAPS"><literal>G_TYPE_PARAM</literal></link>
156
</para><variablelist role="params">
157
<varlistentry><term><parameter>pspec</parameter> :</term>
158
<listitem><simpara>a <link linkend="GParamSpec"><type>GParamSpec</type></link>
161
</simpara></listitem></varlistentry>
162
</variablelist></refsect2>
164
<title><anchor id="G-PARAM-SPEC-CLASS:CAPS" role="macro"/>G_PARAM_SPEC_CLASS()</title>
165
<indexterm><primary>G_PARAM_SPEC_CLASS</primary></indexterm><programlisting>#define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass))
168
Casts a derived <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> structure into a <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> structure.
169
</para><variablelist role="params">
170
<varlistentry><term><parameter>pclass</parameter> :</term>
171
<listitem><simpara>a valid <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link>
174
</simpara></listitem></varlistentry>
175
</variablelist></refsect2>
177
<title><anchor id="G-IS-PARAM-SPEC-CLASS:CAPS" role="macro"/>G_IS_PARAM_SPEC_CLASS()</title>
178
<indexterm><primary>G_IS_PARAM_SPEC_CLASS</primary></indexterm><programlisting>#define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM))
141
a <link linkend="GParamSpec"><type>GParamSpec</type></link> object.</para>
143
</para><variablelist role="params">
144
<varlistentry><term><parameter>pspec</parameter> :</term>
145
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
146
</simpara></listitem></varlistentry>
147
</variablelist></refsect2>
148
<refsect2 id="G-IS-PARAM-SPEC--CAPS" role="macro">
149
<title>G_IS_PARAM_SPEC()</title>
150
<indexterm zone="G-IS-PARAM-SPEC--CAPS"><primary sortas="G_IS_PARAM_SPEC">G_IS_PARAM_SPEC</primary></indexterm><programlisting>#define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
153
Checks whether <parameter>pspec</parameter> "is a" valid <link linkend="GParamSpec"><type>GParamSpec</type></link> structure of type <link linkend="G-TYPE-PARAM--CAPS"><literal>G_TYPE_PARAM</literal></link>
156
</para><variablelist role="params">
157
<varlistentry><term><parameter>pspec</parameter> :</term>
158
<listitem><simpara> a <link linkend="GParamSpec"><type>GParamSpec</type></link>
159
</simpara></listitem></varlistentry>
160
</variablelist></refsect2>
161
<refsect2 id="G-PARAM-SPEC-CLASS--CAPS" role="macro">
162
<title>G_PARAM_SPEC_CLASS()</title>
163
<indexterm zone="G-PARAM-SPEC-CLASS--CAPS"><primary sortas="G_PARAM_SPEC_CLASS">G_PARAM_SPEC_CLASS</primary></indexterm><programlisting>#define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass))
166
Casts a derived <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> structure into a <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> structure.</para>
168
</para><variablelist role="params">
169
<varlistentry><term><parameter>pclass</parameter> :</term>
170
<listitem><simpara> a valid <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link>
171
</simpara></listitem></varlistentry>
172
</variablelist></refsect2>
173
<refsect2 id="G-IS-PARAM-SPEC-CLASS--CAPS" role="macro">
174
<title>G_IS_PARAM_SPEC_CLASS()</title>
175
<indexterm zone="G-IS-PARAM-SPEC-CLASS--CAPS"><primary sortas="G_IS_PARAM_SPEC_CLASS">G_IS_PARAM_SPEC_CLASS</primary></indexterm><programlisting>#define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM))
179
176
</programlisting>
181
178
Checks whether <parameter>pclass</parameter> "is a" valid <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> structure of type
182
<link linkend="G-TYPE-PARAM:CAPS"><literal>G_TYPE_PARAM</literal></link> or derived.
183
</para><variablelist role="params">
184
<varlistentry><term><parameter>pclass</parameter> :</term>
185
<listitem><simpara>a <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link>
188
</simpara></listitem></varlistentry>
189
</variablelist></refsect2>
191
<title><anchor id="G-PARAM-SPEC-GET-CLASS:CAPS" role="macro"/>G_PARAM_SPEC_GET_CLASS()</title>
192
<indexterm><primary>G_PARAM_SPEC_GET_CLASS</primary></indexterm><programlisting>#define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
195
Retrieves the <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.
196
</para><variablelist role="params">
197
<varlistentry><term><parameter>pspec</parameter> :</term>
198
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
201
</simpara></listitem></varlistentry>
202
</variablelist></refsect2>
204
<title><anchor id="G-PARAM-SPEC-TYPE:CAPS" role="macro"/>G_PARAM_SPEC_TYPE()</title>
205
<indexterm><primary>G_PARAM_SPEC_TYPE</primary></indexterm><programlisting>#define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec))
208
Retrieves the <link linkend="GType"><type>GType</type></link> of this <parameter>pspec</parameter>.
209
</para><variablelist role="params">
210
<varlistentry><term><parameter>pspec</parameter> :</term>
211
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
214
</simpara></listitem></varlistentry>
215
</variablelist></refsect2>
217
<title><anchor id="G-PARAM-SPEC-TYPE-NAME:CAPS" role="macro"/>G_PARAM_SPEC_TYPE_NAME()</title>
218
<indexterm><primary>G_PARAM_SPEC_TYPE_NAME</primary></indexterm><programlisting>#define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec)))
221
Retrieves the <link linkend="GType"><type>GType</type></link> name of this <parameter>pspec</parameter>.
222
</para><variablelist role="params">
223
<varlistentry><term><parameter>pspec</parameter> :</term>
224
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
227
</simpara></listitem></varlistentry>
228
</variablelist></refsect2>
230
<title><anchor id="G-PARAM-SPEC-VALUE-TYPE:CAPS" role="macro"/>G_PARAM_SPEC_VALUE_TYPE()</title>
231
<indexterm><primary>G_PARAM_SPEC_VALUE_TYPE</primary></indexterm><programlisting>#define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type)
234
Retrieves the <link linkend="GType"><type>GType</type></link> to initialize a <link linkend="GValue"><type>GValue</type></link> for this parameter.
235
</para><variablelist role="params">
236
<varlistentry><term><parameter>pspec</parameter> :</term>
237
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
240
</simpara></listitem></varlistentry>
241
</variablelist></refsect2>
243
<title><anchor id="GParamSpec" role="struct"/>GParamSpec</title>
244
<indexterm><primary>GParamSpec</primary></indexterm><programlisting>typedef struct {
179
<link linkend="G-TYPE-PARAM--CAPS"><literal>G_TYPE_PARAM</literal></link> or derived.</para>
181
</para><variablelist role="params">
182
<varlistentry><term><parameter>pclass</parameter> :</term>
183
<listitem><simpara> a <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link>
184
</simpara></listitem></varlistentry>
185
</variablelist></refsect2>
186
<refsect2 id="G-PARAM-SPEC-GET-CLASS--CAPS" role="macro">
187
<title>G_PARAM_SPEC_GET_CLASS()</title>
188
<indexterm zone="G-PARAM-SPEC-GET-CLASS--CAPS"><primary sortas="G_PARAM_SPEC_GET_CLASS">G_PARAM_SPEC_GET_CLASS</primary></indexterm><programlisting>#define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
191
Retrieves the <link linkend="GParamSpecClass"><type>GParamSpecClass</type></link> of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
193
</para><variablelist role="params">
194
<varlistentry><term><parameter>pspec</parameter> :</term>
195
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
196
</simpara></listitem></varlistentry>
197
</variablelist></refsect2>
198
<refsect2 id="G-PARAM-SPEC-TYPE--CAPS" role="macro">
199
<title>G_PARAM_SPEC_TYPE()</title>
200
<indexterm zone="G-PARAM-SPEC-TYPE--CAPS"><primary sortas="G_PARAM_SPEC_TYPE">G_PARAM_SPEC_TYPE</primary></indexterm><programlisting>#define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec))
203
Retrieves the <link linkend="GType"><type>GType</type></link> of this <parameter>pspec</parameter>.</para>
205
</para><variablelist role="params">
206
<varlistentry><term><parameter>pspec</parameter> :</term>
207
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
208
</simpara></listitem></varlistentry>
209
</variablelist></refsect2>
210
<refsect2 id="G-PARAM-SPEC-TYPE-NAME--CAPS" role="macro">
211
<title>G_PARAM_SPEC_TYPE_NAME()</title>
212
<indexterm zone="G-PARAM-SPEC-TYPE-NAME--CAPS"><primary sortas="G_PARAM_SPEC_TYPE_NAME">G_PARAM_SPEC_TYPE_NAME</primary></indexterm><programlisting>#define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec)))
215
Retrieves the <link linkend="GType"><type>GType</type></link> name of this <parameter>pspec</parameter>.</para>
217
</para><variablelist role="params">
218
<varlistentry><term><parameter>pspec</parameter> :</term>
219
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
220
</simpara></listitem></varlistentry>
221
</variablelist></refsect2>
222
<refsect2 id="G-PARAM-SPEC-VALUE-TYPE--CAPS" role="macro">
223
<title>G_PARAM_SPEC_VALUE_TYPE()</title>
224
<indexterm zone="G-PARAM-SPEC-VALUE-TYPE--CAPS"><primary sortas="G_PARAM_SPEC_VALUE_TYPE">G_PARAM_SPEC_VALUE_TYPE</primary></indexterm><programlisting>#define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type)
227
Retrieves the <link linkend="GType"><type>GType</type></link> to initialize a <link linkend="GValue"><type>GValue</type></link> for this parameter.</para>
229
</para><variablelist role="params">
230
<varlistentry><term><parameter>pspec</parameter> :</term>
231
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
232
</simpara></listitem></varlistentry>
233
</variablelist></refsect2>
234
<refsect2 id="GParamSpec" role="struct">
235
<title>GParamSpec</title>
236
<indexterm zone="GParamSpec"><primary sortas="GParamSpec">GParamSpec</primary></indexterm><programlisting>typedef struct {
245
237
GTypeInstance g_type_instance;
362
354
</programlisting>
364
356
Through the <link linkend="GParamFlags"><type>GParamFlags</type></link> flag values, certain aspects of parameters
357
can be configured.</para>
366
359
</para><variablelist role="enum">
368
<term><anchor id="G-PARAM-READABLE:CAPS" role="constant"/><literal>G_PARAM_READABLE</literal></term>
369
<listitem><simpara> the parameter is readable
370
</simpara></listitem>
373
<term><anchor id="G-PARAM-WRITABLE:CAPS" role="constant"/><literal>G_PARAM_WRITABLE</literal></term>
374
<listitem><simpara> the parameter is writable
375
</simpara></listitem>
378
<term><anchor id="G-PARAM-CONSTRUCT:CAPS" role="constant"/><literal>G_PARAM_CONSTRUCT</literal></term>
379
<listitem><simpara> the parameter will be set upon object construction
380
</simpara></listitem>
383
<term><anchor id="G-PARAM-CONSTRUCT-ONLY:CAPS" role="constant"/><literal>G_PARAM_CONSTRUCT_ONLY</literal></term>
384
<listitem><simpara>the parameter will only be set upon object construction
385
</simpara></listitem>
388
<term><anchor id="G-PARAM-LAX-VALIDATION:CAPS" role="constant"/><literal>G_PARAM_LAX_VALIDATION</literal></term>
389
<listitem><simpara>upon parameter conversion (see <link linkend="g-param-value-convert"><function>g_param_value_convert()</function></link>)
390
strict validation is not required
391
</simpara></listitem>
394
<term><anchor id="G-PARAM-STATIC-NAME:CAPS" role="constant"/><literal>G_PARAM_STATIC_NAME</literal></term>
395
<listitem><simpara> the string used as name when constructing the
396
parameter is guaranteed to remain valid and
397
unmodified for the lifetime of the parameter.
399
</simpara></listitem>
402
<term><anchor id="G-PARAM-PRIVATE:CAPS" role="constant"/><literal>G_PARAM_PRIVATE</literal></term>
404
</simpara></listitem>
407
<term><anchor id="G-PARAM-STATIC-NICK:CAPS" role="constant"/><literal>G_PARAM_STATIC_NICK</literal></term>
409
</simpara></listitem>
412
<term><anchor id="G-PARAM-STATIC-BLURB:CAPS" role="constant"/><literal>G_PARAM_STATIC_BLURB</literal></term>
413
<listitem><simpara> the string used as blurb when constructing the
414
parameter is guaranteed to remain valid and
415
unmodified for the lifetime of the parameter.
360
<varlistentry id="G-PARAM-READABLE--CAPS" role="constant">
361
<term><literal>G_PARAM_READABLE</literal></term>
362
<listitem><simpara> the parameter is readable
363
</simpara></listitem>
365
<varlistentry id="G-PARAM-WRITABLE--CAPS" role="constant">
366
<term><literal>G_PARAM_WRITABLE</literal></term>
367
<listitem><simpara> the parameter is writable
368
</simpara></listitem>
370
<varlistentry id="G-PARAM-CONSTRUCT--CAPS" role="constant">
371
<term><literal>G_PARAM_CONSTRUCT</literal></term>
372
<listitem><simpara> the parameter will be set upon object construction
373
</simpara></listitem>
375
<varlistentry id="G-PARAM-CONSTRUCT-ONLY--CAPS" role="constant">
376
<term><literal>G_PARAM_CONSTRUCT_ONLY</literal></term>
377
<listitem><simpara> the parameter will only be set upon object construction
378
</simpara></listitem>
380
<varlistentry id="G-PARAM-LAX-VALIDATION--CAPS" role="constant">
381
<term><literal>G_PARAM_LAX_VALIDATION</literal></term>
382
<listitem><simpara> upon parameter conversion (see <link linkend="g-param-value-convert"><function>g_param_value_convert()</function></link>)
383
strict validation is not required
384
</simpara></listitem>
386
<varlistentry id="G-PARAM-STATIC-NAME--CAPS" role="constant">
387
<term><literal>G_PARAM_STATIC_NAME</literal></term>
388
<listitem><simpara> the string used as name when constructing the
389
parameter is guaranteed to remain valid and
390
unmodified for the lifetime of the parameter.
392
</simpara></listitem>
394
<varlistentry id="G-PARAM-PRIVATE--CAPS" role="constant">
395
<term><literal>G_PARAM_PRIVATE</literal></term>
396
<listitem><simpara> internal
397
</simpara></listitem>
399
<varlistentry id="G-PARAM-STATIC-NICK--CAPS" role="constant">
400
<term><literal>G_PARAM_STATIC_NICK</literal></term>
401
<listitem><simpara> the string used as nick when constructing the
402
parameter is guaranteed to remain valid and
403
unmmodified for the lifetime of the parameter.
405
</simpara></listitem>
407
<varlistentry id="G-PARAM-STATIC-BLURB--CAPS" role="constant">
408
<term><literal>G_PARAM_STATIC_BLURB</literal></term>
409
<listitem><simpara> the string used as blurb when constructing the
410
parameter is guaranteed to remain valid and
411
unmodified for the lifetime of the parameter.
418
413
</simpara></listitem>
420
415
</variablelist></refsect2>
422
<title><anchor id="G-PARAM-READWRITE:CAPS" role="macro"/>G_PARAM_READWRITE</title>
423
<indexterm><primary>G_PARAM_READWRITE</primary></indexterm><programlisting>#define G_PARAM_READWRITE (G_PARAM_READABLE | G_PARAM_WRITABLE)
426
<link linkend="GParamFlags"><type>GParamFlags</type></link> value alias for <link linkend="G-PARAM-READABLE:CAPS"><literal>G_PARAM_READABLE</literal></link> | <link linkend="G-PARAM-WRITABLE:CAPS"><literal>G_PARAM_WRITABLE</literal></link>.
429
<title><anchor id="G-PARAM-STATIC-STRINGS:CAPS" role="macro"/>G_PARAM_STATIC_STRINGS</title>
430
<indexterm><primary>G_PARAM_STATIC_STRINGS</primary></indexterm><programlisting>#define G_PARAM_STATIC_STRINGS (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
433
<link linkend="GParamFlags"><type>GParamFlags</type></link> value alias for <link linkend="G-PARAM-STATIC-NAME:CAPS"><literal>G_PARAM_STATIC_NAME</literal></link> | <link linkend="G-PARAM-STATIC-NICK:CAPS"><literal>G_PARAM_STATIC_NICK</literal></link> | <link linkend="G-PARAM-STATIC-BLURB:CAPS"><literal>G_PARAM_STATIC_BLURB</literal></link>.
438
<title><anchor id="G-PARAM-MASK:CAPS" role="macro"/>G_PARAM_MASK</title>
439
<indexterm><primary>G_PARAM_MASK</primary></indexterm><programlisting>#define G_PARAM_MASK (0x000000ff)
442
Mask containing the bits of <link linkend="GParamSpec"><type>GParamSpec</type></link>.flags which are reserved for GLib.
445
<title><anchor id="G-PARAM-USER-SHIFT:CAPS" role="macro"/>G_PARAM_USER_SHIFT</title>
446
<indexterm><primary>G_PARAM_USER_SHIFT</primary></indexterm><programlisting>#define G_PARAM_USER_SHIFT (8)
416
<refsect2 id="G-PARAM-READWRITE--CAPS" role="macro">
417
<title>G_PARAM_READWRITE</title>
418
<indexterm zone="G-PARAM-READWRITE--CAPS"><primary sortas="G_PARAM_READWRITE">G_PARAM_READWRITE</primary></indexterm><programlisting>#define G_PARAM_READWRITE (G_PARAM_READABLE | G_PARAM_WRITABLE)
421
<link linkend="GParamFlags"><type>GParamFlags</type></link> value alias for <link linkend="G-PARAM-READABLE--CAPS"><literal>G_PARAM_READABLE</literal></link> | <link linkend="G-PARAM-WRITABLE--CAPS"><literal>G_PARAM_WRITABLE</literal></link>.</para>
424
<refsect2 id="G-PARAM-STATIC-STRINGS--CAPS" role="macro">
425
<title>G_PARAM_STATIC_STRINGS</title>
426
<indexterm zone="G-PARAM-STATIC-STRINGS--CAPS"><primary sortas="G_PARAM_STATIC_STRINGS">G_PARAM_STATIC_STRINGS</primary></indexterm><programlisting>#define G_PARAM_STATIC_STRINGS (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
429
<link linkend="GParamFlags"><type>GParamFlags</type></link> value alias for <link linkend="G-PARAM-STATIC-NAME--CAPS"><literal>G_PARAM_STATIC_NAME</literal></link> | <link linkend="G-PARAM-STATIC-NICK--CAPS"><literal>G_PARAM_STATIC_NICK</literal></link> | <link linkend="G-PARAM-STATIC-BLURB--CAPS"><literal>G_PARAM_STATIC_BLURB</literal></link>.
435
<refsect2 id="G-PARAM-MASK--CAPS" role="macro">
436
<title>G_PARAM_MASK</title>
437
<indexterm zone="G-PARAM-MASK--CAPS"><primary sortas="G_PARAM_MASK">G_PARAM_MASK</primary></indexterm><programlisting>#define G_PARAM_MASK (0x000000ff)
440
Mask containing the bits of <link linkend="GParamSpec"><type>GParamSpec</type></link>.flags which are reserved for GLib.</para>
443
<refsect2 id="G-PARAM-USER-SHIFT--CAPS" role="macro">
444
<title>G_PARAM_USER_SHIFT</title>
445
<indexterm zone="G-PARAM-USER-SHIFT--CAPS"><primary sortas="G_PARAM_USER_SHIFT">G_PARAM_USER_SHIFT</primary></indexterm><programlisting>#define G_PARAM_USER_SHIFT (8)
447
446
</programlisting>
449
448
Minimum shift count to be used for user defined flags, to be stored in
450
<link linkend="GParamSpec"><type>GParamSpec</type></link>.flags.
453
<title><anchor id="g-param-spec-ref" role="function"/>g_param_spec_ref ()</title>
454
<indexterm><primary>g_param_spec_ref</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_ref (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
456
Increments the reference count of <parameter>pspec</parameter>.
457
</para><variablelist role="params">
458
<varlistentry><term><parameter>pspec</parameter> :</term>
459
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
460
</simpara></listitem></varlistentry>
461
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> that was passed into this function
464
</simpara></listitem></varlistentry>
465
</variablelist></refsect2>
467
<title><anchor id="g-param-spec-unref" role="function"/>g_param_spec_unref ()</title>
468
<indexterm><primary>g_param_spec_unref</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_unref (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
470
Decrements the reference count of a <parameter>pspec</parameter>.
471
</para><variablelist role="params">
472
<varlistentry><term><parameter>pspec</parameter> :</term>
473
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
476
</simpara></listitem></varlistentry>
477
</variablelist></refsect2>
479
<title><anchor id="g-param-spec-sink" role="function"/>g_param_spec_sink ()</title>
480
<indexterm><primary>g_param_spec_sink</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_sink (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
482
The initial reference count of a newly created <link linkend="GParamSpec"><type>GParamSpec</type></link> is 1, even
483
though no one has explicitly called <link linkend="g-param-spec-ref"><function>g_param_spec_ref()</function></link> on it yet. So the
484
initial reference count is flagged as "floating", until someone calls
485
<literal>g_param_spec_ref (pspec); g_param_spec_sink (pspec);</literal>
486
in sequence on it, taking over the initial reference count (thus
487
ending up with a <parameter>pspec</parameter> that has a reference count of 1 still, but is
488
not flagged "floating" anymore).
489
</para><variablelist role="params">
490
<varlistentry><term><parameter>pspec</parameter> :</term>
491
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
494
</simpara></listitem></varlistentry>
495
</variablelist></refsect2>
497
<title><anchor id="g-param-spec-ref-sink" role="function" condition="since:2.10"/>g_param_spec_ref_sink ()</title>
498
<indexterm role="2.10"><primary>g_param_spec_ref_sink</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_ref_sink (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
500
Convenience function to ref and sink a <link linkend="GParamSpec"><type>GParamSpec</type></link>.
501
</para><variablelist role="params">
502
<varlistentry><term><parameter>pspec</parameter> :</term>
503
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
504
</simpara></listitem></varlistentry>
505
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> that was passed into this function
506
</simpara></listitem></varlistentry>
507
</variablelist><para role="since">Since 2.10
512
<title><anchor id="g-param-value-set-default" role="function"/>g_param_value_set_default ()</title>
513
<indexterm><primary>g_param_value_set_default</primary></indexterm><programlisting><link linkend="void">void</link> g_param_value_set_default (<link linkend="GParamSpec">GParamSpec</link> *pspec,
514
<link linkend="GValue">GValue</link> *value);</programlisting>
516
Sets <parameter>value</parameter> to its default value as specified in <parameter>pspec</parameter>.
517
</para><variablelist role="params">
518
<varlistentry><term><parameter>pspec</parameter> :</term>
519
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
520
</simpara></listitem></varlistentry>
521
<varlistentry><term><parameter>value</parameter> :</term>
522
<listitem><simpara>a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
525
</simpara></listitem></varlistentry>
526
</variablelist></refsect2>
528
<title><anchor id="g-param-value-defaults" role="function"/>g_param_value_defaults ()</title>
529
<indexterm><primary>g_param_value_defaults</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_defaults (<link linkend="GParamSpec">GParamSpec</link> *pspec,
530
<link linkend="GValue">GValue</link> *value);</programlisting>
532
Checks whether <parameter>value</parameter> contains the default value as specified in <parameter>pspec</parameter>.
533
</para><variablelist role="params">
534
<varlistentry><term><parameter>pspec</parameter> :</term>
535
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
536
</simpara></listitem></varlistentry>
537
<varlistentry><term><parameter>value</parameter> :</term>
538
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
539
</simpara></listitem></varlistentry>
540
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>whether <parameter>value</parameter> contains the canonical default for this <parameter>pspec</parameter>
543
</simpara></listitem></varlistentry>
544
</variablelist></refsect2>
546
<title><anchor id="g-param-value-validate" role="function"/>g_param_value_validate ()</title>
547
<indexterm><primary>g_param_value_validate</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_validate (<link linkend="GParamSpec">GParamSpec</link> *pspec,
449
<link linkend="GParamSpec"><type>GParamSpec</type></link>.flags.</para>
452
<refsect2 id="g-param-spec-ref" role="function">
453
<title>g_param_spec_ref ()</title>
454
<indexterm zone="g-param-spec-ref"><primary sortas="g_param_spec_ref">g_param_spec_ref</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_ref (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
456
Increments the reference count of <parameter>pspec</parameter>.</para>
458
</para><variablelist role="params">
459
<varlistentry><term><parameter>pspec</parameter> :</term>
460
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
461
</simpara></listitem></varlistentry>
462
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> that was passed into this function
463
</simpara></listitem></varlistentry>
464
</variablelist></refsect2>
465
<refsect2 id="g-param-spec-unref" role="function">
466
<title>g_param_spec_unref ()</title>
467
<indexterm zone="g-param-spec-unref"><primary sortas="g_param_spec_unref">g_param_spec_unref</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_unref (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
469
Decrements the reference count of a <parameter>pspec</parameter>.</para>
471
</para><variablelist role="params">
472
<varlistentry><term><parameter>pspec</parameter> :</term>
473
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
474
</simpara></listitem></varlistentry>
475
</variablelist></refsect2>
476
<refsect2 id="g-param-spec-sink" role="function">
477
<title>g_param_spec_sink ()</title>
478
<indexterm zone="g-param-spec-sink"><primary sortas="g_param_spec_sink">g_param_spec_sink</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_sink (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
480
The initial reference count of a newly created <link linkend="GParamSpec"><type>GParamSpec</type></link> is 1,
481
even though no one has explicitly called <link linkend="g-param-spec-ref"><function>g_param_spec_ref()</function></link> on it
482
yet. So the initial reference count is flagged as "floating", until
483
someone calls <literal>g_param_spec_ref (pspec); g_param_spec_sink
484
(pspec);</literal> in sequence on it, taking over the initial
485
reference count (thus ending up with a <parameter>pspec</parameter> that has a reference
486
count of 1 still, but is not flagged "floating" anymore).</para>
488
</para><variablelist role="params">
489
<varlistentry><term><parameter>pspec</parameter> :</term>
490
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
491
</simpara></listitem></varlistentry>
492
</variablelist></refsect2>
493
<refsect2 id="g-param-spec-ref-sink" role="function" condition="since:2.10">
494
<title>g_param_spec_ref_sink ()</title>
495
<indexterm zone="g-param-spec-ref-sink" role="2.10"><primary sortas="g_param_spec_ref_sink">g_param_spec_ref_sink</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_ref_sink (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
497
Convenience function to ref and sink a <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
499
</para><variablelist role="params">
500
<varlistentry><term><parameter>pspec</parameter> :</term>
501
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
502
</simpara></listitem></varlistentry>
503
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> that was passed into this function
504
</simpara></listitem></varlistentry>
505
</variablelist><para role="since">Since 2.10</para></refsect2>
506
<refsect2 id="g-param-value-set-default" role="function">
507
<title>g_param_value_set_default ()</title>
508
<indexterm zone="g-param-value-set-default"><primary sortas="g_param_value_set_default">g_param_value_set_default</primary></indexterm><programlisting><link linkend="void">void</link> g_param_value_set_default (<link linkend="GParamSpec">GParamSpec</link> *pspec,
509
<link linkend="GValue">GValue</link> *value);</programlisting>
511
Sets <parameter>value</parameter> to its default value as specified in <parameter>pspec</parameter>.</para>
513
</para><variablelist role="params">
514
<varlistentry><term><parameter>pspec</parameter> :</term>
515
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
516
</simpara></listitem></varlistentry>
517
<varlistentry><term><parameter>value</parameter> :</term>
518
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
519
</simpara></listitem></varlistentry>
520
</variablelist></refsect2>
521
<refsect2 id="g-param-value-defaults" role="function">
522
<title>g_param_value_defaults ()</title>
523
<indexterm zone="g-param-value-defaults"><primary sortas="g_param_value_defaults">g_param_value_defaults</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_defaults (<link linkend="GParamSpec">GParamSpec</link> *pspec,
524
<link linkend="GValue">GValue</link> *value);</programlisting>
526
Checks whether <parameter>value</parameter> contains the default value as specified in <parameter>pspec</parameter>.</para>
528
</para><variablelist role="params">
529
<varlistentry><term><parameter>pspec</parameter> :</term>
530
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
531
</simpara></listitem></varlistentry>
532
<varlistentry><term><parameter>value</parameter> :</term>
533
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
534
</simpara></listitem></varlistentry>
535
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> whether <parameter>value</parameter> contains the canonical default for this <parameter>pspec</parameter>
536
</simpara></listitem></varlistentry>
537
</variablelist></refsect2>
538
<refsect2 id="g-param-value-validate" role="function">
539
<title>g_param_value_validate ()</title>
540
<indexterm zone="g-param-value-validate"><primary sortas="g_param_value_validate">g_param_value_validate</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_validate (<link linkend="GParamSpec">GParamSpec</link> *pspec,
548
541
<link linkend="GValue">GValue</link> *value);</programlisting>
550
543
Ensures that the contents of <parameter>value</parameter> comply with the specifications
552
545
that integers stored in <parameter>value</parameter> may not be smaller than -42 and not be
553
546
greater than +42. If <parameter>value</parameter> contains an integer outside of this range,
554
547
it is modified accordingly, so the resulting value will fit into the
548
range -42 .. +42.</para>
556
550
</para><variablelist role="params">
557
<varlistentry><term><parameter>pspec</parameter> :</term>
558
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
559
</simpara></listitem></varlistentry>
560
<varlistentry><term><parameter>value</parameter> :</term>
561
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
562
</simpara></listitem></varlistentry>
563
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>whether modifying <parameter>value</parameter> was necessary to ensure validity
551
<varlistentry><term><parameter>pspec</parameter> :</term>
552
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
553
</simpara></listitem></varlistentry>
554
<varlistentry><term><parameter>value</parameter> :</term>
555
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
556
</simpara></listitem></varlistentry>
557
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> whether modifying <parameter>value</parameter> was necessary to ensure validity
566
558
</simpara></listitem></varlistentry>
567
559
</variablelist></refsect2>
569
<title><anchor id="g-param-value-convert" role="function"/>g_param_value_convert ()</title>
570
<indexterm><primary>g_param_value_convert</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_convert (<link linkend="GParamSpec">GParamSpec</link> *pspec,
560
<refsect2 id="g-param-value-convert" role="function">
561
<title>g_param_value_convert ()</title>
562
<indexterm zone="g-param-value-convert"><primary sortas="g_param_value_convert">g_param_value_convert</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_param_value_convert (<link linkend="GParamSpec">GParamSpec</link> *pspec,
571
563
const <link linkend="GValue">GValue</link> *src_value,
572
564
<link linkend="GValue">GValue</link> *dest_value,
573
565
<link linkend="gboolean">gboolean</link> strict_validation);</programlisting>
575
Transforms <parameter>src_value</parameter> into <parameter>dest_value</parameter> if possible, and then validates
576
<parameter>dest_value</parameter>, in order for it to conform to <parameter>pspec</parameter>.
577
If <parameter>strict_validation</parameter> is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> this function will only succeed if
578
the transformed <parameter>dest_value</parameter> complied to <parameter>pspec</parameter> without modifications.
567
Transforms <parameter>src_value</parameter> into <parameter>dest_value</parameter> if possible, and then
568
validates <parameter>dest_value</parameter>, in order for it to conform to <parameter>pspec</parameter>. If
569
<parameter>strict_validation</parameter> is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> this function will only succeed if the
570
transformed <parameter>dest_value</parameter> complied to <parameter>pspec</parameter> without modifications.
580
573
See also <link linkend="g-value-type-transformable"><function>g_value_type_transformable()</function></link>, <link linkend="g-value-transform"><function>g_value_transform()</function></link> and
581
<link linkend="g-param-value-validate"><function>g_param_value_validate()</function></link>.
574
<link linkend="g-param-value-validate"><function>g_param_value_validate()</function></link>.</para>
582
576
</para><variablelist role="params">
583
<varlistentry><term><parameter>pspec</parameter> :</term>
584
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
585
</simpara></listitem></varlistentry>
586
<varlistentry><term><parameter>src_value</parameter> :</term>
587
<listitem><simpara> souce <link linkend="GValue"><type>GValue</type></link>
588
</simpara></listitem></varlistentry>
589
<varlistentry><term><parameter>dest_value</parameter> :</term>
590
<listitem><simpara> destination <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
591
</simpara></listitem></varlistentry>
592
<varlistentry><term><parameter>strict_validation</parameter> :</term>
593
<listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> requires <parameter>dest_value</parameter> to conform to <parameter>pspec</parameter> without modifications
594
</simpara></listitem></varlistentry>
595
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if transformation and validation were successful,
596
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise and <parameter>dest_value</parameter> is left untouched.
577
<varlistentry><term><parameter>pspec</parameter> :</term>
578
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
579
</simpara></listitem></varlistentry>
580
<varlistentry><term><parameter>src_value</parameter> :</term>
581
<listitem><simpara> souce <link linkend="GValue"><type>GValue</type></link>
582
</simpara></listitem></varlistentry>
583
<varlistentry><term><parameter>dest_value</parameter> :</term>
584
<listitem><simpara> destination <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
585
</simpara></listitem></varlistentry>
586
<varlistentry><term><parameter>strict_validation</parameter> :</term>
587
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> requires <parameter>dest_value</parameter> to conform to <parameter>pspec</parameter>
588
without modifications
589
</simpara></listitem></varlistentry>
590
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if transformation and validation were successful,
591
<link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise and <parameter>dest_value</parameter> is left untouched.
599
592
</simpara></listitem></varlistentry>
600
593
</variablelist></refsect2>
602
<title><anchor id="g-param-values-cmp" role="function"/>g_param_values_cmp ()</title>
603
<indexterm><primary>g_param_values_cmp</primary></indexterm><programlisting><link linkend="gint">gint</link> g_param_values_cmp (<link linkend="GParamSpec">GParamSpec</link> *pspec,
594
<refsect2 id="g-param-values-cmp" role="function">
595
<title>g_param_values_cmp ()</title>
596
<indexterm zone="g-param-values-cmp"><primary sortas="g_param_values_cmp">g_param_values_cmp</primary></indexterm><programlisting><link linkend="gint">gint</link> g_param_values_cmp (<link linkend="GParamSpec">GParamSpec</link> *pspec,
604
597
const <link linkend="GValue">GValue</link> *value1,
605
598
const <link linkend="GValue">GValue</link> *value2);</programlisting>
607
600
Compares <parameter>value1</parameter> with <parameter>value2</parameter> according to <parameter>pspec</parameter>, and return -1, 0 or +1,
608
if <parameter>value1</parameter> is found to be less than, equal to or greater than <parameter>value2</parameter>,
610
</para><variablelist role="params">
611
<varlistentry><term><parameter>pspec</parameter> :</term>
612
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
613
</simpara></listitem></varlistentry>
614
<varlistentry><term><parameter>value1</parameter> :</term>
615
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
616
</simpara></listitem></varlistentry>
617
<varlistentry><term><parameter>value2</parameter> :</term>
618
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
619
</simpara></listitem></varlistentry>
620
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>-1, 0 or +1, for a less than, equal to or greater than result
623
</simpara></listitem></varlistentry>
624
</variablelist></refsect2>
626
<title><anchor id="g-param-spec-get-name" role="function"/>g_param_spec_get_name ()</title>
627
<indexterm><primary>g_param_spec_get_name</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_name (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
629
Returns the name of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.
630
</para><variablelist role="params">
631
<varlistentry><term><parameter>pspec</parameter> :</term>
632
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
633
</simpara></listitem></varlistentry>
634
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the name of <parameter>pspec</parameter>.
637
</simpara></listitem></varlistentry>
638
</variablelist></refsect2>
640
<title><anchor id="g-param-spec-get-nick" role="function"/>g_param_spec_get_nick ()</title>
641
<indexterm><primary>g_param_spec_get_nick</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_nick (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
643
Returns the nickname of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.
644
</para><variablelist role="params">
645
<varlistentry><term><parameter>pspec</parameter> :</term>
646
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
647
</simpara></listitem></varlistentry>
648
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the nickname of <parameter>pspec</parameter>.
651
</simpara></listitem></varlistentry>
652
</variablelist></refsect2>
654
<title><anchor id="g-param-spec-get-blurb" role="function"/>g_param_spec_get_blurb ()</title>
655
<indexterm><primary>g_param_spec_get_blurb</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_blurb (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
657
Returns the short description of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.
658
</para><variablelist role="params">
659
<varlistentry><term><parameter>pspec</parameter> :</term>
660
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
661
</simpara></listitem></varlistentry>
662
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the short description of <parameter>pspec</parameter>.
665
</simpara></listitem></varlistentry>
666
</variablelist></refsect2>
668
<title><anchor id="g-param-spec-get-qdata" role="function"/>g_param_spec_get_qdata ()</title>
669
<indexterm><primary>g_param_spec_get_qdata</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_param_spec_get_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
601
if <parameter>value1</parameter> is found to be less than, equal to or greater than <parameter>value2</parameter>,
604
</para><variablelist role="params">
605
<varlistentry><term><parameter>pspec</parameter> :</term>
606
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
607
</simpara></listitem></varlistentry>
608
<varlistentry><term><parameter>value1</parameter> :</term>
609
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
610
</simpara></listitem></varlistentry>
611
<varlistentry><term><parameter>value2</parameter> :</term>
612
<listitem><simpara> a <link linkend="GValue"><type>GValue</type></link> of correct type for <parameter>pspec</parameter>
613
</simpara></listitem></varlistentry>
614
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> -1, 0 or +1, for a less than, equal to or greater than result
615
</simpara></listitem></varlistentry>
616
</variablelist></refsect2>
617
<refsect2 id="g-param-spec-get-name" role="function">
618
<title>g_param_spec_get_name ()</title>
619
<indexterm zone="g-param-spec-get-name"><primary sortas="g_param_spec_get_name">g_param_spec_get_name</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_name (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
621
Get the name of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
623
</para><variablelist role="params">
624
<varlistentry><term><parameter>pspec</parameter> :</term>
625
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
626
</simpara></listitem></varlistentry>
627
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the name of <parameter>pspec</parameter>.
628
</simpara></listitem></varlistentry>
629
</variablelist></refsect2>
630
<refsect2 id="g-param-spec-get-nick" role="function">
631
<title>g_param_spec_get_nick ()</title>
632
<indexterm zone="g-param-spec-get-nick"><primary sortas="g_param_spec_get_nick">g_param_spec_get_nick</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_nick (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
634
Get the nickname of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
636
</para><variablelist role="params">
637
<varlistentry><term><parameter>pspec</parameter> :</term>
638
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
639
</simpara></listitem></varlistentry>
640
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the nickname of <parameter>pspec</parameter>.
641
</simpara></listitem></varlistentry>
642
</variablelist></refsect2>
643
<refsect2 id="g-param-spec-get-blurb" role="function">
644
<title>g_param_spec_get_blurb ()</title>
645
<indexterm zone="g-param-spec-get-blurb"><primary sortas="g_param_spec_get_blurb">g_param_spec_get_blurb</primary></indexterm><programlisting>const <link linkend="gchar">gchar</link>* g_param_spec_get_blurb (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
647
Get the short description of a <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
649
</para><variablelist role="params">
650
<varlistentry><term><parameter>pspec</parameter> :</term>
651
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
652
</simpara></listitem></varlistentry>
653
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the short description of <parameter>pspec</parameter>.
654
</simpara></listitem></varlistentry>
655
</variablelist></refsect2>
656
<refsect2 id="g-param-spec-get-qdata" role="function">
657
<title>g_param_spec_get_qdata ()</title>
658
<indexterm zone="g-param-spec-get-qdata"><primary sortas="g_param_spec_get_qdata">g_param_spec_get_qdata</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_param_spec_get_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
670
659
<link linkend="GQuark">GQuark</link> quark);</programlisting>
672
Gets back user data pointers stored via <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link>.
661
Gets back user data pointers stored via <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link>.</para>
673
663
</para><variablelist role="params">
674
<varlistentry><term><parameter>pspec</parameter> :</term>
675
<listitem><simpara>a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
676
</simpara></listitem></varlistentry>
677
<varlistentry><term><parameter>quark</parameter> :</term>
678
<listitem><simpara>a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
679
</simpara></listitem></varlistentry>
680
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the user data pointer set, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
664
<varlistentry><term><parameter>pspec</parameter> :</term>
665
<listitem><simpara> a valid <link linkend="GParamSpec"><type>GParamSpec</type></link>
666
</simpara></listitem></varlistentry>
667
<varlistentry><term><parameter>quark</parameter> :</term>
668
<listitem><simpara> a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
669
</simpara></listitem></varlistentry>
670
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the user data pointer set, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
683
671
</simpara></listitem></varlistentry>
684
672
</variablelist></refsect2>
686
<title><anchor id="g-param-spec-set-qdata" role="function"/>g_param_spec_set_qdata ()</title>
687
<indexterm><primary>g_param_spec_set_qdata</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_set_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
673
<refsect2 id="g-param-spec-set-qdata" role="function">
674
<title>g_param_spec_set_qdata ()</title>
675
<indexterm zone="g-param-spec-set-qdata"><primary sortas="g_param_spec_set_qdata">g_param_spec_set_qdata</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_set_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
688
676
<link linkend="GQuark">GQuark</link> quark,
689
677
<link linkend="gpointer">gpointer</link> data);</programlisting>
691
Sets an opaque, named pointer on a <link linkend="GParamSpec"><type>GParamSpec</type></link>. The name is specified
692
through a <link linkend="GQuark"><type>GQuark</type></link> (retrieved e.g. via <link linkend="g-quark-from-static-string"><function>g_quark_from_static_string()</function></link>), and
693
the pointer can be gotten back from the <parameter>pspec</parameter> with <link linkend="g-param-spec-get-qdata"><function>g_param_spec_get_qdata()</function></link>.
694
Setting a previously set user data pointer, overrides (frees)
695
the old pointer set, using <link linkend="NULL:CAPS"><literal>NULL</literal></link> as pointer essentially
696
removes the data stored.
679
Sets an opaque, named pointer on a <link linkend="GParamSpec"><type>GParamSpec</type></link>. The name is
680
specified through a <link linkend="GQuark"><type>GQuark</type></link> (retrieved e.g. via
681
<link linkend="g-quark-from-static-string"><function>g_quark_from_static_string()</function></link>), and the pointer can be gotten back
682
from the <parameter>pspec</parameter> with <link linkend="g-param-spec-get-qdata"><function>g_param_spec_get_qdata()</function></link>. Setting a
683
previously set user data pointer, overrides (frees) the old pointer
684
set, using <link linkend="NULL--CAPS"><literal>NULL</literal></link> as pointer essentially removes the data stored.</para>
697
686
</para><variablelist role="params">
698
<varlistentry><term><parameter>pspec</parameter> :</term>
699
<listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> to set store a user data pointer
700
</simpara></listitem></varlistentry>
701
<varlistentry><term><parameter>quark</parameter> :</term>
702
<listitem><simpara>a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
703
</simpara></listitem></varlistentry>
704
<varlistentry><term><parameter>data</parameter> :</term>
705
<listitem><simpara>an opaque user data pointer
687
<varlistentry><term><parameter>pspec</parameter> :</term>
688
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to set store a user data pointer
689
</simpara></listitem></varlistentry>
690
<varlistentry><term><parameter>quark</parameter> :</term>
691
<listitem><simpara> a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
692
</simpara></listitem></varlistentry>
693
<varlistentry><term><parameter>data</parameter> :</term>
694
<listitem><simpara> an opaque user data pointer
708
695
</simpara></listitem></varlistentry>
709
696
</variablelist></refsect2>
711
<title><anchor id="g-param-spec-set-qdata-full" role="function"/>g_param_spec_set_qdata_full ()</title>
712
<indexterm><primary>g_param_spec_set_qdata_full</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_set_qdata_full (<link linkend="GParamSpec">GParamSpec</link> *pspec,
697
<refsect2 id="g-param-spec-set-qdata-full" role="function">
698
<title>g_param_spec_set_qdata_full ()</title>
699
<indexterm zone="g-param-spec-set-qdata-full"><primary sortas="g_param_spec_set_qdata_full">g_param_spec_set_qdata_full</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_set_qdata_full (<link linkend="GParamSpec">GParamSpec</link> *pspec,
713
700
<link linkend="GQuark">GQuark</link> quark,
714
701
<link linkend="gpointer">gpointer</link> data,
715
702
<link linkend="GDestroyNotify">GDestroyNotify</link> destroy);</programlisting>
717
This function works like <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link>, but in addition,
718
a <literal>void (*destroy) (gpointer)</literal> function may be
719
specified which is called with <parameter>data</parameter> as argument when the <parameter>pspec</parameter> is
720
finalized, or the data is being overwritten by a call to
721
<link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link> with the same <parameter>quark</parameter>.
704
This function works like <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link>, but in addition,
705
a <literal>void (*destroy) (gpointer)</literal> function may be
706
specified which is called with <parameter>data</parameter> as argument when the <parameter>pspec</parameter> is
707
finalized, or the data is being overwritten by a call to
708
<link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link> with the same <parameter>quark</parameter>.</para>
722
710
</para><variablelist role="params">
723
<varlistentry><term><parameter>pspec</parameter> :</term>
724
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to set store a user data pointer
725
</simpara></listitem></varlistentry>
726
<varlistentry><term><parameter>quark</parameter> :</term>
727
<listitem><simpara> a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
728
</simpara></listitem></varlistentry>
729
<varlistentry><term><parameter>data</parameter> :</term>
730
<listitem><simpara> an opaque user data pointer
731
</simpara></listitem></varlistentry>
732
<varlistentry><term><parameter>destroy</parameter> :</term>
733
<listitem><simpara>function to invoke with <parameter>data</parameter> as argument, when <parameter>data</parameter> needs to
711
<varlistentry><term><parameter>pspec</parameter> :</term>
712
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to set store a user data pointer
713
</simpara></listitem></varlistentry>
714
<varlistentry><term><parameter>quark</parameter> :</term>
715
<listitem><simpara> a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
716
</simpara></listitem></varlistentry>
717
<varlistentry><term><parameter>data</parameter> :</term>
718
<listitem><simpara> an opaque user data pointer
719
</simpara></listitem></varlistentry>
720
<varlistentry><term><parameter>destroy</parameter> :</term>
721
<listitem><simpara> function to invoke with <parameter>data</parameter> as argument, when <parameter>data</parameter> needs to
737
723
</simpara></listitem></varlistentry>
738
724
</variablelist></refsect2>
740
<title><anchor id="g-param-spec-steal-qdata" role="function"/>g_param_spec_steal_qdata ()</title>
741
<indexterm><primary>g_param_spec_steal_qdata</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_param_spec_steal_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
725
<refsect2 id="g-param-spec-steal-qdata" role="function">
726
<title>g_param_spec_steal_qdata ()</title>
727
<indexterm zone="g-param-spec-steal-qdata"><primary sortas="g_param_spec_steal_qdata">g_param_spec_steal_qdata</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_param_spec_steal_qdata (<link linkend="GParamSpec">GParamSpec</link> *pspec,
742
728
<link linkend="GQuark">GQuark</link> quark);</programlisting>
744
Gets back user data pointers stored via <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link> and
745
removes the <parameter>data</parameter> from <parameter>pspec</parameter> without invoking it's <link linkend="destroy"><function>destroy()</function></link> function
747
Usually, calling this function is only required to update
748
user data pointers with a destroy notifier.
730
Gets back user data pointers stored via <link linkend="g-param-spec-set-qdata"><function>g_param_spec_set_qdata()</function></link>
731
and removes the <parameter>data</parameter> from <parameter>pspec</parameter> without invoking it's <link linkend="destroy"><function>destroy()</function></link>
732
function (if any was set). Usually, calling this function is only
733
required to update user data pointers with a destroy notifier.</para>
749
735
</para><variablelist role="params">
750
<varlistentry><term><parameter>pspec</parameter> :</term>
751
<listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> to get a stored user data pointer from
752
</simpara></listitem></varlistentry>
753
<varlistentry><term><parameter>quark</parameter> :</term>
754
<listitem><simpara>a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
755
</simpara></listitem></varlistentry>
756
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the user data pointer set, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
736
<varlistentry><term><parameter>pspec</parameter> :</term>
737
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to get a stored user data pointer from
738
</simpara></listitem></varlistentry>
739
<varlistentry><term><parameter>quark</parameter> :</term>
740
<listitem><simpara> a <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
741
</simpara></listitem></varlistentry>
742
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the user data pointer set, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
759
743
</simpara></listitem></varlistentry>
760
744
</variablelist></refsect2>
762
<title><anchor id="g-param-spec-get-redirect-target" role="function" condition="since:2.4"/>g_param_spec_get_redirect_target ()</title>
763
<indexterm role="2.4"><primary>g_param_spec_get_redirect_target</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_get_redirect_target (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
745
<refsect2 id="g-param-spec-get-redirect-target" role="function" condition="since:2.4">
746
<title>g_param_spec_get_redirect_target ()</title>
747
<indexterm zone="g-param-spec-get-redirect-target" role="2.4"><primary sortas="g_param_spec_get_redirect_target">g_param_spec_get_redirect_target</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_get_redirect_target (<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
765
749
If the paramspec redirects operations to another paramspec,
766
750
returns that paramspec. Redirect is used typically for
848
837
The initialized structure is passed to the <link linkend="g-param-type-register-static"><function>g_param_type_register_static()</function></link>
849
838
The type system will perform a deep copy of this structure, so it's memory
850
839
does not need to be persistent across invocation of
851
<link linkend="g-param-type-register-static"><function>g_param_type_register_static()</function></link>.
840
<link linkend="g-param-type-register-static"><function>g_param_type_register_static()</function></link>.</para>
852
842
</para><variablelist role="struct">
854
<term><link linkend="guint16">guint16</link> <structfield>instance_size</structfield>;</term>
855
<listitem><simpara>Size of the instance (object) structure.
856
</simpara></listitem>
859
<term><link linkend="guint16">guint16</link> <structfield>n_preallocs</structfield>;</term>
860
<listitem><simpara>Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the <link linkend="glib-Memory-Slices">slice allocator</link> now.
861
</simpara></listitem>
864
<term><structfield>instance_init</structfield> ()</term>
865
<listitem><simpara>Location of the instance initialization function (optional).
866
</simpara></listitem>
869
<term><link linkend="GType">GType</link> <structfield>value_type</structfield>;</term>
870
<listitem><simpara>The <link linkend="GType"><type>GType</type></link> of values conforming to this <link linkend="GParamSpec"><type>GParamSpec</type></link>
871
</simpara></listitem>
874
<term><structfield>finalize</structfield> ()</term>
875
<listitem><simpara>The instance finalization function (optional).
876
</simpara></listitem>
879
<term><structfield>value_set_default</structfield> ()</term>
880
<listitem><simpara>Resets a <parameter>value</parameter> to the default value for <parameter>pspec</parameter>
881
(recommended, the default is <link linkend="g-value-reset"><function>g_value_reset()</function></link>), see
882
<link linkend="g-param-value-set-default"><function>g_param_value_set_default()</function></link>.
883
</simpara></listitem>
886
<term><structfield>value_validate</structfield> ()</term>
887
<listitem><simpara>Ensures that the contents of <parameter>value</parameter> comply with the
888
specifications set out by <parameter>pspec</parameter> (optional), see
889
<link linkend="g-param-value-set-validate"><function>g_param_value_set_validate()</function></link>.
890
</simpara></listitem>
893
<term><structfield>values_cmp</structfield> ()</term>
894
<listitem><simpara>Compares <parameter>value1</parameter> with <parameter>value2</parameter> according to <parameter>pspec</parameter>
895
(recommended, the default is <link linkend="memcmp"><function>memcmp()</function></link>), see <link linkend="g-param-values-cmp"><function>g_param_values_cmp()</function></link>.
844
<term><link linkend="guint16">guint16</link> <structfield>instance_size</structfield>;</term>
845
<listitem><simpara> Size of the instance (object) structure.
846
</simpara></listitem>
849
<term><link linkend="guint16">guint16</link> <structfield>n_preallocs</structfield>;</term>
850
<listitem><simpara> Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the <link linkend="glib-Memory-Slices">slice allocator</link> now.
851
</simpara></listitem>
854
<term><structfield>instance_init</structfield> ()</term>
855
<listitem><simpara> Location of the instance initialization function (optional).
856
</simpara></listitem>
859
<term><link linkend="GType">GType</link> <structfield>value_type</structfield>;</term>
860
<listitem><simpara> The <link linkend="GType"><type>GType</type></link> of values conforming to this <link linkend="GParamSpec"><type>GParamSpec</type></link>
861
</simpara></listitem>
864
<term><structfield>finalize</structfield> ()</term>
865
<listitem><simpara> The instance finalization function (optional).
866
</simpara></listitem>
869
<term><structfield>value_set_default</structfield> ()</term>
870
<listitem><simpara> Resets a <parameter>value</parameter> to the default value for <parameter>pspec</parameter>
871
(recommended, the default is <link linkend="g-value-reset"><function>g_value_reset()</function></link>), see
872
<link linkend="g-param-value-set-default"><function>g_param_value_set_default()</function></link>.
873
</simpara></listitem>
876
<term><structfield>value_validate</structfield> ()</term>
877
<listitem><simpara> Ensures that the contents of <parameter>value</parameter> comply with the
878
specifications set out by <parameter>pspec</parameter> (optional), see
879
<link linkend="g-param-value-set-validate"><function>g_param_value_set_validate()</function></link>.
880
</simpara></listitem>
883
<term><structfield>values_cmp</structfield> ()</term>
884
<listitem><simpara> Compares <parameter>value1</parameter> with <parameter>value2</parameter> according to <parameter>pspec</parameter>
885
(recommended, the default is <link linkend="memcmp"><function>memcmp()</function></link>), see <link linkend="g-param-values-cmp"><function>g_param_values_cmp()</function></link>.
897
886
</simpara></listitem>
899
888
</variablelist></refsect2>
901
<title><anchor id="g-param-type-register-static" role="function"/>g_param_type_register_static ()</title>
902
<indexterm><primary>g_param_type_register_static</primary></indexterm><programlisting><link linkend="GType">GType</link> g_param_type_register_static (const <link linkend="gchar">gchar</link> *name,
889
<refsect2 id="g-param-type-register-static" role="function">
890
<title>g_param_type_register_static ()</title>
891
<indexterm zone="g-param-type-register-static"><primary sortas="g_param_type_register_static">g_param_type_register_static</primary></indexterm><programlisting><link linkend="GType">GType</link> g_param_type_register_static (const <link linkend="gchar">gchar</link> *name,
903
892
const <link linkend="GParamSpecTypeInfo">GParamSpecTypeInfo</link> *pspec_info);</programlisting>
905
894
Registers <parameter>name</parameter> as the name of a new static type derived from
906
<link linkend="G-TYPE-PARAM:CAPS"><type>G_TYPE_PARAM</type></link>. The type system uses the information contained in the
907
<link linkend="GParamSpecTypeInfo"><type>GParamSpecTypeInfo</type></link> structure pointed to by <parameter>info</parameter> to manage the <link linkend="GParamSpec"><type>GParamSpec</type></link>
908
type and its instances.
895
<link linkend="G-TYPE-PARAM--CAPS"><type>G_TYPE_PARAM</type></link>. The type system uses the information contained in
896
the <link linkend="GParamSpecTypeInfo"><type>GParamSpecTypeInfo</type></link> structure pointed to by <parameter>info</parameter> to manage the
897
<link linkend="GParamSpec"><type>GParamSpec</type></link> type and its instances.</para>
909
899
</para><variablelist role="params">
910
<varlistentry><term><parameter>name</parameter> :</term>
911
<listitem><simpara>0-terminated string used as the name of the new <link linkend="GParamSpec"><type>GParamSpec</type></link> type.
912
</simpara></listitem></varlistentry>
913
<varlistentry><term><parameter>pspec_info</parameter> :</term>
914
<listitem><simpara>The <link linkend="GParamSpecTypeInfo"><type>GParamSpecTypeInfo</type></link> for this <link linkend="GParamSpec"><type>GParamSpec</type></link> type.
915
</simpara></listitem></varlistentry>
916
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The new type identifier.
900
<varlistentry><term><parameter>name</parameter> :</term>
901
<listitem><simpara> 0-terminated string used as the name of the new <link linkend="GParamSpec"><type>GParamSpec</type></link> type.
902
</simpara></listitem></varlistentry>
903
<varlistentry><term><parameter>pspec_info</parameter> :</term>
904
<listitem><simpara> The <link linkend="GParamSpecTypeInfo"><type>GParamSpecTypeInfo</type></link> for this <link linkend="GParamSpec"><type>GParamSpec</type></link> type.
905
</simpara></listitem></varlistentry>
906
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The new type identifier.
919
907
</simpara></listitem></varlistentry>
920
908
</variablelist></refsect2>
922
<title><anchor id="GParamSpecPool" role="struct"/>GParamSpecPool</title>
923
<indexterm><primary>GParamSpecPool</primary></indexterm><programlisting>typedef struct _GParamSpecPool GParamSpecPool;</programlisting>
909
<refsect2 id="GParamSpecPool" role="struct">
910
<title>GParamSpecPool</title>
911
<indexterm zone="GParamSpecPool"><primary sortas="GParamSpecPool">GParamSpecPool</primary></indexterm><programlisting>typedef struct _GParamSpecPool GParamSpecPool;</programlisting>
925
913
A <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link> maintains a collection of <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s which can be
926
914
quickly accessed by owner and name. The implementation of the <link linkend="GObject"><type>GObject</type></link> property
927
915
system uses such a pool to store the <link linkend="GParamSpecs"><type>GParamSpecs</type></link> of the properties all object
929
918
</para></refsect2>
931
<title><anchor id="g-param-spec-pool-new" role="function"/>g_param_spec_pool_new ()</title>
932
<indexterm><primary>g_param_spec_pool_new</primary></indexterm><programlisting><link linkend="GParamSpecPool">GParamSpecPool</link>* g_param_spec_pool_new (<link linkend="gboolean">gboolean</link> type_prefixing);</programlisting>
919
<refsect2 id="g-param-spec-pool-new" role="function">
920
<title>g_param_spec_pool_new ()</title>
921
<indexterm zone="g-param-spec-pool-new"><primary sortas="g_param_spec_pool_new">g_param_spec_pool_new</primary></indexterm><programlisting><link linkend="GParamSpecPool">GParamSpecPool</link>* g_param_spec_pool_new (<link linkend="gboolean">gboolean</link> type_prefixing);</programlisting>
934
923
Creates a new <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>.
937
If <parameter>type_prefixing</parameter> is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, lookups in the newly created pool will
938
allow to specify the owner as a colon-separated prefix of the property name,
939
like "GtkContainer:border-width". This feature is deprecated, so you should
940
always set <parameter>type_prefixing</parameter> to <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
926
If <parameter>type_prefixing</parameter> is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, lookups in the newly created pool will
927
allow to specify the owner as a colon-separated prefix of the
928
property name, like "GtkContainer:border-width". This feature is
929
deprecated, so you should always set <parameter>type_prefixing</parameter> to <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>.</para>
941
931
</para><variablelist role="params">
942
<varlistentry><term><parameter>type_prefixing</parameter> :</term>
943
<listitem><simpara>Whether the pool will support type-prefixed property names.
932
<varlistentry><term><parameter>type_prefixing</parameter> :</term>
933
<listitem><simpara> Whether the pool will support type-prefixed property names.
944
934
</simpara></listitem></varlistentry>
945
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a newly allocated <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>.
935
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly allocated <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>.
948
936
</simpara></listitem></varlistentry>
949
937
</variablelist></refsect2>
951
<title><anchor id="g-param-spec-pool-insert" role="function"/>g_param_spec_pool_insert ()</title>
952
<indexterm><primary>g_param_spec_pool_insert</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_pool_insert (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
938
<refsect2 id="g-param-spec-pool-insert" role="function">
939
<title>g_param_spec_pool_insert ()</title>
940
<indexterm zone="g-param-spec-pool-insert"><primary sortas="g_param_spec_pool_insert">g_param_spec_pool_insert</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_pool_insert (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
953
941
<link linkend="GParamSpec">GParamSpec</link> *pspec,
954
942
<link linkend="GType">GType</link> owner_type);</programlisting>
956
Inserts a <link linkend="GParamSpec"><type>GParamSpec</type></link> in the pool.
944
Inserts a <link linkend="GParamSpec"><type>GParamSpec</type></link> in the pool.</para>
957
946
</para><variablelist role="params">
958
<varlistentry><term><parameter>pool</parameter> :</term>
959
<listitem><simpara>a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>.
960
</simpara></listitem></varlistentry>
961
<varlistentry><term><parameter>pspec</parameter> :</term>
962
<listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> to insert
963
</simpara></listitem></varlistentry>
964
<varlistentry><term><parameter>owner_type</parameter> :</term>
965
<listitem><simpara>a <link linkend="GType"><type>GType</type></link> identifying the owner of <parameter>pspec</parameter>
947
<varlistentry><term><parameter>pool</parameter> :</term>
948
<listitem><simpara> a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>.
949
</simpara></listitem></varlistentry>
950
<varlistentry><term><parameter>pspec</parameter> :</term>
951
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to insert
952
</simpara></listitem></varlistentry>
953
<varlistentry><term><parameter>owner_type</parameter> :</term>
954
<listitem><simpara> a <link linkend="GType"><type>GType</type></link> identifying the owner of <parameter>pspec</parameter>
968
955
</simpara></listitem></varlistentry>
969
956
</variablelist></refsect2>
971
<title><anchor id="g-param-spec-pool-remove" role="function"/>g_param_spec_pool_remove ()</title>
972
<indexterm><primary>g_param_spec_pool_remove</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_pool_remove (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
957
<refsect2 id="g-param-spec-pool-remove" role="function">
958
<title>g_param_spec_pool_remove ()</title>
959
<indexterm zone="g-param-spec-pool-remove"><primary sortas="g_param_spec_pool_remove">g_param_spec_pool_remove</primary></indexterm><programlisting><link linkend="void">void</link> g_param_spec_pool_remove (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
973
960
<link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
975
Removes a <link linkend="GParamSpec"><type>GParamSpec</type></link> from the pool.
962
Removes a <link linkend="GParamSpec"><type>GParamSpec</type></link> from the pool.</para>
976
964
</para><variablelist role="params">
977
<varlistentry><term><parameter>pool</parameter> :</term>
978
<listitem><simpara>a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
965
<varlistentry><term><parameter>pool</parameter> :</term>
966
<listitem><simpara> a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
979
967
</simpara></listitem></varlistentry>
980
<varlistentry><term><parameter>pspec</parameter> :</term>
981
<listitem><simpara>the <link linkend="GParamSpec"><type>GParamSpec</type></link> to remove
968
<varlistentry><term><parameter>pspec</parameter> :</term>
969
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> to remove
984
970
</simpara></listitem></varlistentry>
985
971
</variablelist></refsect2>
987
<title><anchor id="g-param-spec-pool-lookup" role="function"/>g_param_spec_pool_lookup ()</title>
988
<indexterm><primary>g_param_spec_pool_lookup</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_pool_lookup (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
972
<refsect2 id="g-param-spec-pool-lookup" role="function">
973
<title>g_param_spec_pool_lookup ()</title>
974
<indexterm zone="g-param-spec-pool-lookup"><primary sortas="g_param_spec_pool_lookup">g_param_spec_pool_lookup</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>* g_param_spec_pool_lookup (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
989
975
const <link linkend="gchar">gchar</link> *param_name,
990
976
<link linkend="GType">GType</link> owner_type,
991
977
<link linkend="gboolean">gboolean</link> walk_ancestors);</programlisting>
993
Looks up a <link linkend="GParamSpec"><type>GParamSpec</type></link> in the pool.
979
Looks up a <link linkend="GParamSpec"><type>GParamSpec</type></link> in the pool.</para>
994
981
</para><variablelist role="params">
995
<varlistentry><term><parameter>pool</parameter> :</term>
996
<listitem><simpara>a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
997
</simpara></listitem></varlistentry>
998
<varlistentry><term><parameter>param_name</parameter> :</term>
999
<listitem><simpara>the name to look for
1000
</simpara></listitem></varlistentry>
1001
<varlistentry><term><parameter>owner_type</parameter> :</term>
1002
<listitem><simpara>the owner to look for
1003
</simpara></listitem></varlistentry>
1004
<varlistentry><term><parameter>walk_ancestors</parameter> :</term>
1005
<listitem><simpara>If <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, also try to find a <link linkend="GParamSpec"><type>GParamSpec</type></link> with <parameter>param_name</parameter>
1006
owned by an ancestor of <parameter>owner_type</parameter>.
1007
</simpara></listitem></varlistentry>
1008
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The found <link linkend="GParamSpec"><type>GParamSpec</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if no matching <link linkend="GParamSpec"><type>GParamSpec</type></link> was found.
982
<varlistentry><term><parameter>pool</parameter> :</term>
983
<listitem><simpara> a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
984
</simpara></listitem></varlistentry>
985
<varlistentry><term><parameter>param_name</parameter> :</term>
986
<listitem><simpara> the name to look for
987
</simpara></listitem></varlistentry>
988
<varlistentry><term><parameter>owner_type</parameter> :</term>
989
<listitem><simpara> the owner to look for
990
</simpara></listitem></varlistentry>
991
<varlistentry><term><parameter>walk_ancestors</parameter> :</term>
992
<listitem><simpara> If <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, also try to find a <link linkend="GParamSpec"><type>GParamSpec</type></link> with <parameter>param_name</parameter>
993
owned by an ancestor of <parameter>owner_type</parameter>.
994
</simpara></listitem></varlistentry>
995
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The found <link linkend="GParamSpec"><type>GParamSpec</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if no matching <link linkend="GParamSpec"><type>GParamSpec</type></link> was found.
1011
996
</simpara></listitem></varlistentry>
1012
997
</variablelist></refsect2>
1014
<title><anchor id="g-param-spec-pool-list" role="function"/>g_param_spec_pool_list ()</title>
1015
<indexterm><primary>g_param_spec_pool_list</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>** g_param_spec_pool_list (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
998
<refsect2 id="g-param-spec-pool-list" role="function">
999
<title>g_param_spec_pool_list ()</title>
1000
<indexterm zone="g-param-spec-pool-list"><primary sortas="g_param_spec_pool_list">g_param_spec_pool_list</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link>** g_param_spec_pool_list (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
1016
1001
<link linkend="GType">GType</link> owner_type,
1017
1002
<link linkend="guint">guint</link> *n_pspecs_p);</programlisting>
1019
Gets an array of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in the pool.
1004
Gets an array of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in
1020
1007
</para><variablelist role="params">
1021
<varlistentry><term><parameter>pool</parameter> :</term>
1022
<listitem><simpara>a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
1023
</simpara></listitem></varlistentry>
1024
<varlistentry><term><parameter>owner_type</parameter> :</term>
1025
<listitem><simpara>the owner to look for
1026
</simpara></listitem></varlistentry>
1027
<varlistentry><term><parameter>n_pspecs_p</parameter> :</term>
1028
<listitem><simpara>return location for the length of the returned array
1029
</simpara></listitem></varlistentry>
1030
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a newly allocated array containing pointers to all
1031
<link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in the pool
1008
<varlistentry><term><parameter>pool</parameter> :</term>
1009
<listitem><simpara> a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
1010
</simpara></listitem></varlistentry>
1011
<varlistentry><term><parameter>owner_type</parameter> :</term>
1012
<listitem><simpara> the owner to look for
1013
</simpara></listitem></varlistentry>
1014
<varlistentry><term><parameter>n_pspecs_p</parameter> :</term>
1015
<listitem><simpara> return location for the length of the returned array
1016
</simpara></listitem></varlistentry>
1017
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly allocated array containing pointers to all
1018
<link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in the pool
1034
1019
</simpara></listitem></varlistentry>
1035
1020
</variablelist></refsect2>
1037
<title><anchor id="g-param-spec-pool-list-owned" role="function"/>g_param_spec_pool_list_owned ()</title>
1038
<indexterm><primary>g_param_spec_pool_list_owned</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_param_spec_pool_list_owned (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
1021
<refsect2 id="g-param-spec-pool-list-owned" role="function">
1022
<title>g_param_spec_pool_list_owned ()</title>
1023
<indexterm zone="g-param-spec-pool-list-owned"><primary sortas="g_param_spec_pool_list_owned">g_param_spec_pool_list_owned</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_param_spec_pool_list_owned (<link linkend="GParamSpecPool">GParamSpecPool</link> *pool,
1039
1024
<link linkend="GType">GType</link> owner_type);</programlisting>
1041
Gets an <link linkend="GList"><type>GList</type></link> of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in the pool.
1026
Gets an <link linkend="GList"><type>GList</type></link> of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in
1042
1029
</para><variablelist role="params">
1043
<varlistentry><term><parameter>pool</parameter> :</term>
1044
<listitem><simpara>a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
1045
</simpara></listitem></varlistentry>
1046
<varlistentry><term><parameter>owner_type</parameter> :</term>
1047
<listitem><simpara>the owner to look for
1048
</simpara></listitem></varlistentry>
1049
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a <link linkend="GList"><type>GList</type></link> of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter> in
1050
the pool<link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s.
1030
<varlistentry><term><parameter>pool</parameter> :</term>
1031
<listitem><simpara> a <link linkend="GParamSpecPool"><type>GParamSpecPool</type></link>
1032
</simpara></listitem></varlistentry>
1033
<varlistentry><term><parameter>owner_type</parameter> :</term>
1034
<listitem><simpara> the owner to look for
1035
</simpara></listitem></varlistentry>
1036
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a <link linkend="GList"><type>GList</type></link> of all <link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s owned by <parameter>owner_type</parameter>
1037
in the pool<link linkend="GParamSpec"><type>GParamSpec</type></link><!-- -->s.
1053
1038
</simpara></listitem></varlistentry>
1054
1039
</variablelist></refsect2>