From 9306d83d657fe880f6dc6ef039a9b07e05f0ae90 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Sat, 5 Dec 2009 01:21:59 -0500 Subject: generate gtk-doc --- Makefile.am | 11 ++--- autogen.sh | 5 ++- configure.ac | 10 +++++ docs/Makefile.am | 1 + docs/reference/Makefile.am | 94 +++++++++++++++++++++++++++++++++++++++++++ docs/reference/version.xml.in | 1 + 6 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 docs/Makefile.am create mode 100644 docs/reference/Makefile.am create mode 100644 docs/reference/version.xml.in diff --git a/Makefile.am b/Makefile.am index 33f9f3e..3c52a29 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,10 @@ -SUBDIRS = data \ - src \ - example \ - tests +SUBDIRS = data \ + src \ + docs \ + example \ + tests -DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall +DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall --enable-gtk-doc dist-hook: @if test -d "$(top_srcdir)/.bzr"; \ diff --git a/autogen.sh b/autogen.sh index 6480bd3..beaeed7 100755 --- a/autogen.sh +++ b/autogen.sh @@ -7,5 +7,8 @@ which gnome-autogen.sh || { exit 1 } +gtkdocize || exit 1 + USE_GNOME2_MACROS=1 \ -. gnome-autogen.sh +USE_COMMON_DOC_BUILD=yes \ +. gnome-autogen.sh --enable-gtk-doc diff --git a/configure.ac b/configure.ac index 1b5e120..b795e93 100644 --- a/configure.ac +++ b/configure.ac @@ -25,6 +25,13 @@ AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) PKG_PROG_PKG_CONFIG +########################### +# GTK Doc +########################### + +GTK_DOC_CHECK([1.9]) +AC_CONFIG_MACRO_DIR(m4) + ########################### # Dependencies ########################### @@ -82,6 +89,9 @@ src/Makefile data/Makefile tests/Makefile example/Makefile +docs/Makefile +docs/reference/Makefile +docs/reference/version.xml ]) ########################### diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..f3ddc22 --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = reference diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 0000000..c0ec513 --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1,94 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=libappindicator + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR=../../src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS=--nogtkinit --type-init-func="g_type_init()" + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS=--rebuild-types --rebuild-sections + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/src/libappindicator/*.h $(top_srcdir)/src/*.h +CFILE_GLOB=$(top_srcdir)/src/libappindicator/*.c $(top_srcdir)/src/*.c + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES=app-indicator-enum-types.h application-service-appstore.h application-service-client.h application-service-marshal.h application-service-server.h application-service-watcher.h dbus-properties-client.h dbus-properties-server.h dbus-shared.h notification-item-client.h notification-item-server.h notification-watcher-client.h notification-watcher-server.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files=version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src $(INDICATOR_CFLAGS) +GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la $(top_builddir)/src/indicator_application_service-application-service-appstore.o $(top_builddir)/src/indicator_application_service-application-service-watcher.o + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +#TESTS = $(GTKDOC_CHECK) + diff --git a/docs/reference/version.xml.in b/docs/reference/version.xml.in new file mode 100644 index 0000000..d78bda9 --- /dev/null +++ b/docs/reference/version.xml.in @@ -0,0 +1 @@ +@VERSION@ -- cgit v1.2.3 From fb20a3193d6ed369e13125d86177636b2b78cbf2 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Sat, 5 Dec 2009 01:26:08 -0500 Subject: remove --enable-gtk-doc from autogen.sh --- autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index beaeed7..e51dce6 100755 --- a/autogen.sh +++ b/autogen.sh @@ -11,4 +11,4 @@ gtkdocize || exit 1 USE_GNOME2_MACROS=1 \ USE_COMMON_DOC_BUILD=yes \ -. gnome-autogen.sh --enable-gtk-doc +. gnome-autogen.sh -- cgit v1.2.3 From 95ecb480de8da2e06b07be2313537093bb47069a Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Mon, 7 Dec 2009 13:31:36 -0600 Subject: Add 'activate' signal support --- example/simple-client.c | 14 ++++++++++++++ src/libappindicator/app-indicator.c | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/example/simple-client.c b/example/simple-client.c index ab2e24d..ea4da9d 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -26,6 +26,14 @@ with this program. If not, see . GMainLoop * mainloop = NULL; +static void +item_clicked_cb (GtkWidget *widget, gpointer data) +{ + const gchar *text = (const gchar *)data; + + g_print ("%s clicked!\n", text); +} + int main (int argc, char ** argv) { @@ -46,12 +54,18 @@ main (int argc, char ** argv) menu = gtk_menu_new (); GtkWidget *item = gtk_menu_item_new_with_label ("1"); + g_signal_connect (item, "activate", + G_CALLBACK (item_clicked_cb), "1"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_label ("2"); + g_signal_connect (item, "activate", + G_CALLBACK (item_clicked_cb), "2"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_label ("3"); + g_signal_connect (item, "activate", + G_CALLBACK (item_clicked_cb), "3"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); app_indicator_set_menu (ci, GTK_MENU (menu)); diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index f61723d..bd72499 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -632,6 +632,14 @@ app_indicator_set_icon (AppIndicator *self, const gchar *icon_name) } } +static void +activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) +{ + GtkWidget *widget = (GtkWidget *)user_data; + + gtk_menu_item_activate (GTK_MENU_ITEM (widget)); +} + static void container_iterate (GtkWidget *widget, gpointer data) @@ -643,6 +651,9 @@ container_iterate (GtkWidget *widget, dbusmenu_menuitem_property_set (child, DBUSMENU_MENUITEM_PROP_LABEL, gtk_menu_item_get_label (GTK_MENU_ITEM (widget))); + g_signal_connect (G_OBJECT(child), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK (activate_menuitem), widget); dbusmenu_menuitem_child_append (root, child); } -- cgit v1.2.3 From 43eac2628d3df98c7b9a79a6c79af2b9daa155a6 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Tue, 8 Dec 2009 14:18:31 -0500 Subject: don't run gtkdocize with autogen.sh --- autogen.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/autogen.sh b/autogen.sh index e51dce6..8be8035 100755 --- a/autogen.sh +++ b/autogen.sh @@ -7,8 +7,6 @@ which gnome-autogen.sh || { exit 1 } -gtkdocize || exit 1 - USE_GNOME2_MACROS=1 \ USE_COMMON_DOC_BUILD=yes \ . gnome-autogen.sh -- cgit v1.2.3 From 5ebc39ab98b0e099eb68b87e16b03bbc2f8a2a85 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Tue, 8 Dec 2009 14:22:45 -0500 Subject: Added some missing gtk-doc related files --- docs/reference/libappindicator-docs.sgml | 32 +++++++++++++++++++++++++ docs/reference/libappindicator-sections.txt | 30 +++++++++++++++++++++++ docs/reference/libappindicator.types | 1 + docs/reference/tmpl/libappindicator-unused.sgml | 0 4 files changed, 63 insertions(+) create mode 100644 docs/reference/libappindicator-docs.sgml create mode 100644 docs/reference/libappindicator-sections.txt create mode 100644 docs/reference/libappindicator.types create mode 100644 docs/reference/tmpl/libappindicator-unused.sgml diff --git a/docs/reference/libappindicator-docs.sgml b/docs/reference/libappindicator-docs.sgml new file mode 100644 index 0000000..a8eb058 --- /dev/null +++ b/docs/reference/libappindicator-docs.sgml @@ -0,0 +1,32 @@ + + +]> + + + libappindicator Reference Manual + + for libappindicator [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/libappindicator/. + + + + + [Insert title here] + + + + + Object Hierarchy + + + + API Index + + + + + diff --git a/docs/reference/libappindicator-sections.txt b/docs/reference/libappindicator-sections.txt new file mode 100644 index 0000000..d64f53a --- /dev/null +++ b/docs/reference/libappindicator-sections.txt @@ -0,0 +1,30 @@ +
+app-indicator +APP_INDICATOR_TYPE +APP_INDICATOR +APP_INDICATOR_CLASS +IS_APP_INDICATOR +IS_APP_INDICATOR_CLASS +APP_INDICATOR_GET_CLASS +APP_INDICATOR_SIGNAL_NEW_ICON +APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON +APP_INDICATOR_SIGNAL_NEW_STATUS +APP_INDICATOR_SIGNAL_CONNECTION_CHANGED +AppIndicatorCategory +AppIndicatorStatus +AppIndicatorPrivate +AppIndicator +AppIndicator +app_indicator_get_type +app_indicator_new +app_indicator_set_status +app_indicator_set_attention_icon +app_indicator_set_menu +app_indicator_set_icon +app_indicator_get_id +app_indicator_get_category +app_indicator_get_status +app_indicator_get_icon +app_indicator_get_attention_icon +
+ diff --git a/docs/reference/libappindicator.types b/docs/reference/libappindicator.types new file mode 100644 index 0000000..5000a2d --- /dev/null +++ b/docs/reference/libappindicator.types @@ -0,0 +1 @@ +app_indicator_get_type diff --git a/docs/reference/tmpl/libappindicator-unused.sgml b/docs/reference/tmpl/libappindicator-unused.sgml new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3 From 199da20b7b02e718a87ccc9c433e3df3e01adb91 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Tue, 8 Dec 2009 14:58:19 -0500 Subject: Fixes for make distcheck and default configure args --- Makefile.am | 11 ++++++++--- autogen.sh | 2 +- docs/reference/Makefile.am | 15 +++++++++------ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Makefile.am b/Makefile.am index 3c52a29..d63fda6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,10 +1,15 @@ SUBDIRS = data \ src \ - docs \ example \ - tests + tests \ + docs -DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall --enable-gtk-doc +EXTRA_DIST = \ + gtk-doc.make \ + omf.make \ + xmldocs.make + +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-localinstall dist-hook: @if test -d "$(top_srcdir)/.bzr"; \ diff --git a/autogen.sh b/autogen.sh index 8be8035..741ac76 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,4 +9,4 @@ which gnome-autogen.sh || { USE_GNOME2_MACROS=1 \ USE_COMMON_DOC_BUILD=yes \ -. gnome-autogen.sh +. gnome-autogen.sh --enable-gtk-doc diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index c0ec513..dbff206 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -22,14 +22,15 @@ DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. # e.g. DOC_SOURCE_DIR=../../../gtk -DOC_SOURCE_DIR=../../src +DOC_SOURCE_DIR=../../src/libappindicator # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--nogtkinit --type-init-func="g_type_init()" # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" -SCAN_OPTIONS=--rebuild-types --rebuild-sections +#SCAN_OPTIONS=--rebuild-types --rebuild-sections +SCAN_OPTIONS= # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml @@ -49,8 +50,8 @@ FIXXREF_OPTIONS= # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c -HFILE_GLOB=$(top_srcdir)/src/libappindicator/*.h $(top_srcdir)/src/*.h -CFILE_GLOB=$(top_srcdir)/src/libappindicator/*.c $(top_srcdir)/src/*.c +HFILE_GLOB=$(top_srcdir)/src/libappindicator/*.h +CFILE_GLOB=$(top_srcdir)/src/libappindicator/*.c # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h @@ -74,8 +75,10 @@ expand_content_files= # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) -GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src $(INDICATOR_CFLAGS) -GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la $(top_builddir)/src/indicator_application_service-application-service-appstore.o $(top_builddir)/src/indicator_application_service-application-service-watcher.o +GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/libappindicator $(INDICATOR_CFLAGS) +GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la + +#GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la $(top_builddir)/src/indicator_application_service-application-service-appstore.o $(top_builddir)/src/indicator_application_service-application-service-watcher.o # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make -- cgit v1.2.3 From 0c816c327a0d9a06ef21e858d738e5ef79338a37 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Tue, 8 Dec 2009 15:10:33 -0500 Subject: Clean up some cruft I left around --- autogen.sh | 2 +- docs/reference/Makefile.am | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/autogen.sh b/autogen.sh index 741ac76..8cf45c4 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,4 +9,4 @@ which gnome-autogen.sh || { USE_GNOME2_MACROS=1 \ USE_COMMON_DOC_BUILD=yes \ -. gnome-autogen.sh --enable-gtk-doc +gnome-autogen.sh --enable-gtk-doc diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index dbff206..fba50ca 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -76,9 +76,8 @@ expand_content_files= # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/libappindicator $(INDICATOR_CFLAGS) -GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la - #GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la $(top_builddir)/src/indicator_application_service-application-service-appstore.o $(top_builddir)/src/indicator_application_service-application-service-watcher.o +GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make -- cgit v1.2.3 From 86b124f05043bae6ee79bb9be03bee69a55eee52 Mon Sep 17 00:00:00 2001 From: Ken VanDine Date: Tue, 8 Dec 2009 15:13:10 -0500 Subject: Removed a commented variable --- docs/reference/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index fba50ca..c7d3d0e 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -76,7 +76,6 @@ expand_content_files= # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/libappindicator $(INDICATOR_CFLAGS) -#GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la $(top_builddir)/src/indicator_application_service-application-service-appstore.o $(top_builddir)/src/indicator_application_service-application-service-watcher.o GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la # This includes the standard gtk-doc make rules, copied by gtkdocize. -- cgit v1.2.3 From cf4dd4a9e3f1a2d514f7b6ddb5cb0763411b6961 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 8 Dec 2009 15:03:27 -0600 Subject: Making it so that we have a local gtk-doc.make file that will pass a dist without the lib being built. --- docs/reference/Makefile.am | 2 +- gtk-doc.local.make | 194 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 gtk-doc.local.make diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index c7d3d0e..e2a02cd 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -79,7 +79,7 @@ GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/libappindi GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la # This includes the standard gtk-doc make rules, copied by gtkdocize. -include $(top_srcdir)/gtk-doc.make +include $(top_srcdir)/gtk-doc.local.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in diff --git a/gtk-doc.local.make b/gtk-doc.local.make new file mode 100644 index 0000000..3dcda60 --- /dev/null +++ b/gtk-doc.local.make @@ -0,0 +1,194 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = sh -c +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +$(REPORT_FILES): sgml-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options=--path="$(srcdir)"; \ + fi + cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + mv -f $${installdir}/$(DOC_MODULE).devhelp \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ + fi; \ + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ + fi + +uninstall-local: + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + -cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs -- cgit v1.2.3 From 284188bb81f79d5fc98b01206a129ab6ccfc8f13 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Tue, 8 Dec 2009 16:34:01 -0600 Subject: Beefed up and stuff. --- src/libappindicator/app-indicator.c | 65 ++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index bd72499..6f4a6fd 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -640,18 +640,75 @@ activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) gtk_menu_item_activate (GTK_MENU_ITEM (widget)); } +static void +menuitem_iterate (GtkWidget *widget, + gpointer data) +{ + if (GTK_IS_LABEL (widget)) + { + DbusmenuMenuitem *child = (DbusmenuMenuitem *)data; + + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + gtk_label_get_text (GTK_LABEL (widget))); + } +} + static void container_iterate (GtkWidget *widget, gpointer data) { DbusmenuMenuitem *root = (DbusmenuMenuitem *)data; DbusmenuMenuitem *child; + const gchar *label; + gboolean label_set = FALSE; + + label = gtk_menu_item_get_label (GTK_MENU_ITEM (widget)); child = dbusmenu_menuitem_new (); - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_LABEL, - gtk_menu_item_get_label (GTK_MENU_ITEM (widget))); - g_signal_connect (G_OBJECT(child), + + if (GTK_IS_IMAGE_MENU_ITEM (widget)) + { + GtkWidget *image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (widget)); + + if (gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_STOCK) + { + GtkStockItem stock; + + gtk_stock_lookup (GTK_IMAGE (image)->data.stock.stock_id, &stock); + + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_ICON, + GTK_IMAGE (image)->data.stock.stock_id); + + if (stock.label != NULL) + { + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + stock.label); + label_set = TRUE; + } + } + } + + if (!label_set) + { + if (label != NULL) + { + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + label); + } + else + { + /* find label child widget */ + gtk_container_forall (GTK_CONTAINER (widget), + menuitem_iterate, + child); + } + } + + g_signal_connect (G_OBJECT (child), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_menuitem), widget); dbusmenu_menuitem_child_append (root, child); -- cgit v1.2.3 From 3f16792d25e92a37e12e644ad29e40c454d310de Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 9 Dec 2009 10:30:50 -0600 Subject: pkgconfig file --- configure.ac | 1 + src/Makefile.am | 5 ++++- src/libappindicator/appindicator-0.1.pc.in | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/libappindicator/appindicator-0.1.pc.in diff --git a/configure.ac b/configure.ac index b795e93..74cef75 100644 --- a/configure.ac +++ b/configure.ac @@ -86,6 +86,7 @@ AC_SUBST(DBUSSERVICEDIR) AC_OUTPUT([ Makefile src/Makefile +src/libappindicator/appindicator-0.1.pc data/Makefile tests/Makefile example/Makefile diff --git a/src/Makefile.am b/src/Makefile.am index 1c19d91..f1878a4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ CLEANFILES = DISTCLEANFILES = BUILT_SOURCES = -EXTRA_DIST = +EXTRA_DIST = appindicator-0.1.pc.in include $(top_srcdir)/Makefile.am.enum include $(top_srcdir)/Makefile.am.marshal @@ -57,6 +57,9 @@ glib_marshal_prefix = _application_service_marshal # Library ################################## +pkgconfig_DATA = libappindicator/appindicator-0.1.pc +pkgconfigdir = $(libdir)/pkgconfig + glib_enum_h = libappindicator/app-indicator-enum-types.h glib_enum_c = libappindicator/app-indicator-enum-types.c glib_enum_headers = $(libappindicator_headers) diff --git a/src/libappindicator/appindicator-0.1.pc.in b/src/libappindicator/appindicator-0.1.pc.in new file mode 100644 index 0000000..dc7b12a --- /dev/null +++ b/src/libappindicator/appindicator-0.1.pc.in @@ -0,0 +1,14 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +bindir=@bindir@ +includedir=@includedir@ + +Cflags: -I${includedir}/libappindicator-0.1 +Requires: indicator dbusmenu-gtk gtk+-2.0 +Libs: -L${libdir} -ldbusmenu-glib + +Name: appindicator-0.1 +Description: Application indicators +Version: @VERSION@ + -- cgit v1.2.3 From 65195973e8ad407e1cf3fddb3da0ace128b98542 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 9 Dec 2009 10:35:11 -0600 Subject: fix autogen.sh --- autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index 8cf45c4..741ac76 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,4 +9,4 @@ which gnome-autogen.sh || { USE_GNOME2_MACROS=1 \ USE_COMMON_DOC_BUILD=yes \ -gnome-autogen.sh --enable-gtk-doc +. gnome-autogen.sh --enable-gtk-doc -- cgit v1.2.3 From 02ab21b5f931e12103420893137819688e607154 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 9 Dec 2009 11:52:12 -0600 Subject: pkgconfig Libs and Requires fixes --- src/libappindicator/appindicator-0.1.pc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libappindicator/appindicator-0.1.pc.in b/src/libappindicator/appindicator-0.1.pc.in index dc7b12a..b80fded 100644 --- a/src/libappindicator/appindicator-0.1.pc.in +++ b/src/libappindicator/appindicator-0.1.pc.in @@ -5,8 +5,8 @@ bindir=@bindir@ includedir=@includedir@ Cflags: -I${includedir}/libappindicator-0.1 -Requires: indicator dbusmenu-gtk gtk+-2.0 -Libs: -L${libdir} -ldbusmenu-glib +Requires: dbusmenu-glib gtk+-2.0 +Libs: -L${libdir} -lappindicator Name: appindicator-0.1 Description: Application indicators -- cgit v1.2.3