aboutsummaryrefslogtreecommitdiff
path: root/docs/libdbusmenu-gtk/reference/xml/serializablemenuitem.xml
blob: 05fad23e0807e34423e477e2d25a11a76fafc009 (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
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<refentry id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem">
<refmeta>
<refentrytitle role="top_of_page" id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem.top_of_page">DbusmenuGtkSerializableMenuItem</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>
  LIBDBUSMENU-GTK Library
</refmiscinfo>
</refmeta>
<refnamediv>
<refname>DbusmenuGtkSerializableMenuItem</refname>
<refpurpose>A way to build <link linkend="GtkMenuItems"><type>GtkMenuItems</type></link> that can be sent over Dbusmenu</refpurpose>
</refnamediv>
<refsect1 id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem.stability-level">
<title>Stability Level</title>
Unstable, unless otherwise indicated
</refsect1>

<refsynopsisdiv id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
#include &lt;libdbusmenu-gtk/serializablemenuitem.h&gt;

#define             <link linkend="DBUSMENU-GTK-SERIALIZABLE-MENU-ITEM-PROP-MENUITEM:CAPS">DBUSMENU_GTK_SERIALIZABLE_MENU_ITEM_PROP_MENUITEM</link>
struct              <link linkend="DbusmenuGtkSerializableMenuItemClass">DbusmenuGtkSerializableMenuItemClass</link>;
<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> *   <link linkend="dbusmenu-gtk-serializable-menu-item-build-menuitem">dbusmenu_gtk_serializable_menu_item_build_menuitem</link>
                                                        (<parameter><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> *smi</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="dbusmenu-gtk-serializable-menu-item-register-to-client">dbusmenu_gtk_serializable_menu_item_register_to_client</link>
                                                        (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
                                                         <parameter><link linkend="GType"><type>GType</type></link> item_type</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="dbusmenu-gtk-serializable-menu-item-set-menuitem">dbusmenu_gtk_serializable_menu_item_set_menuitem</link>
                                                        (<parameter><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> *smi</parameter>,
                                                         <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
</synopsis>
</refsynopsisdiv>

<refsect1 id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem.description" role="desc">
<title role="desc.title">Description</title>
<para>
Menuitems can subclass from this instead of <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> and
	by providing the appropriate functions Dbusmenu will be able
	to parse them and send them over the bus.
</para>
</refsect1>
<refsect1 id="libdbusmenu-gtk-DbusmenuGtkSerializableMenuItem.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="DBUSMENU-GTK-SERIALIZABLE-MENU-ITEM-PROP-MENUITEM:CAPS" role="macro">
<title>DBUSMENU_GTK_SERIALIZABLE_MENU_ITEM_PROP_MENUITEM</title>
<indexterm zone="DBUSMENU-GTK-SERIALIZABLE-MENU-ITEM-PROP-MENUITEM:CAPS"><primary>DBUSMENU_GTK_SERIALIZABLE_MENU_ITEM_PROP_MENUITEM</primary></indexterm>
<programlisting>#define DBUSMENU_GTK_SERIALIZABLE_MENU_ITEM_PROP_MENUITEM   "dbusmenu-menuitem"
</programlisting>
<para>
String to access property <link linkend="DbusmenuGtkSerializableMenuItem--dbusmenu-menuitem"><type>"dbusmenu-menuitem"</type></link>
</para></refsect2>
<refsect2 id="DbusmenuGtkSerializableMenuItemClass" role="struct">
<title>struct DbusmenuGtkSerializableMenuItemClass</title>
<indexterm zone="DbusmenuGtkSerializableMenuItemClass"><primary>DbusmenuGtkSerializableMenuItemClass</primary></indexterm>
<programlisting>struct DbusmenuGtkSerializableMenuItemClass {
	GtkMenuItemClass parent_class;

	/* Subclassable functions */
	const gchar *        (*get_type_string)          (void);
	GHashTable *         (*get_default_properties)   (void);

	DbusmenuMenuitem *   (*build_dbusmenu_menuitem)    (DbusmenuGtkSerializableMenuItem * smi);

	/* Signals */



	/* Empty Space */
	/*&lt; Private &gt;*/
	void (*_dbusmenu_gtk_serializable_menu_item_reserved1) (void);
	void (*_dbusmenu_gtk_serializable_menu_item_reserved2) (void);
	void (*_dbusmenu_gtk_serializable_menu_item_reserved3) (void);
	void (*_dbusmenu_gtk_serializable_menu_item_reserved4) (void);
	void (*_dbusmenu_gtk_serializable_menu_item_reserved5) (void);
	void (*_dbusmenu_gtk_serializable_menu_item_reserved6) (void);
};
</programlisting>
<para>
Signals and functions for <link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link>.
</para><variablelist role="struct">
<varlistentry><term><link linkend="GtkMenuItemClass"><type>GtkMenuItemClass</type></link>&#160;<structfield id="DbusmenuGtkSerializableMenuItemClass.parent-class">parent_class</structfield>;</term>
<listitem><simpara>Inherit from GtkMenuItem</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.get-type-string">get_type_string</structfield>&#160;()</term>
<listitem><simpara>Static function to get a string describing this type</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.get-default-properties">get_default_properties</structfield>&#160;()</term>
<listitem><simpara>Return a hashtable of defaults for the menu item type</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.build-dbusmenu-menuitem">build_dbusmenu_menuitem</structfield>&#160;()</term>
<listitem><simpara>Build a menuitem that can be sent over dbus</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved1">_dbusmenu_gtk_serializable_menu_item_reserved1</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved2">_dbusmenu_gtk_serializable_menu_item_reserved2</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved3">_dbusmenu_gtk_serializable_menu_item_reserved3</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved4">_dbusmenu_gtk_serializable_menu_item_reserved4</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved5">_dbusmenu_gtk_serializable_menu_item_reserved5</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
<varlistentry><term><structfield id="DbusmenuGtkSerializableMenuItemClass.-dbusmenu-gtk-serializable-menu-item-reserved6">_dbusmenu_gtk_serializable_menu_item_reserved6</structfield>&#160;()</term>
<listitem><simpara>Reserved for future use.</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="dbusmenu-gtk-serializable-menu-item-build-menuitem" role="function">
<title>dbusmenu_gtk_serializable_menu_item_build_menuitem ()</title>
<indexterm zone="dbusmenu-gtk-serializable-menu-item-build-menuitem"><primary>dbusmenu_gtk_serializable_menu_item_build_menuitem</primary></indexterm>
<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> *   dbusmenu_gtk_serializable_menu_item_build_menuitem
                                                        (<parameter><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> *smi</parameter>);</programlisting>
<para>
This function is for menu items that are instanciated from
GTK and have their properites set using GTK functions.  This
builds a <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that then has the properties that
should be sent over the bus to create a new item of this
type on the other side.
</para><variablelist role="params">
<varlistentry><term><parameter>smi</parameter>&#160;:</term>
<listitem><simpara><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> to build a <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> mirroring</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> who's values will be
set by this object. <emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="dbusmenu-gtk-serializable-menu-item-register-to-client" role="function">
<title>dbusmenu_gtk_serializable_menu_item_register_to_client ()</title>
<indexterm zone="dbusmenu-gtk-serializable-menu-item-register-to-client"><primary>dbusmenu_gtk_serializable_menu_item_register_to_client</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                dbusmenu_gtk_serializable_menu_item_register_to_client
                                                        (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
                                                         <parameter><link linkend="GType"><type>GType</type></link> item_type</parameter>);</programlisting>
<para>
Registers a generic handler for dealing with all subclasses of
<link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link>.  This handler responds to the callback,
creates a new object and attaches it to the appropriate <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>
object.
</para><variablelist role="params">
<varlistentry><term><parameter>client</parameter>&#160;:</term>
<listitem><simpara><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> that we should register a type at.</simpara></listitem></varlistentry>
<varlistentry><term><parameter>item_type</parameter>&#160;:</term>
<listitem><simpara>The <link linkend="GType"><type>GType</type></link> of a class that is a subclass of <link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link></simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="dbusmenu-gtk-serializable-menu-item-set-menuitem" role="function">
<title>dbusmenu_gtk_serializable_menu_item_set_menuitem ()</title>
<indexterm zone="dbusmenu-gtk-serializable-menu-item-set-menuitem"><primary>dbusmenu_gtk_serializable_menu_item_set_menuitem</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                dbusmenu_gtk_serializable_menu_item_set_menuitem
                                                        (<parameter><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> *smi</parameter>,
                                                         <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
<para>
This function is used on the server side to signal to the object
that it should get its' property change events from <parameter>mi</parameter> instead
of expecting calls to its' API.  A call to this function sets the
property and subclasses should listen to the notify signal to
pick up this property being set.
</para><variablelist role="params">
<varlistentry><term><parameter>smi</parameter>&#160;:</term>
<listitem><simpara><link linkend="DbusmenuGtkSerializableMenuItem"><type>DbusmenuGtkSerializableMenuItem</type></link> to set the <parameter>DbusmenuGtkSerializableMenuItem</parameter>::dbusmenu-menuitem of</simpara></listitem></varlistentry>
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>Menuitem to get the properties from</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>

</refentry>