summaryrefslogtreecommitdiff
path: root/docs/reference/gtk/tmpl/gtkbuildable.sgml
blob: 7dd09bec8c89e7e960bdc4b10b4e087aac147112 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<!-- ##### SECTION Title ##### -->
GtkBuildable

<!-- ##### SECTION Short_Description ##### -->
Interface for objects that can be built by GtkBuilder

<!-- ##### SECTION Long_Description ##### -->
<para>
In order to allow construction from a <link linkend="BUILDER-UI">GtkBuilder 
UI description</link>, an object class must implement the 
GtkBuildable interface. The interface includes methods for setting 
names and properties of objects, parsing custom tags, constructing 
child objects.
</para>
<para>
The GtkBuildable interface is implemented by all widgets and 
many of the non-widget objects that are provided by GTK+. The
main user of this interface is #GtkBuilder, there should be
very little need for applications to call any 
<function>gtk_buildable_...</function> functions.
</para>

<!-- ##### SECTION See_Also ##### -->


<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT GtkBuildable ##### -->
<para>

</para>


<!-- ##### STRUCT GtkBuildableIface ##### -->
<para>
The GtkBuildableIface interface contains method that are
necessary to allow #GtkBuilder to construct an object from
a GtkBuilder UI definition.
</para>

@g_iface: the parent class
@set_name: Stores the name attribute given in the GtkBuilder UI definition.
  #GtkWidget stores the name as object data. Implement this method if your
  object has some notion of "name" and it makes sense to map the XML name
  attribute to it.
@get_name: The getter corresponding to @set_name. Implement this
  if you implement @set_name.
@add_child: Adds a child. The @type parameter can be used to 
  differentiate the kind of child. #GtkContainer implements this 
  to add add a child widget to the container, #GtkNotebook uses 
  the @type to distinguish between page labels (of type "page-label") 
  and normal children.
@set_buildable_property: Sets a property of a buildable object.
  It is normally not necessary to implement this, g_object_set_property()
  is used by default. #GtkWindow implements this to delay showing itself
  (i.e. setting the #GtkWidget:visible property) until the whole interface 
  is created.
@construct_child: Constructs a child of a buildable that has been
  specified as "constructor" in the UI definition. #GtkUIManager implements 
  this to reference to a widget created in a &lt;ui&gt; tag which is outside 
  of the normal GtkBuilder UI definition hierarchy.  A reference to the
  constructed object is returned and becomes owned by the caller.
@custom_tag_start: Implement this if the buildable needs to parse 
  content below &lt;child&gt;. To handle an element, the implementation
  must fill in the @parser structure and @user_data and return %TRUE.
  #GtkWidget implements this to parse keyboard accelerators specified
  in &lt;accelerator&gt; elements. #GtkContainer implements it to map 
  properties defined via &lt;packing&gt; elements to child properties.
  Note that @user_data must be freed in @custom_tag_end or @custom_finished.
@custom_tag_end: Called for the end tag of each custom element that is
  handled by the buildable (see @custom_tag_start).
@custom_finished: Called for each custom tag handled by the buildable
  when the builder finishes parsing (see @custom_tag_start)
@parser_finished: Called when a builder finishes the parsing
  of a UI definition. It is normally not necessary to implement this,
  unless you need to perform special cleanup actions. #GtkWindow sets
  the #GtkWidget:visible property here.
@get_internal_child: Returns an internal child of a buildable. 
  #GtkDialog implements this to give access to its @vbox, making
  it possible to add children to the vbox in a UI definition.
  Implement this if the buildable has internal children that may
  need to be accessed from a UI definition.

<!-- ##### FUNCTION gtk_buildable_set_name ##### -->
<para>

</para>

@buildable: 
@name: 


<!-- ##### FUNCTION gtk_buildable_get_name ##### -->
<para>

</para>

@buildable: 
@Returns: 


<!-- ##### FUNCTION gtk_buildable_add_child ##### -->
<para>

</para>

@buildable: 
@builder: 
@child: 
@type: 


<!-- ##### FUNCTION gtk_buildable_set_buildable_property ##### -->
<para>

</para>

@buildable: 
@builder: 
@name: 
@value: 


<!-- ##### FUNCTION gtk_buildable_construct_child ##### -->
<para>

</para>

@buildable: 
@builder: 
@name: 
@Returns: 


<!-- ##### FUNCTION gtk_buildable_custom_tag_start ##### -->
<para>

</para>

@buildable: 
@builder: 
@child: 
@tagname: 
@parser: 
@data: 
@Returns: 


<!-- ##### FUNCTION gtk_buildable_custom_tag_end ##### -->
<para>

</para>

@buildable: 
@builder: 
@child: 
@tagname: 
@data: 


<!-- ##### FUNCTION gtk_buildable_custom_finished ##### -->
<para>

</para>

@buildable: 
@builder: 
@child: 
@tagname: 
@data: 


<!-- ##### FUNCTION gtk_buildable_parser_finished ##### -->
<para>

</para>

@buildable: 
@builder: 


<!-- ##### FUNCTION gtk_buildable_get_internal_child ##### -->
<para>

</para>

@buildable: 
@builder: 
@childname: 
@Returns: