blob: 8bb5fcdca9319eb8c766056f0aec70b08712e84a (
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
|
<?xml version="1.0"?>
<page id="GIRepository.BaseInfo"
type="guide"
style="record"
xmlns="http://projectmallard.org/1.0/"
xmlns:ui="http://projectmallard.org/experimental/ui/">
<info>
<link type="guide" xref="index"/>
</info>
<title>GIRepository.BaseInfo</title>
<p>GIBaseInfo is the common base struct of all other *Info structs
accessible through the <link xref="GIRepository">GIRepository</link> API.
All other structs can be casted to a <link xref="GIBaseInfo">GIBaseInfo</link>, for instance:
<example>
<title>Casting a <link xref="GIFunctionInfo">GIFunctionInfo</link> to <link xref="GIBaseInfo">GIBaseInfo</link></title>
<programlisting>
GIFunctionInfo *function_info = ...;
GIBaseInfo *info = (GIBaseInfo*)function_info;
</programlisting>
</example>
Most <link xref="GIRepository">GIRepository</link> APIs returning a <link xref="GIBaseInfo">GIBaseInfo</link> is actually creating a new struct, in other
words, g_base_info_unref() has to be called when done accessing the data.
GIBaseInfos are normally accessed by calling either
g_irepository_find_by_name(), g_irepository_find_by_gtype() or g_irepository_get_info().</p><p><example>
<title>Getting the Button of the Gtk typelib</title>
<programlisting>
GIBaseInfo *button_info = g_irepository_find_by_name(NULL, "Gtk", "Button");
... use button_info ...
g_base_info_unref(button_info);
</programlisting>
</example></p><p><refsect1 id="gi-gibaseinfo.struct-hierarchy" role="struct_hierarchy">
<title role="struct_hierarchy.title">Struct hierarchy</title>
<synopsis>
GIBaseInfo
+----<link linkend="gi-GIArgInfo">GIArgInfo</link>
+----<link linkend="gi-GICallableInfo">GICallableInfo</link>
+----<link linkend="gi-GIConstantInfo">GIConstantInfo</link>
+----<link linkend="gi-GIFieldInfo">GIFieldInfo</link>
+----<link linkend="gi-GIPropertyInfo">GIPropertyInfo</link>
+----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
+----<link linkend="gi-GITypeInfo">GITypeInfo</link>
</synopsis>
</refsect1></p></page>
|