aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--ChangeLog176
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.am.coverage48
-rw-r--r--Makefile.in91
-rwxr-xr-xconfigure456
-rw-r--r--configure.ac20
-rw-r--r--debian/changelog9
-rw-r--r--docs/Makefile.in10
-rw-r--r--docs/libdbusmenu-glib/Makefile.in10
-rw-r--r--docs/libdbusmenu-glib/reference/Makefile.in10
-rw-r--r--docs/libdbusmenu-glib/reference/html/annotation-glossary.html83
-rw-r--r--docs/libdbusmenu-glib/reference/html/api-index-deprecated.html31
-rw-r--r--docs/libdbusmenu-glib/reference/html/api-index-full.html593
-rw-r--r--docs/libdbusmenu-glib/reference/html/ch01.html50
-rw-r--r--docs/libdbusmenu-glib/reference/html/home.pngbin0 -> 578 bytes
-rw-r--r--docs/libdbusmenu-glib/reference/html/index.html49
-rw-r--r--docs/libdbusmenu-glib/reference/html/index.sgml176
-rw-r--r--docs/libdbusmenu-glib/reference/html/left.pngbin0 -> 373 bytes
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html607
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html1893
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitemProxy.html166
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuServer.html412
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-Types.html276
-rw-r--r--docs/libdbusmenu-glib/reference/html/libdbusmenu-glib.devhelp2161
-rw-r--r--docs/libdbusmenu-glib/reference/html/object-tree.html32
-rw-r--r--docs/libdbusmenu-glib/reference/html/right.pngbin0 -> 380 bytes
-rw-r--r--docs/libdbusmenu-glib/reference/html/style.css266
-rw-r--r--docs/libdbusmenu-glib/reference/html/up.pngbin0 -> 291 bytes
-rw-r--r--docs/libdbusmenu-glib/reference/libdbusmenu-glib-sections.txt1
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/client.sgml228
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/libdbusmenu-glib-unused.sgml0
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml59
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml721
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/server.sgml171
-rw-r--r--docs/libdbusmenu-glib/reference/tmpl/types.sgml109
-rw-r--r--docs/libdbusmenu-glib/reference/version.xml2
-rw-r--r--docs/libdbusmenu-glib/reference/xml/annotation-glossary.xml80
-rw-r--r--docs/libdbusmenu-glib/reference/xml/api-index-deprecated.xml8
-rw-r--r--docs/libdbusmenu-glib/reference/xml/api-index-full.xml153
-rw-r--r--docs/libdbusmenu-glib/reference/xml/client.xml448
-rw-r--r--docs/libdbusmenu-glib/reference/xml/menuitem-proxy.xml114
-rw-r--r--docs/libdbusmenu-glib/reference/xml/menuitem.xml1331
-rw-r--r--docs/libdbusmenu-glib/reference/xml/server.xml309
-rw-r--r--docs/libdbusmenu-glib/reference/xml/types.xml192
-rw-r--r--docs/libdbusmenu-gtk/Makefile.in10
-rw-r--r--docs/libdbusmenu-gtk/reference/Makefile.in10
-rw-r--r--docs/libdbusmenu-gtk/reference/html/annotation-glossary.html47
-rw-r--r--docs/libdbusmenu-gtk/reference/html/api-index-deprecated.html31
-rw-r--r--docs/libdbusmenu-gtk/reference/html/api-index-full.html119
-rw-r--r--docs/libdbusmenu-gtk/reference/html/ch01.html45
-rw-r--r--docs/libdbusmenu-gtk/reference/html/home.pngbin0 -> 578 bytes
-rw-r--r--docs/libdbusmenu-gtk/reference/html/index.html44
-rw-r--r--docs/libdbusmenu-gtk/reference/html/index.sgml43
-rw-r--r--docs/libdbusmenu-gtk/reference/html/left.pngbin0 -> 373 bytes
-rw-r--r--docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html347
-rw-r--r--docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html187
-rw-r--r--docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html274
-rw-r--r--docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-parser.html118
-rw-r--r--docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk.devhelp238
-rw-r--r--docs/libdbusmenu-gtk/reference/html/object-tree.html32
-rw-r--r--docs/libdbusmenu-gtk/reference/html/right.pngbin0 -> 380 bytes
-rw-r--r--docs/libdbusmenu-gtk/reference/html/style.css266
-rw-r--r--docs/libdbusmenu-gtk/reference/html/up.pngbin0 -> 291 bytes
-rw-r--r--docs/libdbusmenu-gtk/reference/tmpl/client.sgml110
-rw-r--r--docs/libdbusmenu-gtk/reference/tmpl/libdbusmenu-gtk-unused.sgml0
-rw-r--r--docs/libdbusmenu-gtk/reference/tmpl/menu.sgml56
-rw-r--r--docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml86
-rw-r--r--docs/libdbusmenu-gtk/reference/tmpl/parser.sgml42
-rw-r--r--docs/libdbusmenu-gtk/reference/version.xml2
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/annotation-glossary.xml32
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/api-index-deprecated.xml8
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/api-index-full.xml32
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/client.xml238
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/menu.xml133
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/menuitem.xml178
-rw-r--r--docs/libdbusmenu-gtk/reference/xml/parser.xml77
-rw-r--r--libdbusmenu-glib/Makefile.am9
-rw-r--r--libdbusmenu-glib/Makefile.in21
-rw-r--r--libdbusmenu-glib/client.c479
-rw-r--r--libdbusmenu-glib/client.h6
-rw-r--r--libdbusmenu-glib/dbus-menu-clean.xml23
-rw-r--r--libdbusmenu-glib/dbus-menu-clean.xml.c23
-rw-r--r--libdbusmenu-glib/dbus-menu.xml46
-rw-r--r--libdbusmenu-glib/server.c189
-rw-r--r--libdbusmenu-gtk/Makefile.am10
-rw-r--r--libdbusmenu-gtk/Makefile.in22
-rw-r--r--m4/gcov.m486
-rw-r--r--tests/Makefile.am24
-rw-r--r--tests/Makefile.in71
-rw-r--r--tests/test-glib-events-nogroup-client.c142
-rw-r--r--tools/Makefile.in10
-rw-r--r--tools/testapp/Makefile.in10
93 files changed, 13204 insertions, 126 deletions
diff --git a/AUTHORS b/AUTHORS
index 3b95005..1cd368d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2,6 +2,7 @@
Alberto Mardegan
Alex Launi
+ Allan LeSage
Ara Pulido
Aurelien Gateau
Aurélien Gâteau
diff --git a/ChangeLog b/ChangeLog
index 232ca73..63fd031 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,181 @@
# Generated by Makefile. Do not edit.
+2012-04-04 Charles Kerr <charles.kerr@canonical.com>
+
+ 0.5.97
+
+2012-04-04 Charles Kerr <charles.kerr@canonical.com>
+
+ Merge lp:~ted/dbusmenu/event-grouping to reduce the number of dbus messages that hud-service sends.
+
+ This change takes all of the events on a client and puts them into single dbus messages to be sent to the server. It also does the same thing for about-to-show messages. Both sets of messages are reserialized on either side to make callers unable to notice the difference.
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Fixing a cut-and-paste comment
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Switching to GQueue
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Attaching bug
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Adding the group events property
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Fill out the group callback to update if we need it
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Fleshing out the idle handler for about to show
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Setup our idle if we're grouping the events
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Set up the about-to-show task tracking variables
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Pulling out parts of about to show so that we have a core function there
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Adding a test that disables the event grouping
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Set and get the event grouping and notify if we change it
+
+2012-04-03 Ted Gould <ted@gould.cx>
+
+ Add a property to whether we should group events or not
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Making sure to clear the idle so we queue again
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Unpacking the tuple
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Making sure to init our error
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Making sure the variant is appropriately wrapped
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ If we're going to unref we should set to NULL to catch potential errors
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Checking the version of the server to see if we can group the properties
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Okay, making all the callbacks real and returning appropriate errors
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Make the getting of properties debug messages as they can happen in normal usage
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Putting a warning in dispose for something we shouldn't have to do
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Setting up our callback function
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Flesh out the idle callback so we're not actually sending a message on DBus!
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Switching to a linked list of event_data structures getting passed to the idle function
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Splitting out the ending of the event_data object
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Handle the case of sending to the idle.
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Start by adding the data we're going to need to our private structure
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Move the actual about-to-show call into the idle incase we get a ton of them (I'm looking at you HUD)
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Fleshing out the about-to-show group handler
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Make it so the memory handling of the event_core function is more predictable and correct.
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Fleshing out the event group function
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Adding a way to give a partial error of IDs not being found
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Pulling the core event handling into its own function
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Merging trunk
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Put in functions to handle the new group functions
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Adding two grouping functions for events and about to show
+
+2012-03-30 Ted Gould <ted@gould.cx>
+
+ Bumping the version of the wire protocol
+
+2012-04-03 Charles Kerr <charles.kerr@canonical.com>
+
+ Merge lp:~allanlesage/dbusmenu/TDD to add gcov targets to autotools build for code-coverage reporting. For more information, see this blog post: http://qualityhour.wordpress.com/2012/01/29/test-coverage-tutorial-for-cc-autotools-projects/ .
+
+ To compile with coverage tooling, ./autogen.sh --enable-gcov, then make coverage-html . Note that you'll need lcov to autoconf. Also note that you'll get an error on make if you have no tests, as there are no coverage artifacts to generate the html report. For review, please pay special attention to flags added in the project's makefiles.
+
+2012-03-27 Allan LeSage <allanlesage@gmail.com>
+
+ Added gcov coverage tooling.
+
+2012-04-02 Charles Kerr <charles.kerr@canonical.com>
+
+ merge lp:~ted/dbusmenu/valgrind-no-libs to fix the valgrind tests on ARM. h/t goes to sewardj
+
+2012-04-02 Ted Gould <ted@gould.cx>
+
+ Turns out we don't need the valgrind libs to use those macros, the pkgconfig file is over zealous. Thanks go to sewardj!
+
2012-03-29 Charles Kerr <charles.kerr@canonical.com>
0.5.96
diff --git a/Makefile.am b/Makefile.am
index 6b11b31..948cb3d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,3 +53,5 @@ dist-hook:
else \
echo Failed to generate AUTHORS: not a branch >&2; \
fi
+
+include $(top_srcdir)/Makefile.am.coverage
diff --git a/Makefile.am.coverage b/Makefile.am.coverage
new file mode 100644
index 0000000..fb97747
--- /dev/null
+++ b/Makefile.am.coverage
@@ -0,0 +1,48 @@
+
+# Coverage targets
+
+.PHONY: clean-gcno clean-gcda \
+ coverage-html generate-coverage-html clean-coverage-html \
+ coverage-gcovr generate-coverage-gcovr clean-coverage-gcovr
+
+clean-local: clean-gcno clean-coverage-html clean-coverage-gcovr
+
+if HAVE_GCOV
+
+clean-gcno:
+ @echo Removing old coverage instrumentation
+ -find -name '*.gcno' -print | xargs -r rm
+
+clean-gcda:
+ @echo Removing old coverage results
+ -find -name '*.gcda' -print | xargs -r rm
+
+coverage-html: clean-gcda
+ -$(MAKE) $(AM_MAKEFLAGS) -k check
+ $(MAKE) $(AM_MAKEFLAGS) generate-coverage-html
+
+generate-coverage-html:
+ @echo Collecting coverage data
+ $(LCOV) --directory $(top_builddir) --capture --output-file coverage.info --no-checksum --compat-libtool
+ LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --show-details coverage.info
+
+clean-coverage-html: clean-gcda
+ -$(LCOV) --directory $(top_builddir) -z
+ -rm -rf coverage.info coveragereport
+
+if HAVE_GCOVR
+
+coverage-gcovr: clean-gcda
+ -$(MAKE) $(AM_MAKEFLAGS) -k check
+ $(MAKE) $(AM_MAKEFLAGS) generate-coverage-gcovr
+
+generate-coverage-gcovr:
+ @echo Generating coverage GCOVR report
+ $(GCOVR) -x -r $(top_builddir) -o $(top_builddir)/coverage.xml
+
+clean-coverage-gcovr: clean-gcda
+ -rm -rf $(top_builddir)/coverage.xml
+
+endif # HAVE_GCOVR
+
+endif # HAVE_GCOV
diff --git a/Makefile.in b/Makefile.in
index 1d8f66b..f7cce61 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,6 +14,8 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
+
+# Coverage targets
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@@ -33,19 +35,19 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
- compile config.guess config.sub depcomp install-sh ltmain.sh \
- missing mkinstalldirs
+ $(top_srcdir)/Makefile.am.coverage $(top_srcdir)/configure \
+ AUTHORS COPYING ChangeLog INSTALL NEWS compile config.guess \
+ config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
+subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -131,6 +133,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -141,6 +145,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -156,6 +162,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -191,6 +199,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -236,6 +245,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
@@ -318,7 +328,7 @@ all: config.h
.SUFFIXES:
am--refresh: Makefile
@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.coverage $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -341,6 +351,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/Makefile.am.coverage:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
@@ -740,7 +751,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
-clean-am: clean-generic clean-libtool mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -813,20 +824,20 @@ uninstall-am:
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
- clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
- dist-gzip dist-hook dist-lzip dist-lzma dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am
+ clean-libtool clean-local ctags ctags-recursive dist dist-all \
+ dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma dist-shar \
+ dist-tarZ dist-xz dist-zip distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am
#
@@ -858,6 +869,44 @@ dist-hook:
echo Failed to generate AUTHORS: not a branch >&2; \
fi
+.PHONY: clean-gcno clean-gcda \
+ coverage-html generate-coverage-html clean-coverage-html \
+ coverage-gcovr generate-coverage-gcovr clean-coverage-gcovr
+
+clean-local: clean-gcno clean-coverage-html clean-coverage-gcovr
+
+@HAVE_GCOV_TRUE@clean-gcno:
+@HAVE_GCOV_TRUE@ @echo Removing old coverage instrumentation
+@HAVE_GCOV_TRUE@ -find -name '*.gcno' -print | xargs -r rm
+
+@HAVE_GCOV_TRUE@clean-gcda:
+@HAVE_GCOV_TRUE@ @echo Removing old coverage results
+@HAVE_GCOV_TRUE@ -find -name '*.gcda' -print | xargs -r rm
+
+@HAVE_GCOV_TRUE@coverage-html: clean-gcda
+@HAVE_GCOV_TRUE@ -$(MAKE) $(AM_MAKEFLAGS) -k check
+@HAVE_GCOV_TRUE@ $(MAKE) $(AM_MAKEFLAGS) generate-coverage-html
+
+@HAVE_GCOV_TRUE@generate-coverage-html:
+@HAVE_GCOV_TRUE@ @echo Collecting coverage data
+@HAVE_GCOV_TRUE@ $(LCOV) --directory $(top_builddir) --capture --output-file coverage.info --no-checksum --compat-libtool
+@HAVE_GCOV_TRUE@ LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --show-details coverage.info
+
+@HAVE_GCOV_TRUE@clean-coverage-html: clean-gcda
+@HAVE_GCOV_TRUE@ -$(LCOV) --directory $(top_builddir) -z
+@HAVE_GCOV_TRUE@ -rm -rf coverage.info coveragereport
+
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@coverage-gcovr: clean-gcda
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@ -$(MAKE) $(AM_MAKEFLAGS) -k check
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@ $(MAKE) $(AM_MAKEFLAGS) generate-coverage-gcovr
+
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@generate-coverage-gcovr:
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@ @echo Generating coverage GCOVR report
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@ $(GCOVR) -x -r $(top_builddir) -o $(top_builddir)/coverage.xml
+
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@clean-coverage-gcovr: clean-gcda
+@HAVE_GCOVR_TRUE@@HAVE_GCOV_TRUE@ -rm -rf $(top_builddir)/coverage.xml
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/configure b/configure
index 5822f09..fc16a7d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libdbusmenu 0.5.96.
+# Generated by GNU Autoconf 2.68 for libdbusmenu 0.5.97.
#
# Report bugs to <ted@canonical.com>.
#
@@ -572,8 +572,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libdbusmenu'
PACKAGE_TARNAME='libdbusmenu'
-PACKAGE_VERSION='0.5.96'
-PACKAGE_STRING='libdbusmenu 0.5.96'
+PACKAGE_VERSION='0.5.97'
+PACKAGE_STRING='libdbusmenu 0.5.97'
PACKAGE_BUGREPORT='ted@canonical.com'
PACKAGE_URL=''
@@ -617,6 +617,18 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+COVERAGE_LDFLAGS
+COVERAGE_CFLAGS
+HAVE_GCOVR_FALSE
+HAVE_GCOVR_TRUE
+HAVE_LCOV_FALSE
+HAVE_LCOV_TRUE
+HAVE_GCOV_FALSE
+HAVE_GCOV_TRUE
+GCOVR
+GENHTML
+LCOV
+SHTOOL
MKINSTALLDIRS
POSUB
POFILES
@@ -648,6 +660,8 @@ INTROSPECTION_GIRDIR
INTROSPECTION_GENERATE
INTROSPECTION_COMPILER
INTROSPECTION_SCANNER
+DBUSMENUTESTSVALGRIND_LIBS
+DBUSMENUTESTSVALGRIND_CFLAGS
DBUSMENUTESTS_LIBS
DBUSMENUTESTS_CFLAGS
WANT_TESTS_FALSE
@@ -872,6 +886,7 @@ enable_tests
enable_introspection
enable_vala
enable_massivedebugging
+enable_gcov
'
ac_precious_vars='build_alias
host_alias
@@ -894,7 +909,9 @@ DBUSMENUGTK_LIBS
DBUSMENUDUMPER_CFLAGS
DBUSMENUDUMPER_LIBS
DBUSMENUTESTS_CFLAGS
-DBUSMENUTESTS_LIBS'
+DBUSMENUTESTS_LIBS
+DBUSMENUTESTSVALGRIND_CFLAGS
+DBUSMENUTESTSVALGRIND_LIBS'
# Initialize some variables set by options.
@@ -1437,7 +1454,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libdbusmenu 0.5.96 to adapt to many kinds of systems.
+\`configure' configures libdbusmenu 0.5.97 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1507,7 +1524,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libdbusmenu 0.5.96:";;
+ short | recursive ) echo "Configuration of libdbusmenu 0.5.97:";;
esac
cat <<\_ACEOF
@@ -1539,6 +1556,7 @@ Optional Features:
--disable-vala Disable vala
--enable-massivedebugging
Print out so much information your brain will hurt
+ --enable-gcov enable coverage testing with gcov
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1589,6 +1607,11 @@ Some influential environment variables:
C compiler flags for DBUSMENUTESTS, overriding pkg-config
DBUSMENUTESTS_LIBS
linker flags for DBUSMENUTESTS, overriding pkg-config
+ DBUSMENUTESTSVALGRIND_CFLAGS
+ C compiler flags for DBUSMENUTESTSVALGRIND, overriding
+ pkg-config
+ DBUSMENUTESTSVALGRIND_LIBS
+ linker flags for DBUSMENUTESTSVALGRIND, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1656,7 +1679,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libdbusmenu configure 0.5.96
+libdbusmenu configure 0.5.97
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2027,7 +2050,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libdbusmenu $as_me 0.5.96, which was
+It was created by libdbusmenu $as_me 0.5.97, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2848,7 +2871,7 @@ fi
# Define the identity of the package.
PACKAGE=libdbusmenu
- VERSION=0.5.96
+ VERSION=0.5.97
# Some tools Automake needs.
@@ -14094,17 +14117,14 @@ if test -n "$DBUSMENUTESTS_CFLAGS"; then
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION
- valgrind\""; } >&5
+ gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION\""; } >&5
($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind") 2>&5
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_DBUSMENUTESTS_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind" 2>/dev/null`
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -14117,17 +14137,14 @@ if test -n "$DBUSMENUTESTS_LIBS"; then
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION
- valgrind\""; } >&5
+ gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION\""; } >&5
($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind") 2>&5
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_DBUSMENUTESTS_LIBS=`$PKG_CONFIG --libs "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind" 2>/dev/null`
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -14149,19 +14166,16 @@ else
fi
if test $_pkg_short_errors_supported = yes; then
DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind" 2>&1`
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>&1`
else
DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind" 2>&1`
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DBUSMENUTESTS_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
- gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION
- valgrind) were not met:
+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION) were not met:
$DBUSMENUTESTS_PKG_ERRORS
@@ -14195,6 +14209,97 @@ $as_echo "yes" >&6; }
fi
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUSMENUTESTSVALGRIND" >&5
+$as_echo_n "checking for DBUSMENUTESTSVALGRIND... " >&6; }
+
+if test -n "$DBUSMENUTESTSVALGRIND_CFLAGS"; then
+ pkg_cv_DBUSMENUTESTSVALGRIND_CFLAGS="$DBUSMENUTESTSVALGRIND_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_DBUSMENUTESTSVALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$DBUSMENUTESTSVALGRIND_LIBS"; then
+ pkg_cv_DBUSMENUTESTSVALGRIND_LIBS="$DBUSMENUTESTSVALGRIND_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_DBUSMENUTESTSVALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ DBUSMENUTESTSVALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "valgrind" 2>&1`
+ else
+ DBUSMENUTESTSVALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "valgrind" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$DBUSMENUTESTSVALGRIND_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (valgrind) were not met:
+
+$DBUSMENUTESTSVALGRIND_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DBUSMENUTESTSVALGRIND_CFLAGS
+and DBUSMENUTESTSVALGRIND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DBUSMENUTESTSVALGRIND_CFLAGS
+and DBUSMENUTESTSVALGRIND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ DBUSMENUTESTSVALGRIND_CFLAGS=$pkg_cv_DBUSMENUTESTSVALGRIND_CFLAGS
+ DBUSMENUTESTSVALGRIND_LIBS=$pkg_cv_DBUSMENUTESTSVALGRIND_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
fi
@@ -15186,6 +15291,279 @@ $as_echo "#define MASSIVEDEBUGGING 1" >>confdefs.h
fi
###########################
+# gcov coverage reporting
+###########################
+
+# Checks for existence of coverage tools:
+# * gcov
+# * lcov
+# * genhtml
+# * gcovr
+#
+# Sets ac_cv_check_gcov to yes if tooling is present
+# and reports the executables to the variables LCOV, GCOVR and GENHTML.
+ # AC_TDD_GCOV
+
+
+ # Check whether --enable-gcov was given.
+if test "${enable_gcov+set}" = set; then :
+ enableval=$enable_gcov; use_gcov=$enableval
+else
+ use_gcov=no
+fi
+
+
+ if test "x$use_gcov" = "xyes"; then
+ # we need gcc:
+ if test "$GCC" != "yes"; then
+ as_fn_error $? "GCC is required for --enable-gcov" "$LINENO" 5
+ fi
+
+ # Check if ccache is being used
+ # Extract the first word of "shtool", so it can be a program name with args.
+set dummy shtool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_SHTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$SHTOOL"; then
+ ac_cv_prog_SHTOOL="$SHTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_SHTOOL="shtool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+SHTOOL=$ac_cv_prog_SHTOOL
+if test -n "$SHTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHTOOL" >&5
+$as_echo "$SHTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ case `$SHTOOL path $CC` in
+ *ccache*) gcc_ccache=yes;;
+ *) gcc_ccache=no;;
+ esac
+
+ if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
+ as_fn_error $? "ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1." "$LINENO" 5
+ fi
+
+ lcov_version_list="1.6 1.7 1.8 1.9"
+ # Extract the first word of "lcov", so it can be a program name with args.
+set dummy lcov; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LCOV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LCOV"; then
+ ac_cv_prog_LCOV="$LCOV" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LCOV="lcov"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LCOV=$ac_cv_prog_LCOV
+if test -n "$LCOV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5
+$as_echo "$LCOV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ # Extract the first word of "genhtml", so it can be a program name with args.
+set dummy genhtml; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_GENHTML+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$GENHTML"; then
+ ac_cv_prog_GENHTML="$GENHTML" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_GENHTML="genhtml"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+GENHTML=$ac_cv_prog_GENHTML
+if test -n "$GENHTML"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GENHTML" >&5
+$as_echo "$GENHTML" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ if test "$LCOV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lcov version" >&5
+$as_echo_n "checking for lcov version... " >&6; }
+if ${glib_cv_lcov_version+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ glib_cv_lcov_version=invalid
+ lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'`
+ for lcov_check_version in $lcov_version_list; do
+ if test "$lcov_version" = "$lcov_check_version"; then
+ glib_cv_lcov_version="$lcov_check_version (ok)"
+ fi
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_lcov_version" >&5
+$as_echo "$glib_cv_lcov_version" >&6; }
+ else
+ lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list"
+ as_fn_error $? "$lcov_msg" "$LINENO" 5
+ fi
+
+ case $glib_cv_lcov_version in
+ ""|invalid)
+ lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)."
+ as_fn_error $? "$lcov_msg" "$LINENO" 5
+ LCOV="exit 0;"
+ ;;
+ esac
+
+ if test -z "$GENHTML"; then
+ as_fn_error $? "Could not find genhtml from the lcov package" "$LINENO" 5
+ fi
+
+ ac_cv_check_gcov=yes
+ ac_cv_check_lcov=yes
+
+ # Remove all optimization flags from CFLAGS
+
+ CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
+
+
+ # Add the special gcc flags
+ COVERAGE_CFLAGS="-O0 -fprofile-arcs -ftest-coverage"
+ COVERAGE_CXXFLAGS="-O0 -fprofile-arcs -ftest-coverage"
+ COVERAGE_LDFLAGS="-lgcov"
+
+ # Check availability of gcovr
+ # Extract the first word of "gcovr", so it can be a program name with args.
+set dummy gcovr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_GCOVR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$GCOVR"; then
+ ac_cv_prog_GCOVR="$GCOVR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_GCOVR="gcovr"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+GCOVR=$ac_cv_prog_GCOVR
+if test -n "$GCOVR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCOVR" >&5
+$as_echo "$GCOVR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test -z "$GCOVR"; then
+ ac_cv_check_gcovr=no
+ else
+ ac_cv_check_gcovr=yes
+ fi
+
+fi
+
+ if test "x$ac_cv_check_gcov" = xyes; then
+ HAVE_GCOV_TRUE=
+ HAVE_GCOV_FALSE='#'
+else
+ HAVE_GCOV_TRUE='#'
+ HAVE_GCOV_FALSE=
+fi
+
+ if test "x$ac_cv_check_lcov" = xyes; then
+ HAVE_LCOV_TRUE=
+ HAVE_LCOV_FALSE='#'
+else
+ HAVE_LCOV_TRUE='#'
+ HAVE_LCOV_FALSE=
+fi
+
+ if test "x$ac_cv_check_gcovr" = xyes; then
+ HAVE_GCOVR_TRUE=
+ HAVE_GCOVR_FALSE='#'
+else
+ HAVE_GCOVR_TRUE='#'
+ HAVE_GCOVR_FALSE=
+fi
+
+
+
+
+###########################
# Files
###########################
@@ -15384,6 +15762,18 @@ if test -z "${HAVE_VALA_TRUE}" && test -z "${HAVE_VALA_FALSE}"; then
as_fn_error $? "conditional \"HAVE_VALA\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_GCOV_TRUE}" && test -z "${HAVE_GCOV_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_GCOV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_LCOV_TRUE}" && test -z "${HAVE_LCOV_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_LCOV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_GCOVR_TRUE}" && test -z "${HAVE_GCOVR_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_GCOVR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
@@ -15793,7 +16183,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libdbusmenu $as_me 0.5.96, which was
+This file was extended by libdbusmenu $as_me 0.5.97, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15859,7 +16249,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-libdbusmenu config.status 0.5.96
+libdbusmenu config.status 0.5.97
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -17728,3 +18118,11 @@ $as_echo "$as_me: Dumper: no" >&6;}
fi
+if test "x$use_gcov" = "xyes"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Coverage reporting: yes" >&5
+$as_echo "$as_me: Coverage reporting: yes" >&6;}
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Coverage reporting: no" >&5
+$as_echo "$as_me: Coverage reporting: no" >&6;}
+
+fi
diff --git a/configure.ac b/configure.ac
index a46901f..2d51716 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
-AC_INIT(libdbusmenu, 0.5.96, ted@canonical.com)
+AC_INIT(libdbusmenu, 0.5.97, ted@canonical.com)
AC_COPYRIGHT([Copyright 2009,2010 Canonical])
AC_PREREQ(2.62)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(libdbusmenu, 0.5.96, [-Wno-portability])
+AM_INIT_AUTOMAKE(libdbusmenu, 0.5.97, [-Wno-portability])
AM_MAINTAINER_MODE
@@ -194,6 +194,18 @@ if test "x$with_massivedebugging" = "xyes"; then
fi
###########################
+# gcov coverage reporting
+###########################
+
+m4_include([m4/gcov.m4])
+AC_TDD_GCOV
+AM_CONDITIONAL([HAVE_GCOV], [test "x$ac_cv_check_gcov" = xyes])
+AM_CONDITIONAL([HAVE_LCOV], [test "x$ac_cv_check_lcov" = xyes])
+AM_CONDITIONAL([HAVE_GCOVR], [test "x$ac_cv_check_gcovr" = xyes])
+AC_SUBST(COVERAGE_CFLAGS)
+AC_SUBST(COVERAGE_LDFLAGS)
+
+###########################
# Files
###########################
@@ -251,3 +263,7 @@ AS_IF([test "x$have_dumper" = "xyes"],
AC_MSG_NOTICE([ Dumper: no])
)
+AS_IF([test "x$use_gcov" = "xyes"],
+ AC_MSG_NOTICE([ Coverage reporting: yes]),
+ AC_MSG_NOTICE([ Coverage reporting: no])
+)
diff --git a/debian/changelog b/debian/changelog
index 533aeed..a642036 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+libdbusmenu (0.5.97-0ubuntu1~ppa1) UNRELEASED; urgency=low
+
+ * New upstream release.
+ * Reduce the number of messages hud-service sends. (LP: #957022)
+ * Fix valgrind tests thanks to a little help from sewardj.
+ * Add gcov targets to autotools build for code-coverage reporting.
+
+ -- Charles Kerr <charles.kerr@canonical.com> Wed, 04 Apr 2012 15:03:49 -0500
+
libdbusmenu (0.5.96-0ubuntu2) precise; urgency=low
* Cherry pick fix for FTBFS on arm
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 7c15060..b0eae8f 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -41,7 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -111,6 +111,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -121,6 +123,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -136,6 +140,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -171,6 +177,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -216,6 +223,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/docs/libdbusmenu-glib/Makefile.in b/docs/libdbusmenu-glib/Makefile.in
index 9c4c559..2a5a0b9 100644
--- a/docs/libdbusmenu-glib/Makefile.in
+++ b/docs/libdbusmenu-glib/Makefile.in
@@ -41,7 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -111,6 +111,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -121,6 +123,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -136,6 +140,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -171,6 +177,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -216,6 +223,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/docs/libdbusmenu-glib/reference/Makefile.in b/docs/libdbusmenu-glib/reference/Makefile.in
index b17de68..309fdd2 100644
--- a/docs/libdbusmenu-glib/reference/Makefile.in
+++ b/docs/libdbusmenu-glib/reference/Makefile.in
@@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -80,6 +80,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -90,6 +92,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -105,6 +109,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -140,6 +146,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -185,6 +192,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/docs/libdbusmenu-glib/reference/html/annotation-glossary.html b/docs/libdbusmenu-glib/reference/html/annotation-glossary.html
new file mode 100644
index 0000000..0e62312
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/annotation-glossary.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="prev" href="api-index-deprecated.html" title="Deprecated API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#glsA">A</a>
+  | 
+ <a class="shortcut" href="#glsC">C</a>
+  | 
+ <a class="shortcut" href="#glsT">T</a>
+  | 
+ <a class="shortcut" href="#glsA">A</a>
+  | 
+ <a class="shortcut" href="#glsE">E</a>
+  | 
+ <a class="shortcut" href="#glsI">I</a>
+  | 
+ <a class="shortcut" href="#glsT">T</a>
+  | 
+ <a class="shortcut" href="#glsS">S</a>
+</td></tr>
+</table>
+<div class="glossary">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt>
+<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
+<dd><p>NULL is ok, both for passing and for returning.</p></dd>
+<a name="glsC"></a><h3 class="title">C</h3>
+<dt>
+<a name="annotation-glossterm-closure"></a>closure</dt>
+<dd><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt>
+<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
+<dd><p>Don't free data after the code is done.</p></dd>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt>
+<a name="annotation-glossterm-array"></a>array</dt>
+<dd><p>Parameter points to an array of items.</p></dd>
+<a name="glsE"></a><h3 class="title">E</h3>
+<dt>
+<a name="annotation-glossterm-element-type"></a>element-type</dt>
+<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsI"></a><h3 class="title">I</h3>
+<dt>
+<a name="annotation-glossterm-in"></a>in</dt>
+<dd><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt>
+<a name="annotation-glossterm-transfer%20container"></a>transfer container</dt>
+<dd><p>Free data container after the code is done.</p></dd>
+<dt>
+<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
+<dd><p>Free data after the code is done.</p></dd>
+<a name="glsS"></a><h3 class="title">S</h3>
+<dt>
+<a name="annotation-glossterm-scope%20notified"></a>scope notified</dt>
+<dd><p>The callback is valid until the GDestroyNotify argument is called.</p></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/api-index-deprecated.html b/docs/libdbusmenu-glib/reference/html/api-index-deprecated.html
new file mode 100644
index 0000000..5007dbe
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/api-index-deprecated.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="prev" href="api-index-full.html" title="API Index">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-deprecated"></a>Deprecated API Index</h2></div></div></div>
+<a name="idx"></a>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/api-index-full.html b/docs/libdbusmenu-glib/reference/html/api-index-full.html
new file mode 100644
index 0000000..88e8e4f
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/api-index-full.html
@@ -0,0 +1,593 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="prev" href="object-tree.html" title="Object Hierarchy">
+<link rel="next" href="api-index-deprecated.html" title="Deprecated API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idxC">C</a>
+  | 
+ <a class="shortcut" href="#idxM">M</a>
+  | 
+ <a class="shortcut" href="#idxS">S</a>
+  | 
+ <a class="shortcut" href="#idxT">T</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-full"></a>API Index</h2></div></div></div>
+<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient">DbusmenuClient</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass" title="struct DbusmenuClientClass">DbusmenuClientClass</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()">DbusmenuClientTypeHandler</a>, user_function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler" title="dbusmenu_client_add_type_handler ()">dbusmenu_client_add_type_handler</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler-full" title="dbusmenu_client_add_type_handler_full ()">dbusmenu_client_add_type_handler_full</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-icon-paths" title="dbusmenu_client_get_icon_paths ()">dbusmenu_client_get_icon_paths</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-root" title="dbusmenu_client_get_root ()">dbusmenu_client_get_root</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-status" title="dbusmenu_client_get_status ()">dbusmenu_client_get_status</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-text-direction" title="dbusmenu_client_get_text_direction ()">dbusmenu_client_get_text_direction</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-new" title="dbusmenu_client_new ()">dbusmenu_client_new</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS" title="DBUSMENU_CLIENT_PROP_DBUS_NAME">DBUSMENU_CLIENT_PROP_DBUS_NAME</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS" title="DBUSMENU_CLIENT_PROP_DBUS_OBJECT">DBUSMENU_CLIENT_PROP_DBUS_OBJECT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS" title="DBUSMENU_CLIENT_PROP_GROUP_EVENTS">DBUSMENU_CLIENT_PROP_GROUP_EVENTS</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-STATUS:CAPS" title="DBUSMENU_CLIENT_PROP_STATUS">DBUSMENU_CLIENT_PROP_STATUS</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS" title="DBUSMENU_CLIENT_PROP_TEXT_DIRECTION">DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS" title="DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT">DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED">DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE">DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED">DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS" title="DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM">DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED">DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS" title="DBUSMENU_CLIENT_TYPES_DEFAULT">DBUSMENU_CLIENT_TYPES_DEFAULT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-IMAGE:CAPS" title="DBUSMENU_CLIENT_TYPES_IMAGE">DBUSMENU_CLIENT_TYPES_IMAGE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS" title="DBUSMENU_CLIENT_TYPES_SEPARATOR">DBUSMENU_CLIENT_TYPES_SEPARATOR</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">DbusmenuClient</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem">DbusmenuMenuitem</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitemClass" title="struct DbusmenuMenuitemClass">DbusmenuMenuitemClass</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxyClass" title="struct DbusmenuMenuitemProxyClass">DbusmenuMenuitemProxyClass</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-about-to-show-cb" title="dbusmenu_menuitem_about_to_show_cb ()">dbusmenu_menuitem_about_to_show_cb</a>, user_function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-buildvariant-slot-t" title="dbusmenu_menuitem_buildvariant_slot_t ()">dbusmenu_menuitem_buildvariant_slot_t</a>, user_function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-add-position" title="dbusmenu_menuitem_child_add_position ()">dbusmenu_menuitem_child_add_position</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-append" title="dbusmenu_menuitem_child_append ()">dbusmenu_menuitem_child_append</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-delete" title="dbusmenu_menuitem_child_delete ()">dbusmenu_menuitem_child_delete</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS" title="DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU">DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-find" title="dbusmenu_menuitem_child_find ()">dbusmenu_menuitem_child_find</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-prepend" title="dbusmenu_menuitem_child_prepend ()">dbusmenu_menuitem_child_prepend</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-reorder" title="dbusmenu_menuitem_child_reorder ()">dbusmenu_menuitem_child_reorder</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_ALERT">DBUSMENU_MENUITEM_DISPOSITION_ALERT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE">DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_NORMAL">DBUSMENU_MENUITEM_DISPOSITION_NORMAL</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_WARNING">DBUSMENU_MENUITEM_DISPOSITION_WARNING</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS" title="DBUSMENU_MENUITEM_EVENT_ACTIVATED">DBUSMENU_MENUITEM_EVENT_ACTIVATED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS" title="DBUSMENU_MENUITEM_EVENT_CLOSED">DBUSMENU_MENUITEM_EVENT_CLOSED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-OPENED:CAPS" title="DBUSMENU_MENUITEM_EVENT_OPENED">DBUSMENU_MENUITEM_EVENT_OPENED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-find-id" title="dbusmenu_menuitem_find_id ()">dbusmenu_menuitem_find_id</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-foreach" title="dbusmenu_menuitem_foreach ()">dbusmenu_menuitem_foreach</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-children" title="dbusmenu_menuitem_get_children ()">dbusmenu_menuitem_get_children</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-id" title="dbusmenu_menuitem_get_id ()">dbusmenu_menuitem_get_id</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-parent" title="dbusmenu_menuitem_get_parent ()">dbusmenu_menuitem_get_parent</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position" title="dbusmenu_menuitem_get_position ()">dbusmenu_menuitem_get_position</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position-realized" title="dbusmenu_menuitem_get_position_realized ()">dbusmenu_menuitem_get_position_realized</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-root" title="dbusmenu_menuitem_get_root ()">dbusmenu_menuitem_get_root</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-handle-event" title="dbusmenu_menuitem_handle_event ()">dbusmenu_menuitem_handle_event</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS" title="DBUSMENU_MENUITEM_ICON_NAME_BLANK">DBUSMENU_MENUITEM_ICON_NAME_BLANK</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new" title="dbusmenu_menuitem_new ()">dbusmenu_menuitem_new</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new-with-id" title="dbusmenu_menuitem_new_with_id ()">dbusmenu_menuitem_new_with_id</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-copy" title="dbusmenu_menuitem_properties_copy ()">dbusmenu_menuitem_properties_copy</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-list" title="dbusmenu_menuitem_properties_list ()">dbusmenu_menuitem_properties_list</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-exist" title="dbusmenu_menuitem_property_exist ()">dbusmenu_menuitem_property_exist</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get" title="dbusmenu_menuitem_property_get ()">dbusmenu_menuitem_property_get</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-bool" title="dbusmenu_menuitem_property_get_bool ()">dbusmenu_menuitem_property_get_bool</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-byte-array" title="dbusmenu_menuitem_property_get_byte_array ()">dbusmenu_menuitem_property_get_byte_array</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-int" title="dbusmenu_menuitem_property_get_int ()">dbusmenu_menuitem_property_get_int</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-variant" title="dbusmenu_menuitem_property_get_variant ()">dbusmenu_menuitem_property_get_variant</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-remove" title="dbusmenu_menuitem_property_remove ()">dbusmenu_menuitem_property_remove</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set" title="dbusmenu_menuitem_property_set ()">dbusmenu_menuitem_property_set</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-bool" title="dbusmenu_menuitem_property_set_bool ()">dbusmenu_menuitem_property_set_bool</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-byte-array" title="dbusmenu_menuitem_property_set_byte_array ()">dbusmenu_menuitem_property_set_byte_array</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-int" title="dbusmenu_menuitem_property_set_int ()">dbusmenu_menuitem_property_set_int</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-variant" title="dbusmenu_menuitem_property_set_variant ()">dbusmenu_menuitem_property_set_variant</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS" title="DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC">DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" title="DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY">DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION">DBUSMENU_MENUITEM_PROP_DISPOSITION</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ENABLED:CAPS" title="DBUSMENU_MENUITEM_PROP_ENABLED">DBUSMENU_MENUITEM_PROP_ENABLED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS" title="DBUSMENU_MENUITEM_PROP_ICON_DATA">DBUSMENU_MENUITEM_PROP_ICON_DATA</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS" title="DBUSMENU_MENUITEM_PROP_ICON_NAME">DBUSMENU_MENUITEM_PROP_ICON_NAME</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-LABEL:CAPS" title="DBUSMENU_MENUITEM_PROP_LABEL">DBUSMENU_MENUITEM_PROP_LABEL</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT">DBUSMENU_MENUITEM_PROP_SHORTCUT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TYPE">DBUSMENU_MENUITEM_PROP_TYPE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS" title="DBUSMENU_MENUITEM_PROP_VISIBLE">DBUSMENU_MENUITEM_PROP_VISIBLE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-get-wrapped" title="dbusmenu_menuitem_proxy_get_wrapped ()">dbusmenu_menuitem_proxy_get_wrapped</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-new" title="dbusmenu_menuitem_proxy_new ()">dbusmenu_menuitem_proxy_new</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-send-about-to-show" title="dbusmenu_menuitem_send_about_to_show ()">dbusmenu_menuitem_send_about_to_show</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-parent" title="dbusmenu_menuitem_set_parent ()">dbusmenu_menuitem_set_parent</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-root" title="dbusmenu_menuitem_set_root ()">dbusmenu_menuitem_set_root</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_ALT">DBUSMENU_MENUITEM_SHORTCUT_ALT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_CONTROL">DBUSMENU_MENUITEM_SHORTCUT_CONTROL</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_SHIFT">DBUSMENU_MENUITEM_SHORTCUT_SHIFT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_SUPER">DBUSMENU_MENUITEM_SHORTCUT_SUPER</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-show-to-user" title="dbusmenu_menuitem_show_to_user ()">dbusmenu_menuitem_show_to_user</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW">DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED">DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED">DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED">DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_EVENT">DBUSMENU_MENUITEM_SIGNAL_EVENT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED">DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED">DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_REALIZED">DBUSMENU_MENUITEM_SIGNAL_REALIZED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID">DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER">DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-take-children" title="dbusmenu_menuitem_take_children ()">dbusmenu_menuitem_take_children</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_CHECK">DBUSMENU_MENUITEM_TOGGLE_CHECK</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_RADIO">DBUSMENU_MENUITEM_TOGGLE_RADIO</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED">DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED">DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN">DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-unparent" title="dbusmenu_menuitem_unparent ()">dbusmenu_menuitem_unparent</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">DbusmenuMenuitem</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer">DbusmenuServer</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServerClass" title="struct DbusmenuServerClass">DbusmenuServerClass</a>, struct in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-status" title="dbusmenu_server_get_status ()">dbusmenu_server_get_status</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-text-direction" title="dbusmenu_server_get_text_direction ()">dbusmenu_server_get_text_direction</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-new" title="dbusmenu_server_new ()">dbusmenu_server_new</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS" title="DBUSMENU_SERVER_PROP_DBUS_OBJECT">DBUSMENU_SERVER_PROP_DBUS_OBJECT</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS" title="DBUSMENU_SERVER_PROP_ROOT_NODE">DBUSMENU_SERVER_PROP_ROOT_NODE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-STATUS:CAPS" title="DBUSMENU_SERVER_PROP_STATUS">DBUSMENU_SERVER_PROP_STATUS</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS" title="DBUSMENU_SERVER_PROP_TEXT_DIRECTION">DBUSMENU_SERVER_PROP_TEXT_DIRECTION</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-VERSION:CAPS" title="DBUSMENU_SERVER_PROP_VERSION">DBUSMENU_SERVER_PROP_VERSION</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-root" title="dbusmenu_server_set_root ()">dbusmenu_server_set_root</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-status" title="dbusmenu_server_set_status ()">dbusmenu_server_set_status</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-text-direction" title="dbusmenu_server_set_text_direction ()">dbusmenu_server_set_text_direction</a>, function in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE">DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_ID_UPDATE">DBUSMENU_SERVER_SIGNAL_ID_UPDATE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS" title="DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION">DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS" title="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</a>, macro in <a class="link" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">DbusmenuServer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus">DbusmenuStatus</a>, enum in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-nick" title="dbusmenu_status_get_nick ()">dbusmenu_status_get_nick</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-type" title="dbusmenu_status_get_type ()">dbusmenu_status_get_type</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-value-from-nick" title="dbusmenu_status_get_value_from_nick ()">dbusmenu_status_get_value_from_nick</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection">DbusmenuTextDirection</a>, enum in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-nick" title="dbusmenu_text_direction_get_nick ()">dbusmenu_text_direction_get_nick</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-type" title="dbusmenu_text_direction_get_type ()">dbusmenu_text_direction_get_type</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-value-from-nick" title="dbusmenu_text_direction_get_value_from_nick ()">dbusmenu_text_direction_get_value_from_nick</a>, function in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-STATUS:CAPS" title="DBUSMENU_TYPE_STATUS">DBUSMENU_TYPE_STATUS</a>, macro in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-TEXT-DIRECTION:CAPS" title="DBUSMENU_TYPE_TEXT_DIRECTION">DBUSMENU_TYPE_TEXT_DIRECTION</a>, macro in <a class="link" href="libdbusmenu-glib-Types.html" title="Types">Types</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/ch01.html b/docs/libdbusmenu-glib/reference/html/ch01.html
new file mode 100644
index 0000000..a8d7902
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/ch01.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="prev" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="next" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-glib-DbusmenuServer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="idp1404824"></a>API</h2></div></div></div>
+<div class="toc"><dl>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuServer.html">DbusmenuServer</a></span><span class="refpurpose"> — The server signals changed and
+ updates on a tree of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objecs.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuMenuitemProxy.html">DbusmenuMenuitemProxy</a></span><span class="refpurpose"> — A menuitem that proxies from another menuitem</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuMenuitem.html">DbusmenuMenuitem</a></span><span class="refpurpose"> — A lowlevel represenation of a menuitem</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuClient.html">DbusmenuClient</a></span><span class="refpurpose"> — The catcher of all the server traffic</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-Types.html">Types</a></span><span class="refpurpose"> — Types that are used by both client and
+ server.</span>
+</dt>
+</dl></div>
+<span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/home.png b/docs/libdbusmenu-glib/reference/html/home.png
new file mode 100644
index 0000000..fb60b55
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/home.png
Binary files differ
diff --git a/docs/libdbusmenu-glib/reference/html/index.html b/docs/libdbusmenu-glib/reference/html/index.html
new file mode 100644
index 0000000..9ba7afc
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/index.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>libdbusmenu-glib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="next" href="ch01.html" title="API">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div><div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libdbusmenu-glib Reference Manual</p></th></tr></table></div></div>
+<hr>
+</div>
+<div class="toc"><dl>
+<dt><span class="chapter"><a href="ch01.html">API</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuServer.html">DbusmenuServer</a></span><span class="refpurpose"> — The server signals changed and
+ updates on a tree of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objecs.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuMenuitemProxy.html">DbusmenuMenuitemProxy</a></span><span class="refpurpose"> — A menuitem that proxies from another menuitem</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuMenuitem.html">DbusmenuMenuitem</a></span><span class="refpurpose"> — A lowlevel represenation of a menuitem</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuClient.html">DbusmenuClient</a></span><span class="refpurpose"> — The catcher of all the server traffic</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-glib-Types.html">Types</a></span><span class="refpurpose"> — Types that are used by both client and
+ server.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="object-tree.html">Object Hierarchy</a></span></dt>
+<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
+<dt><span class="index"><a href="api-index-deprecated.html">Deprecated API Index</a></span></dt>
+<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/index.sgml b/docs/libdbusmenu-glib/reference/html/index.sgml
new file mode 100644
index 0000000..f8e24e5
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/index.sgml
@@ -0,0 +1,176 @@
+<ANCHOR id="libdbusmenu-glib-DbusmenuServer" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html">
+<ANCHOR id="libdbusmenu-glib-DbusmenuServer.stability-level" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#libdbusmenu-glib-DbusmenuServer.stability-level">
+<ANCHOR id="libdbusmenu-glib-DbusmenuServer.synopsis" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#libdbusmenu-glib-DbusmenuServer.synopsis">
+<ANCHOR id="libdbusmenu-glib-DbusmenuServer.description" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#libdbusmenu-glib-DbusmenuServer.description">
+<ANCHOR id="libdbusmenu-glib-DbusmenuServer.details" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#libdbusmenu-glib-DbusmenuServer.details">
+<ANCHOR id="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-PROP-STATUS:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-STATUS:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS">
+<ANCHOR id="DBUSMENU-SERVER-PROP-VERSION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-VERSION:CAPS">
+<ANCHOR id="DbusmenuServer" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer">
+<ANCHOR id="DbusmenuServerClass" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServerClass">
+<ANCHOR id="dbusmenu-server-new" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-new">
+<ANCHOR id="dbusmenu-server-get-status" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-status">
+<ANCHOR id="dbusmenu-server-get-text-direction" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-text-direction">
+<ANCHOR id="dbusmenu-server-set-root" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-root">
+<ANCHOR id="dbusmenu-server-set-status" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-status">
+<ANCHOR id="dbusmenu-server-set-text-direction" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-text-direction">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitemProxy" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitemProxy.stability-level" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#libdbusmenu-glib-DbusmenuMenuitemProxy.stability-level">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitemProxy.synopsis" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#libdbusmenu-glib-DbusmenuMenuitemProxy.synopsis">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitemProxy.description" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#libdbusmenu-glib-DbusmenuMenuitemProxy.description">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitemProxy.details" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#libdbusmenu-glib-DbusmenuMenuitemProxy.details">
+<ANCHOR id="DbusmenuMenuitemProxy" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy">
+<ANCHOR id="DbusmenuMenuitemProxyClass" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxyClass">
+<ANCHOR id="dbusmenu-menuitem-proxy-new" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-new">
+<ANCHOR id="dbusmenu-menuitem-proxy-get-wrapped" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-get-wrapped">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitem" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitem.stability-level" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#libdbusmenu-glib-DbusmenuMenuitem.stability-level">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitem.synopsis" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#libdbusmenu-glib-DbusmenuMenuitem.synopsis">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitem.description" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#libdbusmenu-glib-DbusmenuMenuitem.description">
+<ANCHOR id="libdbusmenu-glib-DbusmenuMenuitem.details" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#libdbusmenu-glib-DbusmenuMenuitem.details">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-TYPE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TYPE:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ENABLED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-LABEL:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-LABEL:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS">
+<ANCHOR id="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-OPENED:CAPS">
+<ANCHOR id="DbusmenuMenuitem" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem">
+<ANCHOR id="dbusmenu-menuitem-about-to-show-cb" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-about-to-show-cb">
+<ANCHOR id="dbusmenu-menuitem-buildvariant-slot-t" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-buildvariant-slot-t">
+<ANCHOR id="DbusmenuMenuitemClass" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitemClass">
+<ANCHOR id="dbusmenu-menuitem-new" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new">
+<ANCHOR id="dbusmenu-menuitem-new-with-id" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new-with-id">
+<ANCHOR id="dbusmenu-menuitem-get-id" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-id">
+<ANCHOR id="dbusmenu-menuitem-get-children" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-children">
+<ANCHOR id="dbusmenu-menuitem-take-children" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-take-children">
+<ANCHOR id="dbusmenu-menuitem-get-position" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position">
+<ANCHOR id="dbusmenu-menuitem-get-position-realized" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position-realized">
+<ANCHOR id="dbusmenu-menuitem-child-append" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-append">
+<ANCHOR id="dbusmenu-menuitem-child-prepend" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-prepend">
+<ANCHOR id="dbusmenu-menuitem-child-delete" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-delete">
+<ANCHOR id="dbusmenu-menuitem-child-add-position" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-add-position">
+<ANCHOR id="dbusmenu-menuitem-child-reorder" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-reorder">
+<ANCHOR id="dbusmenu-menuitem-child-find" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-find">
+<ANCHOR id="dbusmenu-menuitem-find-id" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-find-id">
+<ANCHOR id="dbusmenu-menuitem-property-set" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set">
+<ANCHOR id="dbusmenu-menuitem-property-set-bool" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-bool">
+<ANCHOR id="dbusmenu-menuitem-property-set-byte-array" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-byte-array">
+<ANCHOR id="dbusmenu-menuitem-property-set-int" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-int">
+<ANCHOR id="dbusmenu-menuitem-property-set-variant" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-variant">
+<ANCHOR id="dbusmenu-menuitem-property-get" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get">
+<ANCHOR id="dbusmenu-menuitem-property-get-bool" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-bool">
+<ANCHOR id="dbusmenu-menuitem-property-get-byte-array" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-byte-array">
+<ANCHOR id="dbusmenu-menuitem-property-get-int" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-int">
+<ANCHOR id="dbusmenu-menuitem-property-get-variant" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-variant">
+<ANCHOR id="dbusmenu-menuitem-property-exist" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-exist">
+<ANCHOR id="dbusmenu-menuitem-properties-list" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-list">
+<ANCHOR id="dbusmenu-menuitem-properties-copy" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-copy">
+<ANCHOR id="dbusmenu-menuitem-property-remove" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-remove">
+<ANCHOR id="dbusmenu-menuitem-set-root" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-root">
+<ANCHOR id="dbusmenu-menuitem-get-root" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-root">
+<ANCHOR id="dbusmenu-menuitem-foreach" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-foreach">
+<ANCHOR id="dbusmenu-menuitem-handle-event" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-handle-event">
+<ANCHOR id="dbusmenu-menuitem-send-about-to-show" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-send-about-to-show">
+<ANCHOR id="dbusmenu-menuitem-show-to-user" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-show-to-user">
+<ANCHOR id="dbusmenu-menuitem-get-parent" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-parent">
+<ANCHOR id="dbusmenu-menuitem-set-parent" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-parent">
+<ANCHOR id="dbusmenu-menuitem-unparent" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-unparent">
+<ANCHOR id="libdbusmenu-glib-DbusmenuClient" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html">
+<ANCHOR id="libdbusmenu-glib-DbusmenuClient.stability-level" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#libdbusmenu-glib-DbusmenuClient.stability-level">
+<ANCHOR id="libdbusmenu-glib-DbusmenuClient.synopsis" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#libdbusmenu-glib-DbusmenuClient.synopsis">
+<ANCHOR id="libdbusmenu-glib-DbusmenuClient.description" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#libdbusmenu-glib-DbusmenuClient.description">
+<ANCHOR id="libdbusmenu-glib-DbusmenuClient.details" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#libdbusmenu-glib-DbusmenuClient.details">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-PROP-STATUS:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-STATUS:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS">
+<ANCHOR id="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-IMAGE:CAPS">
+<ANCHOR id="DbusmenuClient" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient">
+<ANCHOR id="DbusmenuClientClass" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass">
+<ANCHOR id="DbusmenuClientTypeHandler" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler">
+<ANCHOR id="dbusmenu-client-new" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-new">
+<ANCHOR id="dbusmenu-client-get-icon-paths" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-icon-paths">
+<ANCHOR id="dbusmenu-client-get-root" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-root">
+<ANCHOR id="dbusmenu-client-get-status" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-status">
+<ANCHOR id="dbusmenu-client-get-text-direction" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-text-direction">
+<ANCHOR id="dbusmenu-client-add-type-handler" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler">
+<ANCHOR id="dbusmenu-client-add-type-handler-full" href="libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler-full">
+<ANCHOR id="libdbusmenu-glib-Types" href="libdbusmenu-glib/libdbusmenu-glib-Types.html">
+<ANCHOR id="libdbusmenu-glib-Types.stability-level" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#libdbusmenu-glib-Types.stability-level">
+<ANCHOR id="libdbusmenu-glib-Types.synopsis" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#libdbusmenu-glib-Types.synopsis">
+<ANCHOR id="libdbusmenu-glib-Types.description" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#libdbusmenu-glib-Types.description">
+<ANCHOR id="libdbusmenu-glib-Types.details" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#libdbusmenu-glib-Types.details">
+<ANCHOR id="DBUSMENU-TYPE-STATUS:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-TYPE-STATUS:CAPS">
+<ANCHOR id="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-TYPE-TEXT-DIRECTION:CAPS">
+<ANCHOR id="DbusmenuStatus" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DbusmenuStatus">
+<ANCHOR id="DBUSMENU-STATUS-NORMAL:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-STATUS-NORMAL:CAPS">
+<ANCHOR id="DBUSMENU-STATUS-NOTICE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-STATUS-NOTICE:CAPS">
+<ANCHOR id="DbusmenuTextDirection" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DbusmenuTextDirection">
+<ANCHOR id="DBUSMENU-TEXT-DIRECTION-NONE:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-NONE:CAPS">
+<ANCHOR id="DBUSMENU-TEXT-DIRECTION-LTR:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-LTR:CAPS">
+<ANCHOR id="DBUSMENU-TEXT-DIRECTION-RTL:CAPS" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-RTL:CAPS">
+<ANCHOR id="dbusmenu-status-get-nick" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-status-get-nick">
+<ANCHOR id="dbusmenu-status-get-type" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-status-get-type">
+<ANCHOR id="dbusmenu-status-get-value-from-nick" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-status-get-value-from-nick">
+<ANCHOR id="dbusmenu-text-direction-get-nick" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-nick">
+<ANCHOR id="dbusmenu-text-direction-get-type" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-type">
+<ANCHOR id="dbusmenu-text-direction-get-value-from-nick" href="libdbusmenu-glib/libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-value-from-nick">
+<ANCHOR id="annotation-glossterm-allow-none" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-closure" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-transfer none" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-array" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-element-type" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-in" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-in">
+<ANCHOR id="annotation-glossterm-transfer container" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-transfer container">
+<ANCHOR id="annotation-glossterm-transfer full" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-scope notified" href="libdbusmenu-glib/annotation-glossary.html#annotation-glossterm-scope notified">
diff --git a/docs/libdbusmenu-glib/reference/html/left.png b/docs/libdbusmenu-glib/reference/html/left.png
new file mode 100644
index 0000000..48cab27
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/left.png
Binary files differ
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html
new file mode 100644
index 0000000..8d53347
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html
@@ -0,0 +1,607 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuClient</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">
+<link rel="next" href="libdbusmenu-glib-Types.html" title="Types">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-glib-DbusmenuMenuitem.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-glib-Types.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-glib-DbusmenuClient.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-glib-DbusmenuClient.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-glib-DbusmenuClient"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-glib-DbusmenuClient.top_of_page"></a>DbusmenuClient</span></h2>
+<p>DbusmenuClient — The catcher of all the server traffic</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuClient.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-glib-DbusmenuClient.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-glib/client.h&gt;
+
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED">DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED">DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS" title="DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM">DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS" title="DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT">DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE">DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS" title="DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED">DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS" title="DBUSMENU_CLIENT_PROP_DBUS_NAME">DBUSMENU_CLIENT_PROP_DBUS_NAME</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS" title="DBUSMENU_CLIENT_PROP_DBUS_OBJECT">DBUSMENU_CLIENT_PROP_DBUS_OBJECT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS" title="DBUSMENU_CLIENT_PROP_GROUP_EVENTS">DBUSMENU_CLIENT_PROP_GROUP_EVENTS</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-STATUS:CAPS" title="DBUSMENU_CLIENT_PROP_STATUS">DBUSMENU_CLIENT_PROP_STATUS</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS" title="DBUSMENU_CLIENT_PROP_TEXT_DIRECTION">DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS" title="DBUSMENU_CLIENT_TYPES_DEFAULT">DBUSMENU_CLIENT_TYPES_DEFAULT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS" title="DBUSMENU_CLIENT_TYPES_SEPARATOR">DBUSMENU_CLIENT_TYPES_SEPARATOR</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-IMAGE:CAPS" title="DBUSMENU_CLIENT_TYPES_IMAGE">DBUSMENU_CLIENT_TYPES_IMAGE</a>
+ <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient">DbusmenuClient</a>;
+struct <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass" title="struct DbusmenuClientClass">DbusmenuClientClass</a>;
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()">*DbusmenuClientTypeHandler</a>) (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *newitem</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="returnvalue">DbusmenuClient</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-new" title="dbusmenu_client_new ()">dbusmenu_client_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="returnvalue">GStrv</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-icon-paths" title="dbusmenu_client_get_icon_paths ()">dbusmenu_client_get_icon_paths</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-root" title="dbusmenu_client_get_root ()">dbusmenu_client_get_root</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-status" title="dbusmenu_client_get_status ()">dbusmenu_client_get_status</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-text-direction" title="dbusmenu_client_get_text_direction ()">dbusmenu_client_get_text_direction</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler" title="dbusmenu_client_add_type_handler ()">dbusmenu_client_add_type_handler</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()"><span class="type">DbusmenuClientTypeHandler</span></a> newfunc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler-full" title="dbusmenu_client_add_type_handler_full ()">dbusmenu_client_add_type_handler_full</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()"><span class="type">DbusmenuClientTypeHandler</span></a> newfunc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_func</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuClient.description"></a><h2>Description</h2>
+<p>
+The client exists as a mirror to the server. For most folks
+ all they will do with a client is set it up to connect to
+ a server and then watch as the menu items on their side
+ of the bus change. This is all they should need to know about
+ the client, that it magically makes their menuitems dance.
+</p>
+<p>
+ It does this by setting up signal watchers and adjusting
+ the menuitems appropriately. Most users should watch the
+ menu items and the signal <span class="type">"layout-changed"</span> for
+ larger events so that they can be optimized. It is possible
+ with that signal that even the root node would change. If
+ that doesn't happen the normal signals on the individual
+ nodes should be enough for most users.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuClient.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED "layout-updated"
+</pre>
+<p>
+String to attach to signal <span class="type">"layout-updated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED "root-changed"
+</pre>
+<p>
+String to attach to signal <span class="type">"root-changed"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM "new-menuitem"
+</pre>
+<p>
+String to attach to signal <span class="type">"new-menuitem"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT "event-result"
+</pre>
+<p>
+String to attach to signal <span class="type">"event-result"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE "item-activate"
+</pre>
+<p>
+String to attach to signal <span class="type">"item-activate"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS"></a><h3>DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED "icon-theme-dirs-changed"
+</pre>
+<p>
+String to attach to signal <span class="type">"icon-theme-dirs-changed"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS"></a><h3>DBUSMENU_CLIENT_PROP_DBUS_NAME</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_PROP_DBUS_NAME "dbus-name"
+</pre>
+<p>
+String to access property <span class="type">"dbus-name"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS"></a><h3>DBUSMENU_CLIENT_PROP_DBUS_OBJECT</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_PROP_DBUS_OBJECT "dbus-object"
+</pre>
+<p>
+String to access property <span class="type">"dbus-object"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS"></a><h3>DBUSMENU_CLIENT_PROP_GROUP_EVENTS</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_PROP_GROUP_EVENTS "group-events"
+</pre>
+<p>
+String to access property <span class="type">"group-events"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-PROP-STATUS:CAPS"></a><h3>DBUSMENU_CLIENT_PROP_STATUS</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_PROP_STATUS "status"
+</pre>
+<p>
+String to access property <span class="type">"status"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS"></a><h3>DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_PROP_TEXT_DIRECTION "text-direction"
+</pre>
+<p>
+String to access property <span class="type">"text-direction"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS"></a><h3>DBUSMENU_CLIENT_TYPES_DEFAULT</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_TYPES_DEFAULT "standard"
+</pre>
+<p>
+Used to set the 'type' property on a menu item to create
+a standard menu item.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS"></a><h3>DBUSMENU_CLIENT_TYPES_SEPARATOR</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_TYPES_SEPARATOR "separator"
+</pre>
+<p>
+Used to set the 'type' property on a menu item to create
+a separator menu item.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS"></a><h3>DBUSMENU_CLIENT_TYPES_IMAGE</h3>
+<pre class="programlisting">#define DBUSMENU_CLIENT_TYPES_IMAGE "standard"
+</pre>
+<p>
+Used to set the 'type' property on a menu item to create
+an image menu item. Deprecated as standard menu items now
+support images as well.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuClient"></a><h3>DbusmenuClient</h3>
+<pre class="programlisting">typedef struct _DbusmenuClient DbusmenuClient;</pre>
+<p>
+The client for a <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> creating a shared
+ object set of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuClientClass"></a><h3>struct DbusmenuClientClass</h3>
+<pre class="programlisting">struct DbusmenuClientClass {
+ GObjectClass parent_class;
+
+ void (*layout_updated)(void);
+ void (*root_changed) (DbusmenuMenuitem * newroot);
+ void (*new_menuitem) (DbusmenuMenuitem * newitem);
+ void (*item_activate) (DbusmenuMenuitem * item, guint timestamp);
+ void (*event_result) (DbusmenuMenuitem * item, gchar * event, GVariant * data, guint timestamp, GError * error);
+ void (*icon_theme_dirs) (DbusmenuMenuitem * item, gpointer theme_dirs, GError * error);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+};
+</pre>
+<p>
+A simple class that takes all of the information from a
+ <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> over DBus and makes the same set of
+ <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects appear on the other side.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="DbusmenuClientClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.layout-updated"></a>layout_updated</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"layout-updated"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.root-changed"></a>root_changed</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"root-changed"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.new-menuitem"></a>new_menuitem</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"new-menuitem"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.item-activate"></a>item_activate</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"item-activate"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.event-result"></a>event_result</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"event-error"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.icon-theme-dirs"></a>icon_theme_dirs</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"icon-theme-dirs-changed"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuClientClass.reserved5"></a>reserved5</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuClientTypeHandler"></a><h3>DbusmenuClientTypeHandler ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*DbusmenuClientTypeHandler) (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *newitem</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+The type handler is called when a dbusmenu item is created
+ with a matching type as setup in <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler" title="dbusmenu_client_add_type_handler ()"><span class="type">dbusmenu_client_add_type_handler</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>newitem</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that was created</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>The parent of <em class="parameter"><code>newitem</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>A pointer to the <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data you gave us</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the type has been handled. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> if this
+function was somehow unable to handle it.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-new"></a><h3>dbusmenu_client_new ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="returnvalue">DbusmenuClient</span></a> * dbusmenu_client_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object</code></em>);</pre>
+<p>
+This function creates a new client that connects to a specific
+server on DBus. That server is at a specific location sharing
+a known object. The interface is assumed by the code to be
+the DBus menu interface. The newly created client will start
+sending out events as it syncs up with the server.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The DBus name for the server to connect to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>The object on the server to monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A brand new <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-get-icon-paths"></a><h3>dbusmenu_client_get_icon_paths ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="returnvalue">GStrv</span></a> dbusmenu_client_get_icon_paths (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);</pre>
+<p>
+Gets the stored and exported icon paths from the client.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> to get the icon paths from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A NULL-terminated list of icon paths with
+memory managed by the client. Duplicate if you want
+to keep them. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-get-root"></a><h3>dbusmenu_client_get_root ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_client_get_root (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);</pre>
+<p>
+Grabs the root node for the specified client <em class="parameter"><code>client</code></em>. This
+function may block. It will block if there is currently a
+call to update the layout, it will block on that layout
+updated and then return the newly updated layout. Chances
+are that this update is in the queue for the mainloop as
+it would have been requested some time ago, but in theory
+it could block longer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> to get the root node from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> representing the root of
+menu on the server. If there is no server or there is
+an error receiving its layout it'll return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-get-status"></a><h3>dbusmenu_client_get_status ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> dbusmenu_client_get_status (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);</pre>
+<p>
+Gets the recommended current status that the server
+ is exporting for the menus. In situtations where the
+ value is <a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-STATUS-NOTICE:CAPS"><span class="type">DBUSMENU_STATUS_NOTICE</span></a> it is recommended that
+ the client show the menus to the user an a more noticible
+ way.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> to check the status on</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Status being exported.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-get-text-direction"></a><h3>dbusmenu_client_get_text_direction ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> dbusmenu_client_get_text_direction
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>);</pre>
+<p>
+Gets the text direction that the server is exporting. If
+ the server is not exporting a direction then the value
+ <a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-NONE:CAPS"><span class="type">DBUSMENU_TEXT_DIRECTION_NONE</span></a> will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> to check the text direction on</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Text direction being exported.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-add-type-handler"></a><h3>dbusmenu_client_add_type_handler ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_client_add_type_handler (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()"><span class="type">DbusmenuClientTypeHandler</span></a> newfunc</code></em>);</pre>
+<p>
+This function connects into the type handling of the <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a>.
+Every new menuitem that comes in immediately gets asked for it's
+properties. When we get those properties we check the 'type'
+property and look to see if it matches a handler that is known
+by the client. If so, the <em class="parameter"><code>newfunc</code></em> function is executed on that
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>. If not, then the DbusmenuClient::new-menuitem
+signal is sent.
+</p>
+<p>
+In the future the known types will be sent to the server so that it
+can make choices about the menu item types availble.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>Client where we're getting types coming in</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>A text string that will be matched with the 'type'
+property on incoming menu items</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>newfunc</code></em> :</span></p></td>
+<td>The function that will be executed with those new
+items when they come in. <span class="annotation">[<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>If registering the new type was successful.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-client-add-type-handler-full"></a><h3>dbusmenu_client_add_type_handler_full ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_client_add_type_handler_full
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler" title="DbusmenuClientTypeHandler ()"><span class="type">DbusmenuClientTypeHandler</span></a> newfunc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_func</code></em>);</pre>
+<p>
+This function connects into the type handling of the <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a>.
+Every new menuitem that comes in immediately gets asked for it's
+properties. When we get those properties we check the 'type'
+property and look to see if it matches a handler that is known
+by the client. If so, the <em class="parameter"><code>newfunc</code></em> function is executed on that
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>. If not, then the DbusmenuClient::new-menuitem
+signal is sent.
+</p>
+<p>
+In the future the known types will be sent to the server so that it
+can make choices about the menu item types availble.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>Client where we're getting types coming in</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>A text string that will be matched with the 'type'
+property on incoming menu items</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>newfunc</code></em> :</span></p></td>
+<td>The function that will be executed with those new
+items when they come in. <span class="annotation">[<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>Data passed to <em class="parameter"><code>newfunc</code></em> when it is called</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>destroy_func</code></em> :</span></p></td>
+<td>A function that is called when the type handler is
+removed (usually on client destruction) which will free
+the resources in <em class="parameter"><code>user_data</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>If registering the new type was successful.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html
new file mode 100644
index 0000000..7470bcb
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html
@@ -0,0 +1,1893 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuMenuitem</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">
+<link rel="next" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-glib-DbusmenuClient.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-glib-DbusmenuMenuitem.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-glib-DbusmenuMenuitem.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-glib-DbusmenuMenuitem"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-glib-DbusmenuMenuitem.top_of_page"></a>DbusmenuMenuitem</span></h2>
+<p>DbusmenuMenuitem — A lowlevel represenation of a menuitem</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitem.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-glib-DbusmenuMenuitem.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-glib/menuitem.h&gt;
+
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED">DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED">DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED">DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED">DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED">DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_EVENT">DBUSMENU_MENUITEM_SIGNAL_EVENT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_REALIZED">DBUSMENU_MENUITEM_SIGNAL_REALIZED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID">DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW">DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS" title="DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER">DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TYPE">DBUSMENU_MENUITEM_PROP_TYPE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS" title="DBUSMENU_MENUITEM_PROP_VISIBLE">DBUSMENU_MENUITEM_PROP_VISIBLE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ENABLED:CAPS" title="DBUSMENU_MENUITEM_PROP_ENABLED">DBUSMENU_MENUITEM_PROP_ENABLED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-LABEL:CAPS" title="DBUSMENU_MENUITEM_PROP_LABEL">DBUSMENU_MENUITEM_PROP_LABEL</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS" title="DBUSMENU_MENUITEM_PROP_ICON_NAME">DBUSMENU_MENUITEM_PROP_ICON_NAME</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS" title="DBUSMENU_MENUITEM_PROP_ICON_DATA">DBUSMENU_MENUITEM_PROP_ICON_DATA</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" title="DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY">DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT">DBUSMENU_MENUITEM_PROP_SHORTCUT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION">DBUSMENU_MENUITEM_PROP_DISPOSITION</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS" title="DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC">DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_CHECK">DBUSMENU_MENUITEM_TOGGLE_CHECK</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_RADIO">DBUSMENU_MENUITEM_TOGGLE_RADIO</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED">DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED">DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN">DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS" title="DBUSMENU_MENUITEM_ICON_NAME_BLANK">DBUSMENU_MENUITEM_ICON_NAME_BLANK</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS" title="DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU">DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_ALT">DBUSMENU_MENUITEM_SHORTCUT_ALT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_CONTROL">DBUSMENU_MENUITEM_SHORTCUT_CONTROL</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_SHIFT">DBUSMENU_MENUITEM_SHORTCUT_SHIFT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS" title="DBUSMENU_MENUITEM_SHORTCUT_SUPER">DBUSMENU_MENUITEM_SHORTCUT_SUPER</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_NORMAL">DBUSMENU_MENUITEM_DISPOSITION_NORMAL</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE">DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_WARNING">DBUSMENU_MENUITEM_DISPOSITION_WARNING</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS" title="DBUSMENU_MENUITEM_DISPOSITION_ALERT">DBUSMENU_MENUITEM_DISPOSITION_ALERT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS" title="DBUSMENU_MENUITEM_EVENT_ACTIVATED">DBUSMENU_MENUITEM_EVENT_ACTIVATED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS" title="DBUSMENU_MENUITEM_EVENT_CLOSED">DBUSMENU_MENUITEM_EVENT_CLOSED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-OPENED:CAPS" title="DBUSMENU_MENUITEM_EVENT_OPENED">DBUSMENU_MENUITEM_EVENT_OPENED</a>
+struct <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem">DbusmenuMenuitem</a>;
+<span class="returnvalue">void</span> (<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-about-to-show-cb" title="dbusmenu_menuitem_about_to_show_cb ()">*dbusmenu_menuitem_about_to_show_cb</a>)
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * (<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-buildvariant-slot-t" title="dbusmenu_menuitem_buildvariant_slot_t ()">*dbusmenu_menuitem_buildvariant_slot_t</a>)
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **properties</code></em>);
+struct <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitemClass" title="struct DbusmenuMenuitemClass">DbusmenuMenuitemClass</a>;
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new" title="dbusmenu_menuitem_new ()">dbusmenu_menuitem_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new-with-id" title="dbusmenu_menuitem_new_with_id ()">dbusmenu_menuitem_new_with_id</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-id" title="dbusmenu_menuitem_get_id ()">dbusmenu_menuitem_get_id</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-children" title="dbusmenu_menuitem_get_children ()">dbusmenu_menuitem_get_children</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-take-children" title="dbusmenu_menuitem_take_children ()">dbusmenu_menuitem_take_children</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position" title="dbusmenu_menuitem_get_position ()">dbusmenu_menuitem_get_position</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position-realized" title="dbusmenu_menuitem_get_position_realized ()">dbusmenu_menuitem_get_position_realized</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-append" title="dbusmenu_menuitem_child_append ()">dbusmenu_menuitem_child_append</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-prepend" title="dbusmenu_menuitem_child_prepend ()">dbusmenu_menuitem_child_prepend</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-delete" title="dbusmenu_menuitem_child_delete ()">dbusmenu_menuitem_child_delete</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-add-position" title="dbusmenu_menuitem_child_add_position ()">dbusmenu_menuitem_child_add_position</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> position</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-reorder" title="dbusmenu_menuitem_child_reorder ()">dbusmenu_menuitem_child_reorder</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> position</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-find" title="dbusmenu_menuitem_child_find ()">dbusmenu_menuitem_child_find</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-find-id" title="dbusmenu_menuitem_find_id ()">dbusmenu_menuitem_find_id</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set" title="dbusmenu_menuitem_property_set ()">dbusmenu_menuitem_property_set</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-bool" title="dbusmenu_menuitem_property_set_bool ()">dbusmenu_menuitem_property_set_bool</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-byte-array" title="dbusmenu_menuitem_property_set_byte_array ()">dbusmenu_menuitem_property_set_byte_array</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>,
+ <em class="parameter"><code><span class="type">gsize</span> nelements</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-int" title="dbusmenu_menuitem_property_set_int ()">dbusmenu_menuitem_property_set_int</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-variant" title="dbusmenu_menuitem_property_set_variant ()">dbusmenu_menuitem_property_set_variant</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get" title="dbusmenu_menuitem_property_get ()">dbusmenu_menuitem_property_get</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-bool" title="dbusmenu_menuitem_property_get_bool ()">dbusmenu_menuitem_property_get_bool</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="returnvalue">guchar</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-byte-array" title="dbusmenu_menuitem_property_get_byte_array ()">dbusmenu_menuitem_property_get_byte_array</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code><span class="type">gsize</span> *nelements</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-int" title="dbusmenu_menuitem_property_get_int ()">dbusmenu_menuitem_property_get_int</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-variant" title="dbusmenu_menuitem_property_get_variant ()">dbusmenu_menuitem_property_get_variant</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-exist" title="dbusmenu_menuitem_property_exist ()">dbusmenu_menuitem_property_exist</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-list" title="dbusmenu_menuitem_properties_list ()">dbusmenu_menuitem_properties_list</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-copy" title="dbusmenu_menuitem_properties_copy ()">dbusmenu_menuitem_properties_copy</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-remove" title="dbusmenu_menuitem_property_remove ()">dbusmenu_menuitem_property_remove</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-root" title="dbusmenu_menuitem_set_root ()">dbusmenu_menuitem_set_root</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> root</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-root" title="dbusmenu_menuitem_get_root ()">dbusmenu_menuitem_get_root</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-foreach" title="dbusmenu_menuitem_foreach ()">dbusmenu_menuitem_foreach</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*func) (DbusmenuMenuitem * mi, gpointer data)</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-handle-event" title="dbusmenu_menuitem_handle_event ()">dbusmenu_menuitem_handle_event</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timestamp</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-send-about-to-show" title="dbusmenu_menuitem_send_about_to_show ()">dbusmenu_menuitem_send_about_to_show</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*cb) (DbusmenuMenuitem * mi, gpointer user_data)</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cb_data</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-show-to-user" title="dbusmenu_menuitem_show_to_user ()">dbusmenu_menuitem_show_to_user</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timestamp</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-parent" title="dbusmenu_menuitem_get_parent ()">dbusmenu_menuitem_get_parent</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-parent" title="dbusmenu_menuitem_set_parent ()">dbusmenu_menuitem_set_parent</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-unparent" title="dbusmenu_menuitem_unparent ()">dbusmenu_menuitem_unparent</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitem.description"></a><h2>Description</h2>
+<p>
+A <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> is the lowest level of represenation of a
+single item in a menu. It gets created on the server side
+and copied over to the client side where it gets rendered. As
+the server starts to change it, and grow it, and do all kinds
+of fun stuff that information is transfered over DBus and the
+client updates it's understanding of the object model.
+</p>
+<p>
+Most people using either the client or the server should be
+able to deal mostly with <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects. These
+are simple, but then they can be attached to more complex
+objects and handled appropriately.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitem.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED "property-changed"
+</pre>
+<p>
+String to attach to signal <span class="type">"property-changed"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED "item-activated"
+</pre>
+<p>
+String to attach to signal <span class="type">"item-activated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED "child-added"
+</pre>
+<p>
+String to attach to signal <span class="type">"child-added"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED "child-removed"
+</pre>
+<p>
+String to attach to signal <span class="type">"child-removed"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED "child-moved"
+</pre>
+<p>
+String to attach to signal <span class="type">"child-moved"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_EVENT</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_EVENT "event"
+</pre>
+<p>
+String to attach to signal <span class="type">"event"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_REALIZED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_REALIZED "realized"
+</pre>
+<p>
+String to attach to signal <span class="type">"realized"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID (g_signal_lookup(DBUSMENU_MENUITEM_SIGNAL_REALIZED, DBUSMENU_TYPE_MENUITEM))
+</pre>
+<p>
+ID to attach to signal <span class="type">"realized"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW "about-to-show"
+</pre>
+<p>
+String to attach to signal <span class="type">"about-to-show"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS"></a><h3>DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER "show-to-user"
+</pre>
+<p>
+String to attach to signal <span class="type">"show-to-user"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-TYPE:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_TYPE</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_TYPE "type"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property used to represent what type of menuitem
+this object represents. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_VISIBLE</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_VISIBLE "visible"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property used to represent whether the menuitem
+should be shown or not. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_ENABLED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_ENABLED "enabled"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property used to represent whether the menuitem
+is clickable or not. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-LABEL:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_LABEL</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_LABEL "label"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property used for the text on the menu item.
+Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_ICON_NAME</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_ICON_NAME "icon-name"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that is the name of the icon under the
+Freedesktop.org icon naming spec. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_ICON_DATA</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_ICON_DATA "icon-data"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that is the raw data of a custom icon
+used in the application. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-VARIANT:CAPS"><span class="type">G_VARIANT_TYPE_VARIANT</span></a>
+</p>
+<p>
+It is recommended that this is not set directly but instead the
+libdbusmenu-gtk library is used with the function <a href="/usr/share/gtk-doc/html/libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image"><code class="function">dbusmenu_menuitem_property_set_image()</code></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE "toggle-type"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that says what type of toggle entry should
+be shown in the menu. Should be either <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_CHECK"><span class="type">DBUSMENU_MENUITEM_TOGGLE_CHECK</span></a>
+or <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_RADIO"><span class="type">DBUSMENU_MENUITEM_TOGGLE_RADIO</span></a>. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_TOGGLE_STATE "toggle-state"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that says what state a toggle entry should
+be shown as the menu. Should be either <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED"><span class="type">DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</span></a>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS" title="DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED"><span class="type">DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</span></a> or <span class="type">DBUSMENU_MENUITEM_TOGGLE_STATUE_UNKNOWN</span>.
+Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-INT32:CAPS"><span class="type">G_VARIANT_TYPE_INT32</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "children-display"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that tells how the children of this menuitem
+should be displayed. Most likely this will be unset or of the value
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS" title="DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU"><span class="type">DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</span></a>. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_SHORTCUT</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_SHORTCUT "shortcut"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property that is the entries that represent a shortcut
+to activate the menuitem. It is an array of arrays of strings.
+Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-ARRAY:CAPS"><span class="type">G_VARIANT_TYPE_ARRAY</span></a>
+</p>
+<p>
+It is recommended that this is not set directly but instead the
+libdbusmenu-gtk library is used with the function <a href="/usr/share/gtk-doc/html/libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut"><code class="function">dbusmenu_menuitem_property_set_shortcut()</code></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_DISPOSITION</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_DISPOSITION "disposition"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property to tell what type of information that the
+menu item is displaying to the user. Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC "accessible-desc"
+</pre>
+<p>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property used to provide a textual description of any
+information that the icon may convey. The contents of this property are
+passed through to assistive technologies such as the Orca screen reader.
+The contents of this property will not be visible in the menu item. If
+this property is set, Orca will use this property instead of the label
+property.
+Type: <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS"></a><h3>DBUSMENU_MENUITEM_TOGGLE_CHECK</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_TOGGLE_CHECK "checkmark"
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</span></a> to be a standard
+check mark item.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS"></a><h3>DBUSMENU_MENUITEM_TOGGLE_RADIO</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_TOGGLE_RADIO "radio"
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</span></a> to be a standard
+radio item.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS"></a><h3>DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED 0
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</span></a> so that the menu's
+toggle item is empty.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS"></a><h3>DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED 1
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</span></a> so that the menu's
+toggle item is filled.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS"></a><h3>DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN -1
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</span></a> so that the menu's
+toggle item is undecided.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS"></a><h3>DBUSMENU_MENUITEM_ICON_NAME_BLANK</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_ICON_NAME_BLANK "blank-icon"
+</pre>
+<p>
+Used to set <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" title="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE"><span class="type">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</span></a> so that the menu's
+toggle item is undecided.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS"></a><h3>DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU "submenu"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" title="DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY"><span class="type">DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</span></a> to have the
+subitems displayed as a submenu.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS"></a><h3>DBUSMENU_MENUITEM_SHORTCUT_ALT</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SHORTCUT_ALT "Alt"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT"><span class="type">DBUSMENU_MENUITEM_PROP_SHORTCUT</span></a> to represent the
+alternate key.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS"></a><h3>DBUSMENU_MENUITEM_SHORTCUT_CONTROL</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SHORTCUT_CONTROL "Control"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT"><span class="type">DBUSMENU_MENUITEM_PROP_SHORTCUT</span></a> to represent the
+control key.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS"></a><h3>DBUSMENU_MENUITEM_SHORTCUT_SHIFT</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SHORTCUT_SHIFT "Shift"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT"><span class="type">DBUSMENU_MENUITEM_PROP_SHORTCUT</span></a> to represent the
+shift key.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS"></a><h3>DBUSMENU_MENUITEM_SHORTCUT_SUPER</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_SHORTCUT_SUPER "Super"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" title="DBUSMENU_MENUITEM_PROP_SHORTCUT"><span class="type">DBUSMENU_MENUITEM_PROP_SHORTCUT</span></a> to represent the
+super key.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS"></a><h3>DBUSMENU_MENUITEM_DISPOSITION_NORMAL</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_DISPOSITION_NORMAL "normal"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION"><span class="type">DBUSMENU_MENUITEM_PROP_DISPOSITION</span></a> to have a menu
+item displayed in the normal manner. Default value.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS"></a><h3>DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE "informative"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION"><span class="type">DBUSMENU_MENUITEM_PROP_DISPOSITION</span></a> to have a menu
+item displayed in a way that conveys it's giving additional
+information to the user.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS"></a><h3>DBUSMENU_MENUITEM_DISPOSITION_WARNING</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_DISPOSITION_WARNING "warning"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION"><span class="type">DBUSMENU_MENUITEM_PROP_DISPOSITION</span></a> to have a menu
+item displayed in a way that conveys it's giving a warning
+to the user.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS"></a><h3>DBUSMENU_MENUITEM_DISPOSITION_ALERT</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_DISPOSITION_ALERT "alert"
+</pre>
+<p>
+Used in <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" title="DBUSMENU_MENUITEM_PROP_DISPOSITION"><span class="type">DBUSMENU_MENUITEM_PROP_DISPOSITION</span></a> to have a menu
+item displayed in a way that conveys it's giving an alert
+to the user.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS"></a><h3>DBUSMENU_MENUITEM_EVENT_ACTIVATED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_EVENT_ACTIVATED "clicked"
+</pre>
+<p>
+String for the event identifier when a menu item is clicked
+on by the user.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS"></a><h3>DBUSMENU_MENUITEM_EVENT_CLOSED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_EVENT_CLOSED "closed"
+</pre>
+<p>
+String for the event identifier when a menu is closed and
+displayed to the user. Only valid for items that contain
+submenus.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS"></a><h3>DBUSMENU_MENUITEM_EVENT_OPENED</h3>
+<pre class="programlisting">#define DBUSMENU_MENUITEM_EVENT_OPENED "opened"
+</pre>
+<p>
+String for the event identifier when a menu is opened and
+displayed to the user. Only valid for items that contain
+submenus.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuMenuitem"></a><h3>struct DbusmenuMenuitem</h3>
+<pre class="programlisting">struct DbusmenuMenuitem {
+ GObject parent;
+
+ /*&lt; Private &gt;*/
+ DbusmenuMenuitemPrivate * priv;
+};
+</pre>
+<p>
+This is the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> based object that represents a menu
+item. It gets created the same on both the client and
+the server side and libdbusmenu-glib does the work of making
+this object model appear on both sides of DBus. Simple
+really, though through updates and people coming on and off
+the bus it can lead to lots of fun complex scenarios.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> <em class="structfield"><code><a name="DbusmenuMenuitem.parent"></a>parent</code></em>;</span></p></td>
+<td>Parent object</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">DbusmenuMenuitemPrivate</span> *<em class="structfield"><code><a name="DbusmenuMenuitem.priv"></a>priv</code></em>;</span></p></td>
+<td>Private data</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-about-to-show-cb"></a><h3>dbusmenu_menuitem_about_to_show_cb ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> (*dbusmenu_menuitem_about_to_show_cb)
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Callback prototype for a callback that is called when the
+menu should be shown.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>Menu item that should be shown</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>Extra user data sent with the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-buildvariant-slot-t"></a><h3>dbusmenu_menuitem_buildvariant_slot_t ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * (*dbusmenu_menuitem_buildvariant_slot_t)
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **properties</code></em>);</pre>
+<p>
+This is the function that is called to represent this menu item
+as a variant. Should call it's own children.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>Menu item that should be built from. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
+<td>A list of properties that should be the only ones in the resulting variant structure. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A variant representing this item and it's children. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuMenuitemClass"></a><h3>struct DbusmenuMenuitemClass</h3>
+<pre class="programlisting">struct DbusmenuMenuitemClass {
+ GObjectClass parent_class;
+
+ /* Signals */
+ void (*property_changed) (gchar * property, GVariant * value);
+ void (*item_activated) (guint timestamp);
+ void (*child_added) (DbusmenuMenuitem * child, guint position);
+ void (*child_removed) (DbusmenuMenuitem * child);
+ void (*child_moved) (DbusmenuMenuitem * child, guint newpos, guint oldpos);
+ void (*realized) (void);
+
+ /* Virtual functions */
+ dbusmenu_menuitem_buildvariant_slot_t buildvariant;
+ void (*handle_event) (DbusmenuMenuitem * mi, const gchar * name, GVariant * variant, guint timestamp);
+ void (*send_about_to_show) (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gpointer user_data), gpointer cb_data);
+
+ void (*show_to_user) (DbusmenuMenuitem * mi, guint timestamp, gpointer cb_data);
+ gboolean (*about_to_show) (void);
+
+ void (*event) (const gchar * name, GVariant * value, guint timestamp);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+};
+</pre>
+<p>
+Functions and signals that every menuitem should know something
+about.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="DbusmenuMenuitemClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>Functions and signals from our parent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.property-changed"></a>property_changed</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"property-changed"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.item-activated"></a>item_activated</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"item-activated"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.child-added"></a>child_added</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"child-added"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.child-removed"></a>child_removed</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"child-removed"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.child-moved"></a>child_moved</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"child-moved"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.realized"></a>realized</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"realized"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-buildvariant-slot-t" title="dbusmenu_menuitem_buildvariant_slot_t ()"><span class="type">dbusmenu_menuitem_buildvariant_slot_t</span></a> <em class="structfield"><code><a name="DbusmenuMenuitemClass.buildvariant"></a>buildvariant</code></em>;</span></p></td>
+<td>Virtual function that appends the strings required to represent this menu item in the menu variant.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.handle-event"></a>handle_event</code></em> ()</span></p></td>
+<td>This function is to override how events are handled by subclasses. Look at <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-handle-event" title="dbusmenu_menuitem_handle_event ()"><span class="type">dbusmenu_menuitem_handle_event</span></a> for lots of good information.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.show-to-user"></a>show_to_user</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"show-to-user"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.about-to-show"></a>about_to_show</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"about-to-show"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.event"></a>event</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"event"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemClass.reserved5"></a>reserved5</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-new"></a><h3>dbusmenu_menuitem_new ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create a new <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> with all default values.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-new-with-id"></a><h3>dbusmenu_menuitem_new_with_id ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_new_with_id (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+<p>
+This creates a blank <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> with a specific ID.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID to use for this menuitem</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-id"></a><h3>dbusmenu_menuitem_get_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> dbusmenu_menuitem_get_id (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+Gets the unique ID for <em class="parameter"><code>mi</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to query.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The ID of the <em class="parameter"><code>mi</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-children"></a><h3>dbusmenu_menuitem_get_children ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * dbusmenu_menuitem_get_children (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+Returns simply the list of children that this menu item
+has. The list is valid until another child related function
+is called, where it might be changed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to query.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of pointers to <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Dbusmenu.Menuitem]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-take-children"></a><h3>dbusmenu_menuitem_take_children ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * dbusmenu_menuitem_take_children (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+While the name sounds devious that's exactly what this function
+does. It takes the list of children from the <em class="parameter"><code>mi</code></em> and clears the
+internal list. The calling function is now in charge of the ref's
+on the children it has taken. A lot of responsibility involved
+in taking children.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <span class="type">DbusmenMenuitem</span> to take the children from.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of pointers to <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Dbusmenu.Menuitem]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-position"></a><h3>dbusmenu_menuitem_get_position ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> dbusmenu_menuitem_get_position (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);</pre>
+<p>
+This function returns the position of the menu item <em class="parameter"><code>mi</code></em>
+in the children of <em class="parameter"><code>parent</code></em>. It will return zero if the
+menu item can't be found.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to find the position of</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> who's children contain <em class="parameter"><code>mi</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The position of <em class="parameter"><code>mi</code></em> in the children of <em class="parameter"><code>parent</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-position-realized"></a><h3>dbusmenu_menuitem_get_position_realized ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> dbusmenu_menuitem_get_position_realized
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);</pre>
+<p>
+This function is very similar to <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position" title="dbusmenu_menuitem_get_position ()"><span class="type">dbusmenu_menuitem_get_position</span></a>
+except that it only counts in the children that have been realized.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to find the position of</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> who's children contain <em class="parameter"><code>mi</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The position of <em class="parameter"><code>mi</code></em> in the realized children of <em class="parameter"><code>parent</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-append"></a><h3>dbusmenu_menuitem_child_append ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_child_append (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);</pre>
+<p>
+This function adds <em class="parameter"><code>child</code></em> to the list of children on <em class="parameter"><code>mi</code></em> at
+the end of that list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> which will become a new parent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The <span class="type">DbusmenMenuitem</span> that will be a child</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the child has been added successfully.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-prepend"></a><h3>dbusmenu_menuitem_child_prepend ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_child_prepend (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);</pre>
+<p>
+This function adds <em class="parameter"><code>child</code></em> to the list of children on <em class="parameter"><code>mi</code></em> at
+the beginning of that list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> which will become a new parent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The <span class="type">DbusmenMenuitem</span> that will be a child</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the child has been added successfully.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-delete"></a><h3>dbusmenu_menuitem_child_delete ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_child_delete (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>);</pre>
+<p>
+This function removes <em class="parameter"><code>child</code></em> from the children list of <em class="parameter"><code>mi</code></em>. It does
+not call <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><span class="type">g_object_unref</span></a> on <em class="parameter"><code>child</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> which has <em class="parameter"><code>child</code></em> as a child</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The child <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that you want to no longer
+be a child of <em class="parameter"><code>mi</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>If we were able to delete <em class="parameter"><code>child</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-add-position"></a><h3>dbusmenu_menuitem_child_add_position ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_child_add_position
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> position</code></em>);</pre>
+<p>
+Puts <em class="parameter"><code>child</code></em> in the list of children for <em class="parameter"><code>mi</code></em> at the location
+specified in <em class="parameter"><code>position</code></em>. If there is not enough entires available
+then <em class="parameter"><code>child</code></em> will be placed at the end of the list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that we're adding the child <em class="parameter"><code>child</code></em> to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to make a child of <em class="parameter"><code>mi</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>Where in <em class="parameter"><code>mi</code></em> object's list of chidren <em class="parameter"><code>child</code></em> should be placed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether <em class="parameter"><code>child</code></em> was added successfully.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-reorder"></a><h3>dbusmenu_menuitem_child_reorder ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_child_reorder (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *child</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> position</code></em>);</pre>
+<p>
+This function moves a child on the list of children. It is
+for a child that is already in the list, but simply needs a
+new location.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that has children needing realignment</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that is a child needing to be moved</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The position in the list to place it in</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the move was successful.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-child-find"></a><h3>dbusmenu_menuitem_child_find ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_child_find (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+<p>
+Search the children of <em class="parameter"><code>mi</code></em> to find one with the ID of <em class="parameter"><code>id</code></em>.
+If it doesn't exist then we return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> who's children to look on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>The ID of the child that we're looking for.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The menu item with the ID <em class="parameter"><code>id</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if it
+can't be found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-find-id"></a><h3>dbusmenu_menuitem_find_id ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_find_id (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+<p>
+This function searchs the whole tree of children that
+are attached to <em class="parameter"><code>mi</code></em>. This could be quite a few nodes, all
+the way down the tree. It is a depth first search.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> at the top of the tree to search</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of the <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to search for</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> with the ID of <em class="parameter"><code>id</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if there isn't such a menu item in the tree
+represented by <em class="parameter"><code>mi</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set"></a><h3>dbusmenu_menuitem_property_set ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>
+Takes the pair of <em class="parameter"><code>property</code></em> and <em class="parameter"><code>value</code></em> and places them as a
+property on <em class="parameter"><code>mi</code></em>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <span class="type">"prop-changed"</span> will be
+emitted by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean representing if the property value was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-bool"></a><h3>dbusmenu_menuitem_property_set_bool ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_bool (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> value</code></em>);</pre>
+<p>
+Takes a boolean <em class="parameter"><code>value</code></em> and sets it on <em class="parameter"><code>property</code></em> as a
+property on <em class="parameter"><code>mi</code></em>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <span class="type">"prop-changed"</span> will be
+emitted by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean representing if the property value was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-byte-array"></a><h3>dbusmenu_menuitem_property_set_byte_array ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_byte_array
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>,
+ <em class="parameter"><code><span class="type">gsize</span> nelements</code></em>);</pre>
+<p>
+Takes a byte array <em class="parameter"><code>value</code></em> and sets it on <em class="parameter"><code>property</code></em> as a
+property on <em class="parameter"><code>mi</code></em>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <span class="type">"prop-changed"</span> will be
+emitted by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The byte array.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nelements</code></em> :</span></p></td>
+<td>The number of elements in the byte array.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean representing if the property value was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-int"></a><h3>dbusmenu_menuitem_property_set_int ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_int (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
+<p>
+Takes a boolean <em class="parameter"><code>value</code></em> and sets it on <em class="parameter"><code>property</code></em> as a
+property on <em class="parameter"><code>mi</code></em>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <span class="type">"prop-changed"</span> will be
+emitted by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean representing if the property value was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-variant"></a><h3>dbusmenu_menuitem_property_set_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_variant
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
+<p>
+Takes the pair of <em class="parameter"><code>property</code></em> and <em class="parameter"><code>value</code></em> and places them as a
+property on <em class="parameter"><code>mi</code></em>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <span class="type">"prop-changed"</span> will be
+emitted by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean representing if the property value was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get"></a><h3>dbusmenu_menuitem_property_get ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * dbusmenu_menuitem_property_get (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Look up a property on <em class="parameter"><code>mi</code></em> and return the value of it if
+it exits. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> will be returned if the property doesn't
+exist.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to grab.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A string with the value of the property
+that shouldn't be free'd. Or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the property
+is not set or is not a string. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-bool"></a><h3>dbusmenu_menuitem_property_get_bool ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_get_bool (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Look up a property on <em class="parameter"><code>mi</code></em> and return the value of it if
+it exits. Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> if the property doesn't exist.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to grab.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value of the property or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-byte-array"></a><h3>dbusmenu_menuitem_property_get_byte_array ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="returnvalue">guchar</span></a> * dbusmenu_menuitem_property_get_byte_array
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code><span class="type">gsize</span> *nelements</code></em>);</pre>
+<p>
+Look up a property on <em class="parameter"><code>mi</code></em> and return the value of it if
+it exits. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> will be returned if the property doesn't
+exist.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to grab.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nelements</code></em> :</span></p></td>
+<td>A pointer to the location to store the number of items (out)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A byte array with the
+value of the property that shouldn't be free'd. Or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the property
+is not set or is not a byte array. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=nelements][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-int"></a><h3>dbusmenu_menuitem_property_get_int ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> dbusmenu_menuitem_property_get_int (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Look up a property on <em class="parameter"><code>mi</code></em> and return the value of it if
+it exits. Returns zero if the property doesn't exist.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to grab.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value of the property or zero.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-variant"></a><h3>dbusmenu_menuitem_property_get_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * dbusmenu_menuitem_property_get_variant
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Look up a property on <em class="parameter"><code>mi</code></em> and return the value of it if
+it exits. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> will be returned if the property doesn't
+exist.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to grab.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GVariant for the property. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-exist"></a><h3>dbusmenu_menuitem_property_exist ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_exist (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Checkes to see if a particular property exists on <em class="parameter"><code>mi</code></em> and
+returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if so.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to look for.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A boolean checking to see if the property is available</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-properties-list"></a><h3>dbusmenu_menuitem_properties_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * dbusmenu_menuitem_properties_list (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+This functiong gets a list of the names of all the properties
+that are set on this menu item. This data on the list is owned
+by the menuitem but the list is not and should be freed using
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a> when the calling function is done with it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to list the properties on</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A list of
+strings or NULL if there are none. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-properties-copy"></a><h3>dbusmenu_menuitem_properties_copy ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * dbusmenu_menuitem_properties_copy (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+This function takes the properties of a <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+and puts them into a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> that is referenced by the
+key of a string and has the value of a string. The hash
+table may not have any entries if there aren't any or there
+is an error in processing. It is the caller's responsibility
+to destroy the created <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> that we're interested in the properties of</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A brand new <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> that contains all of
+theroperties that are on this <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> <em class="parameter"><code>mi</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-remove"></a><h3>dbusmenu_menuitem_property_remove ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_property_remove (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+Removes a property from the menuitem.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to remove the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The property to look for.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-set-root"></a><h3>dbusmenu_menuitem_set_root ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_set_root (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> root</code></em>);</pre>
+<p>
+This function sets the internal value of whether this is a
+root node or not.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set whether it's root</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
+<td>Whether <em class="parameter"><code>mi</code></em> is a root node or not</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-root"></a><h3>dbusmenu_menuitem_get_root ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_get_root (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+This function returns the internal value of whether this is a
+root node or not.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to see whether it's root</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if this is a root node</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-foreach"></a><h3>dbusmenu_menuitem_foreach ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_foreach (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*func) (DbusmenuMenuitem * mi, gpointer data)</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+<p>
+This calls the function <em class="parameter"><code>func</code></em> on this menu item and all
+of the children of this item. And their children. And
+their children. And... you get the point. It will get
+called on the whole tree.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <span class="type">DbusmenItem</span> to start from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>Function to call on every node in the tree</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>User data to pass to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-handle-event"></a><h3>dbusmenu_menuitem_handle_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_handle_event (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timestamp</code></em>);</pre>
+<p>
+This function is called to create an event. It is likely
+to be overrided by subclasses. The default menu item
+will respond to the activate signal and do:
+</p>
+<p>
+Emits the <span class="type">"item-activate"</span> signal on this
+menu item. Called by server objects when they get the
+appropriate DBus signals from the client.
+</p>
+<p>
+If you subclass this function you should really think
+about calling the parent function unless you have a good
+reason not to.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to send the signal on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The name of the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
+<td>A value that could be set for the event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>The timestamp of when the event happened</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-send-about-to-show"></a><h3>dbusmenu_menuitem_send_about_to_show ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_send_about_to_show
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*cb) (DbusmenuMenuitem * mi, gpointer user_data)</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cb_data</code></em>);</pre>
+<p>
+This function is used to send the even that the submenu
+of this item is about to be shown. Callers to this event
+should delay showing the menu until their callback is
+called if possible.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to send the signal on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cb</code></em> :</span></p></td>
+<td>Callback to call when the call has returned.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cb_data</code></em> :</span></p></td>
+<td>Data to pass to the callback. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-show-to-user"></a><h3>dbusmenu_menuitem_show_to_user ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_show_to_user (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timestamp</code></em>);</pre>
+<p>
+Signals that this menu item should be shown to the user. If this is
+server side the server will then take it and send it over the
+bus.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to show</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>The time that the user requested it to be shown</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-get-parent"></a><h3>dbusmenu_menuitem_get_parent ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_get_parent (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+This function looks up the parent of <em class="parameter"><code>mi</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> for which to inspect the parent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The parent of this menu item. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-set-parent"></a><h3>dbusmenu_menuitem_set_parent ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_set_parent (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);</pre>
+<p>
+Sets the parent of <em class="parameter"><code>mi</code></em> to <em class="parameter"><code>parent</code></em>. If <em class="parameter"><code>mi</code></em> already
+has a parent, then this call will fail. The parent will
+be set automatically when using the usual methods to add a
+child menuitem, so this function should not normally be
+called directly
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> for which to set the parent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>The new parent <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the parent was set successfully</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-unparent"></a><h3>dbusmenu_menuitem_unparent ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_unparent (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+Unparents the menu item <em class="parameter"><code>mi</code></em>. If <em class="parameter"><code>mi</code></em> doesn't have a
+parent, then this call will fail. The menuitem will
+be unparented automatically when using the usual methods
+to delete a child menuitem, so this function should not
+normally be called directly
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to unparent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the menu item was unparented successfully</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitemProxy.html b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitemProxy.html
new file mode 100644
index 0000000..a59d08f
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitemProxy.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuMenuitemProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-glib-DbusmenuServer.html" title="DbusmenuServer">
+<link rel="next" href="libdbusmenu-glib-DbusmenuMenuitem.html" title="DbusmenuMenuitem">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-glib-DbusmenuServer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-glib-DbusmenuMenuitem.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-glib-DbusmenuMenuitemProxy.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-glib-DbusmenuMenuitemProxy.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-glib-DbusmenuMenuitemProxy"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-glib-DbusmenuMenuitemProxy.top_of_page"></a>DbusmenuMenuitemProxy</span></h2>
+<p>DbusmenuMenuitemProxy — A menuitem that proxies from another menuitem</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitemProxy.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-glib-DbusmenuMenuitemProxy.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-glib/menuitem-proxy.h&gt;
+
+ <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</a>;
+struct <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxyClass" title="struct DbusmenuMenuitemProxyClass">DbusmenuMenuitemProxyClass</a>;
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="returnvalue">DbusmenuMenuitemProxy</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-new" title="dbusmenu_menuitem_proxy_new ()">dbusmenu_menuitem_proxy_new</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-get-wrapped" title="dbusmenu_menuitem_proxy_get_wrapped ()">dbusmenu_menuitem_proxy_get_wrapped</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a> *pmi</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitemProxy.description"></a><h2>Description</h2>
+<p>
+This small object allows for proxying all the properties from a remote
+menuitem to a new object that can be moved around appropriately within
+the new menu structure.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuMenuitemProxy.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DbusmenuMenuitemProxy"></a><h3>DbusmenuMenuitemProxy</h3>
+<pre class="programlisting">typedef struct _DbusmenuMenuitemProxy DbusmenuMenuitemProxy;</pre>
+<p>
+Public instance data for a <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuMenuitemProxyClass"></a><h3>struct DbusmenuMenuitemProxyClass</h3>
+<pre class="programlisting">struct DbusmenuMenuitemProxyClass {
+ DbusmenuMenuitemClass parent_class;
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+};
+</pre>
+<p>
+Functions and signal slots for <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitemClass" title="struct DbusmenuMenuitemClass"><span class="type">DbusmenuMenuitemClass</span></a> <em class="structfield"><code><a name="DbusmenuMenuitemProxyClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>The Class of <span class="type">DbusmeneMenuitem</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemProxyClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemProxyClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemProxyClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuMenuitemProxyClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-proxy-new"></a><h3>dbusmenu_menuitem_proxy_new ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="returnvalue">DbusmenuMenuitemProxy</span></a> * dbusmenu_menuitem_proxy_new (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *mi</code></em>);</pre>
+<p>
+Builds a new <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a> object that proxies
+all of the values for <em class="parameter"><code>mi</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mi</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to proxy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A new <a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a> object.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-proxy-get-wrapped"></a><h3>dbusmenu_menuitem_proxy_get_wrapped ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_menuitem_proxy_get_wrapped (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a> *pmi</code></em>);</pre>
+<p>
+Accesses the private variable of which <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+we are doing the proxying for.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pmi</code></em> :</span></p></td>
+<td>
+<a class="link" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy" title="DbusmenuMenuitemProxy"><span class="type">DbusmenuMenuitemProxy</span></a> to look into</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> object or a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if we
+don't have one or there is an error. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuServer.html b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuServer.html
new file mode 100644
index 0000000..36e9f55
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuServer.html
@@ -0,0 +1,412 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuServer</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="ch01.html" title="API">
+<link rel="next" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html" title="DbusmenuMenuitemProxy">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-glib-DbusmenuMenuitemProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-glib-DbusmenuServer.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-glib-DbusmenuServer.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-glib-DbusmenuServer"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-glib-DbusmenuServer.top_of_page"></a>DbusmenuServer</span></h2>
+<p>DbusmenuServer — The server signals changed and
+ updates on a tree of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objecs.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuServer.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-glib-DbusmenuServer.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-glib/server.h&gt;
+
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE">DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_ID_UPDATE">DBUSMENU_SERVER_SIGNAL_ID_UPDATE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS" title="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS" title="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS" title="DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION">DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS" title="DBUSMENU_SERVER_PROP_DBUS_OBJECT">DBUSMENU_SERVER_PROP_DBUS_OBJECT</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS" title="DBUSMENU_SERVER_PROP_ROOT_NODE">DBUSMENU_SERVER_PROP_ROOT_NODE</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-STATUS:CAPS" title="DBUSMENU_SERVER_PROP_STATUS">DBUSMENU_SERVER_PROP_STATUS</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS" title="DBUSMENU_SERVER_PROP_TEXT_DIRECTION">DBUSMENU_SERVER_PROP_TEXT_DIRECTION</a>
+#define <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-VERSION:CAPS" title="DBUSMENU_SERVER_PROP_VERSION">DBUSMENU_SERVER_PROP_VERSION</a>
+ <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer">DbusmenuServer</a>;
+struct <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServerClass" title="struct DbusmenuServerClass">DbusmenuServerClass</a>;
+<a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="returnvalue">DbusmenuServer</span></a> * <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-new" title="dbusmenu_server_new ()">dbusmenu_server_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object</code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-status" title="dbusmenu_server_get_status ()">dbusmenu_server_get_status</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-text-direction" title="dbusmenu_server_get_text_direction ()">dbusmenu_server_get_text_direction</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-root" title="dbusmenu_server_set_root ()">dbusmenu_server_set_root</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *root</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-status" title="dbusmenu_server_set_status ()">dbusmenu_server_set_status</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> status</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-text-direction" title="dbusmenu_server_set_text_direction ()">dbusmenu_server_set_text_direction</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> dir</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuServer.description"></a><h2>Description</h2>
+<p>
+A <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> is the object that represents the local
+ tree of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> objects on DBus. It watches the
+ various signals that those objects emit and correctly
+ represents them across DBus to a <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a> so that
+ the same tree can be maintained in another process.
+</p>
+<p>
+ The server needs to have the root set of <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+ objects set via <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-root" title="dbusmenu_server_set_root ()"><span class="type">dbusmenu_server_set_root</span></a> but it will query
+ all of the objects in that tree automatically. After setting
+ the root there should be no other maintence required by
+ users of the server class.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-DbusmenuServer.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS"></a><h3>DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE "item-property-updated"
+</pre>
+<p>
+String to attach to signal <span class="type">"item-property-updated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS"></a><h3>DBUSMENU_SERVER_SIGNAL_ID_UPDATE</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_SIGNAL_ID_UPDATE "item-updated"
+</pre>
+<p>
+String to attach to signal <span class="type">"item-updated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS"></a><h3>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED "layout-updated"
+</pre>
+<p>
+String to attach to signal <span class="type">"layout-updated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS"></a><h3>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED
+</pre>
+<p>
+String to attach to signal <span class="type">"layout-updated"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS"></a><h3>DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION "item-activation-requested"
+</pre>
+<p>
+String to attach to signal <span class="type">"item-activation-requested"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS"></a><h3>DBUSMENU_SERVER_PROP_DBUS_OBJECT</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_PROP_DBUS_OBJECT "dbus-object"
+</pre>
+<p>
+String to access property <span class="type">"dbus-object"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS"></a><h3>DBUSMENU_SERVER_PROP_ROOT_NODE</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_PROP_ROOT_NODE "root-node"
+</pre>
+<p>
+String to access property <span class="type">"root-node"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-PROP-STATUS:CAPS"></a><h3>DBUSMENU_SERVER_PROP_STATUS</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_PROP_STATUS "status"
+</pre>
+<p>
+String to access property <span class="type">"status"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS"></a><h3>DBUSMENU_SERVER_PROP_TEXT_DIRECTION</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_PROP_TEXT_DIRECTION "text-direction"
+</pre>
+<p>
+String to access property <span class="type">"text-direction"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-SERVER-PROP-VERSION:CAPS"></a><h3>DBUSMENU_SERVER_PROP_VERSION</h3>
+<pre class="programlisting">#define DBUSMENU_SERVER_PROP_VERSION "version"
+</pre>
+<p>
+String to access property <span class="type">"version"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuServer"></a><h3>DbusmenuServer</h3>
+<pre class="programlisting">typedef struct _DbusmenuServer DbusmenuServer;</pre>
+<p>
+A server which represents a sharing of a set of
+ <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitems</span></a> across DBus to a <a class="link" href="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient" title="DbusmenuClient"><span class="type">DbusmenuClient</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuServerClass"></a><h3>struct DbusmenuServerClass</h3>
+<pre class="programlisting">struct DbusmenuServerClass {
+ GObjectClass parent_class;
+
+ /* Signals */
+ void (*id_prop_update)(gint id, gchar * property, gchar * value);
+ void (*id_update)(gint id);
+ void (*layout_updated)(gint revision);
+ void (*item_activation)(gint id, guint timestamp);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</pre>
+<p>
+The class implementing the virtual functions for <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="DbusmenuServerClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.id-prop-update"></a>id_prop_update</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"id-prop-update"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.id-update"></a>id_update</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"id-update"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.layout-updated"></a>layout_updated</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"layout-update"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.item-activation"></a>item_activation</code></em> ()</span></p></td>
+<td>Slot for <span class="type">"item-activation-requested"</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved5"></a>reserved5</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuServerClass.reserved6"></a>reserved6</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-new"></a><h3>dbusmenu_server_new ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="returnvalue">DbusmenuServer</span></a> * dbusmenu_server_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> object with a specific object
+ path on DBus. If <em class="parameter"><code>object</code></em> is set to NULL the default object
+ name of "/com/canonical/dbusmenu" will be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>The object name to show for this menu structure
+on DBus. May be NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A brand new <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-get-status"></a><h3>dbusmenu_server_get_status ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> dbusmenu_server_get_status (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>);</pre>
+<p>
+Gets the current statust hat the server is sending out over
+ DBus.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>server</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> to get the status from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The current status the server is sending</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-get-text-direction"></a><h3>dbusmenu_server_get_text_direction ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> dbusmenu_server_get_text_direction
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>);</pre>
+<p>
+Returns the value of the text direction that is being exported
+ over DBus for this server. It should relate to the direction
+ of the labels and other text fields that are being exported by
+ this server.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>server</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> object to get the text direction from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Text direction exported for this server.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-set-root"></a><h3>dbusmenu_server_set_root ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_server_set_root (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *root</code></em>);</pre>
+<p>
+This function contains all of the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> wrapping
+ required to set the property <span class="type">"root-node"</span>
+ on the server <em class="parameter"><code>self</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> object to set the root on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
+<td>The new root <a class="link" href="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem" title="struct DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> tree</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-set-status"></a><h3>dbusmenu_server_set_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_server_set_status (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> status</code></em>);</pre>
+<p>
+Changes the status of the server.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>server</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> to set the status on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>status</code></em> :</span></p></td>
+<td>Status value to set on the server</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-server-set-text-direction"></a><h3>dbusmenu_server_set_text_direction ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_server_set_text_direction (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> *server</code></em>,
+ <em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> dir</code></em>);</pre>
+<p>
+Sets the text direction that should be exported over DBus for
+ this server. If the value is set to <a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-NONE:CAPS"><span class="type">DBUSMENU_TEXT_DIRECTION_NONE</span></a>
+ the default detection will be used for setting the value and
+ exported over DBus.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>server</code></em> :</span></p></td>
+<td>The <a class="link" href="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer" title="DbusmenuServer"><span class="type">DbusmenuServer</span></a> object to set the text direction on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dir</code></em> :</span></p></td>
+<td>Direction of the text</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-Types.html b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-Types.html
new file mode 100644
index 0000000..f8a6074
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-Types.html
@@ -0,0 +1,276 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Types</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-glib-DbusmenuClient.html" title="DbusmenuClient">
+<link rel="next" href="object-tree.html" title="Object Hierarchy">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-glib-DbusmenuClient.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-glib-Types.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-glib-Types.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-glib-Types"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-glib-Types.top_of_page"></a>Types</span></h2>
+<p>Types — Types that are used by both client and
+ server.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-Types.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-glib-Types.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-glib/types.h&gt;
+
+#define <a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-STATUS:CAPS" title="DBUSMENU_TYPE_STATUS">DBUSMENU_TYPE_STATUS</a>
+#define <a class="link" href="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-TEXT-DIRECTION:CAPS" title="DBUSMENU_TYPE_TEXT_DIRECTION">DBUSMENU_TYPE_TEXT_DIRECTION</a>
+enum <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus">DbusmenuStatus</a>;
+enum <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection">DbusmenuTextDirection</a>;
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-nick" title="dbusmenu_status_get_nick ()">dbusmenu_status_get_nick</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> value</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-type" title="dbusmenu_status_get_type ()">dbusmenu_status_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-status-get-value-from-nick" title="dbusmenu_status_get_value_from_nick ()">dbusmenu_status_get_value_from_nick</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-nick" title="dbusmenu_text_direction_get_nick ()">dbusmenu_text_direction_get_nick</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> value</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-type" title="dbusmenu_text_direction_get_type ()">dbusmenu_text_direction_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> <a class="link" href="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-value-from-nick" title="dbusmenu_text_direction_get_value_from_nick ()">dbusmenu_text_direction_get_value_from_nick</a>
+ (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-Types.description"></a><h2>Description</h2>
+<p>
+Enums that are used to describe states of the server across the
+ bus. They are sent over dbus using their nicks but then turned
+ back into enums by the client.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-glib-Types.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DBUSMENU-TYPE-STATUS:CAPS"></a><h3>DBUSMENU_TYPE_STATUS</h3>
+<pre class="programlisting">#define DBUSMENU_TYPE_STATUS (dbusmenu_status_get_type())
+</pre>
+<p>
+Gets the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> value for the type associated with the
+ <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> enumerated type.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS"></a><h3>DBUSMENU_TYPE_TEXT_DIRECTION</h3>
+<pre class="programlisting">#define DBUSMENU_TYPE_TEXT_DIRECTION (dbusmenu_text_direction_get_type())
+</pre>
+<p>
+Gets the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> value for the type associated with the
+ <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> enumerated type.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuStatus"></a><h3>enum DbusmenuStatus</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; prefix=DBUSMENU_STATUS &gt;*/
+ DBUSMENU_STATUS_NORMAL, /*&lt; nick=normal &gt;*/
+ DBUSMENU_STATUS_NOTICE /*&lt; nick=notice &gt;*/
+} DbusmenuStatus;
+</pre>
+<p>
+Tracks how the menus should be presented to the user.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="DBUSMENU-STATUS-NORMAL:CAPS"></a><span class="term"><code class="literal">DBUSMENU_STATUS_NORMAL</code></span></p></td>
+<td>Everything is normal
+</td>
+</tr>
+<tr>
+<td><p><a name="DBUSMENU-STATUS-NOTICE:CAPS"></a><span class="term"><code class="literal">DBUSMENU_STATUS_NOTICE</code></span></p></td>
+<td>The menus should be shown at a higher priority
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuTextDirection"></a><h3>enum DbusmenuTextDirection</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; prefix=DBUSMENU_TEXT_DIRECTION &gt;*/
+ DBUSMENU_TEXT_DIRECTION_NONE, /*&lt; nick=none &gt;*/
+ DBUSMENU_TEXT_DIRECTION_LTR, /*&lt; nick=ltr &gt;*/
+ DBUSMENU_TEXT_DIRECTION_RTL /*&lt; nick=rtl &gt;*/
+} DbusmenuTextDirection;
+</pre>
+<p>
+The direction of text that the strings that this server
+ will be sending strings as.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="DBUSMENU-TEXT-DIRECTION-NONE:CAPS"></a><span class="term"><code class="literal">DBUSMENU_TEXT_DIRECTION_NONE</code></span></p></td>
+<td>Unspecified text direction
+</td>
+</tr>
+<tr>
+<td><p><a name="DBUSMENU-TEXT-DIRECTION-LTR:CAPS"></a><span class="term"><code class="literal">DBUSMENU_TEXT_DIRECTION_LTR</code></span></p></td>
+<td>Left-to-right text direction
+</td>
+</tr>
+<tr>
+<td><p><a name="DBUSMENU-TEXT-DIRECTION-RTL:CAPS"></a><span class="term"><code class="literal">DBUSMENU_TEXT_DIRECTION_RTL</code></span></p></td>
+<td>Right-to-left text direction
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-status-get-nick"></a><h3>dbusmenu_status_get_nick ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * dbusmenu_status_get_nick (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> value</code></em>);</pre>
+<p>
+Looks up in the enum table for the nick of <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of DbusmenuStatus to get the nick of</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The nick for the given value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> on error</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-status-get-type"></a><h3>dbusmenu_status_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> dbusmenu_status_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Builds a GLib type for the <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> enumeration.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A unique <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for the <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="type">DbusmenuStatus</span></a> enum.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-status-get-value-from-nick"></a><h3>dbusmenu_status_get_value_from_nick ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuStatus" title="enum DbusmenuStatus"><span class="returnvalue">DbusmenuStatus</span></a> dbusmenu_status_get_value_from_nick (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);</pre>
+<p>
+Looks up in the enum table for the value of <em class="parameter"><code>nick</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
+<td>The enum nick to lookup</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value for the given <em class="parameter"><code>nick</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-text-direction-get-nick"></a><h3>dbusmenu_text_direction_get_nick ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * dbusmenu_text_direction_get_nick (<em class="parameter"><code><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> value</code></em>);</pre>
+<p>
+Looks up in the enum table for the nick of <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The value of DbusmenuTextDirection to get the nick of</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The nick for the given value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> on error</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-text-direction-get-type"></a><h3>dbusmenu_text_direction_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> dbusmenu_text_direction_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Builds a GLib type for the <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> enumeration.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A unique <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for the <a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="type">DbusmenuTextDirection</span></a> enum.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-text-direction-get-value-from-nick"></a><h3>dbusmenu_text_direction_get_value_from_nick ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-glib-Types.html#DbusmenuTextDirection" title="enum DbusmenuTextDirection"><span class="returnvalue">DbusmenuTextDirection</span></a> dbusmenu_text_direction_get_value_from_nick
+ (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);</pre>
+<p>
+Looks up in the enum table for the value of <em class="parameter"><code>nick</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
+<td>The enum nick to lookup</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value for the given <em class="parameter"><code>nick</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib.devhelp2 b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib.devhelp2
new file mode 100644
index 0000000..46db66a
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/libdbusmenu-glib.devhelp2
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="libdbusmenu-glib Reference Manual" link="index.html" author="" name="libdbusmenu-glib" version="2" language="c">
+ <chapters>
+ <sub name="API" link="ch01.html">
+ <sub name="DbusmenuServer" link="libdbusmenu-glib-DbusmenuServer.html"/>
+ <sub name="DbusmenuMenuitemProxy" link="libdbusmenu-glib-DbusmenuMenuitemProxy.html"/>
+ <sub name="DbusmenuMenuitem" link="libdbusmenu-glib-DbusmenuMenuitem.html"/>
+ <sub name="DbusmenuClient" link="libdbusmenu-glib-DbusmenuClient.html"/>
+ <sub name="Types" link="libdbusmenu-glib-Types.html"/>
+ </sub>
+ <sub name="Object Hierarchy" link="object-tree.html"/>
+ <sub name="API Index" link="api-index-full.html"/>
+ <sub name="Deprecated API Index" link="api-index-deprecated.html"/>
+ <sub name="Annotation Glossary" link="annotation-glossary.html"/>
+ </chapters>
+ <functions>
+ <keyword type="macro" name="DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_SIGNAL_ID_UPDATE" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_PROP_DBUS_OBJECT" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_PROP_ROOT_NODE" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_PROP_STATUS" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-STATUS:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_PROP_TEXT_DIRECTION" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_SERVER_PROP_VERSION" link="libdbusmenu-glib-DbusmenuServer.html#DBUSMENU-SERVER-PROP-VERSION:CAPS"/>
+ <keyword type="struct" name="DbusmenuServer" link="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"/>
+ <keyword type="struct" name="struct DbusmenuServerClass" link="libdbusmenu-glib-DbusmenuServer.html#DbusmenuServerClass"/>
+ <keyword type="function" name="dbusmenu_server_new ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-new"/>
+ <keyword type="function" name="dbusmenu_server_get_status ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-status"/>
+ <keyword type="function" name="dbusmenu_server_get_text_direction ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-get-text-direction"/>
+ <keyword type="function" name="dbusmenu_server_set_root ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-root"/>
+ <keyword type="function" name="dbusmenu_server_set_status ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-status"/>
+ <keyword type="function" name="dbusmenu_server_set_text_direction ()" link="libdbusmenu-glib-DbusmenuServer.html#dbusmenu-server-set-text-direction"/>
+ <keyword type="struct" name="DbusmenuMenuitemProxy" link="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxy"/>
+ <keyword type="struct" name="struct DbusmenuMenuitemProxyClass" link="libdbusmenu-glib-DbusmenuMenuitemProxy.html#DbusmenuMenuitemProxyClass"/>
+ <keyword type="function" name="dbusmenu_menuitem_proxy_new ()" link="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-new"/>
+ <keyword type="function" name="dbusmenu_menuitem_proxy_get_wrapped ()" link="libdbusmenu-glib-DbusmenuMenuitemProxy.html#dbusmenu-menuitem-proxy-get-wrapped"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_EVENT" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_REALIZED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_TYPE" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TYPE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_VISIBLE" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_ENABLED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ENABLED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_LABEL" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-LABEL:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_ICON_NAME" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_ICON_DATA" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_TOGGLE_STATE" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_SHORTCUT" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_DISPOSITION" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_TOGGLE_CHECK" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_TOGGLE_RADIO" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_ICON_NAME_BLANK" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SHORTCUT_ALT" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SHORTCUT_CONTROL" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SHORTCUT_SHIFT" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_SHORTCUT_SUPER" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_DISPOSITION_NORMAL" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_DISPOSITION_WARNING" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_DISPOSITION_ALERT" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_EVENT_ACTIVATED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_EVENT_CLOSED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_MENUITEM_EVENT_OPENED" link="libdbusmenu-glib-DbusmenuMenuitem.html#DBUSMENU-MENUITEM-EVENT-OPENED:CAPS"/>
+ <keyword type="struct" name="struct DbusmenuMenuitem" link="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"/>
+ <keyword type="function" name="dbusmenu_menuitem_about_to_show_cb ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-about-to-show-cb"/>
+ <keyword type="function" name="dbusmenu_menuitem_buildvariant_slot_t ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-buildvariant-slot-t"/>
+ <keyword type="struct" name="struct DbusmenuMenuitemClass" link="libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitemClass"/>
+ <keyword type="function" name="dbusmenu_menuitem_new ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new"/>
+ <keyword type="function" name="dbusmenu_menuitem_new_with_id ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-new-with-id"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_id ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-id"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_children ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-children"/>
+ <keyword type="function" name="dbusmenu_menuitem_take_children ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-take-children"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_position ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_position_realized ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-position-realized"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_append ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-append"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_prepend ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-prepend"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_delete ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-delete"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_add_position ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-add-position"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_reorder ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-reorder"/>
+ <keyword type="function" name="dbusmenu_menuitem_child_find ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-child-find"/>
+ <keyword type="function" name="dbusmenu_menuitem_find_id ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-find-id"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_bool ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-bool"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_byte_array ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-byte-array"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_int ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-int"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_variant ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-set-variant"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_bool ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-bool"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_byte_array ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-byte-array"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_int ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-int"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_variant ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-get-variant"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_exist ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-exist"/>
+ <keyword type="function" name="dbusmenu_menuitem_properties_list ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-list"/>
+ <keyword type="function" name="dbusmenu_menuitem_properties_copy ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-properties-copy"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_remove ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-property-remove"/>
+ <keyword type="function" name="dbusmenu_menuitem_set_root ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-root"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_root ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-root"/>
+ <keyword type="function" name="dbusmenu_menuitem_foreach ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-foreach"/>
+ <keyword type="function" name="dbusmenu_menuitem_handle_event ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-handle-event"/>
+ <keyword type="function" name="dbusmenu_menuitem_send_about_to_show ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-send-about-to-show"/>
+ <keyword type="function" name="dbusmenu_menuitem_show_to_user ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-show-to-user"/>
+ <keyword type="function" name="dbusmenu_menuitem_get_parent ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-get-parent"/>
+ <keyword type="function" name="dbusmenu_menuitem_set_parent ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-set-parent"/>
+ <keyword type="function" name="dbusmenu_menuitem_unparent ()" link="libdbusmenu-glib-DbusmenuMenuitem.html#dbusmenu-menuitem-unparent"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_PROP_DBUS_NAME" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_PROP_DBUS_OBJECT" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_PROP_GROUP_EVENTS" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_PROP_STATUS" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-STATUS:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_PROP_TEXT_DIRECTION" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_TYPES_DEFAULT" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_TYPES_SEPARATOR" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_CLIENT_TYPES_IMAGE" link="libdbusmenu-glib-DbusmenuClient.html#DBUSMENU-CLIENT-TYPES-IMAGE:CAPS"/>
+ <keyword type="struct" name="DbusmenuClient" link="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"/>
+ <keyword type="struct" name="struct DbusmenuClientClass" link="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass"/>
+ <keyword type="function" name="DbusmenuClientTypeHandler ()" link="libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientTypeHandler"/>
+ <keyword type="function" name="dbusmenu_client_new ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-new"/>
+ <keyword type="function" name="dbusmenu_client_get_icon_paths ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-icon-paths"/>
+ <keyword type="function" name="dbusmenu_client_get_root ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-root"/>
+ <keyword type="function" name="dbusmenu_client_get_status ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-status"/>
+ <keyword type="function" name="dbusmenu_client_get_text_direction ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-get-text-direction"/>
+ <keyword type="function" name="dbusmenu_client_add_type_handler ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler"/>
+ <keyword type="function" name="dbusmenu_client_add_type_handler_full ()" link="libdbusmenu-glib-DbusmenuClient.html#dbusmenu-client-add-type-handler-full"/>
+ <keyword type="macro" name="DBUSMENU_TYPE_STATUS" link="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-STATUS:CAPS"/>
+ <keyword type="macro" name="DBUSMENU_TYPE_TEXT_DIRECTION" link="libdbusmenu-glib-Types.html#DBUSMENU-TYPE-TEXT-DIRECTION:CAPS"/>
+ <keyword type="enum" name="enum DbusmenuStatus" link="libdbusmenu-glib-Types.html#DbusmenuStatus"/>
+ <keyword type="enum" name="enum DbusmenuTextDirection" link="libdbusmenu-glib-Types.html#DbusmenuTextDirection"/>
+ <keyword type="function" name="dbusmenu_status_get_nick ()" link="libdbusmenu-glib-Types.html#dbusmenu-status-get-nick"/>
+ <keyword type="function" name="dbusmenu_status_get_type ()" link="libdbusmenu-glib-Types.html#dbusmenu-status-get-type"/>
+ <keyword type="function" name="dbusmenu_status_get_value_from_nick ()" link="libdbusmenu-glib-Types.html#dbusmenu-status-get-value-from-nick"/>
+ <keyword type="function" name="dbusmenu_text_direction_get_nick ()" link="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-nick"/>
+ <keyword type="function" name="dbusmenu_text_direction_get_type ()" link="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-type"/>
+ <keyword type="function" name="dbusmenu_text_direction_get_value_from_nick ()" link="libdbusmenu-glib-Types.html#dbusmenu-text-direction-get-value-from-nick"/>
+ <keyword type="constant" name="DBUSMENU_STATUS_NORMAL" link="libdbusmenu-glib-Types.html#DBUSMENU-STATUS-NORMAL:CAPS"/>
+ <keyword type="constant" name="DBUSMENU_STATUS_NOTICE" link="libdbusmenu-glib-Types.html#DBUSMENU-STATUS-NOTICE:CAPS"/>
+ <keyword type="constant" name="DBUSMENU_TEXT_DIRECTION_NONE" link="libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-NONE:CAPS"/>
+ <keyword type="constant" name="DBUSMENU_TEXT_DIRECTION_LTR" link="libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-LTR:CAPS"/>
+ <keyword type="constant" name="DBUSMENU_TEXT_DIRECTION_RTL" link="libdbusmenu-glib-Types.html#DBUSMENU-TEXT-DIRECTION-RTL:CAPS"/>
+ </functions>
+</book>
diff --git a/docs/libdbusmenu-glib/reference/html/object-tree.html b/docs/libdbusmenu-glib/reference/html/object-tree.html
new file mode 100644
index 0000000..91d2a26
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/object-tree.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Object Hierarchy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-glib Reference Manual">
+<link rel="prev" href="libdbusmenu-glib-Types.html" title="Types">
+<link rel="next" href="api-index-full.html" title="API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-glib-Types.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-glib Reference Manual</th>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="object-tree"></a>Object Hierarchy</h2></div></div></div>
+<pre class="screen">
+</pre>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-glib/reference/html/right.png b/docs/libdbusmenu-glib/reference/html/right.png
new file mode 100644
index 0000000..ed55207
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/right.png
Binary files differ
diff --git a/docs/libdbusmenu-glib/reference/html/style.css b/docs/libdbusmenu-glib/reference/html/style.css
new file mode 100644
index 0000000..d6f6c26
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/style.css
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+ /* tango:aluminium 1/2 */
+ background: #eeeeec;
+ border: solid 1px #d3d7cf;
+ padding: 0.5em;
+}
+.programlisting
+{
+ /* tango:sky blue 0/1 */
+ background: #e6f3ff;
+ border: solid 1px #729fcf;
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+
+@media screen {
+ sup a.footnote
+ {
+ position: relative;
+ top: 0em ! important;
+
+ }
+ /* this is needed so that the local anchors are displayed below the naviagtion */
+ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+ {
+ display: inline-block;
+ position: relative;
+ top:-5em;
+ }
+ /* this seems to be a bug in the xsl style sheets when generating indexes */
+ div.index div.index
+ {
+ top: 0em;
+ }
+ /* make space for the fixed navigation bar and add space at the bottom so that
+ * link targets appear somewhat close to top
+ */
+ body
+ {
+ padding-top: 3.2em;
+ padding-bottom: 20em;
+ }
+ /* style and size the navigation bar */
+ table.navigation#top
+ {
+ position: fixed;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ z-index: 10;
+ }
+ .navigation a, .navigation a:visited
+ {
+ /* tango:scarlet red 3 */
+ color: #a40000;
+ }
+ .navigation a:hover
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ }
+ td.shortcuts
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ font-size: 80%;
+ white-space: nowrap;
+ }
+}
+@media print {
+ table.navigation {
+ visibility: collapse;
+ display: none;
+ }
+ div.titlepage table.navigation {
+ visibility: visible;
+ display: table;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ }
+}
+
+.navigation .title
+{
+ font-size: 200%;
+}
+
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+
+a, a:visited
+{
+ text-decoration: none;
+ /* tango:sky blue 2 */
+ color: #3465a4;
+}
+a:hover
+{
+ text-decoration: underline;
+ /* tango:sky blue 1 */
+ color: #729fcf;
+}
+
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.table table th
+{
+ /* tango:aluminium 2 */
+ background-color: #d3d7cf;
+}
+
+hr
+{
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ background: #babdb6;
+ border: none 0px;
+ height: 1px;
+ clear: both;
+}
+
+.footer
+{
+ padding-top: 3.5em;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ text-align: center;
+ font-size: 80%;
+}
+
+.warning
+{
+ /* tango:orange 0/1 */
+ background: #ffeed9;
+ border-color: #ffb04f;
+}
+.note
+{
+ /* tango:chameleon 0/0.5 */
+ background: #d8ffb2;
+ border-color: #abf562;
+}
+.note, .warning
+{
+ padding: 0.5em;
+ border-width: 1px;
+ border-style: solid;
+}
+.note h3, .warning h3
+{
+ margin-top: 0.0em
+}
+.note p, .warning p
+{
+ margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+ float: right;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+.annotation
+{
+ /* tango:aluminium 5 */
+ color: #555753;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */
+.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal { color: #000000; }
+.listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */
+.listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type { color: #000000; }
+.listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+ /* tango:sky blue 1 */
+ border: solid 1px #729fcf;
+ padding: 0px;
+}
+
+.listing_lines, .listing_code {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0.5em;
+}
+.listing_lines {
+ /* tango:sky blue 0.5 */
+ background: #a6c5e3;
+ /* tango:aluminium 6 */
+ color: #2e3436;
+}
+.listing_code {
+ /* tango:sky blue 0 */
+ background: #e6f3ff;
+}
+.listing_code .programlisting {
+ /* override from previous */
+ border: none 0px;
+ padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+ margin: 0px;
+}
+
diff --git a/docs/libdbusmenu-glib/reference/html/up.png b/docs/libdbusmenu-glib/reference/html/up.png
new file mode 100644
index 0000000..8eb591f
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/html/up.png
Binary files differ
diff --git a/docs/libdbusmenu-glib/reference/libdbusmenu-glib-sections.txt b/docs/libdbusmenu-glib/reference/libdbusmenu-glib-sections.txt
index 7f11278..7804937 100644
--- a/docs/libdbusmenu-glib/reference/libdbusmenu-glib-sections.txt
+++ b/docs/libdbusmenu-glib/reference/libdbusmenu-glib-sections.txt
@@ -9,6 +9,7 @@ DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE
DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED
DBUSMENU_CLIENT_PROP_DBUS_NAME
DBUSMENU_CLIENT_PROP_DBUS_OBJECT
+DBUSMENU_CLIENT_PROP_GROUP_EVENTS
DBUSMENU_CLIENT_PROP_STATUS
DBUSMENU_CLIENT_PROP_TEXT_DIRECTION
DBUSMENU_CLIENT_TYPES_DEFAULT
diff --git a/docs/libdbusmenu-glib/reference/tmpl/client.sgml b/docs/libdbusmenu-glib/reference/tmpl/client.sgml
new file mode 100644
index 0000000..a260269
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/client.sgml
@@ -0,0 +1,228 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuClient
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_PROP_DBUS_NAME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_PROP_DBUS_OBJECT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_PROP_GROUP_EVENTS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_PROP_STATUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_PROP_TEXT_DIRECTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_TYPES_DEFAULT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_TYPES_SEPARATOR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_CLIENT_TYPES_IMAGE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT DbusmenuClient ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT DbusmenuClientClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@layout_updated:
+@root_changed:
+@new_menuitem:
+@item_activate:
+@event_result:
+@icon_theme_dirs:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+@reserved5:
+
+<!-- ##### USER_FUNCTION DbusmenuClientTypeHandler ##### -->
+<para>
+
+</para>
+
+@newitem:
+@parent:
+@client:
+@user_data:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_new ##### -->
+<para>
+
+</para>
+
+@name:
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_get_icon_paths ##### -->
+<para>
+
+</para>
+
+@client:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_get_root ##### -->
+<para>
+
+</para>
+
+@client:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_get_status ##### -->
+<para>
+
+</para>
+
+@client:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_get_text_direction ##### -->
+<para>
+
+</para>
+
+@client:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_add_type_handler ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@newfunc:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_client_add_type_handler_full ##### -->
+<para>
+
+</para>
+
+@client:
+@type:
+@newfunc:
+@user_data:
+@destroy_func:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-glib/reference/tmpl/libdbusmenu-glib-unused.sgml b/docs/libdbusmenu-glib/reference/tmpl/libdbusmenu-glib-unused.sgml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/libdbusmenu-glib-unused.sgml
diff --git a/docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml b/docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml
new file mode 100644
index 0000000..503c293
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml
@@ -0,0 +1,59 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuMenuitemProxy
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT DbusmenuMenuitemProxy ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT DbusmenuMenuitemProxyClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+
+<!-- ##### FUNCTION dbusmenu_menuitem_proxy_new ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_proxy_get_wrapped ##### -->
+<para>
+
+</para>
+
+@pmi:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml b/docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml
new file mode 100644
index 0000000..b616b8e
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml
@@ -0,0 +1,721 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuMenuitem
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_EVENT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_REALIZED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_TYPE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_VISIBLE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_ENABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_LABEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_ICON_NAME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_ICON_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_TOGGLE_STATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_SHORTCUT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_DISPOSITION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_TOGGLE_CHECK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_TOGGLE_RADIO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_ICON_NAME_BLANK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SHORTCUT_ALT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SHORTCUT_CONTROL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SHORTCUT_SHIFT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_SHORTCUT_SUPER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_DISPOSITION_NORMAL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_DISPOSITION_WARNING ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_DISPOSITION_ALERT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_EVENT_ACTIVATED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_EVENT_CLOSED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_MENUITEM_EVENT_OPENED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT DbusmenuMenuitem ##### -->
+<para>
+
+</para>
+
+@parent:
+@priv:
+
+<!-- ##### USER_FUNCTION dbusmenu_menuitem_about_to_show_cb ##### -->
+<para>
+
+</para>
+
+@mi:
+@user_data:
+
+
+<!-- ##### USER_FUNCTION dbusmenu_menuitem_buildvariant_slot_t ##### -->
+<para>
+
+</para>
+
+@mi:
+@properties:
+@Returns:
+
+
+<!-- ##### STRUCT DbusmenuMenuitemClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@property_changed:
+@item_activated:
+@child_added:
+@child_removed:
+@child_moved:
+@realized:
+@buildvariant:
+@handle_event:
+@show_to_user:
+@about_to_show:
+@event:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+@reserved5:
+
+<!-- ##### FUNCTION dbusmenu_menuitem_new ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_new_with_id ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_id ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_children ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_take_children ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_position ##### -->
+<para>
+
+</para>
+
+@mi:
+@parent:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_position_realized ##### -->
+<para>
+
+</para>
+
+@mi:
+@parent:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_append ##### -->
+<para>
+
+</para>
+
+@mi:
+@child:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_prepend ##### -->
+<para>
+
+</para>
+
+@mi:
+@child:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_delete ##### -->
+<para>
+
+</para>
+
+@mi:
+@child:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_add_position ##### -->
+<para>
+
+</para>
+
+@mi:
+@child:
+@position:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_reorder ##### -->
+<para>
+
+</para>
+
+@mi:
+@child:
+@position:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_child_find ##### -->
+<para>
+
+</para>
+
+@mi:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_find_id ##### -->
+<para>
+
+</para>
+
+@mi:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_bool ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_byte_array ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@value:
+@nelements:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_int ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_variant ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_bool ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_byte_array ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@nelements:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_int ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_variant ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_exist ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_properties_list ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_properties_copy ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_remove ##### -->
+<para>
+
+</para>
+
+@mi:
+@property:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_set_root ##### -->
+<para>
+
+</para>
+
+@mi:
+@root:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_root ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_foreach ##### -->
+<para>
+
+</para>
+
+@mi:
+@func:
+@data:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_handle_event ##### -->
+<para>
+
+</para>
+
+@mi:
+@name:
+@variant:
+@timestamp:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_send_about_to_show ##### -->
+<para>
+
+</para>
+
+@mi:
+@cb:
+@cb_data:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_show_to_user ##### -->
+<para>
+
+</para>
+
+@mi:
+@timestamp:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_get_parent ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_set_parent ##### -->
+<para>
+
+</para>
+
+@mi:
+@parent:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_unparent ##### -->
+<para>
+
+</para>
+
+@mi:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-glib/reference/tmpl/server.sgml b/docs/libdbusmenu-glib/reference/tmpl/server.sgml
new file mode 100644
index 0000000..ca9c51e
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/server.sgml
@@ -0,0 +1,171 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuServer
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_SIGNAL_ID_UPDATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_PROP_DBUS_OBJECT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_PROP_ROOT_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_PROP_STATUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_PROP_TEXT_DIRECTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_SERVER_PROP_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT DbusmenuServer ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT DbusmenuServerClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@id_prop_update:
+@id_update:
+@layout_updated:
+@item_activation:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+@reserved5:
+@reserved6:
+
+<!-- ##### FUNCTION dbusmenu_server_new ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_server_get_status ##### -->
+<para>
+
+</para>
+
+@server:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_server_get_text_direction ##### -->
+<para>
+
+</para>
+
+@server:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_server_set_root ##### -->
+<para>
+
+</para>
+
+@self:
+@root:
+
+
+<!-- ##### FUNCTION dbusmenu_server_set_status ##### -->
+<para>
+
+</para>
+
+@server:
+@status:
+
+
+<!-- ##### FUNCTION dbusmenu_server_set_text_direction ##### -->
+<para>
+
+</para>
+
+@server:
+@dir:
+
+
diff --git a/docs/libdbusmenu-glib/reference/tmpl/types.sgml b/docs/libdbusmenu-glib/reference/tmpl/types.sgml
new file mode 100644
index 0000000..8a5e419
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/tmpl/types.sgml
@@ -0,0 +1,109 @@
+<!-- ##### SECTION Title ##### -->
+Types
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO DBUSMENU_TYPE_STATUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO DBUSMENU_TYPE_TEXT_DIRECTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM DbusmenuStatus ##### -->
+<para>
+
+</para>
+
+@DBUSMENU_STATUS_NORMAL:
+@DBUSMENU_STATUS_NOTICE:
+
+<!-- ##### ENUM DbusmenuTextDirection ##### -->
+<para>
+
+</para>
+
+@DBUSMENU_TEXT_DIRECTION_NONE:
+@DBUSMENU_TEXT_DIRECTION_LTR:
+@DBUSMENU_TEXT_DIRECTION_RTL:
+
+<!-- ##### FUNCTION dbusmenu_status_get_nick ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_status_get_type ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_status_get_value_from_nick ##### -->
+<para>
+
+</para>
+
+@nick:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_text_direction_get_nick ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_text_direction_get_type ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_text_direction_get_value_from_nick ##### -->
+<para>
+
+</para>
+
+@nick:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-glib/reference/version.xml b/docs/libdbusmenu-glib/reference/version.xml
index 324d537..c62d732 100644
--- a/docs/libdbusmenu-glib/reference/version.xml
+++ b/docs/libdbusmenu-glib/reference/version.xml
@@ -1 +1 @@
-0.5.96
+0.5.97
diff --git a/docs/libdbusmenu-glib/reference/xml/annotation-glossary.xml b/docs/libdbusmenu-glib/reference/xml/annotation-glossary.xml
new file mode 100644
index 0000000..873e3a8
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/annotation-glossary.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!DOCTYPE glossary 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'">
+]>
+
+<glossary id="annotation-glossary">
+ <title>Annotation Glossary</title>
+<glossdiv><title>A</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-allow-none"/>allow-none</glossterm>
+ <glossdef>
+ <para>NULL is ok, both for passing and for returning.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>C</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-closure"/>closure</glossterm>
+ <glossdef>
+ <para>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>T</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-transfer none"/>transfer none</glossterm>
+ <glossdef>
+ <para>Don't free data after the code is done.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>A</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-array"/>array</glossterm>
+ <glossdef>
+ <para>Parameter points to an array of items.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>E</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-element-type"/>element-type</glossterm>
+ <glossdef>
+ <para>Generics and defining elements of containers and arrays.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>I</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-in"/>in</glossterm>
+ <glossdef>
+ <para>Parameter for input. Default is <acronym>transfer none</acronym>.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>T</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-transfer container"/>transfer container</glossterm>
+ <glossdef>
+ <para>Free data container after the code is done.</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-transfer full"/>transfer full</glossterm>
+ <glossdef>
+ <para>Free data after the code is done.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>S</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-scope notified"/>scope notified</glossterm>
+ <glossdef>
+ <para>The callback is valid until the GDestroyNotify argument is called.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+</glossary>
diff --git a/docs/libdbusmenu-glib/reference/xml/api-index-deprecated.xml b/docs/libdbusmenu-glib/reference/xml/api-index-deprecated.xml
new file mode 100644
index 0000000..8ec0fe4
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/api-index-deprecated.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE indexdiv 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'">
+]>
+<indexdiv>
+</indexdiv>
diff --git a/docs/libdbusmenu-glib/reference/xml/api-index-full.xml b/docs/libdbusmenu-glib/reference/xml/api-index-full.xml
new file mode 100644
index 0000000..54cebe8
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/api-index-full.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+<!DOCTYPE indexdiv 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'">
+]>
+<indexdiv>
+<indexdiv><title>C</title>
+<indexentry><primaryie linkends="DbusmenuClient"><link linkend="DbusmenuClient">DbusmenuClient</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuClientClass"><link linkend="DbusmenuClientClass">DbusmenuClientClass</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuClientTypeHandler"><link linkend="DbusmenuClientTypeHandler">DbusmenuClientTypeHandler</link>, user_function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-add-type-handler"><link linkend="dbusmenu-client-add-type-handler">dbusmenu_client_add_type_handler</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-add-type-handler-full"><link linkend="dbusmenu-client-add-type-handler-full">dbusmenu_client_add_type_handler_full</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-get-icon-paths"><link linkend="dbusmenu-client-get-icon-paths">dbusmenu_client_get_icon_paths</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-get-root"><link linkend="dbusmenu-client-get-root">dbusmenu_client_get_root</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-get-status"><link linkend="dbusmenu-client-get-status">dbusmenu_client_get_status</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-get-text-direction"><link linkend="dbusmenu-client-get-text-direction">dbusmenu_client_get_text_direction</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-client-new"><link linkend="dbusmenu-client-new">dbusmenu_client_new</link>, function in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS"><link linkend="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS">DBUSMENU_CLIENT_PROP_DBUS_NAME</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS"><link linkend="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS">DBUSMENU_CLIENT_PROP_DBUS_OBJECT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS"><link linkend="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS">DBUSMENU_CLIENT_PROP_GROUP_EVENTS</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-PROP-STATUS:CAPS"><link linkend="DBUSMENU-CLIENT-PROP-STATUS:CAPS">DBUSMENU_CLIENT_PROP_STATUS</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS"><link linkend="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS">DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS">DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS">DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS">DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS">DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS">DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS"><link linkend="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS">DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS"><link linkend="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS">DBUSMENU_CLIENT_TYPES_DEFAULT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS"><link linkend="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS">DBUSMENU_CLIENT_TYPES_IMAGE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS"><link linkend="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS">DBUSMENU_CLIENT_TYPES_SEPARATOR</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuClient">DbusmenuClient</link></primaryie></indexentry>
+</indexdiv>
+<indexdiv><title>M</title>
+<indexentry><primaryie linkends="DbusmenuMenuitem"><link linkend="DbusmenuMenuitem">DbusmenuMenuitem</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuMenuitemClass"><link linkend="DbusmenuMenuitemClass">DbusmenuMenuitemClass</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuMenuitemProxy"><link linkend="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuMenuitemProxyClass"><link linkend="DbusmenuMenuitemProxyClass">DbusmenuMenuitemProxyClass</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-about-to-show-cb"><link linkend="dbusmenu-menuitem-about-to-show-cb">dbusmenu_menuitem_about_to_show_cb</link>, user_function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-buildvariant-slot-t"><link linkend="dbusmenu-menuitem-buildvariant-slot-t">dbusmenu_menuitem_buildvariant_slot_t</link>, user_function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-add-position"><link linkend="dbusmenu-menuitem-child-add-position">dbusmenu_menuitem_child_add_position</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-append"><link linkend="dbusmenu-menuitem-child-append">dbusmenu_menuitem_child_append</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-delete"><link linkend="dbusmenu-menuitem-child-delete">dbusmenu_menuitem_child_delete</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS"><link linkend="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS">DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-find"><link linkend="dbusmenu-menuitem-child-find">dbusmenu_menuitem_child_find</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-prepend"><link linkend="dbusmenu-menuitem-child-prepend">dbusmenu_menuitem_child_prepend</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-child-reorder"><link linkend="dbusmenu-menuitem-child-reorder">dbusmenu_menuitem_child_reorder</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS"><link linkend="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS">DBUSMENU_MENUITEM_DISPOSITION_ALERT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS"><link linkend="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS">DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS"><link linkend="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS">DBUSMENU_MENUITEM_DISPOSITION_NORMAL</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS"><link linkend="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS">DBUSMENU_MENUITEM_DISPOSITION_WARNING</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS"><link linkend="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS">DBUSMENU_MENUITEM_EVENT_ACTIVATED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS"><link linkend="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS">DBUSMENU_MENUITEM_EVENT_CLOSED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS"><link linkend="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS">DBUSMENU_MENUITEM_EVENT_OPENED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-find-id"><link linkend="dbusmenu-menuitem-find-id">dbusmenu_menuitem_find_id</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-foreach"><link linkend="dbusmenu-menuitem-foreach">dbusmenu_menuitem_foreach</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-children"><link linkend="dbusmenu-menuitem-get-children">dbusmenu_menuitem_get_children</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-id"><link linkend="dbusmenu-menuitem-get-id">dbusmenu_menuitem_get_id</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-parent"><link linkend="dbusmenu-menuitem-get-parent">dbusmenu_menuitem_get_parent</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-position"><link linkend="dbusmenu-menuitem-get-position">dbusmenu_menuitem_get_position</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-position-realized"><link linkend="dbusmenu-menuitem-get-position-realized">dbusmenu_menuitem_get_position_realized</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-get-root"><link linkend="dbusmenu-menuitem-get-root">dbusmenu_menuitem_get_root</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-handle-event"><link linkend="dbusmenu-menuitem-handle-event">dbusmenu_menuitem_handle_event</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS"><link linkend="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS">DBUSMENU_MENUITEM_ICON_NAME_BLANK</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-new"><link linkend="dbusmenu-menuitem-new">dbusmenu_menuitem_new</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-new-with-id"><link linkend="dbusmenu-menuitem-new-with-id">dbusmenu_menuitem_new_with_id</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-properties-copy"><link linkend="dbusmenu-menuitem-properties-copy">dbusmenu_menuitem_properties_copy</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-properties-list"><link linkend="dbusmenu-menuitem-properties-list">dbusmenu_menuitem_properties_list</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-exist"><link linkend="dbusmenu-menuitem-property-exist">dbusmenu_menuitem_property_exist</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get"><link linkend="dbusmenu-menuitem-property-get">dbusmenu_menuitem_property_get</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-bool"><link linkend="dbusmenu-menuitem-property-get-bool">dbusmenu_menuitem_property_get_bool</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-byte-array"><link linkend="dbusmenu-menuitem-property-get-byte-array">dbusmenu_menuitem_property_get_byte_array</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-int"><link linkend="dbusmenu-menuitem-property-get-int">dbusmenu_menuitem_property_get_int</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-variant"><link linkend="dbusmenu-menuitem-property-get-variant">dbusmenu_menuitem_property_get_variant</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-remove"><link linkend="dbusmenu-menuitem-property-remove">dbusmenu_menuitem_property_remove</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set"><link linkend="dbusmenu-menuitem-property-set">dbusmenu_menuitem_property_set</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-bool"><link linkend="dbusmenu-menuitem-property-set-bool">dbusmenu_menuitem_property_set_bool</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-byte-array"><link linkend="dbusmenu-menuitem-property-set-byte-array">dbusmenu_menuitem_property_set_byte_array</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-int"><link linkend="dbusmenu-menuitem-property-set-int">dbusmenu_menuitem_property_set_int</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-variant"><link linkend="dbusmenu-menuitem-property-set-variant">dbusmenu_menuitem_property_set_variant</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS">DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS">DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS">DBUSMENU_MENUITEM_PROP_DISPOSITION</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS">DBUSMENU_MENUITEM_PROP_ENABLED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS">DBUSMENU_MENUITEM_PROP_ICON_DATA</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS">DBUSMENU_MENUITEM_PROP_ICON_NAME</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-LABEL:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-LABEL:CAPS">DBUSMENU_MENUITEM_PROP_LABEL</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS">DBUSMENU_MENUITEM_PROP_SHORTCUT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-TYPE:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-TYPE:CAPS">DBUSMENU_MENUITEM_PROP_TYPE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS"><link linkend="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS">DBUSMENU_MENUITEM_PROP_VISIBLE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-proxy-get-wrapped"><link linkend="dbusmenu-menuitem-proxy-get-wrapped">dbusmenu_menuitem_proxy_get_wrapped</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-proxy-new"><link linkend="dbusmenu-menuitem-proxy-new">dbusmenu_menuitem_proxy_new</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-send-about-to-show"><link linkend="dbusmenu-menuitem-send-about-to-show">dbusmenu_menuitem_send_about_to_show</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-set-parent"><link linkend="dbusmenu-menuitem-set-parent">dbusmenu_menuitem_set_parent</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-set-root"><link linkend="dbusmenu-menuitem-set-root">dbusmenu_menuitem_set_root</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS"><link linkend="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS">DBUSMENU_MENUITEM_SHORTCUT_ALT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS"><link linkend="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS">DBUSMENU_MENUITEM_SHORTCUT_CONTROL</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS"><link linkend="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS">DBUSMENU_MENUITEM_SHORTCUT_SHIFT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS"><link linkend="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS">DBUSMENU_MENUITEM_SHORTCUT_SUPER</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-show-to-user"><link linkend="dbusmenu-menuitem-show-to-user">dbusmenu_menuitem_show_to_user</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS">DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS">DBUSMENU_MENUITEM_SIGNAL_EVENT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS">DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS">DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS">DBUSMENU_MENUITEM_SIGNAL_REALIZED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS">DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS"><link linkend="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS">DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-take-children"><link linkend="dbusmenu-menuitem-take-children">dbusmenu_menuitem_take_children</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS"><link linkend="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS">DBUSMENU_MENUITEM_TOGGLE_CHECK</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS"><link linkend="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS">DBUSMENU_MENUITEM_TOGGLE_RADIO</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS"><link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS"><link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS"><link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-unparent"><link linkend="dbusmenu-menuitem-unparent">dbusmenu_menuitem_unparent</link>, function in <link linkend="libdbusmenu-glib-DbusmenuMenuitem">DbusmenuMenuitem</link></primaryie></indexentry>
+</indexdiv>
+<indexdiv><title>S</title>
+<indexentry><primaryie linkends="DbusmenuServer"><link linkend="DbusmenuServer">DbusmenuServer</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuServerClass"><link linkend="DbusmenuServerClass">DbusmenuServerClass</link>, struct in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-get-status"><link linkend="dbusmenu-server-get-status">dbusmenu_server_get_status</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-get-text-direction"><link linkend="dbusmenu-server-get-text-direction">dbusmenu_server_get_text_direction</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-new"><link linkend="dbusmenu-server-new">dbusmenu_server_new</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS"><link linkend="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS">DBUSMENU_SERVER_PROP_DBUS_OBJECT</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS"><link linkend="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS">DBUSMENU_SERVER_PROP_ROOT_NODE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-PROP-STATUS:CAPS"><link linkend="DBUSMENU-SERVER-PROP-STATUS:CAPS">DBUSMENU_SERVER_PROP_STATUS</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS"><link linkend="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS">DBUSMENU_SERVER_PROP_TEXT_DIRECTION</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-PROP-VERSION:CAPS"><link linkend="DBUSMENU-SERVER-PROP-VERSION:CAPS">DBUSMENU_SERVER_PROP_VERSION</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-set-root"><link linkend="dbusmenu-server-set-root">dbusmenu_server_set_root</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-set-status"><link linkend="dbusmenu-server-set-status">dbusmenu_server_set_status</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-server-set-text-direction"><link linkend="dbusmenu-server-set-text-direction">dbusmenu_server_set_text_direction</link>, function in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS"><link linkend="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS"><link linkend="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_ID_UPDATE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS"><link linkend="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS">DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS"><link linkend="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS"><link linkend="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</link>, macro in <link linkend="libdbusmenu-glib-DbusmenuServer">DbusmenuServer</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuStatus"><link linkend="DbusmenuStatus">DbusmenuStatus</link>, enum in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-status-get-nick"><link linkend="dbusmenu-status-get-nick">dbusmenu_status_get_nick</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-status-get-type"><link linkend="dbusmenu-status-get-type">dbusmenu_status_get_type</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-status-get-value-from-nick"><link linkend="dbusmenu-status-get-value-from-nick">dbusmenu_status_get_value_from_nick</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+</indexdiv>
+<indexdiv><title>T</title>
+<indexentry><primaryie linkends="DbusmenuTextDirection"><link linkend="DbusmenuTextDirection">DbusmenuTextDirection</link>, enum in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-text-direction-get-nick"><link linkend="dbusmenu-text-direction-get-nick">dbusmenu_text_direction_get_nick</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-text-direction-get-type"><link linkend="dbusmenu-text-direction-get-type">dbusmenu_text_direction_get_type</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-text-direction-get-value-from-nick"><link linkend="dbusmenu-text-direction-get-value-from-nick">dbusmenu_text_direction_get_value_from_nick</link>, function in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-TYPE-STATUS:CAPS"><link linkend="DBUSMENU-TYPE-STATUS:CAPS">DBUSMENU_TYPE_STATUS</link>, macro in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS"><link linkend="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS">DBUSMENU_TYPE_TEXT_DIRECTION</link>, macro in <link linkend="libdbusmenu-glib-Types">Types</link></primaryie></indexentry>
+</indexdiv>
+</indexdiv>
diff --git a/docs/libdbusmenu-glib/reference/xml/client.xml b/docs/libdbusmenu-glib/reference/xml/client.xml
new file mode 100644
index 0000000..9fa0269
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/client.xml
@@ -0,0 +1,448 @@
+<?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-glib-DbusmenuClient">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-glib-DbusmenuClient.top_of_page">DbusmenuClient</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GLIB Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuClient</refname>
+<refpurpose>The catcher of all the server traffic</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-glib-DbusmenuClient.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-glib-DbusmenuClient.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-glib/client.h&gt;
+
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS">DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</link>
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS">DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</link>
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS">DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</link>
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS">DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</link>
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS">DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</link>
+#define <link linkend="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS">DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</link>
+#define <link linkend="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS">DBUSMENU_CLIENT_PROP_DBUS_NAME</link>
+#define <link linkend="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS">DBUSMENU_CLIENT_PROP_DBUS_OBJECT</link>
+#define <link linkend="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS">DBUSMENU_CLIENT_PROP_GROUP_EVENTS</link>
+#define <link linkend="DBUSMENU-CLIENT-PROP-STATUS:CAPS">DBUSMENU_CLIENT_PROP_STATUS</link>
+#define <link linkend="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS">DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</link>
+#define <link linkend="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS">DBUSMENU_CLIENT_TYPES_DEFAULT</link>
+#define <link linkend="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS">DBUSMENU_CLIENT_TYPES_SEPARATOR</link>
+#define <link linkend="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS">DBUSMENU_CLIENT_TYPES_IMAGE</link>
+ <link linkend="DbusmenuClient">DbusmenuClient</link>;
+struct <link linkend="DbusmenuClientClass">DbusmenuClientClass</link>;
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> (<link linkend="DbusmenuClientTypeHandler">*DbusmenuClientTypeHandler</link>) (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *newitem</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>,
+ <parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);
+<link linkend="DbusmenuClient"><returnvalue>DbusmenuClient</returnvalue></link> * <link linkend="dbusmenu-client-new">dbusmenu_client_new</link> (<parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *object</parameter>);
+<link linkend="GStrv"><returnvalue>GStrv</returnvalue></link> <link linkend="dbusmenu-client-get-icon-paths">dbusmenu_client_get_icon_paths</link> (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-client-get-root">dbusmenu_client_get_root</link> (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);
+<link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> <link linkend="dbusmenu-client-get-status">dbusmenu_client_get_status</link> (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);
+<link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> <link linkend="dbusmenu-client-get-text-direction">dbusmenu_client_get_text_direction</link>
+ (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-client-add-type-handler">dbusmenu_client_add_type_handler</link> (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *type</parameter>,
+ <parameter><link linkend="DbusmenuClientTypeHandler"><type>DbusmenuClientTypeHandler</type></link> newfunc</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-client-add-type-handler-full">dbusmenu_client_add_type_handler_full</link>
+ (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *type</parameter>,
+ <parameter><link linkend="DbusmenuClientTypeHandler"><type>DbusmenuClientTypeHandler</type></link> newfunc</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
+ <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> destroy_func</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-glib-DbusmenuClient.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+The client exists as a mirror to the server. For most folks
+ all they will do with a client is set it up to connect to
+ a server and then watch as the menu items on their side
+ of the bus change. This is all they should need to know about
+ the client, that it magically makes their menuitems dance.
+</para>
+<para>
+ It does this by setting up signal watchers and adjusting
+ the menuitems appropriately. Most users should watch the
+ menu items and the signal <link linkend="DbusmenuClient-layout-changed"><type>"layout-changed"</type></link> for
+ larger events so that they can be optimized. It is possible
+ with that signal that even the root node would change. If
+ that doesn't happen the normal signals on the individual
+ nodes should be enough for most users.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-glib-DbusmenuClient.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-LAYOUT-UPDATED:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED "layout-updated"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-layout-updated"><type>"layout-updated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-ROOT-CHANGED:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED "root-changed"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-root-changed"><type>"root-changed"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-NEW-MENUITEM:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM "new-menuitem"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-new-menuitem"><type>"new-menuitem"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-EVENT-RESULT:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT "event-result"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-event-result"><type>"event-result"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-ITEM-ACTIVATE:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE "item-activate"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-item-activate"><type>"item-activate"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</title>
+<indexterm zone="DBUSMENU-CLIENT-SIGNAL-ICON-THEME-DIRS-CHANGED:CAPS"><primary>DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_SIGNAL_ICON_THEME_DIRS_CHANGED "icon-theme-dirs-changed"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-icon-theme-dirs-changed"><type>"icon-theme-dirs-changed"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_PROP_DBUS_NAME</title>
+<indexterm zone="DBUSMENU-CLIENT-PROP-DBUS-NAME:CAPS"><primary>DBUSMENU_CLIENT_PROP_DBUS_NAME</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_PROP_DBUS_NAME "dbus-name"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuClient--dbus-name"><type>"dbus-name"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_PROP_DBUS_OBJECT</title>
+<indexterm zone="DBUSMENU-CLIENT-PROP-DBUS-OBJECT:CAPS"><primary>DBUSMENU_CLIENT_PROP_DBUS_OBJECT</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_PROP_DBUS_OBJECT "dbus-object"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuClient--dbus-object"><type>"dbus-object"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_PROP_GROUP_EVENTS</title>
+<indexterm zone="DBUSMENU-CLIENT-PROP-GROUP-EVENTS:CAPS"><primary>DBUSMENU_CLIENT_PROP_GROUP_EVENTS</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_PROP_GROUP_EVENTS "group-events"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuClient--group-events"><type>"group-events"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-PROP-STATUS:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_PROP_STATUS</title>
+<indexterm zone="DBUSMENU-CLIENT-PROP-STATUS:CAPS"><primary>DBUSMENU_CLIENT_PROP_STATUS</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_PROP_STATUS "status"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuClient--status"><type>"status"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</title>
+<indexterm zone="DBUSMENU-CLIENT-PROP-TEXT-DIRECTION:CAPS"><primary>DBUSMENU_CLIENT_PROP_TEXT_DIRECTION</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_PROP_TEXT_DIRECTION "text-direction"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuClient--text-direction"><type>"text-direction"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_TYPES_DEFAULT</title>
+<indexterm zone="DBUSMENU-CLIENT-TYPES-DEFAULT:CAPS"><primary>DBUSMENU_CLIENT_TYPES_DEFAULT</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_TYPES_DEFAULT "standard"
+</programlisting>
+<para>
+Used to set the 'type' property on a menu item to create
+a standard menu item.
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_TYPES_SEPARATOR</title>
+<indexterm zone="DBUSMENU-CLIENT-TYPES-SEPARATOR:CAPS"><primary>DBUSMENU_CLIENT_TYPES_SEPARATOR</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_TYPES_SEPARATOR "separator"
+</programlisting>
+<para>
+Used to set the 'type' property on a menu item to create
+a separator menu item.
+</para></refsect2>
+<refsect2 id="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS" role="macro">
+<title>DBUSMENU_CLIENT_TYPES_IMAGE</title>
+<indexterm zone="DBUSMENU-CLIENT-TYPES-IMAGE:CAPS"><primary>DBUSMENU_CLIENT_TYPES_IMAGE</primary></indexterm>
+<programlisting>#define DBUSMENU_CLIENT_TYPES_IMAGE "standard"
+</programlisting>
+<para>
+Used to set the 'type' property on a menu item to create
+an image menu item. Deprecated as standard menu items now
+support images as well.
+</para></refsect2>
+<refsect2 id="DbusmenuClient" role="struct">
+<title>DbusmenuClient</title>
+<indexterm zone="DbusmenuClient"><primary>DbusmenuClient</primary></indexterm>
+<programlisting>typedef struct _DbusmenuClient DbusmenuClient;</programlisting>
+<para>
+The client for a <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> creating a shared
+ object set of <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects.
+</para></refsect2>
+<refsect2 id="DbusmenuClientClass" role="struct">
+<title>struct DbusmenuClientClass</title>
+<indexterm zone="DbusmenuClientClass"><primary>DbusmenuClientClass</primary></indexterm>
+<programlisting>struct DbusmenuClientClass {
+ GObjectClass parent_class;
+
+ void (*layout_updated)(void);
+ void (*root_changed) (DbusmenuMenuitem * newroot);
+ void (*new_menuitem) (DbusmenuMenuitem * newitem);
+ void (*item_activate) (DbusmenuMenuitem * item, guint timestamp);
+ void (*event_result) (DbusmenuMenuitem * item, gchar * event, GVariant * data, guint timestamp, GError * error);
+ void (*icon_theme_dirs) (DbusmenuMenuitem * item, gpointer theme_dirs, GError * error);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+};
+</programlisting>
+<para>
+A simple class that takes all of the information from a
+ <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> over DBus and makes the same set of
+ <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects appear on the other side.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="GObjectClass"><type>GObjectClass</type></link>&#160;<structfield id="DbusmenuClientClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara><link linkend="GObjectClass"><type>GObjectClass</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.layout-updated">layout_updated</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-layout-updated"><type>"layout-updated"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.root-changed">root_changed</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-root-changed"><type>"root-changed"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.new-menuitem">new_menuitem</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-new-menuitem"><type>"new-menuitem"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.item-activate">item_activate</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-item-activate"><type>"item-activate"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.event-result">event_result</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-event-error"><type>"event-error"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.icon-theme-dirs">icon_theme_dirs</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuClient-icon-theme-dirs-changed"><type>"icon-theme-dirs-changed"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuClientClass.reserved5">reserved5</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="DbusmenuClientTypeHandler" role="function">
+<title>DbusmenuClientTypeHandler ()</title>
+<indexterm zone="DbusmenuClientTypeHandler"><primary>DbusmenuClientTypeHandler</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> (*DbusmenuClientTypeHandler) (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *newitem</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>,
+ <parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
+<para>
+The type handler is called when a dbusmenu item is created
+ with a matching type as setup in <link linkend="dbusmenu-client-add-type-handler"><type>dbusmenu_client_add_type_handler</type></link>
+</para><variablelist role="params">
+<varlistentry><term><parameter>newitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that was created</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>parent</parameter>&#160;:</term>
+<listitem><simpara>The parent of <parameter>newitem</parameter> or <link linkend="NULL:CAPS"><type>NULL</type></link> if none</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>A pointer to the <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link></simpara></listitem></varlistentry>
+<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
+<listitem><simpara>The data you gave us</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara><link linkend="TRUE:CAPS"><type>TRUE</type></link> if the type has been handled. <link linkend="FALSE:CAPS"><type>FALSE</type></link> if this
+function was somehow unable to handle it.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-new" role="function">
+<title>dbusmenu_client_new ()</title>
+<indexterm zone="dbusmenu-client-new"><primary>dbusmenu_client_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuClient"><returnvalue>DbusmenuClient</returnvalue></link> * dbusmenu_client_new (<parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *object</parameter>);</programlisting>
+<para>
+This function creates a new client that connects to a specific
+server on DBus. That server is at a specific location sharing
+a known object. The interface is assumed by the code to be
+the DBus menu interface. The newly created client will start
+sending out events as it syncs up with the server.
+</para><variablelist role="params">
+<varlistentry><term><parameter>name</parameter>&#160;:</term>
+<listitem><simpara>The DBus name for the server to connect to</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>object</parameter>&#160;:</term>
+<listitem><simpara>The object on the server to monitor</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A brand new <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-get-icon-paths" role="function">
+<title>dbusmenu_client_get_icon_paths ()</title>
+<indexterm zone="dbusmenu-client-get-icon-paths"><primary>dbusmenu_client_get_icon_paths</primary></indexterm>
+<programlisting><link linkend="GStrv"><returnvalue>GStrv</returnvalue></link> dbusmenu_client_get_icon_paths (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);</programlisting>
+<para>
+Gets the stored and exported icon paths from the client.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> to get the icon paths from</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A NULL-terminated list of icon paths with
+memory managed by the client. Duplicate if you want
+to keep them. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-get-root" role="function">
+<title>dbusmenu_client_get_root ()</title>
+<indexterm zone="dbusmenu-client-get-root"><primary>dbusmenu_client_get_root</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_client_get_root (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);</programlisting>
+<para>
+Grabs the root node for the specified client <parameter>client</parameter>. This
+function may block. It will block if there is currently a
+call to update the layout, it will block on that layout
+updated and then return the newly updated layout. Chances
+are that this update is in the queue for the mainloop as
+it would have been requested some time ago, but in theory
+it could block longer.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> to get the root node from</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> representing the root of
+menu on the server. If there is no server or there is
+an error receiving its layout it'll return <link linkend="NULL:CAPS"><type>NULL</type></link>. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-get-status" role="function">
+<title>dbusmenu_client_get_status ()</title>
+<indexterm zone="dbusmenu-client-get-status"><primary>dbusmenu_client_get_status</primary></indexterm>
+<programlisting><link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> dbusmenu_client_get_status (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);</programlisting>
+<para>
+Gets the recommended current status that the server
+ is exporting for the menus. In situtations where the
+ value is <link linkend="DBUSMENU-STATUS-NOTICE:CAPS"><type>DBUSMENU_STATUS_NOTICE</type></link> it is recommended that
+ the client show the menus to the user an a more noticible
+ way.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> to check the status on</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Status being exported.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-get-text-direction" role="function">
+<title>dbusmenu_client_get_text_direction ()</title>
+<indexterm zone="dbusmenu-client-get-text-direction"><primary>dbusmenu_client_get_text_direction</primary></indexterm>
+<programlisting><link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> dbusmenu_client_get_text_direction
+ (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>);</programlisting>
+<para>
+Gets the text direction that the server is exporting. If
+ the server is not exporting a direction then the value
+ <link linkend="DBUSMENU-TEXT-DIRECTION-NONE:CAPS"><type>DBUSMENU_TEXT_DIRECTION_NONE</type></link> will be returned.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> to check the text direction on</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Text direction being exported.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-add-type-handler" role="function">
+<title>dbusmenu_client_add_type_handler ()</title>
+<indexterm zone="dbusmenu-client-add-type-handler"><primary>dbusmenu_client_add_type_handler</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_client_add_type_handler (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *type</parameter>,
+ <parameter><link linkend="DbusmenuClientTypeHandler"><type>DbusmenuClientTypeHandler</type></link> newfunc</parameter>);</programlisting>
+<para>
+This function connects into the type handling of the <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link>.
+Every new menuitem that comes in immediately gets asked for it's
+properties. When we get those properties we check the 'type'
+property and look to see if it matches a handler that is known
+by the client. If so, the <parameter>newfunc</parameter> function is executed on that
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>. If not, then the DbusmenuClient::new-menuitem
+signal is sent.
+</para>
+<para>
+In the future the known types will be sent to the server so that it
+can make choices about the menu item types availble.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>Client where we're getting types coming in</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>type</parameter>&#160;:</term>
+<listitem><simpara>A text string that will be matched with the 'type'
+property on incoming menu items</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>newfunc</parameter>&#160;:</term>
+<listitem><simpara>The function that will be executed with those new
+items when they come in. <emphasis role="annotation">[<acronym>scope notified</acronym>]</emphasis></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>If registering the new type was successful.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-client-add-type-handler-full" role="function">
+<title>dbusmenu_client_add_type_handler_full ()</title>
+<indexterm zone="dbusmenu-client-add-type-handler-full"><primary>dbusmenu_client_add_type_handler_full</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_client_add_type_handler_full
+ (<parameter><link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> *client</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *type</parameter>,
+ <parameter><link linkend="DbusmenuClientTypeHandler"><type>DbusmenuClientTypeHandler</type></link> newfunc</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
+ <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> destroy_func</parameter>);</programlisting>
+<para>
+This function connects into the type handling of the <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link>.
+Every new menuitem that comes in immediately gets asked for it's
+properties. When we get those properties we check the 'type'
+property and look to see if it matches a handler that is known
+by the client. If so, the <parameter>newfunc</parameter> function is executed on that
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>. If not, then the DbusmenuClient::new-menuitem
+signal is sent.
+</para>
+<para>
+In the future the known types will be sent to the server so that it
+can make choices about the menu item types availble.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>Client where we're getting types coming in</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>type</parameter>&#160;:</term>
+<listitem><simpara>A text string that will be matched with the 'type'
+property on incoming menu items</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>newfunc</parameter>&#160;:</term>
+<listitem><simpara>The function that will be executed with those new
+items when they come in. <emphasis role="annotation">[<acronym>scope notified</acronym>]</emphasis></simpara></listitem></varlistentry>
+<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
+<listitem><simpara>Data passed to <parameter>newfunc</parameter> when it is called</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>destroy_func</parameter>&#160;:</term>
+<listitem><simpara>A function that is called when the type handler is
+removed (usually on client destruction) which will free
+the resources in <parameter>user_data</parameter>.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>If registering the new type was successful.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-glib/reference/xml/menuitem-proxy.xml b/docs/libdbusmenu-glib/reference/xml/menuitem-proxy.xml
new file mode 100644
index 0000000..6f4b277
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/menuitem-proxy.xml
@@ -0,0 +1,114 @@
+<?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-glib-DbusmenuMenuitemProxy">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-glib-DbusmenuMenuitemProxy.top_of_page">DbusmenuMenuitemProxy</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GLIB Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuMenuitemProxy</refname>
+<refpurpose>A menuitem that proxies from another menuitem</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitemProxy.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-glib-DbusmenuMenuitemProxy.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-glib/menuitem-proxy.h&gt;
+
+ <link linkend="DbusmenuMenuitemProxy">DbusmenuMenuitemProxy</link>;
+struct <link linkend="DbusmenuMenuitemProxyClass">DbusmenuMenuitemProxyClass</link>;
+<link linkend="DbusmenuMenuitemProxy"><returnvalue>DbusmenuMenuitemProxy</returnvalue></link> * <link linkend="dbusmenu-menuitem-proxy-new">dbusmenu_menuitem_proxy_new</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-proxy-get-wrapped">dbusmenu_menuitem_proxy_get_wrapped</link> (<parameter><link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link> *pmi</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitemProxy.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+This small object allows for proxying all the properties from a remote
+menuitem to a new object that can be moved around appropriately within
+the new menu structure.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitemProxy.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DbusmenuMenuitemProxy" role="struct">
+<title>DbusmenuMenuitemProxy</title>
+<indexterm zone="DbusmenuMenuitemProxy"><primary>DbusmenuMenuitemProxy</primary></indexterm>
+<programlisting>typedef struct _DbusmenuMenuitemProxy DbusmenuMenuitemProxy;</programlisting>
+<para>
+Public instance data for a <link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link>.
+</para></refsect2>
+<refsect2 id="DbusmenuMenuitemProxyClass" role="struct">
+<title>struct DbusmenuMenuitemProxyClass</title>
+<indexterm zone="DbusmenuMenuitemProxyClass"><primary>DbusmenuMenuitemProxyClass</primary></indexterm>
+<programlisting>struct DbusmenuMenuitemProxyClass {
+ DbusmenuMenuitemClass parent_class;
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+};
+</programlisting>
+<para>
+Functions and signal slots for <link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link>.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="DbusmenuMenuitemClass"><type>DbusmenuMenuitemClass</type></link>&#160;<structfield id="DbusmenuMenuitemProxyClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara>The Class of <link linkend="DbusmeneMenuitem"><type>DbusmeneMenuitem</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemProxyClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemProxyClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemProxyClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemProxyClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-proxy-new" role="function">
+<title>dbusmenu_menuitem_proxy_new ()</title>
+<indexterm zone="dbusmenu-menuitem-proxy-new"><primary>dbusmenu_menuitem_proxy_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitemProxy"><returnvalue>DbusmenuMenuitemProxy</returnvalue></link> * dbusmenu_menuitem_proxy_new (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+Builds a new <link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link> object that proxies
+all of the values for <parameter>mi</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to proxy</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A new <link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link> object.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-proxy-get-wrapped" role="function">
+<title>dbusmenu_menuitem_proxy_get_wrapped ()</title>
+<indexterm zone="dbusmenu-menuitem-proxy-get-wrapped"><primary>dbusmenu_menuitem_proxy_get_wrapped</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_proxy_get_wrapped (<parameter><link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link> *pmi</parameter>);</programlisting>
+<para>
+Accesses the private variable of which <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>
+we are doing the proxying for.
+</para><variablelist role="params">
+<varlistentry><term><parameter>pmi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitemProxy"><type>DbusmenuMenuitemProxy</type></link> to look into</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> object or a <link linkend="NULL:CAPS"><type>NULL</type></link> if we
+don't have one or there is an error. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-glib/reference/xml/menuitem.xml b/docs/libdbusmenu-glib/reference/xml/menuitem.xml
new file mode 100644
index 0000000..e2da731
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/menuitem.xml
@@ -0,0 +1,1331 @@
+<?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-glib-DbusmenuMenuitem">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-glib-DbusmenuMenuitem.top_of_page">DbusmenuMenuitem</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GLIB Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuMenuitem</refname>
+<refpurpose>A lowlevel represenation of a menuitem</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitem.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-glib-DbusmenuMenuitem.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-glib/menuitem.h&gt;
+
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS">DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS">DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS">DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS">DBUSMENU_MENUITEM_SIGNAL_EVENT</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS">DBUSMENU_MENUITEM_SIGNAL_REALIZED</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS">DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS">DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</link>
+#define <link linkend="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS">DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-TYPE:CAPS">DBUSMENU_MENUITEM_PROP_TYPE</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS">DBUSMENU_MENUITEM_PROP_VISIBLE</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS">DBUSMENU_MENUITEM_PROP_ENABLED</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-LABEL:CAPS">DBUSMENU_MENUITEM_PROP_LABEL</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS">DBUSMENU_MENUITEM_PROP_ICON_NAME</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS">DBUSMENU_MENUITEM_PROP_ICON_DATA</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS">DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS">DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS">DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS">DBUSMENU_MENUITEM_PROP_SHORTCUT</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS">DBUSMENU_MENUITEM_PROP_DISPOSITION</link>
+#define <link linkend="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS">DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</link>
+#define <link linkend="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS">DBUSMENU_MENUITEM_TOGGLE_CHECK</link>
+#define <link linkend="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS">DBUSMENU_MENUITEM_TOGGLE_RADIO</link>
+#define <link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</link>
+#define <link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</link>
+#define <link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS">DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</link>
+#define <link linkend="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS">DBUSMENU_MENUITEM_ICON_NAME_BLANK</link>
+#define <link linkend="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS">DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</link>
+#define <link linkend="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS">DBUSMENU_MENUITEM_SHORTCUT_ALT</link>
+#define <link linkend="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS">DBUSMENU_MENUITEM_SHORTCUT_CONTROL</link>
+#define <link linkend="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS">DBUSMENU_MENUITEM_SHORTCUT_SHIFT</link>
+#define <link linkend="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS">DBUSMENU_MENUITEM_SHORTCUT_SUPER</link>
+#define <link linkend="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS">DBUSMENU_MENUITEM_DISPOSITION_NORMAL</link>
+#define <link linkend="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS">DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</link>
+#define <link linkend="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS">DBUSMENU_MENUITEM_DISPOSITION_WARNING</link>
+#define <link linkend="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS">DBUSMENU_MENUITEM_DISPOSITION_ALERT</link>
+#define <link linkend="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS">DBUSMENU_MENUITEM_EVENT_ACTIVATED</link>
+#define <link linkend="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS">DBUSMENU_MENUITEM_EVENT_CLOSED</link>
+#define <link linkend="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS">DBUSMENU_MENUITEM_EVENT_OPENED</link>
+struct <link linkend="DbusmenuMenuitem">DbusmenuMenuitem</link>;
+<link linkend="void"><returnvalue>void</returnvalue></link> (<link linkend="dbusmenu-menuitem-about-to-show-cb">*dbusmenu_menuitem_about_to_show_cb</link>)
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);
+<link linkend="GVariant"><returnvalue>GVariant</returnvalue></link> * (<link linkend="dbusmenu-menuitem-buildvariant-slot-t">*dbusmenu_menuitem_buildvariant_slot_t</link>)
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> **properties</parameter>);
+struct <link linkend="DbusmenuMenuitemClass">DbusmenuMenuitemClass</link>;
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-new">dbusmenu_menuitem_new</link> (<parameter><type>void</type></parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-new-with-id">dbusmenu_menuitem_new_with_id</link> (<parameter><link linkend="gint"><type>gint</type></link> id</parameter>);
+<link linkend="gint"><returnvalue>gint</returnvalue></link> <link linkend="dbusmenu-menuitem-get-id">dbusmenu_menuitem_get_id</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="GList"><returnvalue>GList</returnvalue></link> * <link linkend="dbusmenu-menuitem-get-children">dbusmenu_menuitem_get_children</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="GList"><returnvalue>GList</returnvalue></link> * <link linkend="dbusmenu-menuitem-take-children">dbusmenu_menuitem_take_children</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="guint"><returnvalue>guint</returnvalue></link> <link linkend="dbusmenu-menuitem-get-position">dbusmenu_menuitem_get_position</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);
+<link linkend="guint"><returnvalue>guint</returnvalue></link> <link linkend="dbusmenu-menuitem-get-position-realized">dbusmenu_menuitem_get_position_realized</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-child-append">dbusmenu_menuitem_child_append</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-child-prepend">dbusmenu_menuitem_child_prepend</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-child-delete">dbusmenu_menuitem_child_delete</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-child-add-position">dbusmenu_menuitem_child_add_position</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> position</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-child-reorder">dbusmenu_menuitem_child_reorder</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> position</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-child-find">dbusmenu_menuitem_child_find</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gint"><type>gint</type></link> id</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-find-id">dbusmenu_menuitem_find_id</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gint"><type>gint</type></link> id</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set">dbusmenu_menuitem_property_set</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *value</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-bool">dbusmenu_menuitem_property_set_bool</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gboolean"><type>gboolean</type></link> value</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-byte-array">dbusmenu_menuitem_property_set_byte_array</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="guchar"><type>guchar</type></link> *value</parameter>,
+ <parameter><link linkend="gsize"><type>gsize</type></link> nelements</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-int">dbusmenu_menuitem_property_set_int</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gint"><type>gint</type></link> value</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-variant">dbusmenu_menuitem_property_set_variant</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter><link linkend="GVariant"><type>GVariant</type></link> *value</parameter>);
+const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="dbusmenu-menuitem-property-get">dbusmenu_menuitem_property_get</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-get-bool">dbusmenu_menuitem_property_get_bool</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+const <link linkend="guchar"><returnvalue>guchar</returnvalue></link> * <link linkend="dbusmenu-menuitem-property-get-byte-array">dbusmenu_menuitem_property_get_byte_array</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter><link linkend="gsize"><type>gsize</type></link> *nelements</parameter>);
+<link linkend="gint"><returnvalue>gint</returnvalue></link> <link linkend="dbusmenu-menuitem-property-get-int">dbusmenu_menuitem_property_get_int</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="GVariant"><returnvalue>GVariant</returnvalue></link> * <link linkend="dbusmenu-menuitem-property-get-variant">dbusmenu_menuitem_property_get_variant</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-exist">dbusmenu_menuitem_property_exist</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="GList"><returnvalue>GList</returnvalue></link> * <link linkend="dbusmenu-menuitem-properties-list">dbusmenu_menuitem_properties_list</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="GHashTable"><returnvalue>GHashTable</returnvalue></link> * <link linkend="dbusmenu-menuitem-properties-copy">dbusmenu_menuitem_properties_copy</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-property-remove">dbusmenu_menuitem_property_remove</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-set-root">dbusmenu_menuitem_set_root</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gboolean"><type>gboolean</type></link> root</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-get-root">dbusmenu_menuitem_get_root</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-foreach">dbusmenu_menuitem_foreach</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="void"><type>void</type></link> (*func) (DbusmenuMenuitem * mi, gpointer data)</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> data</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-handle-event">dbusmenu_menuitem_handle_event</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>,
+ <parameter><link linkend="GVariant"><type>GVariant</type></link> *variant</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> timestamp</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-send-about-to-show">dbusmenu_menuitem_send_about_to_show</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="void"><type>void</type></link> (*cb) (DbusmenuMenuitem * mi, gpointer user_data)</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> cb_data</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-show-to-user">dbusmenu_menuitem_show_to_user</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> timestamp</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-menuitem-get-parent">dbusmenu_menuitem_get_parent</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-set-parent">dbusmenu_menuitem_set_parent</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-unparent">dbusmenu_menuitem_unparent</link> (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitem.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+A <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> is the lowest level of represenation of a
+single item in a menu. It gets created on the server side
+and copied over to the client side where it gets rendered. As
+the server starts to change it, and grow it, and do all kinds
+of fun stuff that information is transfered over DBus and the
+client updates it's understanding of the object model.
+</para>
+<para>
+Most people using either the client or the server should be
+able to deal mostly with <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects. These
+are simple, but then they can be attached to more complex
+objects and handled appropriately.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-glib-DbusmenuMenuitem.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-PROPERTY-CHANGED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED "property-changed"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-property-changed"><type>"property-changed"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-ITEM-ACTIVATED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED "item-activated"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-item-activated"><type>"item-activated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-CHILD-ADDED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED "child-added"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-child-added"><type>"child-added"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-CHILD-REMOVED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED "child-removed"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-child-removed"><type>"child-removed"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-CHILD-MOVED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED "child-moved"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-child-moved"><type>"child-moved"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_EVENT</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-EVENT:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_EVENT</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_EVENT "event"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-event"><type>"event"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_REALIZED</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-REALIZED:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_REALIZED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_REALIZED "realized"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-realized"><type>"realized"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-REALIZED-ID:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID (g_signal_lookup(DBUSMENU_MENUITEM_SIGNAL_REALIZED, DBUSMENU_TYPE_MENUITEM))
+</programlisting>
+<para>
+ID to attach to signal <link linkend="DbusmenuServer-realized"><type>"realized"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-ABOUT-TO-SHOW:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW "about-to-show"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-about-to-show"><type>"about-to-show"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</title>
+<indexterm zone="DBUSMENU-MENUITEM-SIGNAL-SHOW-TO-USER:CAPS"><primary>DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER "show-to-user"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-show-to-user"><type>"show-to-user"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-TYPE:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_TYPE</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-TYPE:CAPS"><primary>DBUSMENU_MENUITEM_PROP_TYPE</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_TYPE "type"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property used to represent what type of menuitem
+this object represents. Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_VISIBLE</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-VISIBLE:CAPS"><primary>DBUSMENU_MENUITEM_PROP_VISIBLE</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_VISIBLE "visible"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property used to represent whether the menuitem
+should be shown or not. Type: <link linkend="G-VARIANT-TYPE-BOOLEAN:CAPS"><type>G_VARIANT_TYPE_BOOLEAN</type></link>.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_ENABLED</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-ENABLED:CAPS"><primary>DBUSMENU_MENUITEM_PROP_ENABLED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_ENABLED "enabled"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property used to represent whether the menuitem
+is clickable or not. Type: <link linkend="G-VARIANT-TYPE-BOOLEAN:CAPS"><type>G_VARIANT_TYPE_BOOLEAN</type></link>.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-LABEL:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_LABEL</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-LABEL:CAPS"><primary>DBUSMENU_MENUITEM_PROP_LABEL</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_LABEL "label"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property used for the text on the menu item.
+Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_ICON_NAME</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-ICON-NAME:CAPS"><primary>DBUSMENU_MENUITEM_PROP_ICON_NAME</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_ICON_NAME "icon-name"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that is the name of the icon under the
+Freedesktop.org icon naming spec. Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_ICON_DATA</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-ICON-DATA:CAPS"><primary>DBUSMENU_MENUITEM_PROP_ICON_DATA</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_ICON_DATA "icon-data"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that is the raw data of a custom icon
+used in the application. Type: <link linkend="G-VARIANT-TYPE-VARIANT:CAPS"><type>G_VARIANT_TYPE_VARIANT</type></link>
+</para>
+<para>
+It is recommended that this is not set directly but instead the
+libdbusmenu-gtk library is used with the function <link linkend="dbusmenu-menuitem-property-set-image"><function>dbusmenu_menuitem_property_set_image()</function></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"><primary>DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE "toggle-type"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that says what type of toggle entry should
+be shown in the menu. Should be either <link linkend="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS"><type>DBUSMENU_MENUITEM_TOGGLE_CHECK</type></link>
+or <link linkend="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS"><type>DBUSMENU_MENUITEM_TOGGLE_RADIO</type></link>. Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><primary>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_TOGGLE_STATE "toggle-state"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that says what state a toggle entry should
+be shown as the menu. Should be either <link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS"><type>DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</type></link>
+<link linkend="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS"><type>DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</type></link> or <link linkend="DBUSMENU-MENUITEM-TOGGLE-STATUE-UNKNOWN:CAPS"><type>DBUSMENU_MENUITEM_TOGGLE_STATUE_UNKNOWN</type></link>.
+Type: <link linkend="G-VARIANT-TYPE-INT32:CAPS"><type>G_VARIANT_TYPE_INT32</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"><primary>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "children-display"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that tells how the children of this menuitem
+should be displayed. Most likely this will be unset or of the value
+<link linkend="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS"><type>DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</type></link>. Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_SHORTCUT</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><primary>DBUSMENU_MENUITEM_PROP_SHORTCUT</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_SHORTCUT "shortcut"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property that is the entries that represent a shortcut
+to activate the menuitem. It is an array of arrays of strings.
+Type: <link linkend="G-VARIANT-TYPE-ARRAY:CAPS"><type>G_VARIANT_TYPE_ARRAY</type></link>
+</para>
+<para>
+It is recommended that this is not set directly but instead the
+libdbusmenu-gtk library is used with the function <link linkend="dbusmenu-menuitem-property-set-shortcut"><function>dbusmenu_menuitem_property_set_shortcut()</function></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_DISPOSITION</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><primary>DBUSMENU_MENUITEM_PROP_DISPOSITION</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_DISPOSITION "disposition"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property to tell what type of information that the
+menu item is displaying to the user. Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</title>
+<indexterm zone="DBUSMENU-MENUITEM-PROP-ACCESSIBLE-DESC:CAPS"><primary>DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC "accessible-desc"
+</programlisting>
+<para>
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property used to provide a textual description of any
+information that the icon may convey. The contents of this property are
+passed through to assistive technologies such as the Orca screen reader.
+The contents of this property will not be visible in the menu item. If
+this property is set, Orca will use this property instead of the label
+property.
+Type: <link linkend="G-VARIANT-TYPE-STRING:CAPS"><type>G_VARIANT_TYPE_STRING</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_TOGGLE_CHECK</title>
+<indexterm zone="DBUSMENU-MENUITEM-TOGGLE-CHECK:CAPS"><primary>DBUSMENU_MENUITEM_TOGGLE_CHECK</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_TOGGLE_CHECK "checkmark"
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</type></link> to be a standard
+check mark item.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_TOGGLE_RADIO</title>
+<indexterm zone="DBUSMENU-MENUITEM-TOGGLE-RADIO:CAPS"><primary>DBUSMENU_MENUITEM_TOGGLE_RADIO</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_TOGGLE_RADIO "radio"
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-TYPE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE</type></link> to be a standard
+radio item.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</title>
+<indexterm zone="DBUSMENU-MENUITEM-TOGGLE-STATE-UNCHECKED:CAPS"><primary>DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED 0
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</type></link> so that the menu's
+toggle item is empty.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</title>
+<indexterm zone="DBUSMENU-MENUITEM-TOGGLE-STATE-CHECKED:CAPS"><primary>DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED 1
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</type></link> so that the menu's
+toggle item is filled.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</title>
+<indexterm zone="DBUSMENU-MENUITEM-TOGGLE-STATE-UNKNOWN:CAPS"><primary>DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN -1
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</type></link> so that the menu's
+toggle item is undecided.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_ICON_NAME_BLANK</title>
+<indexterm zone="DBUSMENU-MENUITEM-ICON-NAME-BLANK:CAPS"><primary>DBUSMENU_MENUITEM_ICON_NAME_BLANK</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_ICON_NAME_BLANK "blank-icon"
+</programlisting>
+<para>
+Used to set <link linkend="DBUSMENU-MENUITEM-PROP-TOGGLE-STATE:CAPS"><type>DBUSMENU_MENUITEM_PROP_TOGGLE_STATE</type></link> so that the menu's
+toggle item is undecided.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</title>
+<indexterm zone="DBUSMENU-MENUITEM-CHILD-DISPLAY-SUBMENU:CAPS"><primary>DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU "submenu"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"><type>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</type></link> to have the
+subitems displayed as a submenu.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SHORTCUT_ALT</title>
+<indexterm zone="DBUSMENU-MENUITEM-SHORTCUT-ALT:CAPS"><primary>DBUSMENU_MENUITEM_SHORTCUT_ALT</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SHORTCUT_ALT "Alt"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><type>DBUSMENU_MENUITEM_PROP_SHORTCUT</type></link> to represent the
+alternate key.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SHORTCUT_CONTROL</title>
+<indexterm zone="DBUSMENU-MENUITEM-SHORTCUT-CONTROL:CAPS"><primary>DBUSMENU_MENUITEM_SHORTCUT_CONTROL</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SHORTCUT_CONTROL "Control"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><type>DBUSMENU_MENUITEM_PROP_SHORTCUT</type></link> to represent the
+control key.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SHORTCUT_SHIFT</title>
+<indexterm zone="DBUSMENU-MENUITEM-SHORTCUT-SHIFT:CAPS"><primary>DBUSMENU_MENUITEM_SHORTCUT_SHIFT</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SHORTCUT_SHIFT "Shift"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><type>DBUSMENU_MENUITEM_PROP_SHORTCUT</type></link> to represent the
+shift key.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_SHORTCUT_SUPER</title>
+<indexterm zone="DBUSMENU-MENUITEM-SHORTCUT-SUPER:CAPS"><primary>DBUSMENU_MENUITEM_SHORTCUT_SUPER</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_SHORTCUT_SUPER "Super"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-SHORTCUT:CAPS"><type>DBUSMENU_MENUITEM_PROP_SHORTCUT</type></link> to represent the
+super key.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_DISPOSITION_NORMAL</title>
+<indexterm zone="DBUSMENU-MENUITEM-DISPOSITION-NORMAL:CAPS"><primary>DBUSMENU_MENUITEM_DISPOSITION_NORMAL</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_DISPOSITION_NORMAL "normal"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><type>DBUSMENU_MENUITEM_PROP_DISPOSITION</type></link> to have a menu
+item displayed in the normal manner. Default value.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</title>
+<indexterm zone="DBUSMENU-MENUITEM-DISPOSITION-INFORMATIVE:CAPS"><primary>DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_DISPOSITION_INFORMATIVE "informative"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><type>DBUSMENU_MENUITEM_PROP_DISPOSITION</type></link> to have a menu
+item displayed in a way that conveys it's giving additional
+information to the user.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_DISPOSITION_WARNING</title>
+<indexterm zone="DBUSMENU-MENUITEM-DISPOSITION-WARNING:CAPS"><primary>DBUSMENU_MENUITEM_DISPOSITION_WARNING</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_DISPOSITION_WARNING "warning"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><type>DBUSMENU_MENUITEM_PROP_DISPOSITION</type></link> to have a menu
+item displayed in a way that conveys it's giving a warning
+to the user.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_DISPOSITION_ALERT</title>
+<indexterm zone="DBUSMENU-MENUITEM-DISPOSITION-ALERT:CAPS"><primary>DBUSMENU_MENUITEM_DISPOSITION_ALERT</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_DISPOSITION_ALERT "alert"
+</programlisting>
+<para>
+Used in <link linkend="DBUSMENU-MENUITEM-PROP-DISPOSITION:CAPS"><type>DBUSMENU_MENUITEM_PROP_DISPOSITION</type></link> to have a menu
+item displayed in a way that conveys it's giving an alert
+to the user.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_EVENT_ACTIVATED</title>
+<indexterm zone="DBUSMENU-MENUITEM-EVENT-ACTIVATED:CAPS"><primary>DBUSMENU_MENUITEM_EVENT_ACTIVATED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_EVENT_ACTIVATED "clicked"
+</programlisting>
+<para>
+String for the event identifier when a menu item is clicked
+on by the user.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_EVENT_CLOSED</title>
+<indexterm zone="DBUSMENU-MENUITEM-EVENT-CLOSED:CAPS"><primary>DBUSMENU_MENUITEM_EVENT_CLOSED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_EVENT_CLOSED "closed"
+</programlisting>
+<para>
+String for the event identifier when a menu is closed and
+displayed to the user. Only valid for items that contain
+submenus.
+</para></refsect2>
+<refsect2 id="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS" role="macro">
+<title>DBUSMENU_MENUITEM_EVENT_OPENED</title>
+<indexterm zone="DBUSMENU-MENUITEM-EVENT-OPENED:CAPS"><primary>DBUSMENU_MENUITEM_EVENT_OPENED</primary></indexterm>
+<programlisting>#define DBUSMENU_MENUITEM_EVENT_OPENED "opened"
+</programlisting>
+<para>
+String for the event identifier when a menu is opened and
+displayed to the user. Only valid for items that contain
+submenus.
+</para></refsect2>
+<refsect2 id="DbusmenuMenuitem" role="struct">
+<title>struct DbusmenuMenuitem</title>
+<indexterm zone="DbusmenuMenuitem"><primary>DbusmenuMenuitem</primary></indexterm>
+<programlisting>struct DbusmenuMenuitem {
+ GObject parent;
+
+ /*&lt; Private &gt;*/
+ DbusmenuMenuitemPrivate * priv;
+};
+</programlisting>
+<para>
+This is the <link linkend="GObject"><type>GObject</type></link> based object that represents a menu
+item. It gets created the same on both the client and
+the server side and libdbusmenu-glib does the work of making
+this object model appear on both sides of DBus. Simple
+really, though through updates and people coming on and off
+the bus it can lead to lots of fun complex scenarios.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="GObject"><type>GObject</type></link>&#160;<structfield id="DbusmenuMenuitem.parent">parent</structfield>;</term>
+<listitem><simpara>Parent object</simpara></listitem>
+</varlistentry>
+<varlistentry><term><link linkend="DbusmenuMenuitemPrivate"><type>DbusmenuMenuitemPrivate</type></link>&#160;*<structfield id="DbusmenuMenuitem.priv">priv</structfield>;</term>
+<listitem><simpara>Private data</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-about-to-show-cb" role="function">
+<title>dbusmenu_menuitem_about_to_show_cb ()</title>
+<indexterm zone="dbusmenu-menuitem-about-to-show-cb"><primary>dbusmenu_menuitem_about_to_show_cb</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> (*dbusmenu_menuitem_about_to_show_cb)
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
+<para>
+Callback prototype for a callback that is called when the
+menu should be shown.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>Menu item that should be shown</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
+<listitem><simpara>Extra user data sent with the function. <emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-buildvariant-slot-t" role="function">
+<title>dbusmenu_menuitem_buildvariant_slot_t ()</title>
+<indexterm zone="dbusmenu-menuitem-buildvariant-slot-t"><primary>dbusmenu_menuitem_buildvariant_slot_t</primary></indexterm>
+<programlisting><link linkend="GVariant"><returnvalue>GVariant</returnvalue></link> * (*dbusmenu_menuitem_buildvariant_slot_t)
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> **properties</parameter>);</programlisting>
+<para>
+This is the function that is called to represent this menu item
+as a variant. Should call it's own children.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>Menu item that should be built from. <emphasis role="annotation">[<acronym>in</acronym>]</emphasis></simpara></listitem></varlistentry>
+<varlistentry><term><parameter>properties</parameter>&#160;:</term>
+<listitem><simpara>A list of properties that should be the only ones in the resulting variant structure. <emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A variant representing this item and it's children. <emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="DbusmenuMenuitemClass" role="struct">
+<title>struct DbusmenuMenuitemClass</title>
+<indexterm zone="DbusmenuMenuitemClass"><primary>DbusmenuMenuitemClass</primary></indexterm>
+<programlisting>struct DbusmenuMenuitemClass {
+ GObjectClass parent_class;
+
+ /* Signals */
+ void (*property_changed) (gchar * property, GVariant * value);
+ void (*item_activated) (guint timestamp);
+ void (*child_added) (DbusmenuMenuitem * child, guint position);
+ void (*child_removed) (DbusmenuMenuitem * child);
+ void (*child_moved) (DbusmenuMenuitem * child, guint newpos, guint oldpos);
+ void (*realized) (void);
+
+ /* Virtual functions */
+ dbusmenu_menuitem_buildvariant_slot_t buildvariant;
+ void (*handle_event) (DbusmenuMenuitem * mi, const gchar * name, GVariant * variant, guint timestamp);
+ void (*send_about_to_show) (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gpointer user_data), gpointer cb_data);
+
+ void (*show_to_user) (DbusmenuMenuitem * mi, guint timestamp, gpointer cb_data);
+ gboolean (*about_to_show) (void);
+
+ void (*event) (const gchar * name, GVariant * value, guint timestamp);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+};
+</programlisting>
+<para>
+Functions and signals that every menuitem should know something
+about.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="GObjectClass"><type>GObjectClass</type></link>&#160;<structfield id="DbusmenuMenuitemClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara>Functions and signals from our parent</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.property-changed">property_changed</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-property-changed"><type>"property-changed"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.item-activated">item_activated</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-item-activated"><type>"item-activated"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.child-added">child_added</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-child-added"><type>"child-added"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.child-removed">child_removed</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-child-removed"><type>"child-removed"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.child-moved">child_moved</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-child-moved"><type>"child-moved"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.realized">realized</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-realized"><type>"realized"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><link linkend="dbusmenu-menuitem-buildvariant-slot-t"><type>dbusmenu_menuitem_buildvariant_slot_t</type></link>&#160;<structfield id="DbusmenuMenuitemClass.buildvariant">buildvariant</structfield>;</term>
+<listitem><simpara>Virtual function that appends the strings required to represent this menu item in the menu variant.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.handle-event">handle_event</structfield>&#160;()</term>
+<listitem><simpara>This function is to override how events are handled by subclasses. Look at <link linkend="dbusmenu-menuitem-handle-event"><type>dbusmenu_menuitem_handle_event</type></link> for lots of good information.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.show-to-user">show_to_user</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-show-to-user"><type>"show-to-user"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.about-to-show">about_to_show</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuMenuitem-about-to-show"><type>"about-to-show"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.event">event</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbsumenuMenuitem-event"><type>"event"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuMenuitemClass.reserved5">reserved5</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-new" role="function">
+<title>dbusmenu_menuitem_new ()</title>
+<indexterm zone="dbusmenu-menuitem-new"><primary>dbusmenu_menuitem_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_new (<parameter><type>void</type></parameter>);</programlisting>
+<para>
+Create a new <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> with all default values.
+</para><variablelist role="params">
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A newly allocated <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-new-with-id" role="function">
+<title>dbusmenu_menuitem_new_with_id ()</title>
+<indexterm zone="dbusmenu-menuitem-new-with-id"><primary>dbusmenu_menuitem_new_with_id</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_new_with_id (<parameter><link linkend="gint"><type>gint</type></link> id</parameter>);</programlisting>
+<para>
+This creates a blank <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> with a specific ID.
+</para><variablelist role="params">
+<varlistentry><term><parameter>id</parameter>&#160;:</term>
+<listitem><simpara>ID to use for this menuitem</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A newly allocated <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-id" role="function">
+<title>dbusmenu_menuitem_get_id ()</title>
+<indexterm zone="dbusmenu-menuitem-get-id"><primary>dbusmenu_menuitem_get_id</primary></indexterm>
+<programlisting><link linkend="gint"><returnvalue>gint</returnvalue></link> dbusmenu_menuitem_get_id (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+Gets the unique ID for <parameter>mi</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to query.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The ID of the <parameter>mi</parameter>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-children" role="function">
+<title>dbusmenu_menuitem_get_children ()</title>
+<indexterm zone="dbusmenu-menuitem-get-children"><primary>dbusmenu_menuitem_get_children</primary></indexterm>
+<programlisting><link linkend="GList"><returnvalue>GList</returnvalue></link> * dbusmenu_menuitem_get_children (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+Returns simply the list of children that this menu item
+has. The list is valid until another child related function
+is called, where it might be changed.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to query.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A <link linkend="GList"><type>GList</type></link> of pointers to <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects. <emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>element-type</acronym> Dbusmenu.Menuitem]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-take-children" role="function">
+<title>dbusmenu_menuitem_take_children ()</title>
+<indexterm zone="dbusmenu-menuitem-take-children"><primary>dbusmenu_menuitem_take_children</primary></indexterm>
+<programlisting><link linkend="GList"><returnvalue>GList</returnvalue></link> * dbusmenu_menuitem_take_children (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+While the name sounds devious that's exactly what this function
+does. It takes the list of children from the <parameter>mi</parameter> and clears the
+internal list. The calling function is now in charge of the ref's
+on the children it has taken. A lot of responsibility involved
+in taking children.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenMenuitem"><type>DbusmenMenuitem</type></link> to take the children from.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A <link linkend="GList"><type>GList</type></link> of pointers to <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects. <emphasis role="annotation">[<acronym>transfer full</acronym>][<acronym>element-type</acronym> Dbusmenu.Menuitem]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-position" role="function">
+<title>dbusmenu_menuitem_get_position ()</title>
+<indexterm zone="dbusmenu-menuitem-get-position"><primary>dbusmenu_menuitem_get_position</primary></indexterm>
+<programlisting><link linkend="guint"><returnvalue>guint</returnvalue></link> dbusmenu_menuitem_get_position (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);</programlisting>
+<para>
+This function returns the position of the menu item <parameter>mi</parameter>
+in the children of <parameter>parent</parameter>. It will return zero if the
+menu item can't be found.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to find the position of</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>parent</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> who's children contain <parameter>mi</parameter></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The position of <parameter>mi</parameter> in the children of <parameter>parent</parameter>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-position-realized" role="function">
+<title>dbusmenu_menuitem_get_position_realized ()</title>
+<indexterm zone="dbusmenu-menuitem-get-position-realized"><primary>dbusmenu_menuitem_get_position_realized</primary></indexterm>
+<programlisting><link linkend="guint"><returnvalue>guint</returnvalue></link> dbusmenu_menuitem_get_position_realized
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);</programlisting>
+<para>
+This function is very similar to <link linkend="dbusmenu-menuitem-get-position"><type>dbusmenu_menuitem_get_position</type></link>
+except that it only counts in the children that have been realized.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to find the position of</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>parent</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> who's children contain <parameter>mi</parameter></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The position of <parameter>mi</parameter> in the realized children of <parameter>parent</parameter>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-append" role="function">
+<title>dbusmenu_menuitem_child_append ()</title>
+<indexterm zone="dbusmenu-menuitem-child-append"><primary>dbusmenu_menuitem_child_append</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_child_append (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);</programlisting>
+<para>
+This function adds <parameter>child</parameter> to the list of children on <parameter>mi</parameter> at
+the end of that list.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> which will become a new parent</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>child</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenMenuitem"><type>DbusmenMenuitem</type></link> that will be a child</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the child has been added successfully.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-prepend" role="function">
+<title>dbusmenu_menuitem_child_prepend ()</title>
+<indexterm zone="dbusmenu-menuitem-child-prepend"><primary>dbusmenu_menuitem_child_prepend</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_child_prepend (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);</programlisting>
+<para>
+This function adds <parameter>child</parameter> to the list of children on <parameter>mi</parameter> at
+the beginning of that list.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> which will become a new parent</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>child</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenMenuitem"><type>DbusmenMenuitem</type></link> that will be a child</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the child has been added successfully.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-delete" role="function">
+<title>dbusmenu_menuitem_child_delete ()</title>
+<indexterm zone="dbusmenu-menuitem-child-delete"><primary>dbusmenu_menuitem_child_delete</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_child_delete (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>);</programlisting>
+<para>
+This function removes <parameter>child</parameter> from the children list of <parameter>mi</parameter>. It does
+not call <link linkend="g-object-unref"><type>g_object_unref</type></link> on <parameter>child</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> which has <parameter>child</parameter> as a child</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>child</parameter>&#160;:</term>
+<listitem><simpara>The child <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that you want to no longer
+be a child of <parameter>mi</parameter>.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>If we were able to delete <parameter>child</parameter>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-add-position" role="function">
+<title>dbusmenu_menuitem_child_add_position ()</title>
+<indexterm zone="dbusmenu-menuitem-child-add-position"><primary>dbusmenu_menuitem_child_add_position</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_child_add_position
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> position</parameter>);</programlisting>
+<para>
+Puts <parameter>child</parameter> in the list of children for <parameter>mi</parameter> at the location
+specified in <parameter>position</parameter>. If there is not enough entires available
+then <parameter>child</parameter> will be placed at the end of the list.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that we're adding the child <parameter>child</parameter> to.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>child</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to make a child of <parameter>mi</parameter>.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>position</parameter>&#160;:</term>
+<listitem><simpara>Where in <parameter>mi</parameter> object's list of chidren <parameter>child</parameter> should be placed.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether <parameter>child</parameter> was added successfully.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-reorder" role="function">
+<title>dbusmenu_menuitem_child_reorder ()</title>
+<indexterm zone="dbusmenu-menuitem-child-reorder"><primary>dbusmenu_menuitem_child_reorder</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_child_reorder (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *child</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> position</parameter>);</programlisting>
+<para>
+This function moves a child on the list of children. It is
+for a child that is already in the list, but simply needs a
+new location.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that has children needing realignment</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>child</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that is a child needing to be moved</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>position</parameter>&#160;:</term>
+<listitem><simpara>The position in the list to place it in</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the move was successful.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-child-find" role="function">
+<title>dbusmenu_menuitem_child_find ()</title>
+<indexterm zone="dbusmenu-menuitem-child-find"><primary>dbusmenu_menuitem_child_find</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_child_find (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gint"><type>gint</type></link> id</parameter>);</programlisting>
+<para>
+Search the children of <parameter>mi</parameter> to find one with the ID of <parameter>id</parameter>.
+If it doesn't exist then we return <link linkend="NULL:CAPS"><type>NULL</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> who's children to look on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>id</parameter>&#160;:</term>
+<listitem><simpara>The ID of the child that we're looking for.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The menu item with the ID <parameter>id</parameter> or <link linkend="NULL:CAPS"><type>NULL</type></link> if it
+can't be found. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-find-id" role="function">
+<title>dbusmenu_menuitem_find_id ()</title>
+<indexterm zone="dbusmenu-menuitem-find-id"><primary>dbusmenu_menuitem_find_id</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_find_id (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gint"><type>gint</type></link> id</parameter>);</programlisting>
+<para>
+This function searchs the whole tree of children that
+are attached to <parameter>mi</parameter>. This could be quite a few nodes, all
+the way down the tree. It is a depth first search.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> at the top of the tree to search</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>id</parameter>&#160;:</term>
+<listitem><simpara>ID of the <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to search for</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> with the ID of <parameter>id</parameter>
+or <link linkend="NULL:CAPS"><type>NULL</type></link> if there isn't such a menu item in the tree
+represented by <parameter>mi</parameter>. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set" role="function">
+<title>dbusmenu_menuitem_property_set ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set"><primary>dbusmenu_menuitem_property_set</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *value</parameter>);</programlisting>
+<para>
+Takes the pair of <parameter>property</parameter> and <parameter>value</parameter> and places them as a
+property on <parameter>mi</parameter>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <link linkend="DbusmenuMenuitem-prop-changed"><type>"prop-changed"</type></link> will be
+emitted by this function.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of the property.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean representing if the property value was set.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-bool" role="function">
+<title>dbusmenu_menuitem_property_set_bool ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-bool"><primary>dbusmenu_menuitem_property_set_bool</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_bool (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gboolean"><type>gboolean</type></link> value</parameter>);</programlisting>
+<para>
+Takes a boolean <parameter>value</parameter> and sets it on <parameter>property</parameter> as a
+property on <parameter>mi</parameter>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <link linkend="DbusmenuMenuitem-prop-changed"><type>"prop-changed"</type></link> will be
+emitted by this function.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of the property.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean representing if the property value was set.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-byte-array" role="function">
+<title>dbusmenu_menuitem_property_set_byte_array ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-byte-array"><primary>dbusmenu_menuitem_property_set_byte_array</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_byte_array
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="guchar"><type>guchar</type></link> *value</parameter>,
+ <parameter><link linkend="gsize"><type>gsize</type></link> nelements</parameter>);</programlisting>
+<para>
+Takes a byte array <parameter>value</parameter> and sets it on <parameter>property</parameter> as a
+property on <parameter>mi</parameter>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <link linkend="DbusmenuMenuitem-prop-changed"><type>"prop-changed"</type></link> will be
+emitted by this function.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The byte array.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>nelements</parameter>&#160;:</term>
+<listitem><simpara>The number of elements in the byte array.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean representing if the property value was set.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-int" role="function">
+<title>dbusmenu_menuitem_property_set_int ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-int"><primary>dbusmenu_menuitem_property_set_int</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_int (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="gint"><type>gint</type></link> value</parameter>);</programlisting>
+<para>
+Takes a boolean <parameter>value</parameter> and sets it on <parameter>property</parameter> as a
+property on <parameter>mi</parameter>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <link linkend="DbusmenuMenuitem-prop-changed"><type>"prop-changed"</type></link> will be
+emitted by this function.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of the property.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean representing if the property value was set.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-variant" role="function">
+<title>dbusmenu_menuitem_property_set_variant ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-variant"><primary>dbusmenu_menuitem_property_set_variant</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_variant
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter><link linkend="GVariant"><type>GVariant</type></link> *value</parameter>);</programlisting>
+<para>
+Takes the pair of <parameter>property</parameter> and <parameter>value</parameter> and places them as a
+property on <parameter>mi</parameter>. If a property already exists by that name,
+then the value is set to the new value. If not, the property
+is added. If the value is changed or the property was previously
+unset then the signal <link linkend="DbusmenuMenuitem-prop-changed"><type>"prop-changed"</type></link> will be
+emitted by this function.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of the property.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean representing if the property value was set.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get" role="function">
+<title>dbusmenu_menuitem_property_get ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get"><primary>dbusmenu_menuitem_property_get</primary></indexterm>
+<programlisting>const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * dbusmenu_menuitem_property_get (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Look up a property on <parameter>mi</parameter> and return the value of it if
+it exits. <link linkend="NULL:CAPS"><type>NULL</type></link> will be returned if the property doesn't
+exist.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to grab.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A string with the value of the property
+that shouldn't be free'd. Or <link linkend="NULL:CAPS"><type>NULL</type></link> if the property
+is not set or is not a string. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-bool" role="function">
+<title>dbusmenu_menuitem_property_get_bool ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-bool"><primary>dbusmenu_menuitem_property_get_bool</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_get_bool (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Look up a property on <parameter>mi</parameter> and return the value of it if
+it exits. Returns <link linkend="FALSE:CAPS"><type>FALSE</type></link> if the property doesn't exist.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to grab.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The value of the property or <link linkend="FALSE:CAPS"><type>FALSE</type></link>.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-byte-array" role="function">
+<title>dbusmenu_menuitem_property_get_byte_array ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-byte-array"><primary>dbusmenu_menuitem_property_get_byte_array</primary></indexterm>
+<programlisting>const <link linkend="guchar"><returnvalue>guchar</returnvalue></link> * dbusmenu_menuitem_property_get_byte_array
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter><link linkend="gsize"><type>gsize</type></link> *nelements</parameter>);</programlisting>
+<para>
+Look up a property on <parameter>mi</parameter> and return the value of it if
+it exits. <link linkend="NULL:CAPS"><type>NULL</type></link> will be returned if the property doesn't
+exist.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to grab.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>nelements</parameter>&#160;:</term>
+<listitem><simpara>A pointer to the location to store the number of items (out)</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A byte array with the
+value of the property that shouldn't be free'd. Or <link linkend="NULL:CAPS"><type>NULL</type></link> if the property
+is not set or is not a byte array. <emphasis role="annotation">[<acronym>array</acronym> length=nelements][<acronym>element-type</acronym> guint8][<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-int" role="function">
+<title>dbusmenu_menuitem_property_get_int ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-int"><primary>dbusmenu_menuitem_property_get_int</primary></indexterm>
+<programlisting><link linkend="gint"><returnvalue>gint</returnvalue></link> dbusmenu_menuitem_property_get_int (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Look up a property on <parameter>mi</parameter> and return the value of it if
+it exits. Returns zero if the property doesn't exist.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to grab.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The value of the property or zero.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-variant" role="function">
+<title>dbusmenu_menuitem_property_get_variant ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-variant"><primary>dbusmenu_menuitem_property_get_variant</primary></indexterm>
+<programlisting><link linkend="GVariant"><returnvalue>GVariant</returnvalue></link> * dbusmenu_menuitem_property_get_variant
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Look up a property on <parameter>mi</parameter> and return the value of it if
+it exits. <link linkend="NULL:CAPS"><type>NULL</type></link> will be returned if the property doesn't
+exist.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to grab.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A GVariant for the property. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-exist" role="function">
+<title>dbusmenu_menuitem_property_exist ()</title>
+<indexterm zone="dbusmenu-menuitem-property-exist"><primary>dbusmenu_menuitem_property_exist</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_exist (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Checkes to see if a particular property exists on <parameter>mi</parameter> and
+returns <link linkend="TRUE:CAPS"><type>TRUE</type></link> if so.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to look for.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A boolean checking to see if the property is available</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-properties-list" role="function">
+<title>dbusmenu_menuitem_properties_list ()</title>
+<indexterm zone="dbusmenu-menuitem-properties-list"><primary>dbusmenu_menuitem_properties_list</primary></indexterm>
+<programlisting><link linkend="GList"><returnvalue>GList</returnvalue></link> * dbusmenu_menuitem_properties_list (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+This functiong gets a list of the names of all the properties
+that are set on this menu item. This data on the list is owned
+by the menuitem but the list is not and should be freed using
+<link linkend="g-list-free"><function>g_list_free()</function></link> when the calling function is done with it.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to list the properties on</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A list of
+strings or NULL if there are none. <emphasis role="annotation">[<acronym>transfer container</acronym>][<acronym>element-type</acronym> utf8]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-properties-copy" role="function">
+<title>dbusmenu_menuitem_properties_copy ()</title>
+<indexterm zone="dbusmenu-menuitem-properties-copy"><primary>dbusmenu_menuitem_properties_copy</primary></indexterm>
+<programlisting><link linkend="GHashTable"><returnvalue>GHashTable</returnvalue></link> * dbusmenu_menuitem_properties_copy (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+This function takes the properties of a <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>
+and puts them into a <link linkend="GHashTable"><type>GHashTable</type></link> that is referenced by the
+key of a string and has the value of a string. The hash
+table may not have any entries if there aren't any or there
+is an error in processing. It is the caller's responsibility
+to destroy the created <link linkend="GHashTable"><type>GHashTable</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> that we're interested in the properties of</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A brand new <link linkend="GHashTable"><type>GHashTable</type></link> that contains all of
+theroperties that are on this <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> <parameter>mi</parameter>. <emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-remove" role="function">
+<title>dbusmenu_menuitem_property_remove ()</title>
+<indexterm zone="dbusmenu-menuitem-property-remove"><primary>dbusmenu_menuitem_property_remove</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_property_remove (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+Removes a property from the menuitem.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to remove the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The property to look for.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-set-root" role="function">
+<title>dbusmenu_menuitem_set_root ()</title>
+<indexterm zone="dbusmenu-menuitem-set-root"><primary>dbusmenu_menuitem_set_root</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_set_root (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="gboolean"><type>gboolean</type></link> root</parameter>);</programlisting>
+<para>
+This function sets the internal value of whether this is a
+root node or not.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set whether it's root</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>root</parameter>&#160;:</term>
+<listitem><simpara>Whether <parameter>mi</parameter> is a root node or not</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-root" role="function">
+<title>dbusmenu_menuitem_get_root ()</title>
+<indexterm zone="dbusmenu-menuitem-get-root"><primary>dbusmenu_menuitem_get_root</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_get_root (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+This function returns the internal value of whether this is a
+root node or not.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to see whether it's root</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara><link linkend="TRUE:CAPS"><type>TRUE</type></link> if this is a root node</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-foreach" role="function">
+<title>dbusmenu_menuitem_foreach ()</title>
+<indexterm zone="dbusmenu-menuitem-foreach"><primary>dbusmenu_menuitem_foreach</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_foreach (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="void"><type>void</type></link> (*func) (DbusmenuMenuitem * mi, gpointer data)</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> data</parameter>);</programlisting>
+<para>
+This calls the function <parameter>func</parameter> on this menu item and all
+of the children of this item. And their children. And
+their children. And... you get the point. It will get
+called on the whole tree.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenItem"><type>DbusmenItem</type></link> to start from</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>func</parameter>&#160;:</term>
+<listitem><simpara>Function to call on every node in the tree</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>data</parameter>&#160;:</term>
+<listitem><simpara>User data to pass to the function. <emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-handle-event" role="function">
+<title>dbusmenu_menuitem_handle_event ()</title>
+<indexterm zone="dbusmenu-menuitem-handle-event"><primary>dbusmenu_menuitem_handle_event</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_handle_event (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>,
+ <parameter><link linkend="GVariant"><type>GVariant</type></link> *variant</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> timestamp</parameter>);</programlisting>
+<para>
+This function is called to create an event. It is likely
+to be overrided by subclasses. The default menu item
+will respond to the activate signal and do:
+</para>
+<para>
+Emits the <link linkend="DbusmenuMenuitem-item-activate"><type>"item-activate"</type></link> signal on this
+menu item. Called by server objects when they get the
+appropriate DBus signals from the client.
+</para>
+<para>
+If you subclass this function you should really think
+about calling the parent function unless you have a good
+reason not to.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to send the signal on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>name</parameter>&#160;:</term>
+<listitem><simpara>The name of the signal</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>variant</parameter>&#160;:</term>
+<listitem><simpara>A value that could be set for the event</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>timestamp</parameter>&#160;:</term>
+<listitem><simpara>The timestamp of when the event happened</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-send-about-to-show" role="function">
+<title>dbusmenu_menuitem_send_about_to_show ()</title>
+<indexterm zone="dbusmenu-menuitem-send-about-to-show"><primary>dbusmenu_menuitem_send_about_to_show</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_send_about_to_show
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="void"><type>void</type></link> (*cb) (DbusmenuMenuitem * mi, gpointer user_data)</parameter>,
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> cb_data</parameter>);</programlisting>
+<para>
+This function is used to send the even that the submenu
+of this item is about to be shown. Callers to this event
+should delay showing the menu until their callback is
+called if possible.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to send the signal on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>cb</parameter>&#160;:</term>
+<listitem><simpara>Callback to call when the call has returned.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>cb_data</parameter>&#160;:</term>
+<listitem><simpara>Data to pass to the callback. <emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-show-to-user" role="function">
+<title>dbusmenu_menuitem_show_to_user ()</title>
+<indexterm zone="dbusmenu-menuitem-show-to-user"><primary>dbusmenu_menuitem_show_to_user</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_show_to_user (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> timestamp</parameter>);</programlisting>
+<para>
+Signals that this menu item should be shown to the user. If this is
+server side the server will then take it and send it over the
+bus.
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to show</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>timestamp</parameter>&#160;:</term>
+<listitem><simpara>The time that the user requested it to be shown</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-get-parent" role="function">
+<title>dbusmenu_menuitem_get_parent ()</title>
+<indexterm zone="dbusmenu-menuitem-get-parent"><primary>dbusmenu_menuitem_get_parent</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_menuitem_get_parent (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+This function looks up the parent of <parameter>mi</parameter>
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> for which to inspect the parent</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The parent of this menu item. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-set-parent" role="function">
+<title>dbusmenu_menuitem_set_parent ()</title>
+<indexterm zone="dbusmenu-menuitem-set-parent"><primary>dbusmenu_menuitem_set_parent</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_set_parent (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);</programlisting>
+<para>
+Sets the parent of <parameter>mi</parameter> to <parameter>parent</parameter>. If <parameter>mi</parameter> already
+has a parent, then this call will fail. The parent will
+be set automatically when using the usual methods to add a
+child menuitem, so this function should not normally be
+called directly
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> for which to set the parent</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>parent</parameter>&#160;:</term>
+<listitem><simpara>The new parent <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the parent was set successfully</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-unparent" role="function">
+<title>dbusmenu_menuitem_unparent ()</title>
+<indexterm zone="dbusmenu-menuitem-unparent"><primary>dbusmenu_menuitem_unparent</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_unparent (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *mi</parameter>);</programlisting>
+<para>
+Unparents the menu item <parameter>mi</parameter>. If <parameter>mi</parameter> doesn't have a
+parent, then this call will fail. The menuitem will
+be unparented automatically when using the usual methods
+to delete a child menuitem, so this function should not
+normally be called directly
+</para><variablelist role="params">
+<varlistentry><term><parameter>mi</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to unparent</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the menu item was unparented successfully</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-glib/reference/xml/server.xml b/docs/libdbusmenu-glib/reference/xml/server.xml
new file mode 100644
index 0000000..4f8f68a
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/server.xml
@@ -0,0 +1,309 @@
+<?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-glib-DbusmenuServer">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-glib-DbusmenuServer.top_of_page">DbusmenuServer</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GLIB Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuServer</refname>
+<refpurpose>The server signals changed and
+ updates on a tree of <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objecs.</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-glib-DbusmenuServer.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-glib-DbusmenuServer.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-glib/server.h&gt;
+
+#define <link linkend="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</link>
+#define <link linkend="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_ID_UPDATE</link>
+#define <link linkend="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</link>
+#define <link linkend="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS">DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</link>
+#define <link linkend="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS">DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</link>
+#define <link linkend="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS">DBUSMENU_SERVER_PROP_DBUS_OBJECT</link>
+#define <link linkend="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS">DBUSMENU_SERVER_PROP_ROOT_NODE</link>
+#define <link linkend="DBUSMENU-SERVER-PROP-STATUS:CAPS">DBUSMENU_SERVER_PROP_STATUS</link>
+#define <link linkend="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS">DBUSMENU_SERVER_PROP_TEXT_DIRECTION</link>
+#define <link linkend="DBUSMENU-SERVER-PROP-VERSION:CAPS">DBUSMENU_SERVER_PROP_VERSION</link>
+ <link linkend="DbusmenuServer">DbusmenuServer</link>;
+struct <link linkend="DbusmenuServerClass">DbusmenuServerClass</link>;
+<link linkend="DbusmenuServer"><returnvalue>DbusmenuServer</returnvalue></link> * <link linkend="dbusmenu-server-new">dbusmenu_server_new</link> (<parameter>const <link linkend="gchar"><type>gchar</type></link> *object</parameter>);
+<link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> <link linkend="dbusmenu-server-get-status">dbusmenu_server_get_status</link> (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>);
+<link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> <link linkend="dbusmenu-server-get-text-direction">dbusmenu_server_get_text_direction</link>
+ (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-server-set-root">dbusmenu_server_set_root</link> (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *self</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *root</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-server-set-status">dbusmenu_server_set_status</link> (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>,
+ <parameter><link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> status</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-server-set-text-direction">dbusmenu_server_set_text_direction</link> (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>,
+ <parameter><link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> dir</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-glib-DbusmenuServer.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+A <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> is the object that represents the local
+ tree of <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> objects on DBus. It watches the
+ various signals that those objects emit and correctly
+ represents them across DBus to a <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> so that
+ the same tree can be maintained in another process.
+</para>
+<para>
+ The server needs to have the root set of <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>
+ objects set via <link linkend="dbusmenu-server-set-root"><type>dbusmenu_server_set_root</type></link> but it will query
+ all of the objects in that tree automatically. After setting
+ the root there should be no other maintence required by
+ users of the server class.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-glib-DbusmenuServer.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS" role="macro">
+<title>DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</title>
+<indexterm zone="DBUSMENU-SERVER-SIGNAL-ID-PROP-UPDATE:CAPS"><primary>DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_SIGNAL_ID_PROP_UPDATE "item-property-updated"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-item-property-updated"><type>"item-property-updated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS" role="macro">
+<title>DBUSMENU_SERVER_SIGNAL_ID_UPDATE</title>
+<indexterm zone="DBUSMENU-SERVER-SIGNAL-ID-UPDATE:CAPS"><primary>DBUSMENU_SERVER_SIGNAL_ID_UPDATE</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_SIGNAL_ID_UPDATE "item-updated"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-item-updated"><type>"item-updated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS" role="macro">
+<title>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</title>
+<indexterm zone="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATED:CAPS"><primary>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED "layout-updated"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-layout-updated"><type>"layout-updated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS" role="macro">
+<title>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</title>
+<indexterm zone="DBUSMENU-SERVER-SIGNAL-LAYOUT-UPDATE:CAPS"><primary>DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATE DBUSMENU_SERVER_SIGNAL_LAYOUT_UPDATED
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-layout-updated"><type>"layout-updated"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS" role="macro">
+<title>DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</title>
+<indexterm zone="DBUSMENU-SERVER-SIGNAL-ITEM-ACTIVATION:CAPS"><primary>DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION "item-activation-requested"
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuServer-item-activation-requested"><type>"item-activation-requested"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS" role="macro">
+<title>DBUSMENU_SERVER_PROP_DBUS_OBJECT</title>
+<indexterm zone="DBUSMENU-SERVER-PROP-DBUS-OBJECT:CAPS"><primary>DBUSMENU_SERVER_PROP_DBUS_OBJECT</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_PROP_DBUS_OBJECT "dbus-object"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuServer--dbus-object"><type>"dbus-object"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS" role="macro">
+<title>DBUSMENU_SERVER_PROP_ROOT_NODE</title>
+<indexterm zone="DBUSMENU-SERVER-PROP-ROOT-NODE:CAPS"><primary>DBUSMENU_SERVER_PROP_ROOT_NODE</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_PROP_ROOT_NODE "root-node"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuServer--root-node"><type>"root-node"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-PROP-STATUS:CAPS" role="macro">
+<title>DBUSMENU_SERVER_PROP_STATUS</title>
+<indexterm zone="DBUSMENU-SERVER-PROP-STATUS:CAPS"><primary>DBUSMENU_SERVER_PROP_STATUS</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_PROP_STATUS "status"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuServer--status"><type>"status"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS" role="macro">
+<title>DBUSMENU_SERVER_PROP_TEXT_DIRECTION</title>
+<indexterm zone="DBUSMENU-SERVER-PROP-TEXT-DIRECTION:CAPS"><primary>DBUSMENU_SERVER_PROP_TEXT_DIRECTION</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_PROP_TEXT_DIRECTION "text-direction"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuServer--text-direction"><type>"text-direction"</type></link>
+</para></refsect2>
+<refsect2 id="DBUSMENU-SERVER-PROP-VERSION:CAPS" role="macro">
+<title>DBUSMENU_SERVER_PROP_VERSION</title>
+<indexterm zone="DBUSMENU-SERVER-PROP-VERSION:CAPS"><primary>DBUSMENU_SERVER_PROP_VERSION</primary></indexterm>
+<programlisting>#define DBUSMENU_SERVER_PROP_VERSION "version"
+</programlisting>
+<para>
+String to access property <link linkend="DbusmenuServer--version"><type>"version"</type></link>
+</para></refsect2>
+<refsect2 id="DbusmenuServer" role="struct">
+<title>DbusmenuServer</title>
+<indexterm zone="DbusmenuServer"><primary>DbusmenuServer</primary></indexterm>
+<programlisting>typedef struct _DbusmenuServer DbusmenuServer;</programlisting>
+<para>
+A server which represents a sharing of a set of
+ <link linkend="DbusmenuMenuitems"><type>DbusmenuMenuitems</type></link> across DBus to a <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link>.
+</para></refsect2>
+<refsect2 id="DbusmenuServerClass" role="struct">
+<title>struct DbusmenuServerClass</title>
+<indexterm zone="DbusmenuServerClass"><primary>DbusmenuServerClass</primary></indexterm>
+<programlisting>struct DbusmenuServerClass {
+ GObjectClass parent_class;
+
+ /* Signals */
+ void (*id_prop_update)(gint id, gchar * property, gchar * value);
+ void (*id_update)(gint id);
+ void (*layout_updated)(gint revision);
+ void (*item_activation)(gint id, guint timestamp);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</programlisting>
+<para>
+The class implementing the virtual functions for <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link>.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="GObjectClass"><type>GObjectClass</type></link>&#160;<structfield id="DbusmenuServerClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara><link linkend="GObjectClass"><type>GObjectClass</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.id-prop-update">id_prop_update</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuServer-id-prop-update"><type>"id-prop-update"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.id-update">id_update</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuServer-id-update"><type>"id-update"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.layout-updated">layout_updated</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuServer-layout-update"><type>"layout-update"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.item-activation">item_activation</structfield>&#160;()</term>
+<listitem><simpara>Slot for <link linkend="DbusmenuServer-item-activation-requested"><type>"item-activation-requested"</type></link>.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved5">reserved5</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuServerClass.reserved6">reserved6</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-new" role="function">
+<title>dbusmenu_server_new ()</title>
+<indexterm zone="dbusmenu-server-new"><primary>dbusmenu_server_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuServer"><returnvalue>DbusmenuServer</returnvalue></link> * dbusmenu_server_new (<parameter>const <link linkend="gchar"><type>gchar</type></link> *object</parameter>);</programlisting>
+<para>
+Creates a new <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object with a specific object
+ path on DBus. If <parameter>object</parameter> is set to NULL the default object
+ name of "/com/canonical/dbusmenu" will be used.
+</para><variablelist role="params">
+<varlistentry><term><parameter>object</parameter>&#160;:</term>
+<listitem><simpara>The object name to show for this menu structure
+on DBus. May be NULL.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A brand new <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-get-status" role="function">
+<title>dbusmenu_server_get_status ()</title>
+<indexterm zone="dbusmenu-server-get-status"><primary>dbusmenu_server_get_status</primary></indexterm>
+<programlisting><link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> dbusmenu_server_get_status (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>);</programlisting>
+<para>
+Gets the current statust hat the server is sending out over
+ DBus.
+</para><variablelist role="params">
+<varlistentry><term><parameter>server</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> to get the status from</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The current status the server is sending</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-get-text-direction" role="function">
+<title>dbusmenu_server_get_text_direction ()</title>
+<indexterm zone="dbusmenu-server-get-text-direction"><primary>dbusmenu_server_get_text_direction</primary></indexterm>
+<programlisting><link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> dbusmenu_server_get_text_direction
+ (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>);</programlisting>
+<para>
+Returns the value of the text direction that is being exported
+ over DBus for this server. It should relate to the direction
+ of the labels and other text fields that are being exported by
+ this server.
+</para><variablelist role="params">
+<varlistentry><term><parameter>server</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object to get the text direction from</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Text direction exported for this server.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-set-root" role="function">
+<title>dbusmenu_server_set_root ()</title>
+<indexterm zone="dbusmenu-server-set-root"><primary>dbusmenu_server_set_root</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_server_set_root (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *self</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *root</parameter>);</programlisting>
+<para>
+This function contains all of the <link linkend="GValue"><type>GValue</type></link> wrapping
+ required to set the property <link linkend="DbusmenuServer--root-node"><type>"root-node"</type></link>
+ on the server <parameter>self</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>self</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object to set the root on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>root</parameter>&#160;:</term>
+<listitem><simpara>The new root <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> tree</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-set-status" role="function">
+<title>dbusmenu_server_set_status ()</title>
+<indexterm zone="dbusmenu-server-set-status"><primary>dbusmenu_server_set_status</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_server_set_status (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>,
+ <parameter><link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> status</parameter>);</programlisting>
+<para>
+Changes the status of the server.
+</para><variablelist role="params">
+<varlistentry><term><parameter>server</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> to set the status on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>status</parameter>&#160;:</term>
+<listitem><simpara>Status value to set on the server</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-server-set-text-direction" role="function">
+<title>dbusmenu_server_set_text_direction ()</title>
+<indexterm zone="dbusmenu-server-set-text-direction"><primary>dbusmenu_server_set_text_direction</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_server_set_text_direction (<parameter><link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> *server</parameter>,
+ <parameter><link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> dir</parameter>);</programlisting>
+<para>
+Sets the text direction that should be exported over DBus for
+ this server. If the value is set to <link linkend="DBUSMENU-TEXT-DIRECTION-NONE:CAPS"><type>DBUSMENU_TEXT_DIRECTION_NONE</type></link>
+ the default detection will be used for setting the value and
+ exported over DBus.
+</para><variablelist role="params">
+<varlistentry><term><parameter>server</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object to set the text direction on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>dir</parameter>&#160;:</term>
+<listitem><simpara>Direction of the text</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-glib/reference/xml/types.xml b/docs/libdbusmenu-glib/reference/xml/types.xml
new file mode 100644
index 0000000..c8db900
--- /dev/null
+++ b/docs/libdbusmenu-glib/reference/xml/types.xml
@@ -0,0 +1,192 @@
+<?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-glib-Types">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-glib-Types.top_of_page">Types</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GLIB Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>Types</refname>
+<refpurpose>Types that are used by both client and
+ server.</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-glib-Types.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-glib-Types.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-glib/types.h&gt;
+
+#define <link linkend="DBUSMENU-TYPE-STATUS:CAPS">DBUSMENU_TYPE_STATUS</link>
+#define <link linkend="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS">DBUSMENU_TYPE_TEXT_DIRECTION</link>
+enum <link linkend="DbusmenuStatus">DbusmenuStatus</link>;
+enum <link linkend="DbusmenuTextDirection">DbusmenuTextDirection</link>;
+const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="dbusmenu-status-get-nick">dbusmenu_status_get_nick</link> (<parameter><link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> value</parameter>);
+<link linkend="GType"><returnvalue>GType</returnvalue></link> <link linkend="dbusmenu-status-get-type">dbusmenu_status_get_type</link> (<parameter><type>void</type></parameter>);
+<link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> <link linkend="dbusmenu-status-get-value-from-nick">dbusmenu_status_get_value_from_nick</link> (<parameter>const <link linkend="gchar"><type>gchar</type></link> *nick</parameter>);
+const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="dbusmenu-text-direction-get-nick">dbusmenu_text_direction_get_nick</link> (<parameter><link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> value</parameter>);
+<link linkend="GType"><returnvalue>GType</returnvalue></link> <link linkend="dbusmenu-text-direction-get-type">dbusmenu_text_direction_get_type</link> (<parameter><type>void</type></parameter>);
+<link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> <link linkend="dbusmenu-text-direction-get-value-from-nick">dbusmenu_text_direction_get_value_from_nick</link>
+ (<parameter>const <link linkend="gchar"><type>gchar</type></link> *nick</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-glib-Types.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+Enums that are used to describe states of the server across the
+ bus. They are sent over dbus using their nicks but then turned
+ back into enums by the client.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-glib-Types.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DBUSMENU-TYPE-STATUS:CAPS" role="macro">
+<title>DBUSMENU_TYPE_STATUS</title>
+<indexterm zone="DBUSMENU-TYPE-STATUS:CAPS"><primary>DBUSMENU_TYPE_STATUS</primary></indexterm>
+<programlisting>#define DBUSMENU_TYPE_STATUS (dbusmenu_status_get_type())
+</programlisting>
+<para>
+Gets the <link linkend="GType"><type>GType</type></link> value for the type associated with the
+ <link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> enumerated type.
+</para></refsect2>
+<refsect2 id="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS" role="macro">
+<title>DBUSMENU_TYPE_TEXT_DIRECTION</title>
+<indexterm zone="DBUSMENU-TYPE-TEXT-DIRECTION:CAPS"><primary>DBUSMENU_TYPE_TEXT_DIRECTION</primary></indexterm>
+<programlisting>#define DBUSMENU_TYPE_TEXT_DIRECTION (dbusmenu_text_direction_get_type())
+</programlisting>
+<para>
+Gets the <link linkend="GType"><type>GType</type></link> value for the type associated with the
+ <link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> enumerated type.
+</para></refsect2>
+<refsect2 id="DbusmenuStatus" role="enum">
+<title>enum DbusmenuStatus</title>
+<indexterm zone="DbusmenuStatus"><primary>DbusmenuStatus</primary></indexterm>
+<programlisting>typedef enum {
+ /*&lt; prefix=DBUSMENU_STATUS &gt;*/
+ DBUSMENU_STATUS_NORMAL, /*&lt; nick=normal &gt;*/
+ DBUSMENU_STATUS_NOTICE /*&lt; nick=notice &gt;*/
+} DbusmenuStatus;
+</programlisting>
+<para>
+Tracks how the menus should be presented to the user.
+</para><variablelist role="enum">
+<varlistentry id="DBUSMENU-STATUS-NORMAL:CAPS" role="constant">
+<term><literal>DBUSMENU_STATUS_NORMAL</literal></term>
+<listitem><simpara>Everything is normal
+</simpara></listitem>
+</varlistentry>
+<varlistentry id="DBUSMENU-STATUS-NOTICE:CAPS" role="constant">
+<term><literal>DBUSMENU_STATUS_NOTICE</literal></term>
+<listitem><simpara>The menus should be shown at a higher priority
+</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="DbusmenuTextDirection" role="enum">
+<title>enum DbusmenuTextDirection</title>
+<indexterm zone="DbusmenuTextDirection"><primary>DbusmenuTextDirection</primary></indexterm>
+<programlisting>typedef enum {
+ /*&lt; prefix=DBUSMENU_TEXT_DIRECTION &gt;*/
+ DBUSMENU_TEXT_DIRECTION_NONE, /*&lt; nick=none &gt;*/
+ DBUSMENU_TEXT_DIRECTION_LTR, /*&lt; nick=ltr &gt;*/
+ DBUSMENU_TEXT_DIRECTION_RTL /*&lt; nick=rtl &gt;*/
+} DbusmenuTextDirection;
+</programlisting>
+<para>
+The direction of text that the strings that this server
+ will be sending strings as.
+</para><variablelist role="enum">
+<varlistentry id="DBUSMENU-TEXT-DIRECTION-NONE:CAPS" role="constant">
+<term><literal>DBUSMENU_TEXT_DIRECTION_NONE</literal></term>
+<listitem><simpara>Unspecified text direction
+</simpara></listitem>
+</varlistentry>
+<varlistentry id="DBUSMENU-TEXT-DIRECTION-LTR:CAPS" role="constant">
+<term><literal>DBUSMENU_TEXT_DIRECTION_LTR</literal></term>
+<listitem><simpara>Left-to-right text direction
+</simpara></listitem>
+</varlistentry>
+<varlistentry id="DBUSMENU-TEXT-DIRECTION-RTL:CAPS" role="constant">
+<term><literal>DBUSMENU_TEXT_DIRECTION_RTL</literal></term>
+<listitem><simpara>Right-to-left text direction
+</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-status-get-nick" role="function">
+<title>dbusmenu_status_get_nick ()</title>
+<indexterm zone="dbusmenu-status-get-nick"><primary>dbusmenu_status_get_nick</primary></indexterm>
+<programlisting>const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * dbusmenu_status_get_nick (<parameter><link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> value</parameter>);</programlisting>
+<para>
+Looks up in the enum table for the nick of <parameter>value</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of DbusmenuStatus to get the nick of</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The nick for the given value or <link linkend="NULL:CAPS"><type>NULL</type></link> on error</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-status-get-type" role="function">
+<title>dbusmenu_status_get_type ()</title>
+<indexterm zone="dbusmenu-status-get-type"><primary>dbusmenu_status_get_type</primary></indexterm>
+<programlisting><link linkend="GType"><returnvalue>GType</returnvalue></link> dbusmenu_status_get_type (<parameter><type>void</type></parameter>);</programlisting>
+<para>
+Builds a GLib type for the <link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> enumeration.
+</para><variablelist role="params">
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A unique <link linkend="GType"><type>GType</type></link> for the <link linkend="DbusmenuStatus"><type>DbusmenuStatus</type></link> enum.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-status-get-value-from-nick" role="function">
+<title>dbusmenu_status_get_value_from_nick ()</title>
+<indexterm zone="dbusmenu-status-get-value-from-nick"><primary>dbusmenu_status_get_value_from_nick</primary></indexterm>
+<programlisting><link linkend="DbusmenuStatus"><returnvalue>DbusmenuStatus</returnvalue></link> dbusmenu_status_get_value_from_nick (<parameter>const <link linkend="gchar"><type>gchar</type></link> *nick</parameter>);</programlisting>
+<para>
+Looks up in the enum table for the value of <parameter>nick</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>nick</parameter>&#160;:</term>
+<listitem><simpara>The enum nick to lookup</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The value for the given <parameter>nick</parameter></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-text-direction-get-nick" role="function">
+<title>dbusmenu_text_direction_get_nick ()</title>
+<indexterm zone="dbusmenu-text-direction-get-nick"><primary>dbusmenu_text_direction_get_nick</primary></indexterm>
+<programlisting>const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * dbusmenu_text_direction_get_nick (<parameter><link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> value</parameter>);</programlisting>
+<para>
+Looks up in the enum table for the nick of <parameter>value</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>value</parameter>&#160;:</term>
+<listitem><simpara>The value of DbusmenuTextDirection to get the nick of</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The nick for the given value or <link linkend="NULL:CAPS"><type>NULL</type></link> on error</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-text-direction-get-type" role="function">
+<title>dbusmenu_text_direction_get_type ()</title>
+<indexterm zone="dbusmenu-text-direction-get-type"><primary>dbusmenu_text_direction_get_type</primary></indexterm>
+<programlisting><link linkend="GType"><returnvalue>GType</returnvalue></link> dbusmenu_text_direction_get_type (<parameter><type>void</type></parameter>);</programlisting>
+<para>
+Builds a GLib type for the <link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> enumeration.
+</para><variablelist role="params">
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A unique <link linkend="GType"><type>GType</type></link> for the <link linkend="DbusmenuTextDirection"><type>DbusmenuTextDirection</type></link> enum.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-text-direction-get-value-from-nick" role="function">
+<title>dbusmenu_text_direction_get_value_from_nick ()</title>
+<indexterm zone="dbusmenu-text-direction-get-value-from-nick"><primary>dbusmenu_text_direction_get_value_from_nick</primary></indexterm>
+<programlisting><link linkend="DbusmenuTextDirection"><returnvalue>DbusmenuTextDirection</returnvalue></link> dbusmenu_text_direction_get_value_from_nick
+ (<parameter>const <link linkend="gchar"><type>gchar</type></link> *nick</parameter>);</programlisting>
+<para>
+Looks up in the enum table for the value of <parameter>nick</parameter>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>nick</parameter>&#160;:</term>
+<listitem><simpara>The enum nick to lookup</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The value for the given <parameter>nick</parameter></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-gtk/Makefile.in b/docs/libdbusmenu-gtk/Makefile.in
index b536a6e..dd782ed 100644
--- a/docs/libdbusmenu-gtk/Makefile.in
+++ b/docs/libdbusmenu-gtk/Makefile.in
@@ -41,7 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -111,6 +111,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -121,6 +123,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -136,6 +140,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -171,6 +177,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -216,6 +223,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/docs/libdbusmenu-gtk/reference/Makefile.in b/docs/libdbusmenu-gtk/reference/Makefile.in
index bc9f51d..0c86bdd 100644
--- a/docs/libdbusmenu-gtk/reference/Makefile.in
+++ b/docs/libdbusmenu-gtk/reference/Makefile.in
@@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -80,6 +80,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -90,6 +92,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -105,6 +109,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -140,6 +146,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -185,6 +192,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/docs/libdbusmenu-gtk/reference/html/annotation-glossary.html b/docs/libdbusmenu-gtk/reference/html/annotation-glossary.html
new file mode 100644
index 0000000..7e25617
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/annotation-glossary.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="prev" href="api-index-deprecated.html" title="Deprecated API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#glsO">O</a>
+  | 
+ <a class="shortcut" href="#glsT">T</a>
+</td></tr>
+</table>
+<div class="glossary">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt>
+<a name="annotation-glossterm-out"></a>out</dt>
+<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt>
+<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
+<dd><p>Free data after the code is done.</p></dd>
+<dt>
+<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
+<dd><p>Don't free data after the code is done.</p></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/api-index-deprecated.html b/docs/libdbusmenu-gtk/reference/html/api-index-deprecated.html
new file mode 100644
index 0000000..6150eae
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/api-index-deprecated.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="prev" href="api-index-full.html" title="API Index">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-deprecated"></a>Deprecated API Index</h2></div></div></div>
+<a name="idx"></a>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/api-index-full.html b/docs/libdbusmenu-gtk/reference/html/api-index-full.html
new file mode 100644
index 0000000..1356f5c
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/api-index-full.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="prev" href="object-tree.html" title="Object Hierarchy">
+<link rel="next" href="api-index-deprecated.html" title="Deprecated API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idxG">G</a>
+  | 
+ <a class="shortcut" href="#idxM">M</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-index-full"></a>API Index</h2></div></div></div>
+<a name="idx"></a><a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient">DbusmenuGtkClient</a>, struct in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClientClass" title="struct DbusmenuGtkClientClass">DbusmenuGtkClientClass</a>, struct in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-get-accel-group" title="dbusmenu_gtkclient_get_accel_group ()">dbusmenu_gtkclient_get_accel_group</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get" title="dbusmenu_gtkclient_menuitem_get ()">dbusmenu_gtkclient_menuitem_get</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get-submenu" title="dbusmenu_gtkclient_menuitem_get_submenu ()">dbusmenu_gtkclient_menuitem_get_submenu</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-new" title="dbusmenu_gtkclient_new ()">dbusmenu_gtkclient_new</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-newitem-base" title="dbusmenu_gtkclient_newitem_base ()">dbusmenu_gtkclient_newitem_base</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-set-accel-group" title="dbusmenu_gtkclient_set_accel_group ()">dbusmenu_gtkclient_set_accel_group</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS" title="DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED">DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</a>, macro in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">DbusmenuGtkClient</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#DbusmenuGtkMenuClass" title="struct DbusmenuGtkMenuClass">DbusmenuGtkMenuClass</a>, struct in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html" title="DbusmenuGtkMenu">DbusmenuGtkMenu</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-get-client" title="dbusmenu_gtkmenu_get_client ()">dbusmenu_gtkmenu_get_client</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html" title="DbusmenuGtkMenu">DbusmenuGtkMenu</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new" title="dbusmenu_gtkmenu_new ()">dbusmenu_gtkmenu_new</a>, function in <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html" title="DbusmenuGtkMenu">DbusmenuGtkMenu</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-get-cached-item" title="dbusmenu_gtk_parse_get_cached_item ()">dbusmenu_gtk_parse_get_cached_item</a>, function in <a class="link" href="libdbusmenu-gtk-parser.html" title="parser">parser</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-menu-structure" title="dbusmenu_gtk_parse_menu_structure ()">dbusmenu_gtk_parse_menu_structure</a>, function in <a class="link" href="libdbusmenu-gtk-parser.html" title="parser">parser</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-image" title="dbusmenu_menuitem_property_get_image ()">dbusmenu_menuitem_property_get_image</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-shortcut" title="dbusmenu_menuitem_property_get_shortcut ()">dbusmenu_menuitem_property_get_shortcut</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image" title="dbusmenu_menuitem_property_set_image ()">dbusmenu_menuitem_property_set_image</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut" title="dbusmenu_menuitem_property_set_shortcut ()">dbusmenu_menuitem_property_set_shortcut</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-menuitem" title="dbusmenu_menuitem_property_set_shortcut_menuitem ()">dbusmenu_menuitem_property_set_shortcut_menuitem</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-string" title="dbusmenu_menuitem_property_set_shortcut_string ()">dbusmenu_menuitem_property_set_shortcut_string</a>, function in <a class="link" href="libdbusmenu-gtk-menuitem.html" title="menuitem">menuitem</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/ch01.html b/docs/libdbusmenu-gtk/reference/html/ch01.html
new file mode 100644
index 0000000..054a059
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/ch01.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="prev" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="next" href="libdbusmenu-gtk-DbusmenuGtkMenu.html" title="DbusmenuGtkMenu">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-gtk-DbusmenuGtkMenu.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="idp2596536"></a>API</h2></div></div></div>
+<div class="toc"><dl>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkMenu.html">DbusmenuGtkMenu</a></span><span class="refpurpose"> — A GTK Menu Object that syncronizes over DBus</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-menuitem.html">menuitem</a></span><span class="refpurpose"> — Helpers for <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> properties that require a GTK dependency</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkClient.html">DbusmenuGtkClient</a></span><span class="refpurpose"> — A subclass of <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a> adding GTK level features</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-parser.html">parser</a></span><span class="refpurpose"> — A parser of in-memory GTK menu trees</span>
+</dt>
+</dl></div>
+<span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/home.png b/docs/libdbusmenu-gtk/reference/html/home.png
new file mode 100644
index 0000000..fb60b55
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/home.png
Binary files differ
diff --git a/docs/libdbusmenu-gtk/reference/html/index.html b/docs/libdbusmenu-gtk/reference/html/index.html
new file mode 100644
index 0000000..8eb11a0
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/index.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>libdbusmenu-gtk Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="next" href="ch01.html" title="API">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div><div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libdbusmenu-gtk Reference Manual</p></th></tr></table></div></div>
+<hr>
+</div>
+<div class="toc"><dl>
+<dt><span class="chapter"><a href="ch01.html">API</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkMenu.html">DbusmenuGtkMenu</a></span><span class="refpurpose"> — A GTK Menu Object that syncronizes over DBus</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-menuitem.html">menuitem</a></span><span class="refpurpose"> — Helpers for <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> properties that require a GTK dependency</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkClient.html">DbusmenuGtkClient</a></span><span class="refpurpose"> — A subclass of <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a> adding GTK level features</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libdbusmenu-gtk-parser.html">parser</a></span><span class="refpurpose"> — A parser of in-memory GTK menu trees</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="object-tree.html">Object Hierarchy</a></span></dt>
+<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
+<dt><span class="index"><a href="api-index-deprecated.html">Deprecated API Index</a></span></dt>
+<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/index.sgml b/docs/libdbusmenu-gtk/reference/html/index.sgml
new file mode 100644
index 0000000..cd37ced
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/index.sgml
@@ -0,0 +1,43 @@
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkMenu" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkMenu.stability-level" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#libdbusmenu-gtk-DbusmenuGtkMenu.stability-level">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkMenu.synopsis" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#libdbusmenu-gtk-DbusmenuGtkMenu.synopsis">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkMenu.description" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#libdbusmenu-gtk-DbusmenuGtkMenu.description">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkMenu.details" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#libdbusmenu-gtk-DbusmenuGtkMenu.details">
+<ANCHOR id="DbusmenuGtkMenuClass" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#DbusmenuGtkMenuClass">
+<ANCHOR id="dbusmenu-gtkmenu-new" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new">
+<ANCHOR id="dbusmenu-gtkmenu-get-client" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-get-client">
+<ANCHOR id="libdbusmenu-gtk-menuitem" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html">
+<ANCHOR id="libdbusmenu-gtk-menuitem.stability-level" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#libdbusmenu-gtk-menuitem.stability-level">
+<ANCHOR id="libdbusmenu-gtk-menuitem.synopsis" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#libdbusmenu-gtk-menuitem.synopsis">
+<ANCHOR id="libdbusmenu-gtk-menuitem.description" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#libdbusmenu-gtk-menuitem.description">
+<ANCHOR id="libdbusmenu-gtk-menuitem.details" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#libdbusmenu-gtk-menuitem.details">
+<ANCHOR id="dbusmenu-menuitem-property-set-image" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image">
+<ANCHOR id="dbusmenu-menuitem-property-get-image" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-image">
+<ANCHOR id="dbusmenu-menuitem-property-set-shortcut" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut">
+<ANCHOR id="dbusmenu-menuitem-property-set-shortcut-string" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-string">
+<ANCHOR id="dbusmenu-menuitem-property-set-shortcut-menuitem" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-menuitem">
+<ANCHOR id="dbusmenu-menuitem-property-get-shortcut" href="libdbusmenu-gtk/libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-shortcut">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkClient" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkClient.stability-level" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#libdbusmenu-gtk-DbusmenuGtkClient.stability-level">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkClient.synopsis" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#libdbusmenu-gtk-DbusmenuGtkClient.synopsis">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkClient.description" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#libdbusmenu-gtk-DbusmenuGtkClient.description">
+<ANCHOR id="libdbusmenu-gtk-DbusmenuGtkClient.details" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#libdbusmenu-gtk-DbusmenuGtkClient.details">
+<ANCHOR id="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS">
+<ANCHOR id="DbusmenuGtkClient" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient">
+<ANCHOR id="DbusmenuGtkClientClass" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClientClass">
+<ANCHOR id="dbusmenu-gtkclient-new" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-new">
+<ANCHOR id="dbusmenu-gtkclient-menuitem-get" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get">
+<ANCHOR id="dbusmenu-gtkclient-menuitem-get-submenu" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get-submenu">
+<ANCHOR id="dbusmenu-gtkclient-set-accel-group" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-set-accel-group">
+<ANCHOR id="dbusmenu-gtkclient-get-accel-group" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-get-accel-group">
+<ANCHOR id="dbusmenu-gtkclient-newitem-base" href="libdbusmenu-gtk/libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-newitem-base">
+<ANCHOR id="libdbusmenu-gtk-parser" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html">
+<ANCHOR id="libdbusmenu-gtk-parser.stability-level" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#libdbusmenu-gtk-parser.stability-level">
+<ANCHOR id="libdbusmenu-gtk-parser.synopsis" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#libdbusmenu-gtk-parser.synopsis">
+<ANCHOR id="libdbusmenu-gtk-parser.description" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#libdbusmenu-gtk-parser.description">
+<ANCHOR id="libdbusmenu-gtk-parser.details" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#libdbusmenu-gtk-parser.details">
+<ANCHOR id="dbusmenu-gtk-parse-menu-structure" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-menu-structure">
+<ANCHOR id="dbusmenu-gtk-parse-get-cached-item" href="libdbusmenu-gtk/libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-get-cached-item">
+<ANCHOR id="annotation-glossterm-out" href="libdbusmenu-gtk/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-transfer full" href="libdbusmenu-gtk/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-transfer none" href="libdbusmenu-gtk/annotation-glossary.html#annotation-glossterm-transfer none">
diff --git a/docs/libdbusmenu-gtk/reference/html/left.png b/docs/libdbusmenu-gtk/reference/html/left.png
new file mode 100644
index 0000000..48cab27
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/left.png
Binary files differ
diff --git a/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html
new file mode 100644
index 0000000..eea71ef
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html
@@ -0,0 +1,347 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuGtkClient</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-gtk-menuitem.html" title="menuitem">
+<link rel="next" href="libdbusmenu-gtk-parser.html" title="parser">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-gtk-menuitem.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-gtk-parser.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-gtk-DbusmenuGtkClient.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-gtk-DbusmenuGtkClient.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-gtk-DbusmenuGtkClient"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-gtk-DbusmenuGtkClient.top_of_page"></a>DbusmenuGtkClient</span></h2>
+<p>DbusmenuGtkClient — A subclass of <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a> adding GTK level features</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkClient.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-gtk-DbusmenuGtkClient.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-gtk/client.h&gt;
+
+#define <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS" title="DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED">DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</a>
+ <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient">DbusmenuGtkClient</a>;
+struct <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClientClass" title="struct DbusmenuGtkClientClass">DbusmenuGtkClientClass</a>;
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="returnvalue">DbusmenuGtkClient</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-new" title="dbusmenu_gtkclient_new ()">dbusmenu_gtkclient_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);
+<a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="returnvalue">GtkMenuItem</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get" title="dbusmenu_gtkclient_menuitem_get ()">dbusmenu_gtkclient_menuitem_get</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);
+<a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get-submenu" title="dbusmenu_gtkclient_menuitem_get_submenu ()">dbusmenu_gtkclient_menuitem_get_submenu</a>
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-set-accel-group" title="dbusmenu_gtkclient_set_accel_group ()">dbusmenu_gtkclient_set_accel_group</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *agroup</code></em>);
+<a href="http://developer.gnome.org/devel/gtk/gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="returnvalue">GtkAccelGroup</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-get-accel-group" title="dbusmenu_gtkclient_get_accel_group ()">dbusmenu_gtkclient_get_accel_group</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-newitem-base" title="dbusmenu_gtkclient_newitem_base ()">dbusmenu_gtkclient_newitem_base</a> (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkClient.description"></a><h2>Description</h2>
+<p>
+In general, this is just a <a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a>, why else would you care? Oh,
+ because this menu is created by someone else on a server that exists
+ on the other side of DBus. You need a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> to be able
+ push the data into this menu.
+</p>
+<p>
+ The first thing you need to know is how to find that <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>
+ on DBus. This involves both the DBus name and the DBus object that
+ the menu interface can be found on. Those two value should be set
+ when creating the object using <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new" title="dbusmenu_gtkmenu_new ()"><code class="function">dbusmenu_gtkmenu_new()</code></a>. They are then
+ stored on two properties <span class="type">"dbus-name"</span> and <span class="type">"dbus-object"</span>.
+</p>
+<p>
+ After creation the <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> it will continue to keep in
+ synchronization with the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> object across Dbus. If the
+ number of entries change, the menus change, if they change thier
+ properties change, they update in the items. All of this should
+ be handled transparently to the user of this object.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkClient.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS"></a><h3>DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</h3>
+<pre class="programlisting">#define DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED
+</pre>
+<p>
+String to attach to signal <span class="type">"root-changed"</span>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuGtkClient"></a><h3>DbusmenuGtkClient</h3>
+<pre class="programlisting">typedef struct _DbusmenuGtkClient DbusmenuGtkClient;</pre>
+<p>
+A subclass of <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a> to add functionality with regarding
+building GTK items out of the abstract tree.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DbusmenuGtkClientClass"></a><h3>struct DbusmenuGtkClientClass</h3>
+<pre class="programlisting">struct DbusmenuGtkClientClass {
+ DbusmenuClientClass parent_class;
+
+ /* Signals */
+ void (*root_changed) (DbusmenuMenuitem * newroot);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</pre>
+<p>
+Functions and signal slots for using a <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass"><span class="type">DbusmenuClientClass</span></a> <em class="structfield"><code><a name="DbusmenuGtkClientClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><span class="type">GtkMenuClass</span></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.root-changed"></a>root_changed</code></em> ()</span></p></td>
+<td>Slot for signal <span class="type">"root-changed"</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved5"></a>reserved5</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkClientClass.reserved6"></a>reserved6</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-new"></a><h3>dbusmenu_gtkclient_new ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="returnvalue">DbusmenuGtkClient</span></a> * dbusmenu_gtkclient_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> object and creates a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a>
+that connects across DBus to a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dbus_name</code></em> :</span></p></td>
+<td>Name of the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> on DBus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dbus_object</code></em> :</span></p></td>
+<td>Name of the object on the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A new <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> sync'd with a server</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-menuitem-get"></a><h3>dbusmenu_gtkclient_menuitem_get ()</h3>
+<pre class="programlisting"><a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="returnvalue">GtkMenuItem</span></a> * dbusmenu_gtkclient_menuitem_get (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);</pre>
+<p>
+This grabs the <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> that is associated with the
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>A <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> with the item in it.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
+<td>
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to get associated <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> that can be played with. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-menuitem-get-submenu"></a><h3>dbusmenu_gtkclient_menuitem_get_submenu ()</h3>
+<pre class="programlisting"><a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * dbusmenu_gtkclient_menuitem_get_submenu
+ (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);</pre>
+<p>
+This grabs the submenu associated with the menuitem.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>A <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> with the item in it.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
+<td>
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to get associated <a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The <a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> if there is one. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-set-accel-group"></a><h3>dbusmenu_gtkclient_set_accel_group ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_gtkclient_set_accel_group (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *agroup</code></em>);</pre>
+<p>
+Sets the acceleration group for the menu items with accelerators
+on this client.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>To set the group on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>agroup</code></em> :</span></p></td>
+<td>The new acceleration group</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-get-accel-group"></a><h3>dbusmenu_gtkclient_get_accel_group ()</h3>
+<pre class="programlisting"><a href="http://developer.gnome.org/devel/gtk/gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="returnvalue">GtkAccelGroup</span></a> * dbusmenu_gtkclient_get_accel_group (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>);</pre>
+<p>
+Gets the accel group for this client.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>Client to query for an accelerator group</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Either a valid group or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> on error or
+none set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkclient-newitem-base"></a><h3>dbusmenu_gtkclient_newitem_base ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_gtkclient_newitem_base (<em class="parameter"><code><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> *client</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>,
+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);</pre>
+<p>
+This function provides some of the basic connectivity for being in
+the GTK world. Things like visibility and sensitivity of the item are
+handled here so that the subclasses don't have to. If you're building
+your on GTK menu item you can use this function to apply those basic
+attributes so that you don't have to deal with them either.
+</p>
+<p>
+This also handles passing the "activate" signal back to the
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> side of thing.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>The client handling everything on this connection</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to attach the GTK-isms to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>gmi</code></em> :</span></p></td>
+<td>A <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> representing the GTK world's view of this menuitem</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>The parent <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html
new file mode 100644
index 0000000..73de2ed
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DbusmenuGtkMenu</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="ch01.html" title="API">
+<link rel="next" href="libdbusmenu-gtk-menuitem.html" title="menuitem">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-gtk-menuitem.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-gtk-DbusmenuGtkMenu.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-gtk-DbusmenuGtkMenu.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-gtk-DbusmenuGtkMenu"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-gtk-DbusmenuGtkMenu.top_of_page"></a>DbusmenuGtkMenu</span></h2>
+<p>DbusmenuGtkMenu — A GTK Menu Object that syncronizes over DBus</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkMenu.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-gtk-DbusmenuGtkMenu.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-gtk/menu.h&gt;
+
+struct <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#DbusmenuGtkMenuClass" title="struct DbusmenuGtkMenuClass">DbusmenuGtkMenuClass</a>;
+<span class="returnvalue">DbusmenuGtkMenu</span> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new" title="dbusmenu_gtkmenu_new ()">dbusmenu_gtkmenu_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);
+<a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="returnvalue">DbusmenuGtkClient</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-get-client" title="dbusmenu_gtkmenu_get_client ()">dbusmenu_gtkmenu_get_client</a> (<em class="parameter"><code><span class="type">DbusmenuGtkMenu</span> *menu</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkMenu.description"></a><h2>Description</h2>
+<p>
+In general, this is just a <a href="http://developer.gnome.org/devel/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a>, why else would you care? Oh,
+ because this menu is created by someone else on a server that exists
+ on the other side of DBus. You need a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> to be able
+ push the data into this menu.
+</p>
+<p>
+ The first thing you need to know is how to find that <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>
+ on DBus. This involves both the DBus name and the DBus object that
+ the menu interface can be found on. Those two value should be set
+ when creating the object using <a class="link" href="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new" title="dbusmenu_gtkmenu_new ()"><code class="function">dbusmenu_gtkmenu_new()</code></a>. They are then
+ stored on two properties <span class="type">"dbus-name"</span> and <span class="type">"dbus-object"</span>.
+</p>
+<p>
+ After creation the <span class="type">DbusmenuGtkMenu</span> it will continue to keep in
+ synchronization with the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> object across Dbus. If the
+ number of entries change, the menus change, if they change thier
+ properties change, they update in the items. All of this should
+ be handled transparently to the user of this object.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-DbusmenuGtkMenu.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="DbusmenuGtkMenuClass"></a><h3>struct DbusmenuGtkMenuClass</h3>
+<pre class="programlisting">struct DbusmenuGtkMenuClass {
+ GtkMenuClass parent_class;
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</pre>
+<p>
+All of the subclassable functions and signal slots for a
+<span class="type">DbusmenuGtkMenu</span>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">GtkMenuClass</span> <em class="structfield"><code><a name="DbusmenuGtkMenuClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><span class="type">GtkMenuClass</span></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved1"></a>reserved1</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved2"></a>reserved2</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved3"></a>reserved3</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved4"></a>reserved4</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved5"></a>reserved5</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="DbusmenuGtkMenuClass.reserved6"></a>reserved6</code></em> ()</span></p></td>
+<td>Reserved for future use.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkmenu-new"></a><h3>dbusmenu_gtkmenu_new ()</h3>
+<pre class="programlisting"><span class="returnvalue">DbusmenuGtkMenu</span> * dbusmenu_gtkmenu_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);</pre>
+<p>
+Creates a new <span class="type">DbusmenuGtkMenu</span> object and creates a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a>
+that connects across DBus to a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dbus_name</code></em> :</span></p></td>
+<td>Name of the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> on DBus</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dbus_object</code></em> :</span></p></td>
+<td>Name of the object on the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A new <span class="type">DbusmenuGtkMenu</span> sync'd with a server</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtkmenu-get-client"></a><h3>dbusmenu_gtkmenu_get_client ()</h3>
+<pre class="programlisting"><a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="returnvalue">DbusmenuGtkClient</span></a> * dbusmenu_gtkmenu_get_client (<em class="parameter"><code><span class="type">DbusmenuGtkMenu</span> *menu</code></em>);</pre>
+<p>
+An accessor for the client that this menu is using to
+communicate with the server.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menu</code></em> :</span></p></td>
+<td>The <span class="type">DbusmenuGtkMenu</span> to get the client from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A valid <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient" title="DbusmenuGtkClient"><span class="type">DbusmenuGtkClient</span></a> or NULL on error. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html
new file mode 100644
index 0000000..9fdc0ce
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>menuitem</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-gtk-DbusmenuGtkMenu.html" title="DbusmenuGtkMenu">
+<link rel="next" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-gtk-DbusmenuGtkMenu.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="libdbusmenu-gtk-DbusmenuGtkClient.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-gtk-menuitem.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-gtk-menuitem.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-gtk-menuitem"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-gtk-menuitem.top_of_page"></a>menuitem</span></h2>
+<p>menuitem — Helpers for <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> properties that require a GTK dependency</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-menuitem.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-gtk-menuitem.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-gtk/menuitem.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image" title="dbusmenu_menuitem_property_set_image ()">dbusmenu_menuitem_property_set_image</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <span class="type">GdkPixbuf</span> *data</code></em>);
+<span class="returnvalue">GdkPixbuf</span> * <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-image" title="dbusmenu_menuitem_property_get_image ()">dbusmenu_menuitem_property_get_image</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut" title="dbusmenu_menuitem_property_set_shortcut ()">dbusmenu_menuitem_property_set_shortcut</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> key</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gdk/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> modifier</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-string" title="dbusmenu_menuitem_property_set_shortcut_string ()">dbusmenu_menuitem_property_set_shortcut_string</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *shortcut</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-menuitem" title="dbusmenu_menuitem_property_set_shortcut_menuitem ()">dbusmenu_menuitem_property_set_shortcut_menuitem</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-shortcut" title="dbusmenu_menuitem_property_get_shortcut ()">dbusmenu_menuitem_property_get_shortcut</a>
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gdk/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> *modifier</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-menuitem.description"></a><h2>Description</h2>
+<p>
+Some property helpers can't be done without picking up a GTK+
+ dependency. So those sit in libdbusmenu-gtk but have very similar
+ prototypes to the code in libdbusmenu-glib so your code will
+ look consistent, just with the extra depedency.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-menuitem.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-image"></a><h3>dbusmenu_menuitem_property_set_image ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_image
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+ <em class="parameter"><code>const <span class="type">GdkPixbuf</span> *data</code></em>);</pre>
+<p>
+This function takes the pixbuf that is stored in <em class="parameter"><code>data</code></em> and
+turns it into a base64 encoded PNG so that it can be placed
+onto a standard <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>Name of the property to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The image to place on the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the function was able to set the property
+or not.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-image"></a><h3>dbusmenu_menuitem_property_get_image ()</h3>
+<pre class="programlisting"><span class="returnvalue">GdkPixbuf</span> * dbusmenu_menuitem_property_get_image
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
+<p>
+This function looks on the menu item for a property by the
+name of <em class="parameter"><code>property</code></em>. If one exists it tries to turn it into
+a <span class="type">GdkPixbuf</span>. It assumes that the property is a base64 encoded
+PNG file like the one created by <span class="type">dbusmenu_menuite_property_set_image</span>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to look for the property on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>The name of the property to look for.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A pixbuf or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> to signal error. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-shortcut"></a><h3>dbusmenu_menuitem_property_set_shortcut ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_shortcut
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> key</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gdk/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> modifier</code></em>);</pre>
+<p>
+Takes the modifer described by <em class="parameter"><code>key</code></em> and <em class="parameter"><code>modifier</code></em> and places that into
+the format sending across Dbus for shortcuts.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the shortcut on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The keycode of the key to send</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifier</code></em> :</span></p></td>
+<td>A bitmask of modifiers used to activate the item</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether it was successful at setting the property.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-shortcut-string"></a><h3>dbusmenu_menuitem_property_set_shortcut_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_shortcut_string
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *shortcut</code></em>);</pre>
+<p>
+This function takes a GTK shortcut string as defined in
+<a href="http://developer.gnome.org/devel/gtk/gtk3-Keyboard-Accelerators.html#gtk-accelerator-parse"><span class="type">gtk_accelerator_parse</span></a> and turns that into the information
+required to send it over DBusmenu.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the shortcut on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>shortcut</code></em> :</span></p></td>
+<td>String describing the shortcut</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether it was successful at setting the property.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-set-shortcut-menuitem"></a><h3>dbusmenu_menuitem_property_set_shortcut_menuitem ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_shortcut_menuitem
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code>const <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>);</pre>
+<p>
+Takes the shortcut that is installed on a menu item and calls
+<a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut" title="dbusmenu_menuitem_property_set_shortcut ()"><span class="type">dbusmenu_menuitem_property_set_shortcut</span></a> with it. It also sets
+up listeners to watch it change.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the shortcut on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>gmi</code></em> :</span></p></td>
+<td>A menu item to steal the shortcut off of</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether it was successful at setting the property.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-menuitem-property-get-shortcut"></a><h3>dbusmenu_menuitem_property_get_shortcut ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_menuitem_property_get_shortcut
+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://developer.gnome.org/devel/gdk/gdk3-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> *modifier</code></em>);</pre>
+<p>
+This function gets a GTK shortcut as a key and a mask
+for use to set the accelerators.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to get the shortcut off</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Location to put the key value. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifier</code></em> :</span></p></td>
+<td>Location to put the modifier mask. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-parser.html b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-parser.html
new file mode 100644
index 0000000..10b7a3a
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-parser.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>parser</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="ch01.html" title="API">
+<link rel="prev" href="libdbusmenu-gtk-DbusmenuGtkClient.html" title="DbusmenuGtkClient">
+<link rel="next" href="object-tree.html" title="Object Hierarchy">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-gtk-DbusmenuGtkClient.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libdbusmenu-gtk-parser.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libdbusmenu-gtk-parser.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libdbusmenu-gtk-parser"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libdbusmenu-gtk-parser.top_of_page"></a>parser</span></h2>
+<p>parser — A parser of in-memory GTK menu trees</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-parser.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="libdbusmenu-gtk-parser.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libdbusmenu-gtk/parser.h&gt;
+
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-menu-structure" title="dbusmenu_gtk_parse_menu_structure ()">dbusmenu_gtk_parse_menu_structure</a> (<em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html"><span class="type">GtkWidget</span></a> *widget</code></em>);
+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * <a class="link" href="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-get-cached-item" title="dbusmenu_gtk_parse_get_cached_item ()">dbusmenu_gtk_parse_get_cached_item</a> (<em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html"><span class="type">GtkWidget</span></a> *widget</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-parser.description"></a><h2>Description</h2>
+<p>
+The parser will take a GTK menu tree and attach it to a Dbusmenu menu
+ tree. Along with setting up all the signals for updates and destruction.
+ The returned item would be the root item of the given tree.
+</p>
+</div>
+<div class="refsect1">
+<a name="libdbusmenu-gtk-parser.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="dbusmenu-gtk-parse-menu-structure"></a><h3>dbusmenu_gtk_parse_menu_structure ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_gtk_parse_menu_structure (<em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
+<p>
+Goes through the GTK structures and turns them into the appropraite
+Dbusmenu structures along with setting up all the relationships
+between the objects. It also stores the dbusmenu items as a cache
+on the GTK items so that they'll be reused if necissary.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
+<td>A <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> or <a href="http://developer.gnome.org/devel/gtk/GtkMenuShell.html"><span class="type">GtkMenuShell</span></a> to turn into a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A dbusmenu item representing the menu structure. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dbusmenu-gtk-parse-get-cached-item"></a><h3>dbusmenu_gtk_parse_get_cached_item ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="returnvalue">DbusmenuMenuitem</span></a> * dbusmenu_gtk_parse_get_cached_item (<em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
+<p>
+The Dbusmenu GTK parser adds cached items on the various
+menu items throughout the tree. Sometimes it can be useful
+to get that cached item to use directly. This function
+will retrieve it for you.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>widget</code></em> :</span></p></td>
+<td>A <a href="http://developer.gnome.org/devel/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> that may have a cached <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> from the parser</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A pointer to the cached item
+or NULL if it isn't there. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk.devhelp2 b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk.devhelp2
new file mode 100644
index 0000000..b12d61e
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk.devhelp2
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="libdbusmenu-gtk Reference Manual" link="index.html" author="" name="libdbusmenu-gtk" version="2" language="c">
+ <chapters>
+ <sub name="API" link="ch01.html">
+ <sub name="DbusmenuGtkMenu" link="libdbusmenu-gtk-DbusmenuGtkMenu.html"/>
+ <sub name="menuitem" link="libdbusmenu-gtk-menuitem.html"/>
+ <sub name="DbusmenuGtkClient" link="libdbusmenu-gtk-DbusmenuGtkClient.html"/>
+ <sub name="parser" link="libdbusmenu-gtk-parser.html"/>
+ </sub>
+ <sub name="Object Hierarchy" link="object-tree.html"/>
+ <sub name="API Index" link="api-index-full.html"/>
+ <sub name="Deprecated API Index" link="api-index-deprecated.html"/>
+ <sub name="Annotation Glossary" link="annotation-glossary.html"/>
+ </chapters>
+ <functions>
+ <keyword type="struct" name="struct DbusmenuGtkMenuClass" link="libdbusmenu-gtk-DbusmenuGtkMenu.html#DbusmenuGtkMenuClass"/>
+ <keyword type="function" name="dbusmenu_gtkmenu_new ()" link="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-new"/>
+ <keyword type="function" name="dbusmenu_gtkmenu_get_client ()" link="libdbusmenu-gtk-DbusmenuGtkMenu.html#dbusmenu-gtkmenu-get-client"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_image ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_image ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-image"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_shortcut ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_shortcut_string ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-string"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_set_shortcut_menuitem ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-shortcut-menuitem"/>
+ <keyword type="function" name="dbusmenu_menuitem_property_get_shortcut ()" link="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-shortcut"/>
+ <keyword type="macro" name="DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED" link="libdbusmenu-gtk-DbusmenuGtkClient.html#DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS"/>
+ <keyword type="struct" name="DbusmenuGtkClient" link="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClient"/>
+ <keyword type="struct" name="struct DbusmenuGtkClientClass" link="libdbusmenu-gtk-DbusmenuGtkClient.html#DbusmenuGtkClientClass"/>
+ <keyword type="function" name="dbusmenu_gtkclient_new ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-new"/>
+ <keyword type="function" name="dbusmenu_gtkclient_menuitem_get ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get"/>
+ <keyword type="function" name="dbusmenu_gtkclient_menuitem_get_submenu ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get-submenu"/>
+ <keyword type="function" name="dbusmenu_gtkclient_set_accel_group ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-set-accel-group"/>
+ <keyword type="function" name="dbusmenu_gtkclient_get_accel_group ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-get-accel-group"/>
+ <keyword type="function" name="dbusmenu_gtkclient_newitem_base ()" link="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-newitem-base"/>
+ <keyword type="function" name="dbusmenu_gtk_parse_menu_structure ()" link="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-menu-structure"/>
+ <keyword type="function" name="dbusmenu_gtk_parse_get_cached_item ()" link="libdbusmenu-gtk-parser.html#dbusmenu-gtk-parse-get-cached-item"/>
+ </functions>
+</book>
diff --git a/docs/libdbusmenu-gtk/reference/html/object-tree.html b/docs/libdbusmenu-gtk/reference/html/object-tree.html
new file mode 100644
index 0000000..e1959b4
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/object-tree.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Object Hierarchy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="up" href="index.html" title="libdbusmenu-gtk Reference Manual">
+<link rel="prev" href="libdbusmenu-gtk-parser.html" title="parser">
+<link rel="next" href="api-index-full.html" title="API Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="libdbusmenu-gtk-parser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libdbusmenu-gtk Reference Manual</th>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="object-tree"></a>Object Hierarchy</h2></div></div></div>
+<pre class="screen">
+</pre>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libdbusmenu-gtk/reference/html/right.png b/docs/libdbusmenu-gtk/reference/html/right.png
new file mode 100644
index 0000000..ed55207
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/right.png
Binary files differ
diff --git a/docs/libdbusmenu-gtk/reference/html/style.css b/docs/libdbusmenu-gtk/reference/html/style.css
new file mode 100644
index 0000000..d6f6c26
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/style.css
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+ /* tango:aluminium 1/2 */
+ background: #eeeeec;
+ border: solid 1px #d3d7cf;
+ padding: 0.5em;
+}
+.programlisting
+{
+ /* tango:sky blue 0/1 */
+ background: #e6f3ff;
+ border: solid 1px #729fcf;
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+
+@media screen {
+ sup a.footnote
+ {
+ position: relative;
+ top: 0em ! important;
+
+ }
+ /* this is needed so that the local anchors are displayed below the naviagtion */
+ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+ {
+ display: inline-block;
+ position: relative;
+ top:-5em;
+ }
+ /* this seems to be a bug in the xsl style sheets when generating indexes */
+ div.index div.index
+ {
+ top: 0em;
+ }
+ /* make space for the fixed navigation bar and add space at the bottom so that
+ * link targets appear somewhat close to top
+ */
+ body
+ {
+ padding-top: 3.2em;
+ padding-bottom: 20em;
+ }
+ /* style and size the navigation bar */
+ table.navigation#top
+ {
+ position: fixed;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ z-index: 10;
+ }
+ .navigation a, .navigation a:visited
+ {
+ /* tango:scarlet red 3 */
+ color: #a40000;
+ }
+ .navigation a:hover
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ }
+ td.shortcuts
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ font-size: 80%;
+ white-space: nowrap;
+ }
+}
+@media print {
+ table.navigation {
+ visibility: collapse;
+ display: none;
+ }
+ div.titlepage table.navigation {
+ visibility: visible;
+ display: table;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ }
+}
+
+.navigation .title
+{
+ font-size: 200%;
+}
+
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+
+a, a:visited
+{
+ text-decoration: none;
+ /* tango:sky blue 2 */
+ color: #3465a4;
+}
+a:hover
+{
+ text-decoration: underline;
+ /* tango:sky blue 1 */
+ color: #729fcf;
+}
+
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.table table th
+{
+ /* tango:aluminium 2 */
+ background-color: #d3d7cf;
+}
+
+hr
+{
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ background: #babdb6;
+ border: none 0px;
+ height: 1px;
+ clear: both;
+}
+
+.footer
+{
+ padding-top: 3.5em;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ text-align: center;
+ font-size: 80%;
+}
+
+.warning
+{
+ /* tango:orange 0/1 */
+ background: #ffeed9;
+ border-color: #ffb04f;
+}
+.note
+{
+ /* tango:chameleon 0/0.5 */
+ background: #d8ffb2;
+ border-color: #abf562;
+}
+.note, .warning
+{
+ padding: 0.5em;
+ border-width: 1px;
+ border-style: solid;
+}
+.note h3, .warning h3
+{
+ margin-top: 0.0em
+}
+.note p, .warning p
+{
+ margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+ float: right;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+.annotation
+{
+ /* tango:aluminium 5 */
+ color: #555753;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */
+.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal { color: #000000; }
+.listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */
+.listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type { color: #000000; }
+.listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+ /* tango:sky blue 1 */
+ border: solid 1px #729fcf;
+ padding: 0px;
+}
+
+.listing_lines, .listing_code {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0.5em;
+}
+.listing_lines {
+ /* tango:sky blue 0.5 */
+ background: #a6c5e3;
+ /* tango:aluminium 6 */
+ color: #2e3436;
+}
+.listing_code {
+ /* tango:sky blue 0 */
+ background: #e6f3ff;
+}
+.listing_code .programlisting {
+ /* override from previous */
+ border: none 0px;
+ padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+ margin: 0px;
+}
+
diff --git a/docs/libdbusmenu-gtk/reference/html/up.png b/docs/libdbusmenu-gtk/reference/html/up.png
new file mode 100644
index 0000000..8eb591f
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/html/up.png
Binary files differ
diff --git a/docs/libdbusmenu-gtk/reference/tmpl/client.sgml b/docs/libdbusmenu-gtk/reference/tmpl/client.sgml
new file mode 100644
index 0000000..e4b3efb
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/tmpl/client.sgml
@@ -0,0 +1,110 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuGtkClient
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT DbusmenuGtkClient ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT DbusmenuGtkClientClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@root_changed:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+@reserved5:
+@reserved6:
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_new ##### -->
+<para>
+
+</para>
+
+@dbus_name:
+@dbus_object:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_menuitem_get ##### -->
+<para>
+
+</para>
+
+@client:
+@item:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_menuitem_get_submenu ##### -->
+<para>
+
+</para>
+
+@client:
+@item:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_set_accel_group ##### -->
+<para>
+
+</para>
+
+@client:
+@agroup:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_get_accel_group ##### -->
+<para>
+
+</para>
+
+@client:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkclient_newitem_base ##### -->
+<para>
+
+</para>
+
+@client:
+@item:
+@gmi:
+@parent:
+
+
diff --git a/docs/libdbusmenu-gtk/reference/tmpl/libdbusmenu-gtk-unused.sgml b/docs/libdbusmenu-gtk/reference/tmpl/libdbusmenu-gtk-unused.sgml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/tmpl/libdbusmenu-gtk-unused.sgml
diff --git a/docs/libdbusmenu-gtk/reference/tmpl/menu.sgml b/docs/libdbusmenu-gtk/reference/tmpl/menu.sgml
new file mode 100644
index 0000000..4e2d89d
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/tmpl/menu.sgml
@@ -0,0 +1,56 @@
+<!-- ##### SECTION Title ##### -->
+DbusmenuGtkMenu
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT DbusmenuGtkMenuClass ##### -->
+<para>
+
+</para>
+
+@parent_class:
+@reserved1:
+@reserved2:
+@reserved3:
+@reserved4:
+@reserved5:
+@reserved6:
+
+<!-- ##### FUNCTION dbusmenu_gtkmenu_new ##### -->
+<para>
+
+</para>
+
+@dbus_name:
+@dbus_object:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtkmenu_get_client ##### -->
+<para>
+
+</para>
+
+@menu:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml b/docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml
new file mode 100644
index 0000000..eb30964
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml
@@ -0,0 +1,86 @@
+<!-- ##### SECTION Title ##### -->
+menuitem
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_image ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@property:
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_image ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@property:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_shortcut ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@key:
+@modifier:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_shortcut_string ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@shortcut:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_set_shortcut_menuitem ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@gmi:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_menuitem_property_get_shortcut ##### -->
+<para>
+
+</para>
+
+@menuitem:
+@key:
+@modifier:
+
+
diff --git a/docs/libdbusmenu-gtk/reference/tmpl/parser.sgml b/docs/libdbusmenu-gtk/reference/tmpl/parser.sgml
new file mode 100644
index 0000000..f4ef7bb
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/tmpl/parser.sgml
@@ -0,0 +1,42 @@
+<!-- ##### SECTION Title ##### -->
+parser
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION dbusmenu_gtk_parse_menu_structure ##### -->
+<para>
+
+</para>
+
+@widget:
+@Returns:
+
+
+<!-- ##### FUNCTION dbusmenu_gtk_parse_get_cached_item ##### -->
+<para>
+
+</para>
+
+@widget:
+@Returns:
+
+
diff --git a/docs/libdbusmenu-gtk/reference/version.xml b/docs/libdbusmenu-gtk/reference/version.xml
index 324d537..c62d732 100644
--- a/docs/libdbusmenu-gtk/reference/version.xml
+++ b/docs/libdbusmenu-gtk/reference/version.xml
@@ -1 +1 @@
-0.5.96
+0.5.97
diff --git a/docs/libdbusmenu-gtk/reference/xml/annotation-glossary.xml b/docs/libdbusmenu-gtk/reference/xml/annotation-glossary.xml
new file mode 100644
index 0000000..7dde69a
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/annotation-glossary.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE glossary 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'">
+]>
+
+<glossary id="annotation-glossary">
+ <title>Annotation Glossary</title>
+<glossdiv><title>O</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-out"/>out</glossterm>
+ <glossdef>
+ <para>Parameter for returning results. Default is <acronym>transfer full</acronym>.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+<glossdiv><title>T</title>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-transfer full"/>transfer full</glossterm>
+ <glossdef>
+ <para>Free data after the code is done.</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm><anchor id="annotation-glossterm-transfer none"/>transfer none</glossterm>
+ <glossdef>
+ <para>Don't free data after the code is done.</para>
+ </glossdef>
+ </glossentry>
+</glossdiv>
+</glossary>
diff --git a/docs/libdbusmenu-gtk/reference/xml/api-index-deprecated.xml b/docs/libdbusmenu-gtk/reference/xml/api-index-deprecated.xml
new file mode 100644
index 0000000..8ec0fe4
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/api-index-deprecated.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE indexdiv 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'">
+]>
+<indexdiv>
+</indexdiv>
diff --git a/docs/libdbusmenu-gtk/reference/xml/api-index-full.xml b/docs/libdbusmenu-gtk/reference/xml/api-index-full.xml
new file mode 100644
index 0000000..b298dca
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/api-index-full.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE indexdiv 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'">
+]>
+<indexdiv>
+<indexdiv><title>G</title>
+<indexentry><primaryie linkends="DbusmenuGtkClient"><link linkend="DbusmenuGtkClient">DbusmenuGtkClient</link>, struct in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuGtkClientClass"><link linkend="DbusmenuGtkClientClass">DbusmenuGtkClientClass</link>, struct in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-get-accel-group"><link linkend="dbusmenu-gtkclient-get-accel-group">dbusmenu_gtkclient_get_accel_group</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-menuitem-get"><link linkend="dbusmenu-gtkclient-menuitem-get">dbusmenu_gtkclient_menuitem_get</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-menuitem-get-submenu"><link linkend="dbusmenu-gtkclient-menuitem-get-submenu">dbusmenu_gtkclient_menuitem_get_submenu</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-new"><link linkend="dbusmenu-gtkclient-new">dbusmenu_gtkclient_new</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-newitem-base"><link linkend="dbusmenu-gtkclient-newitem-base">dbusmenu_gtkclient_newitem_base</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkclient-set-accel-group"><link linkend="dbusmenu-gtkclient-set-accel-group">dbusmenu_gtkclient_set_accel_group</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS"><link linkend="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS">DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</link>, macro in <link linkend="libdbusmenu-gtk-DbusmenuGtkClient">DbusmenuGtkClient</link></primaryie></indexentry>
+<indexentry><primaryie linkends="DbusmenuGtkMenuClass"><link linkend="DbusmenuGtkMenuClass">DbusmenuGtkMenuClass</link>, struct in <link linkend="libdbusmenu-gtk-DbusmenuGtkMenu">DbusmenuGtkMenu</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkmenu-get-client"><link linkend="dbusmenu-gtkmenu-get-client">dbusmenu_gtkmenu_get_client</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkMenu">DbusmenuGtkMenu</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtkmenu-new"><link linkend="dbusmenu-gtkmenu-new">dbusmenu_gtkmenu_new</link>, function in <link linkend="libdbusmenu-gtk-DbusmenuGtkMenu">DbusmenuGtkMenu</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtk-parse-get-cached-item"><link linkend="dbusmenu-gtk-parse-get-cached-item">dbusmenu_gtk_parse_get_cached_item</link>, function in <link linkend="libdbusmenu-gtk-parser">parser</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-gtk-parse-menu-structure"><link linkend="dbusmenu-gtk-parse-menu-structure">dbusmenu_gtk_parse_menu_structure</link>, function in <link linkend="libdbusmenu-gtk-parser">parser</link></primaryie></indexentry>
+</indexdiv>
+<indexdiv><title>M</title>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-image"><link linkend="dbusmenu-menuitem-property-get-image">dbusmenu_menuitem_property_get_image</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-get-shortcut"><link linkend="dbusmenu-menuitem-property-get-shortcut">dbusmenu_menuitem_property_get_shortcut</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-image"><link linkend="dbusmenu-menuitem-property-set-image">dbusmenu_menuitem_property_set_image</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-shortcut"><link linkend="dbusmenu-menuitem-property-set-shortcut">dbusmenu_menuitem_property_set_shortcut</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-shortcut-menuitem"><link linkend="dbusmenu-menuitem-property-set-shortcut-menuitem">dbusmenu_menuitem_property_set_shortcut_menuitem</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+<indexentry><primaryie linkends="dbusmenu-menuitem-property-set-shortcut-string"><link linkend="dbusmenu-menuitem-property-set-shortcut-string">dbusmenu_menuitem_property_set_shortcut_string</link>, function in <link linkend="libdbusmenu-gtk-menuitem">menuitem</link></primaryie></indexentry>
+</indexdiv>
+</indexdiv>
diff --git a/docs/libdbusmenu-gtk/reference/xml/client.xml b/docs/libdbusmenu-gtk/reference/xml/client.xml
new file mode 100644
index 0000000..b319ae3
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/client.xml
@@ -0,0 +1,238 @@
+<?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-DbusmenuGtkClient">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-gtk-DbusmenuGtkClient.top_of_page">DbusmenuGtkClient</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GTK Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuGtkClient</refname>
+<refpurpose>A subclass of <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> adding GTK level features</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkClient.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-gtk-DbusmenuGtkClient.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-gtk/client.h&gt;
+
+#define <link linkend="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS">DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</link>
+ <link linkend="DbusmenuGtkClient">DbusmenuGtkClient</link>;
+struct <link linkend="DbusmenuGtkClientClass">DbusmenuGtkClientClass</link>;
+<link linkend="DbusmenuGtkClient"><returnvalue>DbusmenuGtkClient</returnvalue></link> * <link linkend="dbusmenu-gtkclient-new">dbusmenu_gtkclient_new</link> (<parameter><link linkend="gchar"><type>gchar</type></link> *dbus_name</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> *dbus_object</parameter>);
+<link linkend="GtkMenuItem"><returnvalue>GtkMenuItem</returnvalue></link> * <link linkend="dbusmenu-gtkclient-menuitem-get">dbusmenu_gtkclient_menuitem_get</link> (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>);
+<link linkend="GtkMenu"><returnvalue>GtkMenu</returnvalue></link> * <link linkend="dbusmenu-gtkclient-menuitem-get-submenu">dbusmenu_gtkclient_menuitem_get_submenu</link>
+ (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-gtkclient-set-accel-group">dbusmenu_gtkclient_set_accel_group</link> (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="GtkAccelGroup"><type>GtkAccelGroup</type></link> *agroup</parameter>);
+<link linkend="GtkAccelGroup"><returnvalue>GtkAccelGroup</returnvalue></link> * <link linkend="dbusmenu-gtkclient-get-accel-group">dbusmenu_gtkclient_get_accel_group</link> (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-gtkclient-newitem-base">dbusmenu_gtkclient_newitem_base</link> (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>,
+ <parameter><link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> *gmi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkClient.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+In general, this is just a <link linkend="GtkMenu"><type>GtkMenu</type></link>, why else would you care? Oh,
+ because this menu is created by someone else on a server that exists
+ on the other side of DBus. You need a <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> to be able
+ push the data into this menu.
+</para>
+<para>
+ The first thing you need to know is how to find that <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link>
+ on DBus. This involves both the DBus name and the DBus object that
+ the menu interface can be found on. Those two value should be set
+ when creating the object using <link linkend="dbusmenu-gtkmenu-new"><function>dbusmenu_gtkmenu_new()</function></link>. They are then
+ stored on two properties <link linkend="DbusmenuGtkClient--dbus-name"><type>"dbus-name"</type></link> and <link linkend="DbusmenuGtkClient--dbus-object"><type>"dbus-object"</type></link>.
+</para>
+<para>
+ After creation the <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> it will continue to keep in
+ synchronization with the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object across Dbus. If the
+ number of entries change, the menus change, if they change thier
+ properties change, they update in the items. All of this should
+ be handled transparently to the user of this object.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkClient.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS" role="macro">
+<title>DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</title>
+<indexterm zone="DBUSMENU-GTKCLIENT-SIGNAL-ROOT-CHANGED:CAPS"><primary>DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED</primary></indexterm>
+<programlisting>#define DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED
+</programlisting>
+<para>
+String to attach to signal <link linkend="DbusmenuClient-root-changed"><type>"root-changed"</type></link>
+</para></refsect2>
+<refsect2 id="DbusmenuGtkClient" role="struct">
+<title>DbusmenuGtkClient</title>
+<indexterm zone="DbusmenuGtkClient"><primary>DbusmenuGtkClient</primary></indexterm>
+<programlisting>typedef struct _DbusmenuGtkClient DbusmenuGtkClient;</programlisting>
+<para>
+A subclass of <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link> to add functionality with regarding
+building GTK items out of the abstract tree.
+</para></refsect2>
+<refsect2 id="DbusmenuGtkClientClass" role="struct">
+<title>struct DbusmenuGtkClientClass</title>
+<indexterm zone="DbusmenuGtkClientClass"><primary>DbusmenuGtkClientClass</primary></indexterm>
+<programlisting>struct DbusmenuGtkClientClass {
+ DbusmenuClientClass parent_class;
+
+ /* Signals */
+ void (*root_changed) (DbusmenuMenuitem * newroot);
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</programlisting>
+<para>
+Functions and signal slots for using a <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link>
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="DbusmenuClientClass"><type>DbusmenuClientClass</type></link>&#160;<structfield id="DbusmenuGtkClientClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara><link linkend="GtkMenuClass"><type>GtkMenuClass</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.root-changed">root_changed</structfield>&#160;()</term>
+<listitem><simpara>Slot for signal <link linkend="DbusmenuGtkClient-root-changed"><type>"root-changed"</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved5">reserved5</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkClientClass.reserved6">reserved6</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-new" role="function">
+<title>dbusmenu_gtkclient_new ()</title>
+<indexterm zone="dbusmenu-gtkclient-new"><primary>dbusmenu_gtkclient_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuGtkClient"><returnvalue>DbusmenuGtkClient</returnvalue></link> * dbusmenu_gtkclient_new (<parameter><link linkend="gchar"><type>gchar</type></link> *dbus_name</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> *dbus_object</parameter>);</programlisting>
+<para>
+Creates a new <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> object and creates a <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link>
+that connects across DBus to a <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>dbus_name</parameter>&#160;:</term>
+<listitem><simpara>Name of the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> on DBus</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>dbus_object</parameter>&#160;:</term>
+<listitem><simpara>Name of the object on the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A new <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> sync'd with a server</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-menuitem-get" role="function">
+<title>dbusmenu_gtkclient_menuitem_get ()</title>
+<indexterm zone="dbusmenu-gtkclient-menuitem-get"><primary>dbusmenu_gtkclient_menuitem_get</primary></indexterm>
+<programlisting><link linkend="GtkMenuItem"><returnvalue>GtkMenuItem</returnvalue></link> * dbusmenu_gtkclient_menuitem_get (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>);</programlisting>
+<para>
+This grabs the <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> that is associated with the
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>A <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> with the item in it.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>item</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to get associated <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> on.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> that can be played with. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-menuitem-get-submenu" role="function">
+<title>dbusmenu_gtkclient_menuitem_get_submenu ()</title>
+<indexterm zone="dbusmenu-gtkclient-menuitem-get-submenu"><primary>dbusmenu_gtkclient_menuitem_get_submenu</primary></indexterm>
+<programlisting><link linkend="GtkMenu"><returnvalue>GtkMenu</returnvalue></link> * dbusmenu_gtkclient_menuitem_get_submenu
+ (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>);</programlisting>
+<para>
+This grabs the submenu associated with the menuitem.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>A <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> with the item in it.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>item</parameter>&#160;:</term>
+<listitem><simpara><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to get associated <link linkend="GtkMenu"><type>GtkMenu</type></link> on.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>The <link linkend="GtkMenu"><type>GtkMenu</type></link> if there is one. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-set-accel-group" role="function">
+<title>dbusmenu_gtkclient_set_accel_group ()</title>
+<indexterm zone="dbusmenu-gtkclient-set-accel-group"><primary>dbusmenu_gtkclient_set_accel_group</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_gtkclient_set_accel_group (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="GtkAccelGroup"><type>GtkAccelGroup</type></link> *agroup</parameter>);</programlisting>
+<para>
+Sets the acceleration group for the menu items with accelerators
+on this client.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>To set the group on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>agroup</parameter>&#160;:</term>
+<listitem><simpara>The new acceleration group</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-get-accel-group" role="function">
+<title>dbusmenu_gtkclient_get_accel_group ()</title>
+<indexterm zone="dbusmenu-gtkclient-get-accel-group"><primary>dbusmenu_gtkclient_get_accel_group</primary></indexterm>
+<programlisting><link linkend="GtkAccelGroup"><returnvalue>GtkAccelGroup</returnvalue></link> * dbusmenu_gtkclient_get_accel_group (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>);</programlisting>
+<para>
+Gets the accel group for this client.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>Client to query for an accelerator group</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Either a valid group or <link linkend="NULL:CAPS"><type>NULL</type></link> on error or
+none set. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkclient-newitem-base" role="function">
+<title>dbusmenu_gtkclient_newitem_base ()</title>
+<indexterm zone="dbusmenu-gtkclient-newitem-base"><primary>dbusmenu_gtkclient_newitem_base</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_gtkclient_newitem_base (<parameter><link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> *client</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *item</parameter>,
+ <parameter><link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> *gmi</parameter>,
+ <parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *parent</parameter>);</programlisting>
+<para>
+This function provides some of the basic connectivity for being in
+the GTK world. Things like visibility and sensitivity of the item are
+handled here so that the subclasses don't have to. If you're building
+your on GTK menu item you can use this function to apply those basic
+attributes so that you don't have to deal with them either.
+</para>
+<para>
+This also handles passing the "activate" signal back to the
+<link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> side of thing.
+</para><variablelist role="params">
+<varlistentry><term><parameter>client</parameter>&#160;:</term>
+<listitem><simpara>The client handling everything on this connection</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>item</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to attach the GTK-isms to</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>gmi</parameter>&#160;:</term>
+<listitem><simpara>A <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> representing the GTK world's view of this menuitem</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>parent</parameter>&#160;:</term>
+<listitem><simpara>The parent <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-gtk/reference/xml/menu.xml b/docs/libdbusmenu-gtk/reference/xml/menu.xml
new file mode 100644
index 0000000..c4ed609
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/menu.xml
@@ -0,0 +1,133 @@
+<?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-DbusmenuGtkMenu">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-gtk-DbusmenuGtkMenu.top_of_page">DbusmenuGtkMenu</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GTK Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>DbusmenuGtkMenu</refname>
+<refpurpose>A GTK Menu Object that syncronizes over DBus</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkMenu.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-gtk-DbusmenuGtkMenu.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-gtk/menu.h&gt;
+
+struct <link linkend="DbusmenuGtkMenuClass">DbusmenuGtkMenuClass</link>;
+<link linkend="DbusmenuGtkMenu"><returnvalue>DbusmenuGtkMenu</returnvalue></link> * <link linkend="dbusmenu-gtkmenu-new">dbusmenu_gtkmenu_new</link> (<parameter><link linkend="gchar"><type>gchar</type></link> *dbus_name</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> *dbus_object</parameter>);
+<link linkend="DbusmenuGtkClient"><returnvalue>DbusmenuGtkClient</returnvalue></link> * <link linkend="dbusmenu-gtkmenu-get-client">dbusmenu_gtkmenu_get_client</link> (<parameter><link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> *menu</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkMenu.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+In general, this is just a <link linkend="GtkMenu"><type>GtkMenu</type></link>, why else would you care? Oh,
+ because this menu is created by someone else on a server that exists
+ on the other side of DBus. You need a <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> to be able
+ push the data into this menu.
+</para>
+<para>
+ The first thing you need to know is how to find that <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link>
+ on DBus. This involves both the DBus name and the DBus object that
+ the menu interface can be found on. Those two value should be set
+ when creating the object using <link linkend="dbusmenu-gtkmenu-new"><function>dbusmenu_gtkmenu_new()</function></link>. They are then
+ stored on two properties <link linkend="DbusmenuGtkMenu--dbus-name"><type>"dbus-name"</type></link> and <link linkend="DbusmenuGtkMenu--dbus-object"><type>"dbus-object"</type></link>.
+</para>
+<para>
+ After creation the <link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> it will continue to keep in
+ synchronization with the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> object across Dbus. If the
+ number of entries change, the menus change, if they change thier
+ properties change, they update in the items. All of this should
+ be handled transparently to the user of this object.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-gtk-DbusmenuGtkMenu.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="DbusmenuGtkMenuClass" role="struct">
+<title>struct DbusmenuGtkMenuClass</title>
+<indexterm zone="DbusmenuGtkMenuClass"><primary>DbusmenuGtkMenuClass</primary></indexterm>
+<programlisting>struct DbusmenuGtkMenuClass {
+ GtkMenuClass parent_class;
+
+ /*&lt; Private &gt;*/
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
+};
+</programlisting>
+<para>
+All of the subclassable functions and signal slots for a
+<link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link>.
+</para><variablelist role="struct">
+<varlistentry><term><link linkend="GtkMenuClass"><type>GtkMenuClass</type></link>&#160;<structfield id="DbusmenuGtkMenuClass.parent-class">parent_class</structfield>;</term>
+<listitem><simpara><link linkend="GtkMenuClass"><type>GtkMenuClass</type></link></simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved1">reserved1</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved2">reserved2</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved3">reserved3</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved4">reserved4</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved5">reserved5</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+<varlistentry><term><structfield id="DbusmenuGtkMenuClass.reserved6">reserved6</structfield>&#160;()</term>
+<listitem><simpara>Reserved for future use.</simpara></listitem>
+</varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkmenu-new" role="function">
+<title>dbusmenu_gtkmenu_new ()</title>
+<indexterm zone="dbusmenu-gtkmenu-new"><primary>dbusmenu_gtkmenu_new</primary></indexterm>
+<programlisting><link linkend="DbusmenuGtkMenu"><returnvalue>DbusmenuGtkMenu</returnvalue></link> * dbusmenu_gtkmenu_new (<parameter><link linkend="gchar"><type>gchar</type></link> *dbus_name</parameter>,
+ <parameter><link linkend="gchar"><type>gchar</type></link> *dbus_object</parameter>);</programlisting>
+<para>
+Creates a new <link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> object and creates a <link linkend="DbusmenuClient"><type>DbusmenuClient</type></link>
+that connects across DBus to a <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>dbus_name</parameter>&#160;:</term>
+<listitem><simpara>Name of the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link> on DBus</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>dbus_object</parameter>&#160;:</term>
+<listitem><simpara>Name of the object on the <link linkend="DbusmenuServer"><type>DbusmenuServer</type></link></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A new <link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> sync'd with a server</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtkmenu-get-client" role="function">
+<title>dbusmenu_gtkmenu_get_client ()</title>
+<indexterm zone="dbusmenu-gtkmenu-get-client"><primary>dbusmenu_gtkmenu_get_client</primary></indexterm>
+<programlisting><link linkend="DbusmenuGtkClient"><returnvalue>DbusmenuGtkClient</returnvalue></link> * dbusmenu_gtkmenu_get_client (<parameter><link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> *menu</parameter>);</programlisting>
+<para>
+An accessor for the client that this menu is using to
+communicate with the server.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menu</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuGtkMenu"><type>DbusmenuGtkMenu</type></link> to get the client from</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A valid <link linkend="DbusmenuGtkClient"><type>DbusmenuGtkClient</type></link> or NULL on error. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-gtk/reference/xml/menuitem.xml b/docs/libdbusmenu-gtk/reference/xml/menuitem.xml
new file mode 100644
index 0000000..12f1325
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/menuitem.xml
@@ -0,0 +1,178 @@
+<?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-menuitem">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-gtk-menuitem.top_of_page">menuitem</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GTK Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuitem</refname>
+<refpurpose>Helpers for <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> properties that require a GTK dependency</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-gtk-menuitem.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-gtk-menuitem.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-gtk/menuitem.h&gt;
+
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-image">dbusmenu_menuitem_property_set_image</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="GdkPixbuf"><type>GdkPixbuf</type></link> *data</parameter>);
+<link linkend="GdkPixbuf"><returnvalue>GdkPixbuf</returnvalue></link> * <link linkend="dbusmenu-menuitem-property-get-image">dbusmenu_menuitem_property_get_image</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-shortcut">dbusmenu_menuitem_property_set_shortcut</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> key</parameter>,
+ <parameter><link linkend="GdkModifierType"><type>GdkModifierType</type></link> modifier</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-shortcut-string">dbusmenu_menuitem_property_set_shortcut_string</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *shortcut</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="dbusmenu-menuitem-property-set-shortcut-menuitem">dbusmenu_menuitem_property_set_shortcut_menuitem</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> *gmi</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="dbusmenu-menuitem-property-get-shortcut">dbusmenu_menuitem_property_get_shortcut</link>
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> *key</parameter>,
+ <parameter><link linkend="GdkModifierType"><type>GdkModifierType</type></link> *modifier</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-gtk-menuitem.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+Some property helpers can't be done without picking up a GTK+
+ dependency. So those sit in libdbusmenu-gtk but have very similar
+ prototypes to the code in libdbusmenu-glib so your code will
+ look consistent, just with the extra depedency.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-gtk-menuitem.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="dbusmenu-menuitem-property-set-image" role="function">
+<title>dbusmenu_menuitem_property_set_image ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-image"><primary>dbusmenu_menuitem_property_set_image</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_image
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>,
+ <parameter>const <link linkend="GdkPixbuf"><type>GdkPixbuf</type></link> *data</parameter>);</programlisting>
+<para>
+This function takes the pixbuf that is stored in <parameter>data</parameter> and
+turns it into a base64 encoded PNG so that it can be placed
+onto a standard <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> property.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the property on.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>Name of the property to set.</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>data</parameter>&#160;:</term>
+<listitem><simpara>The image to place on the property.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether the function was able to set the property
+or not.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-image" role="function">
+<title>dbusmenu_menuitem_property_get_image ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-image"><primary>dbusmenu_menuitem_property_get_image</primary></indexterm>
+<programlisting><link linkend="GdkPixbuf"><returnvalue>GdkPixbuf</returnvalue></link> * dbusmenu_menuitem_property_get_image
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *property</parameter>);</programlisting>
+<para>
+This function looks on the menu item for a property by the
+name of <parameter>property</parameter>. If one exists it tries to turn it into
+a <link linkend="GdkPixbuf"><type>GdkPixbuf</type></link>. It assumes that the property is a base64 encoded
+PNG file like the one created by <link linkend="dbusmenu-menuite-property-set-image"><type>dbusmenu_menuite_property_set_image</type></link>.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to look for the property on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>property</parameter>&#160;:</term>
+<listitem><simpara>The name of the property to look for.</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A pixbuf or <link linkend="NULL:CAPS"><type>NULL</type></link> to signal error. <emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-shortcut" role="function">
+<title>dbusmenu_menuitem_property_set_shortcut ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-shortcut"><primary>dbusmenu_menuitem_property_set_shortcut</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_shortcut
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> key</parameter>,
+ <parameter><link linkend="GdkModifierType"><type>GdkModifierType</type></link> modifier</parameter>);</programlisting>
+<para>
+Takes the modifer described by <parameter>key</parameter> and <parameter>modifier</parameter> and places that into
+the format sending across Dbus for shortcuts.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the shortcut on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>key</parameter>&#160;:</term>
+<listitem><simpara>The keycode of the key to send</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>modifier</parameter>&#160;:</term>
+<listitem><simpara>A bitmask of modifiers used to activate the item</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether it was successful at setting the property.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-shortcut-string" role="function">
+<title>dbusmenu_menuitem_property_set_shortcut_string ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-shortcut-string"><primary>dbusmenu_menuitem_property_set_shortcut_string</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_shortcut_string
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="gchar"><type>gchar</type></link> *shortcut</parameter>);</programlisting>
+<para>
+This function takes a GTK shortcut string as defined in
+<link linkend="gtk-accelerator-parse"><type>gtk_accelerator_parse</type></link> and turns that into the information
+required to send it over DBusmenu.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the shortcut on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>shortcut</parameter>&#160;:</term>
+<listitem><simpara>String describing the shortcut</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether it was successful at setting the property.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-set-shortcut-menuitem" role="function">
+<title>dbusmenu_menuitem_property_set_shortcut_menuitem ()</title>
+<indexterm zone="dbusmenu-menuitem-property-set-shortcut-menuitem"><primary>dbusmenu_menuitem_property_set_shortcut_menuitem</primary></indexterm>
+<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> dbusmenu_menuitem_property_set_shortcut_menuitem
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter>const <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> *gmi</parameter>);</programlisting>
+<para>
+Takes the shortcut that is installed on a menu item and calls
+<link linkend="dbusmenu-menuitem-property-set-shortcut"><type>dbusmenu_menuitem_property_set_shortcut</type></link> with it. It also sets
+up listeners to watch it change.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to set the shortcut on</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>gmi</parameter>&#160;:</term>
+<listitem><simpara>A menu item to steal the shortcut off of</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>Whether it was successful at setting the property.</simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-menuitem-property-get-shortcut" role="function">
+<title>dbusmenu_menuitem_property_get_shortcut ()</title>
+<indexterm zone="dbusmenu-menuitem-property-get-shortcut"><primary>dbusmenu_menuitem_property_get_shortcut</primary></indexterm>
+<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> dbusmenu_menuitem_property_get_shortcut
+ (<parameter><link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> *menuitem</parameter>,
+ <parameter><link linkend="guint"><type>guint</type></link> *key</parameter>,
+ <parameter><link linkend="GdkModifierType"><type>GdkModifierType</type></link> *modifier</parameter>);</programlisting>
+<para>
+This function gets a GTK shortcut as a key and a mask
+for use to set the accelerators.
+</para><variablelist role="params">
+<varlistentry><term><parameter>menuitem</parameter>&#160;:</term>
+<listitem><simpara>The <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> to get the shortcut off</simpara></listitem></varlistentry>
+<varlistentry><term><parameter>key</parameter>&#160;:</term>
+<listitem><simpara>Location to put the key value. <emphasis role="annotation">[<acronym>out</acronym>]</emphasis></simpara></listitem></varlistentry>
+<varlistentry><term><parameter>modifier</parameter>&#160;:</term>
+<listitem><simpara>Location to put the modifier mask. <emphasis role="annotation">[<acronym>out</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/docs/libdbusmenu-gtk/reference/xml/parser.xml b/docs/libdbusmenu-gtk/reference/xml/parser.xml
new file mode 100644
index 0000000..329bf0a
--- /dev/null
+++ b/docs/libdbusmenu-gtk/reference/xml/parser.xml
@@ -0,0 +1,77 @@
+<?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-parser">
+<refmeta>
+<refentrytitle role="top_of_page" id="libdbusmenu-gtk-parser.top_of_page">parser</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+ LIBDBUSMENU-GTK Library
+</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>parser</refname>
+<refpurpose>A parser of in-memory GTK menu trees</refpurpose>
+</refnamediv>
+<refsect1 id="libdbusmenu-gtk-parser.stability-level">
+<title>Stability Level</title>
+Unstable, unless otherwise indicated
+</refsect1>
+
+<refsynopsisdiv id="libdbusmenu-gtk-parser.synopsis" role="synopsis">
+<title role="synopsis.title">Synopsis</title>
+
+<synopsis>
+#include &lt;libdbusmenu-gtk/parser.h&gt;
+
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-gtk-parse-menu-structure">dbusmenu_gtk_parse_menu_structure</link> (<parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *widget</parameter>);
+<link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * <link linkend="dbusmenu-gtk-parse-get-cached-item">dbusmenu_gtk_parse_get_cached_item</link> (<parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *widget</parameter>);
+</synopsis>
+</refsynopsisdiv>
+
+<refsect1 id="libdbusmenu-gtk-parser.description" role="desc">
+<title role="desc.title">Description</title>
+<para>
+The parser will take a GTK menu tree and attach it to a Dbusmenu menu
+ tree. Along with setting up all the signals for updates and destruction.
+ The returned item would be the root item of the given tree.
+</para>
+</refsect1>
+<refsect1 id="libdbusmenu-gtk-parser.details" role="details">
+<title role="details.title">Details</title>
+<refsect2 id="dbusmenu-gtk-parse-menu-structure" role="function">
+<title>dbusmenu_gtk_parse_menu_structure ()</title>
+<indexterm zone="dbusmenu-gtk-parse-menu-structure"><primary>dbusmenu_gtk_parse_menu_structure</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_gtk_parse_menu_structure (<parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *widget</parameter>);</programlisting>
+<para>
+Goes through the GTK structures and turns them into the appropraite
+Dbusmenu structures along with setting up all the relationships
+between the objects. It also stores the dbusmenu items as a cache
+on the GTK items so that they'll be reused if necissary.
+</para><variablelist role="params">
+<varlistentry><term><parameter>widget</parameter>&#160;:</term>
+<listitem><simpara>A <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> or <link linkend="GtkMenuShell"><type>GtkMenuShell</type></link> to turn into a <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link></simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A dbusmenu item representing the menu structure. <emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+<refsect2 id="dbusmenu-gtk-parse-get-cached-item" role="function">
+<title>dbusmenu_gtk_parse_get_cached_item ()</title>
+<indexterm zone="dbusmenu-gtk-parse-get-cached-item"><primary>dbusmenu_gtk_parse_get_cached_item</primary></indexterm>
+<programlisting><link linkend="DbusmenuMenuitem"><returnvalue>DbusmenuMenuitem</returnvalue></link> * dbusmenu_gtk_parse_get_cached_item (<parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *widget</parameter>);</programlisting>
+<para>
+The Dbusmenu GTK parser adds cached items on the various
+menu items throughout the tree. Sometimes it can be useful
+to get that cached item to use directly. This function
+will retrieve it for you.
+</para><variablelist role="params">
+<varlistentry><term><parameter>widget</parameter>&#160;:</term>
+<listitem><simpara>A <link linkend="GtkMenuItem"><type>GtkMenuItem</type></link> that may have a cached <link linkend="DbusmenuMenuitem"><type>DbusmenuMenuitem</type></link> from the parser</simpara></listitem></varlistentry>
+<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>A pointer to the cached item
+or NULL if it isn't there. <emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></simpara></listitem></varlistentry>
+</variablelist></refsect2>
+
+</refsect1>
+
+</refentry>
diff --git a/libdbusmenu-glib/Makefile.am b/libdbusmenu-glib/Makefile.am
index fa7c8cb..b2e796c 100644
--- a/libdbusmenu-glib/Makefile.am
+++ b/libdbusmenu-glib/Makefile.am
@@ -58,12 +58,14 @@ libdbusmenu_glib_la_SOURCES = \
client.c
libdbusmenu_glib_la_LDFLAGS = \
+ $(COVERAGE_LDFLAGS) \
-version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
-no-undefined \
-export-symbols-regex "^[^_].*"
libdbusmenu_glib_la_CFLAGS = \
$(DBUSMENUGLIB_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-Wall -Werror -Wno-error=deprecated-declarations \
-DG_LOG_DOMAIN="\"LIBDBUSMENU-GLIB\""
@@ -181,7 +183,12 @@ introspection_sources = \
Dbusmenu-0.4.gir: libdbusmenu-glib.la
Dbusmenu_0_4_gir_INCLUDES = \
GObject-2.0
-Dbusmenu_0_4_gir_CFLAGS = $(DBUSMENUGLIB_CFLAGS) -I$(top_srcdir)
+Dbusmenu_0_4_gir_CFLAGS = \
+ $(DBUSMENUGLIB_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
+ -I$(top_srcdir)
+Dbusmenu_0_4_gir_LDFLAGS = \
+ $(COVERAGE_LDFLAGS)
Dbusmenu_0_4_gir_LIBS = libdbusmenu-glib.la
Dbusmenu_0_4_gir_FILES = $(introspection_sources)
Dbusmenu_0_4_gir_NAMESPACE = Dbusmenu
diff --git a/libdbusmenu-glib/Makefile.in b/libdbusmenu-glib/Makefile.in
index 050b720..b86fd19 100644
--- a/libdbusmenu-glib/Makefile.in
+++ b/libdbusmenu-glib/Makefile.in
@@ -66,7 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -174,6 +174,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -184,6 +186,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -199,6 +203,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -234,6 +240,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -279,6 +286,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
@@ -396,12 +404,14 @@ libdbusmenu_glib_la_SOURCES = \
client.c
libdbusmenu_glib_la_LDFLAGS = \
+ $(COVERAGE_LDFLAGS) \
-version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
-no-undefined \
-export-symbols-regex "^[^_].*"
libdbusmenu_glib_la_CFLAGS = \
$(DBUSMENUGLIB_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-Wall -Werror -Wno-error=deprecated-declarations \
-DG_LOG_DOMAIN="\"LIBDBUSMENU-GLIB\""
@@ -447,7 +457,14 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_INCLUDES = \
@HAVE_INTROSPECTION_TRUE@ GObject-2.0
-@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_CFLAGS = $(DBUSMENUGLIB_CFLAGS) -I$(top_srcdir)
+@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_CFLAGS = \
+@HAVE_INTROSPECTION_TRUE@ $(DBUSMENUGLIB_CFLAGS) \
+@HAVE_INTROSPECTION_TRUE@ $(COVERAGE_CFLAGS) \
+@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)
+
+@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_LDFLAGS = \
+@HAVE_INTROSPECTION_TRUE@ $(COVERAGE_LDFLAGS)
+
@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_LIBS = libdbusmenu-glib.la
@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_FILES = $(introspection_sources)
@HAVE_INTROSPECTION_TRUE@Dbusmenu_0_4_gir_NAMESPACE = Dbusmenu
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 7d96db3..34f8b8d 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -52,7 +52,8 @@ enum {
PROP_DBUSOBJECT,
PROP_DBUSNAME,
PROP_STATUS,
- PROP_TEXT_DIRECTION
+ PROP_TEXT_DIRECTION,
+ PROP_GROUP_EVENTS
};
/* Signals */
@@ -66,6 +67,12 @@ enum {
LAST_SIGNAL
};
+/* Errors */
+enum {
+ ERROR_DISPOSAL,
+ ERROR_ID_NOT_FOUND
+};
+
typedef void (*properties_func) (GVariant * properties, GError * error, gpointer user_data);
static guint signals[LAST_SIGNAL] = { 0 };
@@ -100,6 +107,13 @@ struct _DbusmenuClientPrivate
DbusmenuTextDirection text_direction;
DbusmenuStatus status;
GStrv icon_dirs;
+
+ gboolean group_events;
+ guint event_idle;
+ GQueue * events_to_go; /* type: event_data_t * */
+
+ guint about_to_show_idle;
+ GQueue * about_to_show_to_go; /* type: about_to_show_t * */
};
typedef struct _newItemPropData newItemPropData;
@@ -120,6 +134,7 @@ struct _properties_listener_t {
typedef struct _event_data_t event_data_t;
struct _event_data_t {
+ gint id;
DbusmenuClient * client;
DbusmenuMenuitem * menuitem;
gchar * event;
@@ -171,6 +186,8 @@ static void menuproxy_prop_changed_cb (GDBusProxy * proxy, GVariant * properties
static void menuproxy_name_changed_cb (GObject * object, GParamSpec * pspec, gpointer user_data);
static void menuproxy_signal_cb (GDBusProxy * proxy, gchar * sender, gchar * signal, GVariant * params, gpointer user_data);
static void type_handler_destroy (gpointer user_data);
+static void event_data_end (event_data_t * eventd, GError * error);
+static void about_to_show_finish_pntr (gpointer data, gpointer user_data);
/* Globals */
static GDBusNodeInfo * dbusmenu_node_info = NULL;
@@ -309,6 +326,10 @@ dbusmenu_client_class_init (DbusmenuClientClass *klass)
"Signals which direction the default text direction is for the menus",
DBUSMENU_TYPE_TEXT_DIRECTION, DBUSMENU_TEXT_DIRECTION_NONE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class, PROP_GROUP_EVENTS,
+ g_param_spec_boolean(DBUSMENU_CLIENT_PROP_GROUP_EVENTS, "Whether or not multiple events should be grouped",
+ "Event grouping lowers the number of messages on DBus and will be set automatically based on the version to optimize traffic. It can be disabled for testing or other purposes.",
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
if (dbusmenu_node_info == NULL) {
GError * error = NULL;
@@ -380,6 +401,13 @@ dbusmenu_client_init (DbusmenuClient *self)
priv->status = DBUSMENU_STATUS_NORMAL;
priv->icon_dirs = NULL;
+ priv->group_events = FALSE;
+ priv->event_idle = 0;
+ priv->events_to_go = NULL;
+
+ priv->about_to_show_idle = 0;
+ priv->about_to_show_to_go = NULL;
+
return;
}
@@ -393,6 +421,32 @@ dbusmenu_client_dispose (GObject *object)
priv->delayed_idle = 0;
}
+ if (priv->event_idle != 0) {
+ g_source_remove(priv->event_idle);
+ priv->event_idle = 0;
+ }
+
+ if (priv->about_to_show_idle != 0) {
+ g_source_remove(priv->about_to_show_idle);
+ priv->about_to_show_idle = 0;
+ }
+
+ if (priv->events_to_go != NULL) {
+ g_warning("Getting to client dispose with events pending. This is odd. Probably there's a ref count problem somewhere, but we're going to be cool about it now and clean up. But there's probably a bug.");
+ GError * error = g_error_new_literal(error_domain(), ERROR_DISPOSAL, "Client disposed before event signal returned");
+ g_queue_foreach(priv->events_to_go, (GFunc)event_data_end, error);
+ g_queue_free(priv->events_to_go);
+ priv->events_to_go = NULL;
+ g_error_free(error);
+ }
+
+ if (priv->about_to_show_to_go != NULL) {
+ g_warning("Getting to client dispose with about_to_show's pending. This is odd. Probably there's a ref count problem somewhere, but we're going to be cool about it now and clean up. But there's probably a bug.");
+ g_queue_foreach(priv->about_to_show_to_go, about_to_show_finish_pntr, GINT_TO_POINTER(FALSE));
+ g_queue_free(priv->about_to_show_to_go);
+ priv->about_to_show_to_go = NULL;
+ }
+
/* Only used for queueing up a new command, so we can
just drop this array. */
if (priv->delayed_property_list != NULL) {
@@ -517,6 +571,9 @@ set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec)
build_proxies(DBUSMENU_CLIENT(obj));
}
break;
+ case PROP_GROUP_EVENTS:
+ priv->group_events = g_value_get_boolean(value);
+ break;
default:
g_warning("Unknown property %d.", id);
return;
@@ -543,6 +600,9 @@ get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec)
case PROP_TEXT_DIRECTION:
g_value_set_enum(value, priv->text_direction);
break;
+ case PROP_GROUP_EVENTS:
+ g_value_set_boolean(value, priv->group_events);
+ break;
default:
g_warning("Unknown property %d.", id);
return;
@@ -649,7 +709,7 @@ get_properties_callback (GObject *obj, GAsyncResult * res, gpointer user_data)
for (i = 0; i < listeners->len; i++) {
properties_listener_t * listener = &g_array_index(listeners, properties_listener_t, i);
if (!listener->replied) {
- g_warning("Generating properties error for: %d", listener->id);
+ g_debug("Generating properties error for: %d", listener->id);
if (localerror == NULL) {
g_set_error_literal(&localerror, error_domain(), 0, "Error getting properties for ID");
}
@@ -1086,6 +1146,7 @@ menuproxy_build_cb (GObject * object, GAsyncResult * res, gpointer user_data)
g_object_notify(G_OBJECT(user_data), DBUSMENU_CLIENT_PROP_TEXT_DIRECTION);
g_variant_unref(textdir);
+ textdir = NULL;
}
/* Check the status if available */
@@ -1101,6 +1162,7 @@ menuproxy_build_cb (GObject * object, GAsyncResult * res, gpointer user_data)
g_object_notify(G_OBJECT(user_data), DBUSMENU_CLIENT_PROP_STATUS);
g_variant_unref(status);
+ status = NULL;
}
/* Get the icon theme directories if available */
@@ -1115,6 +1177,33 @@ menuproxy_build_cb (GObject * object, GAsyncResult * res, gpointer user_data)
g_signal_emit(G_OBJECT(client), signals[ICON_THEME_DIRS], 0, priv->icon_dirs, TRUE);
g_variant_unref(icon_dirs);
+ icon_dirs = NULL;
+ }
+
+ /* Get the dbusmenu protocol version if available */
+ GVariant * version = g_dbus_proxy_get_cached_property(priv->menuproxy, "Version");
+ if (version != NULL) {
+ guint32 remote_version = 0;
+
+ if (g_variant_is_of_type(version, G_VARIANT_TYPE_UINT32)) {
+ remote_version = g_variant_get_uint32(version);
+ }
+
+ gboolean old_group = priv->group_events;
+ /* Figure out if we can group the events or not */
+ if (remote_version >= 3) {
+ priv->group_events = TRUE;
+ } else {
+ priv->group_events = FALSE;
+ }
+
+ /* Notify listeners if we changed the value */
+ if (old_group != priv->group_events) {
+ g_object_notify(G_OBJECT(client), DBUSMENU_CLIENT_PROP_GROUP_EVENTS);
+ }
+
+ g_variant_unref(version);
+ version = NULL;
}
/* If we get here, we don't need the DBus proxy */
@@ -1196,6 +1285,19 @@ menuproxy_prop_changed_cb (GDBusProxy * proxy, GVariant * properties, GStrv inva
priv->icon_dirs = g_variant_dup_strv(value, NULL);
dirs_changed = TRUE;
}
+ if (g_strcmp0(key, "Version") == 0) {
+ guint32 remote_version = 0;
+
+ if (g_variant_is_of_type(value, G_VARIANT_TYPE_UINT32)) {
+ remote_version = g_variant_get_uint32(value);
+ }
+
+ if (remote_version >= 3) {
+ priv->group_events = TRUE;
+ } else {
+ priv->group_events = FALSE;
+ }
+ }
}
if (olddir != priv->text_direction) {
@@ -1441,7 +1543,7 @@ menuitem_get_properties_new_cb (GVariant * properties, GError * error, gpointer
newItemPropData * propdata = (newItemPropData *)data;
if (error != NULL) {
- g_warning("Error getting properties on a new menuitem: %s", error->message);
+ g_debug("Error getting properties on a new menuitem: %s", error->message);
goto out;
}
@@ -1488,6 +1590,22 @@ out:
return;
}
+/* A function to work with an event_data_t and make sure it gets
+ free'd and in a terminal state. */
+static void
+event_data_end (event_data_t * edata, GError * error)
+{
+ g_signal_emit(edata->client, signals[EVENT_RESULT], 0, edata->menuitem, edata->event, edata->variant, edata->timestamp, error, TRUE);
+
+ g_variant_unref(edata->variant);
+ g_free(edata->event);
+ g_object_unref(edata->menuitem);
+ g_object_unref(edata->client);
+ g_free(edata);
+
+ return;
+}
+
/* Respond to the call function to make sure that the other side
got it, or print a warning. */
static void
@@ -1503,13 +1621,7 @@ menuitem_call_cb (GObject * proxy, GAsyncResult * res, gpointer userdata)
g_warning("Unable to call event '%s' on menu item %d: %s", edata->event, dbusmenu_menuitem_get_id(edata->menuitem), error->message);
}
- g_signal_emit(edata->client, signals[EVENT_RESULT], 0, edata->menuitem, edata->event, edata->variant, edata->timestamp, error, TRUE);
-
- g_variant_unref(edata->variant);
- g_free(edata->event);
- g_object_unref(edata->menuitem);
- g_object_unref(edata->client);
- g_free(edata);
+ event_data_end(edata, error);
if (G_UNLIKELY(error != NULL)) {
g_error_free(error);
@@ -1521,6 +1633,128 @@ menuitem_call_cb (GObject * proxy, GAsyncResult * res, gpointer userdata)
return;
}
+/* Looks at event_data_t structs to match an ID */
+gint
+event_data_find (gconstpointer data, gconstpointer user_data)
+{
+ event_data_t * edata = (event_data_t *)data;
+ gint id = GPOINTER_TO_INT(user_data);
+
+ if (edata->id == id) {
+ return 0;
+ } else {
+ return -1;
+ }
+}
+
+/* The callback from the dbus message to pass events to the
+ to the server en masse */
+static void
+event_group_cb (GObject * proxy, GAsyncResult * res, gpointer user_data)
+{
+ GQueue * events = (GQueue *)user_data;
+
+ GError * error = NULL;
+ GVariant * params;
+ params = g_dbus_proxy_call_finish(G_DBUS_PROXY(proxy), res, &error);
+
+ if (error != NULL) {
+ /* If we got an actual DBus error, we should just pass that
+ along and finish up */
+ g_queue_foreach(events, (GFunc)event_data_end, error);
+ g_queue_free(events);
+ events = NULL;
+ return;
+ }
+
+ gint id = 0;
+ GVariant * array = g_variant_get_child_value(params, 0);
+ GVariantIter iter;
+ g_variant_iter_init(&iter, array);
+
+ while (g_variant_iter_loop(&iter, "i", &id)) {
+ GList * item = g_queue_find_custom(events, GINT_TO_POINTER(id), event_data_find);
+
+ if (item != NULL) {
+ GError * iderror = g_error_new(error_domain(), ERROR_ID_NOT_FOUND, "Unable to find ID: %d", id);
+ event_data_end((event_data_t *)item->data, iderror);
+ g_queue_delete_link(events, item);
+ g_error_free(iderror);
+ }
+ }
+
+ g_variant_unref(array);
+ g_variant_unref(params);
+
+ /* If we have any left send non-error responses */
+ g_queue_foreach(events, (GFunc)event_data_end, NULL);
+ g_queue_free(events);
+ return;
+}
+
+/* Turn an event structure into the variant builder form */
+static void
+events_to_builder (gpointer data, gpointer user_data)
+{
+ event_data_t * edata = (event_data_t *)data;
+ GVariantBuilder * builder = (GVariantBuilder *)user_data;
+
+ GVariantBuilder tuple;
+ g_variant_builder_init(&tuple, G_VARIANT_TYPE_TUPLE);
+
+ g_variant_builder_add_value(&tuple, g_variant_new_int32(edata->id));
+ g_variant_builder_add_value(&tuple, g_variant_new_string(edata->event));
+ g_variant_builder_add_value(&tuple, g_variant_new_variant(edata->variant));
+ g_variant_builder_add_value(&tuple, g_variant_new_uint32(edata->timestamp));
+
+ GVariant * vtuple = g_variant_builder_end(&tuple);
+ g_variant_builder_add_value(builder, vtuple);
+ return;
+}
+
+/* Group all the events into a single Dbus message and send
+ that out */
+static gboolean
+event_idle_cb (gpointer user_data)
+{
+ g_return_val_if_fail(DBUSMENU_IS_CLIENT(user_data), FALSE);
+ DbusmenuClient * client = DBUSMENU_CLIENT(user_data);
+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(user_data);
+
+ /* We use prepend for speed, but now we want to have them
+ in the order they were called incase that matters. */
+ GQueue * levents = priv->events_to_go;
+ priv->events_to_go = NULL;
+ priv->event_idle = 0;
+
+ GVariantBuilder array;
+ g_variant_builder_init(&array, G_VARIANT_TYPE("a(isvu)"));
+ g_queue_foreach(levents, events_to_builder, &array);
+ GVariant * vevents = g_variant_builder_end(&array);
+
+ if (g_signal_has_handler_pending (client, signals[EVENT_RESULT], 0, TRUE)) {
+ g_dbus_proxy_call(priv->menuproxy,
+ "EventGroup",
+ g_variant_new_tuple(&vevents, 1),
+ G_DBUS_CALL_FLAGS_NONE,
+ 1000, /* timeout */
+ NULL, /* cancellable */
+ event_group_cb, levents);
+ } else {
+ g_dbus_proxy_call(priv->menuproxy,
+ "EventGroup",
+ g_variant_new_tuple(&vevents, 1),
+ G_DBUS_CALL_FLAGS_NONE,
+ 1000, /* timeout */
+ NULL, /* cancellable */
+ NULL, NULL);
+ g_queue_foreach(levents, (GFunc)event_data_end, NULL);
+ g_queue_free(levents);
+ }
+
+ return FALSE;
+}
+
/* Sends the event over DBus to the server on the other side
of the bus. */
void
@@ -1541,7 +1775,7 @@ dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name
}
/* Don't bother with the reply handling if nobody is watching... */
- if (!g_signal_has_handler_pending (client, signals[EVENT_RESULT], 0, TRUE)) {
+ if (!priv->group_events && !g_signal_has_handler_pending (client, signals[EVENT_RESULT], 0, TRUE)) {
g_dbus_proxy_call(priv->menuproxy,
"Event",
g_variant_new("(isvu)", id, name, variant, timestamp),
@@ -1553,6 +1787,7 @@ dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name
}
event_data_t * edata = g_new0(event_data_t, 1);
+ edata->id = id;
edata->client = client;
g_object_ref(client);
edata->menuitem = mi;
@@ -1562,25 +1797,181 @@ dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name
edata->variant = variant;
g_variant_ref_sink(variant);
- g_dbus_proxy_call(priv->menuproxy,
- "Event",
- g_variant_new("(isvu)", id, name, variant, timestamp),
- G_DBUS_CALL_FLAGS_NONE,
- 1000, /* timeout */
- NULL, /* cancellable */
- menuitem_call_cb,
- edata);
+ if (!priv->group_events) {
+ g_dbus_proxy_call(priv->menuproxy,
+ "Event",
+ g_variant_new("(isvu)", id, name, variant, timestamp),
+ G_DBUS_CALL_FLAGS_NONE,
+ 1000, /* timeout */
+ NULL, /* cancellable */
+ menuitem_call_cb,
+ edata);
+ } else {
+ if (priv->events_to_go == NULL) {
+ priv->events_to_go = g_queue_new();
+ }
+
+ g_queue_push_tail(priv->events_to_go, edata);
+
+ if (priv->event_idle == 0) {
+ priv->event_idle = g_idle_add(event_idle_cb, client);
+ }
+ }
return;
}
typedef struct _about_to_show_t about_to_show_t;
struct _about_to_show_t {
+ gint id;
DbusmenuClient * client;
void (*cb) (gpointer data);
gpointer cb_data;
};
+/* Takes an about_to_show_t structure and calls the callback correctly
+ and updates the layout if needed. */
+static void
+about_to_show_finish (about_to_show_t * data, gboolean need_update)
+{
+ /* If we need to update, do that first. */
+ if (need_update) {
+ update_layout(data->client);
+ }
+
+ if (data->cb != NULL) {
+ data->cb(data->cb_data);
+ }
+
+ g_object_unref(data->client);
+ g_free(data);
+
+ return;
+}
+
+/* A little function to match prototypes and make sure to convert from
+ a pointer to an int correctly */
+static void
+about_to_show_finish_pntr (gpointer data, gpointer user_data)
+{
+ return about_to_show_finish((about_to_show_t *)data, GPOINTER_TO_INT(user_data));
+}
+
+/* Respond to the DBus message from sending a bunch of about-to-show events
+ to the server */
+static void
+about_to_show_group_cb (GObject * proxy, GAsyncResult * res, gpointer userdata)
+{
+ GError * error = NULL;
+ GQueue * showers = (GQueue *)userdata;
+ GVariant * params = NULL;
+
+ params = g_dbus_proxy_call_finish(G_DBUS_PROXY(proxy), res, &error);
+
+ if (error != NULL) {
+ g_warning("Unable to send about_to_show_group: %s", error->message);
+ /* Note: we're just ensuring only the callback gets called */
+ g_error_free(error);
+ error = NULL;
+ } else {
+ GVariant * updates = g_variant_get_child_value(params, 0);
+ GVariantIter iter;
+
+ /* Okay, so this is kinda interesting. We actually don't care which
+ entries asked us to update the structure, as it's quite simply a
+ single structure. So if we have any ask, we get the update once to
+ avoid itterating through all the structures. */
+ if (g_variant_iter_init(&iter, updates) > 0) {
+ about_to_show_t * first = (about_to_show_t *)g_queue_peek_head(showers);
+ update_layout(first->client);
+ }
+
+ g_variant_unref(updates);
+ g_variant_unref(params);
+ params = NULL;
+ }
+
+ g_queue_foreach(showers, about_to_show_finish_pntr, GINT_TO_POINTER(FALSE));
+ g_queue_free(showers);
+
+ return;
+}
+
+/* Check to see if this about to show entry has a callback associated
+ with it */
+static void
+about_to_show_idle_callbacks (gpointer data, gpointer user_data)
+{
+ about_to_show_t * abts = (about_to_show_t *)data;
+ gboolean * got_callbacks = (gboolean *)user_data;
+
+ if (abts->cb != NULL) {
+ *got_callbacks = TRUE;
+ }
+
+ return;
+}
+
+/* Take the ID out of the about to show structure and put it into the
+ variant builder */
+static void
+about_to_show_idle_ids (gpointer data, gpointer user_data)
+{
+ about_to_show_t * abts = (about_to_show_t *)data;
+ GVariantBuilder * builder = (GVariantBuilder *)user_data;
+
+ g_variant_builder_add_value(builder, g_variant_new_int32(abts->id));
+
+ return;
+}
+
+/* Function that gets called with all the queued about_to_show messages, let's
+ get these guys on the bus! */
+static gboolean
+about_to_show_idle (gpointer user_data)
+{
+ DbusmenuClient * client = DBUSMENU_CLIENT(user_data);
+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
+
+ /* Reset our object global props and take ownership of these entries */
+ priv->about_to_show_idle = 0;
+ GQueue * showers = priv->about_to_show_to_go;
+ priv->about_to_show_to_go = NULL;
+
+ /* Figure out if we've got any callbacks */
+ gboolean got_callbacks = FALSE;
+ g_queue_foreach(showers, about_to_show_idle_callbacks, &got_callbacks);
+
+ /* Build a list of the IDs */
+ GVariantBuilder idarray;
+ g_variant_builder_init(&idarray, G_VARIANT_TYPE("ai"));
+ g_queue_foreach(showers, about_to_show_idle_ids, &idarray);
+ GVariant * ids = g_variant_builder_end(&idarray);
+
+ /* Setup our callbacks */
+ GAsyncReadyCallback cb = NULL;
+ gpointer cb_data = NULL;
+ if (got_callbacks) {
+ cb = about_to_show_group_cb;
+ cb_data = showers;
+ } else {
+ g_queue_foreach(showers, about_to_show_finish_pntr, GINT_TO_POINTER(FALSE));
+ g_queue_free(showers);
+ }
+
+ /* Let's call it! */
+ g_dbus_proxy_call(priv->menuproxy,
+ "AboutToShowGroup",
+ g_variant_new_tuple(&ids, 1),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ cb,
+ cb_data);
+
+ return FALSE;
+}
+
/* Reports errors and responds to update request that were a result
of sending the about to show signal. */
static void
@@ -1604,18 +1995,7 @@ about_to_show_cb (GObject * proxy, GAsyncResult * res, gpointer userdata)
g_variant_unref(params);
}
- /* If we need to update, do that first. */
- if (need_update) {
- update_layout(data->client);
- }
-
- if (data->cb != NULL) {
- data->cb(data->cb_data);
- }
-
- g_object_unref(data->client);
- g_free(data);
-
+ about_to_show_finish(data, need_update);
return;
}
@@ -1631,19 +2011,40 @@ dbusmenu_client_send_about_to_show(DbusmenuClient * client, gint id, void (*cb)(
g_return_if_fail(priv != NULL);
about_to_show_t * data = g_new0(about_to_show_t, 1);
+ data->id = id;
data->client = client;
data->cb = cb;
data->cb_data = cb_data;
g_object_ref(client);
- g_dbus_proxy_call(priv->menuproxy,
- "AboutToShow",
- g_variant_new("(i)", id),
- G_DBUS_CALL_FLAGS_NONE,
- -1, /* timeout */
- NULL, /* cancellable */
- about_to_show_cb,
- data);
+ if (priv->group_events) {
+ if (priv->about_to_show_to_go == NULL) {
+ priv->about_to_show_to_go = g_queue_new();
+ }
+
+ g_queue_push_tail(priv->about_to_show_to_go, data);
+
+ if (priv->about_to_show_idle == 0) {
+ priv->about_to_show_idle = g_idle_add(about_to_show_idle, client);
+ }
+ } else {
+ /* If there's no callback we don't need this data, let's
+ clean it up in a consistent way */
+ if (cb == NULL) {
+ about_to_show_finish(data, FALSE);
+ data = NULL;
+ }
+
+ g_dbus_proxy_call(priv->menuproxy,
+ "AboutToShow",
+ g_variant_new("(i)", id),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ about_to_show_cb,
+ data);
+ }
+
return;
}
diff --git a/libdbusmenu-glib/client.h b/libdbusmenu-glib/client.h
index d0fca32..ae22863 100644
--- a/libdbusmenu-glib/client.h
+++ b/libdbusmenu-glib/client.h
@@ -105,6 +105,12 @@ G_BEGIN_DECLS
* String to access property #DbusmenuClient:text-direction
*/
#define DBUSMENU_CLIENT_PROP_TEXT_DIRECTION "text-direction"
+/**
+ * DBUSMENU_CLIENT_PROP_GROUP_EVENTS:
+ *
+ * String to access property #DbusmenuClient:group-events
+ */
+#define DBUSMENU_CLIENT_PROP_GROUP_EVENTS "group-events"
/**
* DBUSMENU_CLIENT_TYPES_DEFAULT:
diff --git a/libdbusmenu-glib/dbus-menu-clean.xml b/libdbusmenu-glib/dbus-menu-clean.xml
index 1550c5b..aa009b3 100644
--- a/libdbusmenu-glib/dbus-menu-clean.xml
+++ b/libdbusmenu-glib/dbus-menu-clean.xml
@@ -84,6 +84,16 @@
</arg>
</method>
+ <method name="EventGroup">
+
+ <arg type="a(isvu)" name="events" direction="in">
+
+ </arg>
+ <arg type="ai" name="idErrors" direction="out">
+
+ </arg>
+ </method>
+
<method name="AboutToShow">
<arg type="i" name="id" direction="in">
@@ -94,6 +104,19 @@
</arg>
</method>
+ <method name="AboutToShowGroup">
+
+ <arg type="ai" name="ids" direction="in">
+
+ </arg>
+ <arg type="ai" name="updatesNeeded" direction="out">
+
+ </arg>
+ <arg type="ai" name="idErrors" direction="out">
+
+ </arg>
+ </method>
+
<signal name="ItemsPropertiesUpdated">
diff --git a/libdbusmenu-glib/dbus-menu-clean.xml.c b/libdbusmenu-glib/dbus-menu-clean.xml.c
index 890f24c..39c1d69 100644
--- a/libdbusmenu-glib/dbus-menu-clean.xml.c
+++ b/libdbusmenu-glib/dbus-menu-clean.xml.c
@@ -85,6 +85,16 @@ const char * dbus_menu_clean_xml =
" </arg>\n"
" </method>\n"
"\n"
+" <method name=\"EventGroup\">\n"
+" \n"
+" <arg type=\"a(isvu)\" name=\"events\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"ai\" name=\"idErrors\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
" <method name=\"AboutToShow\">\n"
" \n"
" <arg type=\"i\" name=\"id\" direction=\"in\">\n"
@@ -95,6 +105,19 @@ const char * dbus_menu_clean_xml =
" </arg>\n"
" </method>\n"
"\n"
+" <method name=\"AboutToShowGroup\">\n"
+" \n"
+" <arg type=\"ai\" name=\"ids\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"ai\" name=\"updatesNeeded\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"ai\" name=\"idErrors\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
"\n"
" <signal name=\"ItemsPropertiesUpdated\">\n"
" \n"
diff --git a/libdbusmenu-glib/dbus-menu.xml b/libdbusmenu-glib/dbus-menu.xml
index 4b5a5d8..de6868c 100644
--- a/libdbusmenu-glib/dbus-menu.xml
+++ b/libdbusmenu-glib/dbus-menu.xml
@@ -326,6 +326,26 @@ License version 3 and version 2.1 along with this program. If not, see
</arg>
</method>
+ <method name="EventGroup">
+ <dox:d>
+ Used to pass a set of events as a single message for possibily several
+ different menuitems. This is done to optimize DBus traffic.
+ </dox:d>
+ <arg type="a(isvu)" name="events" direction="in">
+ <dox:d>
+ An array of all the events that should be passed. This tuple should
+ match the parameters of the 'Event' signal. Which is roughly:
+ id, eventID, data and timestamp.
+ </dox:d>
+ </arg>
+ <arg type="ai" name="idErrors" direction="out">
+ <dox:d>
+ I list of menuitem IDs that couldn't be found. If none of the ones
+ in the list can be found, a DBus error is returned.
+ </dox:d>
+ </arg>
+ </method>
+
<method name="AboutToShow">
<dox:d>
This is called by the applet to notify the application that it is about
@@ -343,6 +363,32 @@ License version 3 and version 2.1 along with this program. If not, see
</arg>
</method>
+ <method name="AboutToShowGroup">
+ <dox:d>
+ A function to tell several menus being shown that they are about to
+ be shown to the user. This is likely only useful for programitc purposes
+ so while the return values are returned, in general, the singular function
+ should be used in most user interacation scenarios.
+ </dox:d>
+ <arg type="ai" name="ids" direction="in">
+ <dox:d>
+ The IDs of the menu items who's submenus are being shown.
+ </dox:d>
+ </arg>
+ <arg type="ai" name="updatesNeeded" direction="out">
+ <dox:d>
+ The IDs of the menus that need updates. Note: if no update information
+ is needed the DBus message should set the no reply flag.
+ </dox:d>
+ </arg>
+ <arg type="ai" name="idErrors" direction="out">
+ <dox:d>
+ I list of menuitem IDs that couldn't be found. If none of the ones
+ in the list can be found, a DBus error is returned.
+ </dox:d>
+ </arg>
+ </method>
+
<!-- Signals -->
<signal name="ItemsPropertiesUpdated">
<dox:d>
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c
index 1b4ce95..091b243 100644
--- a/libdbusmenu-glib/server.c
+++ b/libdbusmenu-glib/server.c
@@ -42,7 +42,7 @@ License version 3 and version 2.1 along with this program. If not, see
static void layout_update_signal (DbusmenuServer * server);
-#define DBUSMENU_VERSION_NUMBER 2
+#define DBUSMENU_VERSION_NUMBER 3
#define DBUSMENU_INTERFACE "com.canonical.dbusmenu"
/* Privates, I'll show you mine... */
@@ -118,7 +118,9 @@ enum {
METHOD_GET_PROPERTY,
METHOD_GET_PROPERTIES,
METHOD_EVENT,
+ METHOD_EVENT_GROUP,
METHOD_ABOUT_TO_SHOW,
+ METHOD_ABOUT_TO_SHOW_GROUP,
/* Counter, do not remove! */
METHOD_COUNT
};
@@ -191,9 +193,15 @@ static void bus_get_properties (DbusmenuServer * server,
static void bus_event (DbusmenuServer * server,
GVariant * params,
GDBusMethodInvocation * invocation);
+static void bus_event_group (DbusmenuServer * server,
+ GVariant * params,
+ GDBusMethodInvocation * invocation);
static void bus_about_to_show (DbusmenuServer * server,
GVariant * params,
GDBusMethodInvocation * invocation);
+static void bus_about_to_show_group (DbusmenuServer * server,
+ GVariant * params,
+ GDBusMethodInvocation * invocation);
static void find_servers_cb (GDBusConnection * connection,
const gchar * sender,
const gchar * path,
@@ -358,9 +366,15 @@ dbusmenu_server_class_init (DbusmenuServerClass *class)
dbusmenu_method_table[METHOD_EVENT].interned_name = g_intern_static_string("Event");
dbusmenu_method_table[METHOD_EVENT].func = bus_event;
+ dbusmenu_method_table[METHOD_EVENT_GROUP].interned_name = g_intern_static_string("EventGroup");
+ dbusmenu_method_table[METHOD_EVENT_GROUP].func = bus_event_group;
+
dbusmenu_method_table[METHOD_ABOUT_TO_SHOW].interned_name = g_intern_static_string("AboutToShow");
dbusmenu_method_table[METHOD_ABOUT_TO_SHOW].func = bus_about_to_show;
+ dbusmenu_method_table[METHOD_ABOUT_TO_SHOW_GROUP].interned_name = g_intern_static_string("AboutToShowGroup");
+ dbusmenu_method_table[METHOD_ABOUT_TO_SHOW_GROUP].func = bus_about_to_show_group;
+
return;
}
@@ -1633,6 +1647,28 @@ event_local_handler (gpointer user_data)
return FALSE;
}
+/* The core menu finding and doing the work part of the two
+ event functions */
+static gboolean
+bus_event_core (DbusmenuServer * server, gint32 id, gchar * event_type, GVariant * data, guint32 timestamp)
+{
+ DbusmenuMenuitem * mi = lookup_menuitem_by_id(server, id);
+
+ if (mi == NULL) {
+ return FALSE;
+ }
+
+ idle_event_t * event_data = g_new0(idle_event_t, 1);
+ event_data->mi = g_object_ref(mi);
+ event_data->eventid = g_strdup(event_type);
+ event_data->timestamp = timestamp;
+ event_data->variant = g_variant_ref(data);
+
+ g_timeout_add(0, event_local_handler, event_data);
+
+ return TRUE;
+}
+
/* Handles the events coming off of DBus */
static void
bus_event (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * invocation)
@@ -1654,34 +1690,94 @@ bus_event (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * i
g_variant_get(params, "(isvu)", &id, &etype, &data, &ts);
- DbusmenuMenuitem * mi = lookup_menuitem_by_id(server, id);
-
- if (mi == NULL) {
+ if (!bus_event_core(server, id, etype, data, ts)) {
g_dbus_method_invocation_return_error(invocation,
error_quark(),
INVALID_MENUITEM_ID,
"The ID supplied %d does not refer to a menu item we have",
id);
- g_free(etype);
- g_variant_unref(data);
-
} else {
- idle_event_t * event_data = g_new0(idle_event_t, 1);
- event_data->mi = g_object_ref(mi);
- event_data->eventid = etype; /* give away our allocation */
- event_data->timestamp = ts;
- event_data->variant = data; /* give away our reference */
+ if (~g_dbus_message_get_flags (g_dbus_method_invocation_get_message (invocation)) & G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED) {
+ g_dbus_method_invocation_return_value(invocation, NULL);
+ }
+ }
- g_timeout_add(0, event_local_handler, event_data);
+ g_free(etype);
+ g_variant_unref(data);
+
+ return;
+}
+
+/* Respond to the event group method that will send events to a
+ variety of menuitems */
+static void
+bus_event_group (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * invocation)
+{
+ DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
+
+ if (priv->root == NULL) {
+ g_dbus_method_invocation_return_error(invocation,
+ error_quark(),
+ NO_VALID_LAYOUT,
+ "There currently isn't a layout in this server");
+ return;
+ }
+
+ GVariant * events = g_variant_get_child_value(params, 0);
+ gint32 id;
+ gchar *etype;
+ GVariant *data;
+ guint32 ts;
+ GVariantIter iter;
+ GVariantBuilder builder;
+
+ g_variant_iter_init(&iter, events);
+ g_variant_builder_init(&builder, G_VARIANT_TYPE("ai"));
+ gboolean gotone = FALSE;
+
+ while (g_variant_iter_loop(&iter, "(isvu)", &id, &etype, &data, &ts)) {
+ if (bus_event_core(server, id, etype, data, ts)) {
+ gotone = TRUE;
+ } else {
+ g_variant_builder_add_value(&builder, g_variant_new_int32(id));
+ }
+ }
+ GVariant * errors = g_variant_builder_end(&builder);
+ g_variant_ref_sink(errors);
+
+ if (gotone) {
if (~g_dbus_message_get_flags (g_dbus_method_invocation_get_message (invocation)) & G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED) {
- g_dbus_method_invocation_return_value(invocation, NULL);
+ g_dbus_method_invocation_return_value(invocation, g_variant_new_tuple(&errors, 1));
}
+ } else {
+ gchar * ids = g_variant_print(errors, FALSE);
+ g_dbus_method_invocation_return_error(invocation,
+ error_quark(),
+ INVALID_MENUITEM_ID,
+ "The IDs supplied '%s' do not refer to any menu items we have",
+ ids);
+ g_free(ids);
}
+ g_variant_unref(errors);
+ g_variant_unref(events);
+
return;
}
+/* Does the about-to-show in an idle loop so we don't block things */
+/* NOTE: this only works so easily as we don't return the value, if we
+ were to do that it would get more complex. */
+static gboolean
+bus_about_to_show_idle (gpointer user_data)
+{
+ DbusmenuMenuitem * mi = DBUSMENU_MENUITEM(user_data);
+ dbusmenu_menuitem_send_about_to_show(mi, NULL, NULL);
+ g_object_unref(mi);
+ return FALSE;
+}
+
/* Recieve the About To Show function. Pass it to our menu item. */
static void
bus_about_to_show (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * invocation)
@@ -1709,7 +1805,7 @@ bus_about_to_show (DbusmenuServer * server, GVariant * params, GDBusMethodInvoca
return;
}
- dbusmenu_menuitem_send_about_to_show(mi, NULL, NULL);
+ g_timeout_add(0, bus_about_to_show_idle, g_object_ref(mi));
/* GTK+ does not support about-to-show concept for now */
g_dbus_method_invocation_return_value(invocation,
@@ -1717,6 +1813,69 @@ bus_about_to_show (DbusmenuServer * server, GVariant * params, GDBusMethodInvoca
return;
}
+/* Handle the about to show on a set of menus and tell all of them that
+ we love them */
+static void
+bus_about_to_show_group (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * invocation)
+{
+ DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
+
+ if (priv->root == NULL) {
+ g_dbus_method_invocation_return_error(invocation,
+ error_quark(),
+ NO_VALID_LAYOUT,
+ "There currently isn't a layout in this server");
+ return;
+ }
+
+ gint32 id;
+ GVariantIter iter;
+ GVariantBuilder builder;
+
+ g_variant_iter_init(&iter, params);
+ g_variant_builder_init(&builder, G_VARIANT_TYPE("ai"));
+ gboolean gotone = FALSE;
+
+ while (g_variant_iter_loop(&iter, "(i)", &id)) {
+ DbusmenuMenuitem * mi = lookup_menuitem_by_id(server, id);
+ if (mi != NULL) {
+ g_timeout_add(0, bus_about_to_show_idle, g_object_ref(mi));
+ gotone = TRUE;
+ } else {
+ g_variant_builder_add_value(&builder, g_variant_new_int32(id));
+ }
+ }
+
+ GVariant * errors = g_variant_builder_end(&builder);
+ g_variant_ref_sink(errors);
+
+ if (gotone) {
+ if (~g_dbus_message_get_flags (g_dbus_method_invocation_get_message (invocation)) & G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED) {
+ GVariantBuilder tuple;
+ g_variant_builder_init(&tuple, G_VARIANT_TYPE_TUPLE);
+
+ /* Updates needed */
+ g_variant_builder_add_value(&tuple, g_variant_new_array(G_VARIANT_TYPE_INT32, NULL, 0));
+ /* Errors */
+ g_variant_builder_add_value(&tuple, errors);
+
+ g_dbus_method_invocation_return_value(invocation, g_variant_builder_end(&tuple));
+ }
+ } else {
+ gchar * ids = g_variant_print(errors, FALSE);
+ g_dbus_method_invocation_return_error(invocation,
+ error_quark(),
+ INVALID_MENUITEM_ID,
+ "The IDs supplied '%s' do not refer to any menu items we have",
+ ids);
+ g_free(ids);
+ }
+
+ g_variant_unref(errors);
+
+ return;
+}
+
/* Public Interface */
/**
dbusmenu_server_new:
diff --git a/libdbusmenu-gtk/Makefile.am b/libdbusmenu-gtk/Makefile.am
index fcebd04..b52098f 100644
--- a/libdbusmenu-gtk/Makefile.am
+++ b/libdbusmenu-gtk/Makefile.am
@@ -57,12 +57,14 @@ libdbusmenu_gtk_la_SOURCES = \
parser.c
libdbusmenu_gtk_la_LDFLAGS = \
+ $(COVERAGE_LDFLAGS) \
-version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
-no-undefined \
-export-symbols-regex "^[^_].*"
libdbusmenu_gtk_la_CFLAGS = \
$(DBUSMENUGTK_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-I$(top_srcdir) \
-Wall -Werror -Wno-error=deprecated-declarations \
-DG_LOG_DOMAIN="\"LIBDBUSMENU-GTK\""
@@ -117,7 +119,12 @@ DbusmenuGtk_0_4_gir_INCLUDES = \
GObject-2.0 \
$(GTKGIR) \
Dbusmenu-0.4
-DbusmenuGtk_0_4_gir_CFLAGS = $(DBUSMENUGTK_CFLAGS) -I$(top_srcdir)
+DbusmenuGtk_0_4_gir_CFLAGS = \
+ $(DBUSMENUGTK_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
+ -I$(top_srcdir)
+DbusmenuGtk_0_4_gir_LDFLAGS = \
+ $(COVERAGE_LDFLAGS)
DbusmenuGtk_0_4_gir_LIBS = libdbusmenu-gtk$(VER).la \
$(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la
DbusmenuGtk_0_4_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources))
@@ -127,6 +134,7 @@ DbusmenuGtk_0_4_gir_EXPORT_PACKAGES = dbusmenu-gtk$(VER)-0.4
# We duplicate these for the same reason as libdbusmenu_gtk3includedir above
DbusmenuGtk3_0_4_gir_INCLUDES = $(DbusmenuGtk_0_4_gir_INCLUDES)
DbusmenuGtk3_0_4_gir_CFLAGS = $(DbusmenuGtk_0_4_gir_CFLAGS)
+DbusmenuGtk3_0_4_gir_LDFLAGS = $(DbusmenuGtk_0_4_gir_LDFLAGS)
DbusmenuGtk3_0_4_gir_LIBS = $(DbusmenuGtk_0_4_gir_LIBS)
DbusmenuGtk3_0_4_gir_FILES = $(DbusmenuGtk_0_4_gir_FILES)
DbusmenuGtk3_0_4_gir_NAMESPACE = $(DbusmenuGtk_0_4_gir_NAMESPACE)
diff --git a/libdbusmenu-gtk/Makefile.in b/libdbusmenu-gtk/Makefile.in
index 5041590..19481eb 100644
--- a/libdbusmenu-gtk/Makefile.in
+++ b/libdbusmenu-gtk/Makefile.in
@@ -68,7 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -191,6 +191,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -201,6 +203,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -216,6 +220,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -251,6 +257,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -296,6 +303,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
@@ -405,12 +413,14 @@ libdbusmenu_gtk_la_SOURCES = \
parser.c
libdbusmenu_gtk_la_LDFLAGS = \
+ $(COVERAGE_LDFLAGS) \
-version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
-no-undefined \
-export-symbols-regex "^[^_].*"
libdbusmenu_gtk_la_CFLAGS = \
$(DBUSMENUGTK_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-I$(top_srcdir) \
-Wall -Werror -Wno-error=deprecated-declarations \
-DG_LOG_DOMAIN="\"LIBDBUSMENU-GTK\""
@@ -452,7 +462,14 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) --includedir=$(top_buildd
@HAVE_INTROSPECTION_TRUE@ $(GTKGIR) \
@HAVE_INTROSPECTION_TRUE@ Dbusmenu-0.4
-@HAVE_INTROSPECTION_TRUE@DbusmenuGtk_0_4_gir_CFLAGS = $(DBUSMENUGTK_CFLAGS) -I$(top_srcdir)
+@HAVE_INTROSPECTION_TRUE@DbusmenuGtk_0_4_gir_CFLAGS = \
+@HAVE_INTROSPECTION_TRUE@ $(DBUSMENUGTK_CFLAGS) \
+@HAVE_INTROSPECTION_TRUE@ $(COVERAGE_CFLAGS) \
+@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)
+
+@HAVE_INTROSPECTION_TRUE@DbusmenuGtk_0_4_gir_LDFLAGS = \
+@HAVE_INTROSPECTION_TRUE@ $(COVERAGE_LDFLAGS)
+
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk_0_4_gir_LIBS = libdbusmenu-gtk$(VER).la \
@HAVE_INTROSPECTION_TRUE@ $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la
@@ -463,6 +480,7 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) --includedir=$(top_buildd
# We duplicate these for the same reason as libdbusmenu_gtk3includedir above
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_INCLUDES = $(DbusmenuGtk_0_4_gir_INCLUDES)
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_CFLAGS = $(DbusmenuGtk_0_4_gir_CFLAGS)
+@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_LDFLAGS = $(DbusmenuGtk_0_4_gir_LDFLAGS)
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_LIBS = $(DbusmenuGtk_0_4_gir_LIBS)
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_FILES = $(DbusmenuGtk_0_4_gir_FILES)
@HAVE_INTROSPECTION_TRUE@DbusmenuGtk3_0_4_gir_NAMESPACE = $(DbusmenuGtk_0_4_gir_NAMESPACE)
diff --git a/m4/gcov.m4 b/m4/gcov.m4
new file mode 100644
index 0000000..3163584
--- /dev/null
+++ b/m4/gcov.m4
@@ -0,0 +1,86 @@
+# Checks for existence of coverage tools:
+# * gcov
+# * lcov
+# * genhtml
+# * gcovr
+#
+# Sets ac_cv_check_gcov to yes if tooling is present
+# and reports the executables to the variables LCOV, GCOVR and GENHTML.
+AC_DEFUN([AC_TDD_GCOV],
+[
+ AC_ARG_ENABLE(gcov,
+ AS_HELP_STRING([--enable-gcov],
+ [enable coverage testing with gcov]),
+ [use_gcov=$enableval], [use_gcov=no])
+
+ if test "x$use_gcov" = "xyes"; then
+ # we need gcc:
+ if test "$GCC" != "yes"; then
+ AC_MSG_ERROR([GCC is required for --enable-gcov])
+ fi
+
+ # Check if ccache is being used
+ AC_CHECK_PROG(SHTOOL, shtool, shtool)
+ case `$SHTOOL path $CC` in
+ *ccache*[)] gcc_ccache=yes;;
+ *[)] gcc_ccache=no;;
+ esac
+
+ if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
+ AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
+ fi
+
+ lcov_version_list="1.6 1.7 1.8 1.9"
+ AC_CHECK_PROG(LCOV, lcov, lcov)
+ AC_CHECK_PROG(GENHTML, genhtml, genhtml)
+
+ if test "$LCOV"; then
+ AC_CACHE_CHECK([for lcov version], glib_cv_lcov_version, [
+ glib_cv_lcov_version=invalid
+ lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'`
+ for lcov_check_version in $lcov_version_list; do
+ if test "$lcov_version" = "$lcov_check_version"; then
+ glib_cv_lcov_version="$lcov_check_version (ok)"
+ fi
+ done
+ ])
+ else
+ lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list"
+ AC_MSG_ERROR([$lcov_msg])
+ fi
+
+ case $glib_cv_lcov_version in
+ ""|invalid[)]
+ lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)."
+ AC_MSG_ERROR([$lcov_msg])
+ LCOV="exit 0;"
+ ;;
+ esac
+
+ if test -z "$GENHTML"; then
+ AC_MSG_ERROR([Could not find genhtml from the lcov package])
+ fi
+
+ ac_cv_check_gcov=yes
+ ac_cv_check_lcov=yes
+
+ # Remove all optimization flags from CFLAGS
+ changequote({,})
+ CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
+ changequote([,])
+
+ # Add the special gcc flags
+ COVERAGE_CFLAGS="-O0 -fprofile-arcs -ftest-coverage"
+ COVERAGE_CXXFLAGS="-O0 -fprofile-arcs -ftest-coverage"
+ COVERAGE_LDFLAGS="-lgcov"
+
+ # Check availability of gcovr
+ AC_CHECK_PROG(GCOVR, gcovr, gcovr)
+ if test -z "$GCOVR"; then
+ ac_cv_check_gcovr=no
+ else
+ ac_cv_check_gcovr=yes
+ fi
+
+fi
+]) # AC_TDD_GCOV
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 805adb9..df87dc8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -8,6 +8,7 @@ EXTRA_DIST =
TESTS = \
test-glib-objects-test \
test-glib-events \
+ test-glib-events-nogroup \
test-glib-layout \
test-glib-properties \
test-glib-proxy \
@@ -45,6 +46,7 @@ check_PROGRAMS = \
test-glib-objects \
test-glib-events-client \
test-glib-events-server \
+ test-glib-events-nogroup-client \
test-glib-layout-client \
test-glib-layout-server \
test-glib-properties-client \
@@ -200,6 +202,28 @@ test_glib_events_client_LDADD = \
../libdbusmenu-glib/libdbusmenu-glib.la \
$(DBUSMENUGLIB_LIBS)
+################################
+# Test Glib Events No Grouping
+################################
+
+test-glib-events-nogroup: test-glib-events-nogroup-client test-glib-events-server Makefile.am
+ @echo "#!/bin/bash" > $@
+ @echo export UBUNTU_MENUPROXY="" >> $@
+ @echo export G_DEBUG=fatal_criticals >> $@
+ @echo $(DBUS_RUNNER) --task ./test-glib-events-nogroup-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@
+ @chmod +x $@
+
+test_glib_events_nogroup_client_SOURCES = \
+ test-glib-events-nogroup-client.c
+
+test_glib_events_nogroup_client_CFLAGS = \
+ -I $(srcdir)/.. \
+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
+
+test_glib_events_nogroup_client_LDADD = \
+ ../libdbusmenu-glib/libdbusmenu-glib.la \
+ $(DBUSMENUGLIB_LIBS)
+
######################
# Test JSON
######################
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 9979700..581a9ef 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -36,10 +36,10 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-TESTS = test-glib-objects-test test-glib-events test-glib-layout \
- test-glib-properties test-glib-proxy \
- test-glib-simple-items$(EXEEXT) test-glib-submenu \
- $(am__append_1) $(am__append_2)
+TESTS = test-glib-objects-test test-glib-events \
+ test-glib-events-nogroup test-glib-layout test-glib-properties \
+ test-glib-proxy test-glib-simple-items$(EXEEXT) \
+ test-glib-submenu $(am__append_1) $(am__append_2)
@WANT_DBUSMENUDUMPER_TRUE@am__append_1 = \
@WANT_DBUSMENUDUMPER_TRUE@ test-json \
@WANT_DBUSMENUDUMPER_TRUE@ test-json-instruction
@@ -54,6 +54,7 @@ TESTS = test-glib-objects-test test-glib-events test-glib-layout \
check_PROGRAMS = glib-server-nomenu$(EXEEXT) \
test-glib-objects$(EXEEXT) test-glib-events-client$(EXEEXT) \
test-glib-events-server$(EXEEXT) \
+ test-glib-events-nogroup-client$(EXEEXT) \
test-glib-layout-client$(EXEEXT) \
test-glib-layout-server$(EXEEXT) \
test-glib-properties-client$(EXEEXT) \
@@ -89,7 +90,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -172,6 +173,15 @@ test_glib_events_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_glib_events_client_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
+am_test_glib_events_nogroup_client_OBJECTS = test_glib_events_nogroup_client-test-glib-events-nogroup-client.$(OBJEXT)
+test_glib_events_nogroup_client_OBJECTS = \
+ $(am_test_glib_events_nogroup_client_OBJECTS)
+test_glib_events_nogroup_client_DEPENDENCIES = \
+ ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1)
+test_glib_events_nogroup_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(test_glib_events_nogroup_client_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
am_test_glib_events_server_OBJECTS = \
test_glib_events_server-test-glib-events-server.$(OBJEXT)
test_glib_events_server_OBJECTS = \
@@ -440,6 +450,7 @@ am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
$(glib_server_nomenu_SOURCES) \
$(test_glib_events_client_SOURCES) \
+ $(test_glib_events_nogroup_client_SOURCES) \
$(test_glib_events_server_SOURCES) \
$(test_glib_layout_client_SOURCES) \
$(test_glib_layout_server_SOURCES) \
@@ -463,6 +474,7 @@ SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
DIST_SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
$(glib_server_nomenu_SOURCES) \
$(test_glib_events_client_SOURCES) \
+ $(test_glib_events_nogroup_client_SOURCES) \
$(test_glib_events_server_SOURCES) \
$(test_glib_layout_client_SOURCES) \
$(test_glib_layout_server_SOURCES) \
@@ -504,6 +516,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -514,6 +528,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -529,6 +545,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -564,6 +582,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -609,6 +628,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
@@ -807,6 +827,17 @@ test_glib_events_client_LDADD = \
../libdbusmenu-glib/libdbusmenu-glib.la \
$(DBUSMENUGLIB_LIBS)
+test_glib_events_nogroup_client_SOURCES = \
+ test-glib-events-nogroup-client.c
+
+test_glib_events_nogroup_client_CFLAGS = \
+ -I $(srcdir)/.. \
+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
+
+test_glib_events_nogroup_client_LDADD = \
+ ../libdbusmenu-glib/libdbusmenu-glib.la \
+ $(DBUSMENUGLIB_LIBS)
+
test_json_server_SOURCES = \
test-json-server.c
@@ -815,6 +846,7 @@ test_json_server_CFLAGS = \
-I $(srcdir) \
$(DBUSMENUGLIB_CFLAGS) \
$(DBUSMENUTESTS_CFLAGS) \
+ $(DBUSMENUTESTSVALGRIND_CFLAGS) \
-Wall -Werror
test_json_server_LDADD = \
@@ -1196,6 +1228,9 @@ glib-server-nomenu$(EXEEXT): $(glib_server_nomenu_OBJECTS) $(glib_server_nomenu_
test-glib-events-client$(EXEEXT): $(test_glib_events_client_OBJECTS) $(test_glib_events_client_DEPENDENCIES) $(EXTRA_test_glib_events_client_DEPENDENCIES)
@rm -f test-glib-events-client$(EXEEXT)
$(AM_V_CCLD)$(test_glib_events_client_LINK) $(test_glib_events_client_OBJECTS) $(test_glib_events_client_LDADD) $(LIBS)
+test-glib-events-nogroup-client$(EXEEXT): $(test_glib_events_nogroup_client_OBJECTS) $(test_glib_events_nogroup_client_DEPENDENCIES) $(EXTRA_test_glib_events_nogroup_client_DEPENDENCIES)
+ @rm -f test-glib-events-nogroup-client$(EXEEXT)
+ $(AM_V_CCLD)$(test_glib_events_nogroup_client_LINK) $(test_glib_events_nogroup_client_OBJECTS) $(test_glib_events_nogroup_client_LDADD) $(LIBS)
test-glib-events-server$(EXEEXT): $(test_glib_events_server_OBJECTS) $(test_glib_events_server_DEPENDENCIES) $(EXTRA_test_glib_events_server_DEPENDENCIES)
@rm -f test-glib-events-server$(EXEEXT)
$(AM_V_CCLD)$(test_glib_events_server_LINK) $(test_glib_events_server_OBJECTS) $(test_glib_events_server_LDADD) $(LIBS)
@@ -1275,6 +1310,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_events_client-test-glib-events-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_events_server-test-glib-events-server.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_server-test-glib-layout-server.Po@am__quote@
@@ -1355,6 +1391,20 @@ test_glib_events_client-test-glib-events-client.obj: test-glib-events-client.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_client_CFLAGS) $(CFLAGS) -c -o test_glib_events_client-test-glib-events-client.obj `if test -f 'test-glib-events-client.c'; then $(CYGPATH_W) 'test-glib-events-client.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-client.c'; fi`
+test_glib_events_nogroup_client-test-glib-events-nogroup-client.o: test-glib-events-nogroup-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_nogroup_client_CFLAGS) $(CFLAGS) -MT test_glib_events_nogroup_client-test-glib-events-nogroup-client.o -MD -MP -MF $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Tpo -c -o test_glib_events_nogroup_client-test-glib-events-nogroup-client.o `test -f 'test-glib-events-nogroup-client.c' || echo '$(srcdir)/'`test-glib-events-nogroup-client.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Tpo $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-glib-events-nogroup-client.c' object='test_glib_events_nogroup_client-test-glib-events-nogroup-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_nogroup_client_CFLAGS) $(CFLAGS) -c -o test_glib_events_nogroup_client-test-glib-events-nogroup-client.o `test -f 'test-glib-events-nogroup-client.c' || echo '$(srcdir)/'`test-glib-events-nogroup-client.c
+
+test_glib_events_nogroup_client-test-glib-events-nogroup-client.obj: test-glib-events-nogroup-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_nogroup_client_CFLAGS) $(CFLAGS) -MT test_glib_events_nogroup_client-test-glib-events-nogroup-client.obj -MD -MP -MF $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Tpo -c -o test_glib_events_nogroup_client-test-glib-events-nogroup-client.obj `if test -f 'test-glib-events-nogroup-client.c'; then $(CYGPATH_W) 'test-glib-events-nogroup-client.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-nogroup-client.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Tpo $(DEPDIR)/test_glib_events_nogroup_client-test-glib-events-nogroup-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-glib-events-nogroup-client.c' object='test_glib_events_nogroup_client-test-glib-events-nogroup-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_nogroup_client_CFLAGS) $(CFLAGS) -c -o test_glib_events_nogroup_client-test-glib-events-nogroup-client.obj `if test -f 'test-glib-events-nogroup-client.c'; then $(CYGPATH_W) 'test-glib-events-nogroup-client.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-nogroup-client.c'; fi`
+
test_glib_events_server-test-glib-events-server.o: test-glib-events-server.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_server_CFLAGS) $(CFLAGS) -MT test_glib_events_server-test-glib-events-server.o -MD -MP -MF $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo -c -o test_glib_events_server-test-glib-events-server.o `test -f 'test-glib-events-server.c' || echo '$(srcdir)/'`test-glib-events-server.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo $(DEPDIR)/test_glib_events_server-test-glib-events-server.Po
@@ -2092,6 +2142,17 @@ test-glib-events: test-glib-events-client test-glib-events-server Makefile.am
@echo $(DBUS_RUNNER) --task ./test-glib-events-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@
@chmod +x $@
+################################
+# Test Glib Events No Grouping
+################################
+
+test-glib-events-nogroup: test-glib-events-nogroup-client test-glib-events-server Makefile.am
+ @echo "#!/bin/bash" > $@
+ @echo export UBUNTU_MENUPROXY="" >> $@
+ @echo export G_DEBUG=fatal_criticals >> $@
+ @echo $(DBUS_RUNNER) --task ./test-glib-events-nogroup-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@
+ @chmod +x $@
+
######################
# Test JSON
######################
diff --git a/tests/test-glib-events-nogroup-client.c b/tests/test-glib-events-nogroup-client.c
new file mode 100644
index 0000000..f87660b
--- /dev/null
+++ b/tests/test-glib-events-nogroup-client.c
@@ -0,0 +1,142 @@
+/*
+A test for libdbusmenu to ensure its quality.
+
+Copyright 2009 Canonical Ltd.
+
+Authors:
+ Ted Gould <ted@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <glib.h>
+
+#include <libdbusmenu-glib/client.h>
+#include <libdbusmenu-glib/menuitem.h>
+
+#include "test-glib-submenu.h"
+
+#define TIMESTAMP_VALUE 54
+#define DATA_VALUE 32
+#define USER_VALUE 76
+
+static GMainLoop * mainloop = NULL;
+static gboolean passed = TRUE;
+static gboolean first = TRUE;
+
+static void
+event_status (DbusmenuClient * client, DbusmenuMenuitem * item, gchar * name, GVariant * data, guint timestamp, GError * error, gpointer user_data)
+{
+ g_debug("Event status: %s", error == NULL ? "Sent" : "Error");
+
+ if (timestamp != TIMESTAMP_VALUE) {
+ g_debug("Timestamp value pass fail got: %d", timestamp);
+ passed = FALSE;
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ if (g_variant_get_int32(data) != DATA_VALUE) {
+ g_debug("Data value pass fail got: %d", g_variant_get_int32(g_variant_get_child_value(data, 0)));
+ passed = FALSE;
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ if (GPOINTER_TO_INT(user_data) != USER_VALUE) {
+ g_debug("User value pass fail got: %d", GPOINTER_TO_INT(user_data));
+ passed = FALSE;
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ if (first && error != NULL) {
+ passed = FALSE;
+ g_debug("First signal back failed.");
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ if (!first && error == NULL) {
+ passed = FALSE;
+ g_debug("Second signal didn't fail.");
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ if (!first && error != NULL) {
+ g_debug("Second signal failed: pass.");
+ g_main_loop_quit(mainloop);
+ return;
+ }
+
+ first = FALSE;
+ dbusmenu_menuitem_handle_event(item, "clicked", data, timestamp);
+ return;
+}
+
+static void
+layout_updated (DbusmenuClient * client, gpointer user_data)
+{
+ g_debug("Layout Updated");
+
+ DbusmenuMenuitem * menuroot = dbusmenu_client_get_root(client);
+ if (menuroot == NULL) {
+ g_debug("Root is NULL?");
+ return;
+ }
+
+ g_object_set(G_OBJECT(client),
+ DBUSMENU_CLIENT_PROP_GROUP_EVENTS, FALSE,
+ NULL);
+
+ GVariant * data = g_variant_new_int32(DATA_VALUE);
+ dbusmenu_menuitem_handle_event(menuroot, "clicked", data, TIMESTAMP_VALUE);
+
+ return;
+}
+
+static gboolean
+timer_func (gpointer data)
+{
+ g_debug("Death timer. Oops.");
+ passed = FALSE;
+ g_main_loop_quit(mainloop);
+ return FALSE;
+}
+
+int
+main (int argc, char ** argv)
+{
+ g_type_init();
+
+ DbusmenuClient * client = dbusmenu_client_new("org.dbusmenu.test", "/org/test");
+ g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED, G_CALLBACK(layout_updated), NULL);
+ g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT, G_CALLBACK(event_status), GINT_TO_POINTER(USER_VALUE));
+
+ g_timeout_add_seconds(5, timer_func, client);
+
+ mainloop = g_main_loop_new(NULL, FALSE);
+ g_main_loop_run(mainloop);
+
+ g_debug("Main loop complete");
+ g_object_unref(G_OBJECT(client));
+
+ if (passed) {
+ g_debug("Quiting");
+ return 0;
+ } else {
+ g_debug("Quiting as we're a failure");
+ return 1;
+ }
+}
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 7e39a1e..afbf35e 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -183,6 +183,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -193,6 +195,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -208,6 +212,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -243,6 +249,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -288,6 +295,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@
diff --git a/tools/testapp/Makefile.in b/tools/testapp/Makefile.in
index 4ab4a20..3cdd992 100644
--- a/tools/testapp/Makefile.in
+++ b/tools/testapp/Makefile.in
@@ -44,7 +44,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/gcov.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -112,6 +112,8 @@ CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
+COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -122,6 +124,8 @@ DBUSMENUGLIB_CFLAGS = @DBUSMENUGLIB_CFLAGS@
DBUSMENUGLIB_LIBS = @DBUSMENUGLIB_LIBS@
DBUSMENUGTK_CFLAGS = @DBUSMENUGTK_CFLAGS@
DBUSMENUGTK_LIBS = @DBUSMENUGTK_LIBS@
+DBUSMENUTESTSVALGRIND_CFLAGS = @DBUSMENUTESTSVALGRIND_CFLAGS@
+DBUSMENUTESTSVALGRIND_LIBS = @DBUSMENUTESTSVALGRIND_LIBS@
DBUSMENUTESTS_CFLAGS = @DBUSMENUTESTS_CFLAGS@
DBUSMENUTESTS_LIBS = @DBUSMENUTESTS_LIBS@
DEFS = @DEFS@
@@ -137,6 +141,8 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GCOVR = @GCOVR@
+GENHTML = @GENHTML@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB_MKENUMS = @GLIB_MKENUMS@
GMOFILES = @GMOFILES@
@@ -172,6 +178,7 @@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDBUSMENU_AGE = @LIBDBUSMENU_AGE@
@@ -217,6 +224,7 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SHTOOL = @SHTOOL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALA_API_GEN = @VALA_API_GEN@