aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/AppIndicator-0.1.metadata1
-rw-r--r--src/Makefile.am65
-rw-r--r--src/Makefile.in165
-rw-r--r--src/app-indicator.c44
-rw-r--r--src/appindicator3-0.1.pc.in14
-rw-r--r--src/application-service-appstore.c18
-rw-r--r--src/application-service-appstore.h1
-rw-r--r--src/application-service-watcher.c123
-rw-r--r--src/application-service-watcher.h7
-rw-r--r--src/indicator-application.c7
-rw-r--r--src/notification-watcher.xml23
11 files changed, 354 insertions, 114 deletions
diff --git a/src/AppIndicator-0.1.metadata b/src/AppIndicator-0.1.metadata
new file mode 100644
index 0000000..e4d068e
--- /dev/null
+++ b/src/AppIndicator-0.1.metadata
@@ -0,0 +1 @@
+AppIndicator name="AppIndicator"
diff --git a/src/Makefile.am b/src/Makefile.am
index 1c4e7ae..9e58943 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,22 @@
+if USE_GTK3
+VER=3
+lib_LTLIBRARIES = libappindicator3.la
+GTKGIR = Gtk-3.0
+GTKVAPI = gtk+-3.0
+else
+VER=
+lib_LTLIBRARIES = libappindicator.la
+GTKGIR = Gtk-2.0
+GTKVAPI = gtk+-2.0
+endif
+
CLEANFILES =
DISTCLEANFILES =
BUILT_SOURCES =
-EXTRA_DIST = appindicator-0.1.pc.in
+EXTRA_DIST = \
+ appindicator-0.1.pc.in \
+ appindicator3-0.1.pc.in \
+ AppIndicator-0.1.metadata
include $(top_srcdir)/Makefile.am.enum
include $(top_srcdir)/Makefile.am.marshal
@@ -60,7 +75,7 @@ indicator_application_service_CFLAGS = \
indicator_application_service_LDADD = \
$(INDICATOR_LIBS) \
- libappindicator.la
+ libappindicator$(VER).la
glib_marshal_list = application-service-marshal.list
glib_marshal_prefix = _application_service_marshal
@@ -69,7 +84,7 @@ glib_marshal_prefix = _application_service_marshal
# Library
##################################
-pkgconfig_DATA = appindicator-0.1.pc
+pkgconfig_DATA = appindicator$(VER)-0.1.pc
pkgconfigdir = $(libdir)/pkgconfig
glib_enum_h = app-indicator-enum-types.h
@@ -78,10 +93,7 @@ glib_enum_headers = $(addprefix $(srcdir)/, $(libappindicator_headers))
DISTCLEANFILES += app-indicator-enum-types.c
-lib_LTLIBRARIES = \
- libappindicator.la
-
-libappindicatorincludedir=$(includedir)/libappindicator-0.1/libappindicator
+libappindicatorincludedir=$(includedir)/libappindicator$(VER)-0.1/libappindicator
libappindicator_headers = \
app-indicator.h
@@ -115,6 +127,17 @@ libappindicator_la_CFLAGS = \
libappindicator_la_LIBADD = \
$(INDICATOR_LIBS)
+# We duplicate these here because Automake won't let us use $(VER) on the left hand side.
+# Since we carefully use $(VER) in the right hand side above, we can assign the same values.
+# Only one version of the library is every compiled at the same time, so it is safe to reuse
+# the right hand sides like this.
+libappindicator3includedir = $(libappindicatorincludedir)
+libappindicator3include_HEADERS = $(libappindicatorinclude_HEADERS)
+libappindicator3_la_SOURCES = $(libappindicator_la_SOURCES)
+libappindicator3_la_LDFLAGS = $(libappindicator_la_LDFLAGS)
+libappindicator3_la_CFLAGS = $(libappindicator_la_CFLAGS)
+libappindicator3_la_LIBADD = $(libappindicator_la_LIBADD)
+
##################################
# DBus Specs
##################################
@@ -156,24 +179,30 @@ EXTRA_DIST += $(DBUS_SPECS)
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = \
--add-include-path=$(srcdir) \
- $(addprefix --c-include=libappindicator/, $(introspection_sources))
+ $(addprefix --c-include=src/, $(introspection_sources)) \
+ --symbol-prefix=app \
+ --identifier-prefix=App
INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
if HAVE_INTROSPECTION
introspection_sources = \
- $(addprefix $(srcdir)/,$(libappindicator_headers)) \
- $(addprefix $(top_builddir)/src/, $(glib_enum_h))
+ $(addprefix $(srcdir)/,$(libappindicator_headers))
-AppIndicator-0.1.gir: libappindicator.la $(glib_enum_h)
+AppIndicator$(VER)-0.1.gir: libappindicator$(VER).la
AppIndicator_0_1_gir_INCLUDES = \
GObject-2.0 \
- Gtk-2.0
+ $(GTKGIR)
AppIndicator_0_1_gir_CFLAGS = $(INDICATOR_CFLAGS) -I$(srcdir) -I$(top_builddir)/src
-AppIndicator_0_1_gir_LIBS = libappindicator.la
+AppIndicator_0_1_gir_LIBS = libappindicator$(VER).la
AppIndicator_0_1_gir_FILES = $(introspection_sources)
-INTROSPECTION_GIRS += AppIndicator-0.1.gir
+AppIndicator3_0_1_gir_INCLUDES = $(AppIndicator_0_1_gir_INCLUDES)
+AppIndicator3_0_1_gir_CFLAGS = $(AppIndicator_0_1_gir_CFLAGS)
+AppIndicator3_0_1_gir_LIBS = $(AppIndicator_0_1_gir_LIBS)
+AppIndicator3_0_1_gir_FILES = $(AppIndicator_0_1_gir_FILES)
+
+INTROSPECTION_GIRS += AppIndicator$(VER)-0.1.gir
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
@@ -192,11 +221,11 @@ endif
if HAVE_INTROSPECTION
vapidir = $(datadir)/vala/vapi
-vapi_DATA = AppIndicator-0.1.vapi
+vapi_DATA = AppIndicator$(VER)-0.1.vapi
-AppIndicator-0.1.vapi: AppIndicator-0.1.gir Makefile.am
- $(VALA_API_GEN) --library=AppIndicator-0.1 \
- --pkg gtk+-2.0 \
+AppIndicator$(VER)-0.1.vapi: AppIndicator$(VER)-0.1.gir Makefile.am
+ $(VALA_API_GEN) --library=AppIndicator$(VER)-0.1 \
+ --pkg $(GTKVAPI) \
--vapidir=$(top_builddir)/src \
$<
diff --git a/src/Makefile.in b/src/Makefile.in
index 1078794..3e55704 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -70,23 +70,28 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(libappindicatorinclude_HEADERS) $(srcdir)/Makefile.am \
+DIST_COMMON = $(libappindicator3include_HEADERS) \
+ $(libappindicatorinclude_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/appindicator-0.1.pc.in \
+ $(srcdir)/appindicator3-0.1.pc.in \
$(top_srcdir)/Makefile.am.enum \
$(top_srcdir)/Makefile.am.marshal
libexec_PROGRAMS = indicator-application-service$(EXEEXT)
-@HAVE_INTROSPECTION_TRUE@am__append_1 = AppIndicator-0.1.gir
+@HAVE_INTROSPECTION_TRUE@am__append_1 = AppIndicator$(VER)-0.1.gir
@HAVE_INTROSPECTION_TRUE@am__append_2 = $(gir_DATA) $(typelib_DATA) \
@HAVE_INTROSPECTION_TRUE@ $(vapi_DATA)
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.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)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = appindicator-0.1.pc
+CONFIG_CLEAN_FILES = appindicator-0.1.pc appindicator3-0.1.pc
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@@ -113,6 +118,7 @@ am__installdirs = "$(DESTDIR)$(applicationlibdir)" \
"$(DESTDIR)$(libdir)" "$(DESTDIR)$(libexecdir)" \
"$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" \
"$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(vapidir)" \
+ "$(DESTDIR)$(libappindicator3includedir)" \
"$(DESTDIR)$(libappindicatorincludedir)"
LTLIBRARIES = $(applicationlib_LTLIBRARIES) $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
@@ -131,6 +137,21 @@ libappindicator_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libappindicator_la_CFLAGS) $(CFLAGS) \
$(libappindicator_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_GTK3_FALSE@am_libappindicator_la_rpath = -rpath $(libdir)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+libappindicator3_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am__objects_2 = $(am__objects_1) \
+ libappindicator3_la-app-indicator-enum-types.lo \
+ libappindicator3_la-app-indicator.lo \
+ libappindicator3_la-application-service-marshal.lo \
+ libappindicator3_la-generate-id.lo
+am_libappindicator3_la_OBJECTS = $(am__objects_2)
+libappindicator3_la_OBJECTS = $(am_libappindicator3_la_OBJECTS)
+libappindicator3_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(libappindicator3_la_CFLAGS) $(CFLAGS) \
+ $(libappindicator3_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_GTK3_TRUE@am_libappindicator3_la_rpath = -rpath $(libdir)
libapplication_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libapplication_la_OBJECTS = \
libapplication_la-application-service-marshal.lo \
@@ -151,7 +172,7 @@ am_indicator_application_service_OBJECTS = \
indicator_application_service_OBJECTS = \
$(am_indicator_application_service_OBJECTS)
indicator_application_service_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- libappindicator.la
+ libappindicator$(VER).la
indicator_application_service_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(indicator_application_service_CFLAGS) $(CFLAGS) \
@@ -182,13 +203,15 @@ am__v_CCLD_0 = @echo " CCLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(libappindicator_la_SOURCES) $(libapplication_la_SOURCES) \
+SOURCES = $(libappindicator_la_SOURCES) $(libappindicator3_la_SOURCES) \
+ $(libapplication_la_SOURCES) \
$(indicator_application_service_SOURCES)
DIST_SOURCES = $(libappindicator_la_SOURCES) \
- $(libapplication_la_SOURCES) \
+ $(libappindicator3_la_SOURCES) $(libapplication_la_SOURCES) \
$(indicator_application_service_SOURCES)
DATA = $(gir_DATA) $(pkgconfig_DATA) $(typelib_DATA) $(vapi_DATA)
-HEADERS = $(libappindicatorinclude_HEADERS)
+HEADERS = $(libappindicator3include_HEADERS) \
+ $(libappindicatorinclude_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -360,6 +383,14 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+@USE_GTK3_FALSE@VER =
+@USE_GTK3_TRUE@VER = 3
+@USE_GTK3_FALSE@lib_LTLIBRARIES = libappindicator.la
+@USE_GTK3_TRUE@lib_LTLIBRARIES = libappindicator3.la
+@USE_GTK3_FALSE@GTKGIR = Gtk-2.0
+@USE_GTK3_TRUE@GTKGIR = Gtk-3.0
+@USE_GTK3_FALSE@GTKVAPI = gtk+-2.0
+@USE_GTK3_TRUE@GTKVAPI = gtk+-3.0
CLEANFILES = stamp-enum-types stamp-marshal $(BUILT_SOURCES) \
$(am__append_2)
DISTCLEANFILES = $(glib_enum_h) $(glib_enum_c) $(marshal_h) \
@@ -371,7 +402,8 @@ BUILT_SOURCES = $(glib_enum_h) $(glib_enum_c) $(marshal_h) \
notification-watcher-server.h notification-watcher-client.h \
notification-item-server.h $(DBUS_SPECS:.xml=-client.h) \
$(DBUS_SPECS:.xml=-server.h)
-EXTRA_DIST = appindicator-0.1.pc.in $(enum_tmpl_h) $(enum_tmpl_c) \
+EXTRA_DIST = appindicator-0.1.pc.in appindicator3-0.1.pc.in \
+ AppIndicator-0.1.metadata $(enum_tmpl_h) $(enum_tmpl_c) \
$(glib_marshal_list) $(DBUS_SPECS)
enum_tmpl_h = $(glib_enum_h:.h=.h.in)
enum_tmpl_c = $(glib_enum_c:.c=.c.in)
@@ -418,7 +450,7 @@ indicator_application_service_CFLAGS = \
indicator_application_service_LDADD = \
$(INDICATOR_LIBS) \
- libappindicator.la
+ libappindicator$(VER).la
glib_marshal_list = application-service-marshal.list
glib_marshal_prefix = _application_service_marshal
@@ -426,15 +458,12 @@ glib_marshal_prefix = _application_service_marshal
##################################
# Library
##################################
-pkgconfig_DATA = appindicator-0.1.pc
+pkgconfig_DATA = appindicator$(VER)-0.1.pc
pkgconfigdir = $(libdir)/pkgconfig
glib_enum_h = app-indicator-enum-types.h
glib_enum_c = app-indicator-enum-types.c
glib_enum_headers = $(addprefix $(srcdir)/, $(libappindicator_headers))
-lib_LTLIBRARIES = \
- libappindicator.la
-
-libappindicatorincludedir = $(includedir)/libappindicator-0.1/libappindicator
+libappindicatorincludedir = $(includedir)/libappindicator$(VER)-0.1/libappindicator
libappindicator_headers = \
app-indicator.h
@@ -464,6 +493,17 @@ libappindicator_la_LIBADD = \
$(INDICATOR_LIBS)
+# We duplicate these here because Automake won't let us use $(VER) on the left hand side.
+# Since we carefully use $(VER) in the right hand side above, we can assign the same values.
+# Only one version of the library is every compiled at the same time, so it is safe to reuse
+# the right hand sides like this.
+libappindicator3includedir = $(libappindicatorincludedir)
+libappindicator3include_HEADERS = $(libappindicatorinclude_HEADERS)
+libappindicator3_la_SOURCES = $(libappindicator_la_SOURCES)
+libappindicator3_la_LDFLAGS = $(libappindicator_la_LDFLAGS)
+libappindicator3_la_CFLAGS = $(libappindicator_la_CFLAGS)
+libappindicator3_la_LIBADD = $(libappindicator_la_LIBADD)
+
##################################
# DBus Specs
##################################
@@ -477,20 +517,25 @@ DBUS_SPECS = \
INTROSPECTION_GIRS = $(am__append_1)
INTROSPECTION_SCANNER_ARGS = \
--add-include-path=$(srcdir) \
- $(addprefix --c-include=libappindicator/, $(introspection_sources))
+ $(addprefix --c-include=src/, $(introspection_sources)) \
+ --symbol-prefix=app \
+ --identifier-prefix=App
INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
@HAVE_INTROSPECTION_TRUE@introspection_sources = \
-@HAVE_INTROSPECTION_TRUE@ $(addprefix $(srcdir)/,$(libappindicator_headers)) \
-@HAVE_INTROSPECTION_TRUE@ $(addprefix $(top_builddir)/src/, $(glib_enum_h))
+@HAVE_INTROSPECTION_TRUE@ $(addprefix $(srcdir)/,$(libappindicator_headers))
@HAVE_INTROSPECTION_TRUE@AppIndicator_0_1_gir_INCLUDES = \
@HAVE_INTROSPECTION_TRUE@ GObject-2.0 \
-@HAVE_INTROSPECTION_TRUE@ Gtk-2.0
+@HAVE_INTROSPECTION_TRUE@ $(GTKGIR)
@HAVE_INTROSPECTION_TRUE@AppIndicator_0_1_gir_CFLAGS = $(INDICATOR_CFLAGS) -I$(srcdir) -I$(top_builddir)/src
-@HAVE_INTROSPECTION_TRUE@AppIndicator_0_1_gir_LIBS = libappindicator.la
+@HAVE_INTROSPECTION_TRUE@AppIndicator_0_1_gir_LIBS = libappindicator$(VER).la
@HAVE_INTROSPECTION_TRUE@AppIndicator_0_1_gir_FILES = $(introspection_sources)
+@HAVE_INTROSPECTION_TRUE@AppIndicator3_0_1_gir_INCLUDES = $(AppIndicator_0_1_gir_INCLUDES)
+@HAVE_INTROSPECTION_TRUE@AppIndicator3_0_1_gir_CFLAGS = $(AppIndicator_0_1_gir_CFLAGS)
+@HAVE_INTROSPECTION_TRUE@AppIndicator3_0_1_gir_LIBS = $(AppIndicator_0_1_gir_LIBS)
+@HAVE_INTROSPECTION_TRUE@AppIndicator3_0_1_gir_FILES = $(AppIndicator_0_1_gir_FILES)
@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
@HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS)
@HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0
@@ -500,7 +545,7 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
# VAPI Files
#########################
@HAVE_INTROSPECTION_TRUE@vapidir = $(datadir)/vala/vapi
-@HAVE_INTROSPECTION_TRUE@vapi_DATA = AppIndicator-0.1.vapi
+@HAVE_INTROSPECTION_TRUE@vapi_DATA = AppIndicator$(VER)-0.1.vapi
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -538,6 +583,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
appindicator-0.1.pc: $(top_builddir)/config.status $(srcdir)/appindicator-0.1.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+appindicator3-0.1.pc: $(top_builddir)/config.status $(srcdir)/appindicator3-0.1.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-applicationlibLTLIBRARIES: $(applicationlib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(applicationlibdir)" || $(MKDIR_P) "$(DESTDIR)$(applicationlibdir)"
@@ -601,7 +648,9 @@ clean-libLTLIBRARIES:
rm -f "$${dir}/so_locations"; \
done
libappindicator.la: $(libappindicator_la_OBJECTS) $(libappindicator_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libappindicator_la_LINK) -rpath $(libdir) $(libappindicator_la_OBJECTS) $(libappindicator_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libappindicator_la_LINK) $(am_libappindicator_la_rpath) $(libappindicator_la_OBJECTS) $(libappindicator_la_LIBADD) $(LIBS)
+libappindicator3.la: $(libappindicator3_la_OBJECTS) $(libappindicator3_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libappindicator3_la_LINK) $(am_libappindicator3_la_rpath) $(libappindicator3_la_OBJECTS) $(libappindicator3_la_LIBADD) $(LIBS)
libapplication.la: $(libapplication_la_OBJECTS) $(libapplication_la_DEPENDENCIES)
$(AM_V_CCLD)$(libapplication_la_LINK) -rpath $(applicationlibdir) $(libapplication_la_OBJECTS) $(libapplication_la_LIBADD) $(LIBS)
install-libexecPROGRAMS: $(libexec_PROGRAMS)
@@ -663,6 +712,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service-watcher.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-generate-id.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator3_la-app-indicator-enum-types.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator3_la-app-indicator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator3_la-application-service-marshal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator3_la-generate-id.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-app-indicator-enum-types.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-app-indicator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-application-service-marshal.Plo@am__quote@
@@ -726,6 +779,38 @@ libappindicator_la-generate-id.lo: generate-id.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -c -o libappindicator_la-generate-id.lo `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c
+libappindicator3_la-app-indicator-enum-types.lo: app-indicator-enum-types.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -MT libappindicator3_la-app-indicator-enum-types.lo -MD -MP -MF $(DEPDIR)/libappindicator3_la-app-indicator-enum-types.Tpo -c -o libappindicator3_la-app-indicator-enum-types.lo `test -f 'app-indicator-enum-types.c' || echo '$(srcdir)/'`app-indicator-enum-types.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator3_la-app-indicator-enum-types.Tpo $(DEPDIR)/libappindicator3_la-app-indicator-enum-types.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='app-indicator-enum-types.c' object='libappindicator3_la-app-indicator-enum-types.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -c -o libappindicator3_la-app-indicator-enum-types.lo `test -f 'app-indicator-enum-types.c' || echo '$(srcdir)/'`app-indicator-enum-types.c
+
+libappindicator3_la-app-indicator.lo: app-indicator.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -MT libappindicator3_la-app-indicator.lo -MD -MP -MF $(DEPDIR)/libappindicator3_la-app-indicator.Tpo -c -o libappindicator3_la-app-indicator.lo `test -f 'app-indicator.c' || echo '$(srcdir)/'`app-indicator.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator3_la-app-indicator.Tpo $(DEPDIR)/libappindicator3_la-app-indicator.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='app-indicator.c' object='libappindicator3_la-app-indicator.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -c -o libappindicator3_la-app-indicator.lo `test -f 'app-indicator.c' || echo '$(srcdir)/'`app-indicator.c
+
+libappindicator3_la-application-service-marshal.lo: application-service-marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -MT libappindicator3_la-application-service-marshal.lo -MD -MP -MF $(DEPDIR)/libappindicator3_la-application-service-marshal.Tpo -c -o libappindicator3_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator3_la-application-service-marshal.Tpo $(DEPDIR)/libappindicator3_la-application-service-marshal.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='application-service-marshal.c' object='libappindicator3_la-application-service-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -c -o libappindicator3_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c
+
+libappindicator3_la-generate-id.lo: generate-id.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -MT libappindicator3_la-generate-id.lo -MD -MP -MF $(DEPDIR)/libappindicator3_la-generate-id.Tpo -c -o libappindicator3_la-generate-id.lo `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator3_la-generate-id.Tpo $(DEPDIR)/libappindicator3_la-generate-id.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate-id.c' object='libappindicator3_la-generate-id.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator3_la_CFLAGS) $(CFLAGS) -c -o libappindicator3_la-generate-id.lo `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c
+
libapplication_la-application-service-marshal.lo: application-service-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libapplication_la_CFLAGS) $(CFLAGS) -MT libapplication_la-application-service-marshal.lo -MD -MP -MF $(DEPDIR)/libapplication_la-application-service-marshal.Tpo -c -o libapplication_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libapplication_la-application-service-marshal.Tpo $(DEPDIR)/libapplication_la-application-service-marshal.Plo
@@ -923,6 +1008,26 @@ uninstall-vapiDATA:
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(vapidir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(vapidir)" && rm -f $$files
+install-libappindicator3includeHEADERS: $(libappindicator3include_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(libappindicator3includedir)" || $(MKDIR_P) "$(DESTDIR)$(libappindicator3includedir)"
+ @list='$(libappindicator3include_HEADERS)'; test -n "$(libappindicator3includedir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libappindicator3includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libappindicator3includedir)" || exit $$?; \
+ done
+
+uninstall-libappindicator3includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libappindicator3include_HEADERS)'; test -n "$(libappindicator3includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(libappindicator3includedir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(libappindicator3includedir)" && rm -f $$files
install-libappindicatorincludeHEADERS: $(libappindicatorinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libappindicatorincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libappindicatorincludedir)"
@@ -1031,7 +1136,7 @@ check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installdirs:
- for dir in "$(DESTDIR)$(applicationlibdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libappindicatorincludedir)"; do \
+ for dir in "$(DESTDIR)$(applicationlibdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libappindicator3includedir)" "$(DESTDIR)$(libappindicatorincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -1088,6 +1193,7 @@ info: info-am
info-am:
install-data-am: install-applicationlibLTLIBRARIES install-girDATA \
+ install-libappindicator3includeHEADERS \
install-libappindicatorincludeHEADERS install-pkgconfigDATA \
install-typelibDATA install-vapiDATA
@@ -1137,6 +1243,7 @@ ps-am:
uninstall-am: uninstall-applicationlibLTLIBRARIES uninstall-girDATA \
uninstall-libLTLIBRARIES \
+ uninstall-libappindicator3includeHEADERS \
uninstall-libappindicatorincludeHEADERS \
uninstall-libexecPROGRAMS uninstall-pkgconfigDATA \
uninstall-typelibDATA uninstall-vapiDATA
@@ -1153,6 +1260,7 @@ uninstall-am: uninstall-applicationlibLTLIBRARIES uninstall-girDATA \
install-dvi install-dvi-am install-exec install-exec-am \
install-girDATA install-html install-html-am install-info \
install-info-am install-libLTLIBRARIES \
+ install-libappindicator3includeHEADERS \
install-libappindicatorincludeHEADERS install-libexecPROGRAMS \
install-man install-pdf install-pdf-am install-pkgconfigDATA \
install-ps install-ps-am install-strip install-typelibDATA \
@@ -1162,6 +1270,7 @@ uninstall-am: uninstall-applicationlibLTLIBRARIES uninstall-girDATA \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-applicationlibLTLIBRARIES uninstall-girDATA \
uninstall-libLTLIBRARIES \
+ uninstall-libappindicator3includeHEADERS \
uninstall-libappindicatorincludeHEADERS \
uninstall-libexecPROGRAMS uninstall-pkgconfigDATA \
uninstall-typelibDATA uninstall-vapiDATA
@@ -1228,11 +1337,11 @@ $(marshal_c): $(marshal_h)
-include $(INTROSPECTION_MAKEFILE)
-@HAVE_INTROSPECTION_TRUE@AppIndicator-0.1.gir: libappindicator.la $(glib_enum_h)
+@HAVE_INTROSPECTION_TRUE@AppIndicator$(VER)-0.1.gir: libappindicator$(VER).la
-@HAVE_INTROSPECTION_TRUE@AppIndicator-0.1.vapi: AppIndicator-0.1.gir Makefile.am
-@HAVE_INTROSPECTION_TRUE@ $(VALA_API_GEN) --library=AppIndicator-0.1 \
-@HAVE_INTROSPECTION_TRUE@ --pkg gtk+-2.0 \
+@HAVE_INTROSPECTION_TRUE@AppIndicator$(VER)-0.1.vapi: AppIndicator$(VER)-0.1.gir Makefile.am
+@HAVE_INTROSPECTION_TRUE@ $(VALA_API_GEN) --library=AppIndicator$(VER)-0.1 \
+@HAVE_INTROSPECTION_TRUE@ --pkg $(GTKVAPI) \
@HAVE_INTROSPECTION_TRUE@ --vapidir=$(top_builddir)/src \
@HAVE_INTROSPECTION_TRUE@ $<
diff --git a/src/app-indicator.c b/src/app-indicator.c
index 6511589..98663c1 100644
--- a/src/app-indicator.c
+++ b/src/app-indicator.c
@@ -32,8 +32,14 @@ License version 3 and version 2.1 along with this program. If not, see
#endif
#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+
#include <libdbusmenu-glib/server.h>
+#ifdef HAVE_GTK3
+#include <libdbusmenu-gtk3/client.h>
+#else
#include <libdbusmenu-gtk/client.h>
+#endif
#include "app-indicator.h"
#include "app-indicator-enum-types.h"
@@ -1052,6 +1058,23 @@ dbus_owner_change (DBusGProxy * proxy, const gchar * name, const gchar * prev, c
return;
}
+/* Checking to see if someone already has the name we're looking for */
+static void
+check_owner_cb (DBusGProxy *proxy, gboolean exists, GError *error, gpointer userdata)
+{
+ if (error != NULL) {
+ g_warning("Unable to check for '" NOTIFICATION_WATCHER_DBUS_ADDR "' on DBus. No worries, but concerning.");
+ return;
+ }
+
+ if (exists) {
+ g_debug("Woah, we actually has a race condition with dbus");
+ dbus_owner_change(proxy, NOTIFICATION_WATCHER_DBUS_ADDR, NULL, "Non NULL", userdata);
+ }
+
+ return;
+}
+
/* This is an idle function to create the proxy. This is mostly
because start_fallback_timer can get called in the distruction
of a proxy and thus the proxy manager gets confused when creating
@@ -1074,6 +1097,11 @@ setup_name_owner_proxy (gpointer data)
G_TYPE_INVALID);
dbus_g_proxy_connect_signal(priv->dbus_proxy, "NameOwnerChanged",
G_CALLBACK(dbus_owner_change), data, NULL);
+
+ /* Check to see if anyone has the name we're looking for
+ just incase we missed it changing. */
+
+ org_freedesktop_DBus_name_has_owner_async(priv->dbus_proxy, NOTIFICATION_WATCHER_DBUS_ADDR, check_owner_cb, data);
}
return FALSE;
@@ -1525,13 +1553,17 @@ static void
update_icon_name (DbusmenuMenuitem *menuitem,
GtkImage *image)
{
+ const gchar *icon_name = NULL;
+
if (gtk_image_get_storage_type (image) != GTK_IMAGE_ICON_NAME)
return;
+ gtk_image_get_icon_name (image, &icon_name, NULL);
+
if (should_show_image (image))
dbusmenu_menuitem_property_set (menuitem,
DBUSMENU_MENUITEM_PROP_ICON_NAME,
- image->data.name.icon_name);
+ icon_name);
else
dbusmenu_menuitem_property_remove (menuitem,
DBUSMENU_MENUITEM_PROP_ICON_NAME);
@@ -1543,16 +1575,18 @@ update_stock_item (DbusmenuMenuitem *menuitem,
GtkImage *image)
{
GtkStockItem stock;
+ gchar *stock_id = NULL;
if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK)
return FALSE;
- gtk_stock_lookup (image->data.stock.stock_id, &stock);
+ gtk_image_get_stock (image, &stock_id, NULL);
+ gtk_stock_lookup (stock_id, &stock);
if (should_show_image (image))
dbusmenu_menuitem_property_set (menuitem,
DBUSMENU_MENUITEM_PROP_ICON_NAME,
- image->data.stock.stock_id);
+ stock_id);
else
dbusmenu_menuitem_property_remove (menuitem,
DBUSMENU_MENUITEM_PROP_ICON_NAME);
@@ -1601,7 +1635,7 @@ widget_notify_cb (GtkWidget *widget,
{
dbusmenu_menuitem_property_set_bool (child,
DBUSMENU_MENUITEM_PROP_ENABLED,
- GTK_WIDGET_IS_SENSITIVE (widget));
+ gtk_widget_is_sensitive (widget));
}
else if (pspec->name == g_intern_static_string ("label"))
{
@@ -1753,7 +1787,7 @@ container_iterate (GtkWidget *widget,
dbusmenu_menuitem_property_set_bool (child,
DBUSMENU_MENUITEM_PROP_ENABLED,
- GTK_WIDGET_IS_SENSITIVE (widget));
+ gtk_widget_is_sensitive (widget));
dbusmenu_menuitem_property_set_bool (child,
DBUSMENU_MENUITEM_PROP_VISIBLE,
gtk_widget_get_visible (widget));
diff --git a/src/appindicator3-0.1.pc.in b/src/appindicator3-0.1.pc.in
new file mode 100644
index 0000000..a485910
--- /dev/null
+++ b/src/appindicator3-0.1.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+
+Cflags: -I${includedir}/libappindicator3-0.1
+Requires: dbusmenu-glib gtk+-3.0
+Libs: -L${libdir} -lappindicator3
+
+Name: appindicator3-0.1
+Description: Application indicators
+Version: @VERSION@
+
diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c
index 46118bb..e3befff 100644
--- a/src/application-service-appstore.c
+++ b/src/application-service-appstore.c
@@ -1022,6 +1022,24 @@ application_service_appstore_application_remove (ApplicationServiceAppstore * ap
return;
}
+gchar**
+application_service_appstore_application_get_list (ApplicationServiceAppstore * appstore)
+{
+ ApplicationServiceAppstorePrivate * priv = appstore->priv;
+ gchar ** out;
+ gchar ** outpntr;
+ GList * listpntr;
+
+ out = g_new(gchar*, g_list_length(priv->applications) + 1);
+
+ for (listpntr = priv->applications, outpntr = out; listpntr != NULL; listpntr = g_list_next(listpntr), ++outpntr) {
+ Application * app = (Application *)listpntr->data;
+ *outpntr = g_strdup_printf("%s%s", app->dbus_name, app->dbus_object);
+ }
+ *outpntr = 0;
+ return out;
+}
+
/* Creates a basic appstore object and attaches the
LRU file object to it. */
ApplicationServiceAppstore *
diff --git a/src/application-service-appstore.h b/src/application-service-appstore.h
index 73f6a9d..aa2824b 100644
--- a/src/application-service-appstore.h
+++ b/src/application-service-appstore.h
@@ -66,6 +66,7 @@ void application_service_appstore_application_remove (ApplicationServiceApp
void application_service_appstore_approver_add (ApplicationServiceAppstore * appstore,
const gchar * dbus_name,
const gchar * dbus_object);
+gchar** application_service_appstore_application_get_list (ApplicationServiceAppstore * appstore);
G_END_DECLS
diff --git a/src/application-service-watcher.c b/src/application-service-watcher.c
index 5b77620..50b0be9 100644
--- a/src/application-service-watcher.c
+++ b/src/application-service-watcher.c
@@ -30,12 +30,25 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "application-service-watcher.h"
#include "dbus-shared.h"
+/* Enum for the properties so that they can be quickly
+ found and looked up. */
+enum {
+ PROP_0,
+ PROP_PROTOCOL_VERSION,
+ PROP_IS_STATUS_NOTIFIER_HOST_REGISTERED,
+ PROP_REGISTERED_STATUS_NOTIFIER_ITEMS
+};
+
+/* The strings so that they can be slowly looked up. */
+#define PROP_PROTOCOL_VERSION_S "protocol-version"
+#define PROP_IS_STATUS_NOTIFIER_HOST_REGISTERED_S "is-status-notifier-host-registered"
+#define PROP_REGISTERED_STATUS_NOTIFIER_ITEMS_S "registered-status-notifier-items"
+
+#define CURRENT_PROTOCOL_VERSION 0
+
static gboolean _notification_watcher_server_register_status_notifier_item (ApplicationServiceWatcher * appwatcher, const gchar * service, DBusGMethodInvocation * method);
-static gboolean _notification_watcher_server_registered_status_notifier_items (ApplicationServiceWatcher * appwatcher, GArray ** apps);
-static gboolean _notification_watcher_server_protocol_version (ApplicationServiceWatcher * appwatcher, char ** version);
-static gboolean _notification_watcher_server_register_notification_host (ApplicationServiceWatcher * appwatcher, const gchar * host);
+static gboolean _notification_watcher_server_register_status_notifier_host (ApplicationServiceWatcher * appwatcher, const gchar * host);
static gboolean _notification_watcher_server_x_ayatana_register_notification_approver (ApplicationServiceWatcher * appwatcher, const gchar * path, const GArray * categories, DBusGMethodInvocation * method);
-static gboolean _notification_watcher_server_is_notification_host_registered (ApplicationServiceWatcher * appwatcher, gboolean * haveHost);
static void get_name_cb (DBusGProxy * proxy, guint status, GError * error, gpointer data);
#include "notification-watcher-server.h"
@@ -52,10 +65,9 @@ struct _ApplicationServiceWatcherPrivate {
/* Signals Stuff */
enum {
- SERVICE_REGISTERED,
- SERVICE_UNREGISTERED,
- NOTIFICATION_HOST_REGISTERED,
- NOTIFICATION_HOST_UNREGISTERED,
+ STATUS_NOTIFIER_ITEM_REGISTERED,
+ STATUS_NOTIFIER_ITEM_UNREGISTERED,
+ STATUS_NOTIFIER_HOST_REGISTERED,
LAST_SIGNAL
};
@@ -66,6 +78,8 @@ static void application_service_watcher_class_init (ApplicationServiceWatcherCla
static void application_service_watcher_init (ApplicationServiceWatcher *self);
static void application_service_watcher_dispose (GObject *object);
static void application_service_watcher_finalize (GObject *object);
+static void application_service_watcher_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec);
+static void application_service_watcher_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec);
G_DEFINE_TYPE (ApplicationServiceWatcher, application_service_watcher, G_TYPE_OBJECT);
@@ -79,31 +93,52 @@ application_service_watcher_class_init (ApplicationServiceWatcherClass *klass)
object_class->dispose = application_service_watcher_dispose;
object_class->finalize = application_service_watcher_finalize;
- signals[SERVICE_REGISTERED] = g_signal_new ("service-registered",
+ /* Property funcs */
+ object_class->set_property = application_service_watcher_set_property;
+ object_class->get_property = application_service_watcher_get_property;
+
+ /* Properties */
+ g_object_class_install_property (object_class,
+ PROP_PROTOCOL_VERSION,
+ g_param_spec_int(PROP_PROTOCOL_VERSION_S,
+ "Protocol Version",
+ "Which version of the StatusNotifierProtocol this watcher implements",
+ 0, G_MAXINT,
+ CURRENT_PROTOCOL_VERSION,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class,
+ PROP_IS_STATUS_NOTIFIER_HOST_REGISTERED,
+ g_param_spec_boolean(PROP_IS_STATUS_NOTIFIER_HOST_REGISTERED_S,
+ "Is StatusNotifierHost Registered",
+ "True if there is at least one StatusNotifierHost registered",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class,
+ PROP_REGISTERED_STATUS_NOTIFIER_ITEMS,
+ g_param_spec_boxed(PROP_REGISTERED_STATUS_NOTIFIER_ITEMS_S,
+ "Registered StatusNotifierItems",
+ "The list of StatusNotifierItems registered to this watcher",
+ G_TYPE_STRV,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ /* Signals */
+ signals[STATUS_NOTIFIER_ITEM_REGISTERED] = g_signal_new ("status-notifier-item-registered",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (ApplicationServiceWatcherClass, service_registered),
+ G_STRUCT_OFFSET (ApplicationServiceWatcherClass, status_notifier_item_registered),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING, G_TYPE_NONE);
- signals[SERVICE_UNREGISTERED] = g_signal_new ("service-unregistered",
+ signals[STATUS_NOTIFIER_ITEM_UNREGISTERED] = g_signal_new ("status-notifier-item-unregistered",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (ApplicationServiceWatcherClass, service_unregistered),
+ G_STRUCT_OFFSET (ApplicationServiceWatcherClass, status_notifier_item_unregistered),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING, G_TYPE_NONE);
- signals[NOTIFICATION_HOST_REGISTERED] = g_signal_new ("notification-host-registered",
- G_TYPE_FROM_CLASS(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (ApplicationServiceWatcherClass, notification_host_registered),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0, G_TYPE_NONE);
- signals[NOTIFICATION_HOST_UNREGISTERED] = g_signal_new ("notification-host-unregistered",
+ signals[STATUS_NOTIFIER_HOST_REGISTERED] = g_signal_new ("status-notifier-host-registered",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (ApplicationServiceWatcherClass, notification_host_unregistered),
+ G_STRUCT_OFFSET (ApplicationServiceWatcherClass, status_notifier_host_registered),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0, G_TYPE_NONE);
@@ -175,6 +210,29 @@ application_service_watcher_finalize (GObject *object)
return;
}
+static void
+application_service_watcher_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+ /* There are no writable properties for now */
+}
+
+static void
+application_service_watcher_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec)
+{
+ ApplicationServiceWatcherPrivate * priv = APPLICATION_SERVICE_WATCHER_GET_PRIVATE(object);
+ switch (prop_id) {
+ case PROP_PROTOCOL_VERSION:
+ g_value_set_int (value, CURRENT_PROTOCOL_VERSION);
+ break;
+ case PROP_IS_STATUS_NOTIFIER_HOST_REGISTERED:
+ g_value_set_boolean (value, TRUE);
+ break;
+ case PROP_REGISTERED_STATUS_NOTIFIER_ITEMS:
+ g_value_set_boxed (value, application_service_appstore_application_get_list(priv->appstore));
+ break;
+ }
+}
+
ApplicationServiceWatcher *
application_service_watcher_new (ApplicationServiceAppstore * appstore)
{
@@ -205,33 +263,12 @@ _notification_watcher_server_register_status_notifier_item (ApplicationServiceWa
}
static gboolean
-_notification_watcher_server_registered_status_notifier_items (ApplicationServiceWatcher * appwatcher, GArray ** apps)
-{
-
- return FALSE;
-}
-
-static gboolean
-_notification_watcher_server_protocol_version (ApplicationServiceWatcher * appwatcher, char ** version)
-{
- *version = g_strdup("Ayatana Version 1");
- return TRUE;
-}
-
-static gboolean
-_notification_watcher_server_register_notification_host (ApplicationServiceWatcher * appwatcher, const gchar * host)
+_notification_watcher_server_register_status_notifier_host (ApplicationServiceWatcher * appwatcher, const gchar * host)
{
return FALSE;
}
-static gboolean
-_notification_watcher_server_is_notification_host_registered (ApplicationServiceWatcher * appwatcher, gboolean * haveHost)
-{
- *haveHost = TRUE;
- return TRUE;
-}
-
/* Function to handle the return of the get name. There isn't a whole
lot that can be done, but we're atleast going to tell people. */
static void
diff --git a/src/application-service-watcher.h b/src/application-service-watcher.h
index ee6a723..6c430db 100644
--- a/src/application-service-watcher.h
+++ b/src/application-service-watcher.h
@@ -44,10 +44,9 @@ struct _ApplicationServiceWatcherClass {
GObjectClass parent_class;
/* Signals */
- void (*service_registered) (ApplicationServiceWatcher * watcher, gchar * object, gpointer data);
- void (*service_unregistered) (ApplicationServiceWatcher * watcher, gchar * object, gpointer data);
- void (*notification_host_registered) (ApplicationServiceWatcher * watcher, gpointer data);
- void (*notification_host_unregistered) (ApplicationServiceWatcher * watcher, gpointer data);
+ void (*status_notifier_item_registered) (ApplicationServiceWatcher * watcher, gchar * object, gpointer data);
+ void (*status_notifier_item_unregistered) (ApplicationServiceWatcher * watcher, gchar * object, gpointer data);
+ void (*status_notifier_host_registered) (ApplicationServiceWatcher * watcher, gpointer data);
};
struct _ApplicationServiceWatcher {
diff --git a/src/indicator-application.c b/src/indicator-application.c
index 36e1446..ecf19e8 100644
--- a/src/indicator-application.c
+++ b/src/indicator-application.c
@@ -21,6 +21,9 @@ You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
/* G Stuff */
#include <glib.h>
@@ -29,7 +32,11 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
/* DBus Stuff */
#include <dbus/dbus-glib.h>
+#ifdef HAVE_GTK3
+#include <libdbusmenu-gtk3/menu.h>
+#else
#include <libdbusmenu-gtk/menu.h>
+#endif
/* Indicator Stuff */
#include <libindicator/indicator.h>
diff --git a/src/notification-watcher.xml b/src/notification-watcher.xml
index 5f19dd2..b03c5e3 100644
--- a/src/notification-watcher.xml
+++ b/src/notification-watcher.xml
@@ -3,25 +3,18 @@
<interface name="org.kde.StatusNotifierWatcher">
<!-- Properties -->
- <!-- None currently -->
+ <property name="ProtocolVersion" type="i" access="read" />
+ <property name="IsStatusNotifierHostRegistered" type="b" access="read" />
+ <property name="RegisteredStatusNotifierItems" type="as" access="read" />
<!-- Methods -->
<method name="RegisterStatusNotifierItem">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true" />
<arg type="s" name="service" direction="in" />
</method>
- <method name="RegisteredStatusNotifierItems">
- <arg type="as" name="services" direction="out" />
- </method>
- <method name="ProtocolVersion">
- <arg type="s" name="version" direction="out" />
- </method>
- <method name="RegisterNotificationHost">
+ <method name="RegisterStatusNotifierHost">
<arg type="s" name="service" direction="in" />
</method>
- <method name="IsNotificationHostRegistered">
- <arg type="b" name="hasHost" direction="out" />
- </method>
<method name="XAyatanaRegisterNotificationApprover">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true" />
<!-- The path where to find the approver interface -->
@@ -31,15 +24,13 @@
</method>
<!-- Signals -->
- <signal name="ServiceRegistered">
+ <signal name="StatusNotifierItemRegistered">
<arg type="s" name="service" direction="out" />
</signal>
- <signal name="ServiceUnregistered">
+ <signal name="StatusNotifierItemUnregistered">
<arg type="s" name="service" direction="out" />
</signal>
- <signal name="NotificationHostRegistered">
- </signal>
- <signal name="NotificationHostUnregistered">
+ <signal name="StatusNotifierHostRegistered">
</signal>
</interface>