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.am74
-rw-r--r--src/app-indicator.c20
-rw-r--r--src/appindicator3-0.1.pc.in14
-rw-r--r--src/indicator-application.c7
5 files changed, 93 insertions, 23 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 091f0f2..e89aa84 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 = \
$(LIBRARY_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
##################################
@@ -154,26 +177,41 @@ EXTRA_DIST += $(DBUS_SPECS)
-include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS =
+
+if INTROSPECTION_TEN
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
+else
+INTROSPECTION_SCANNER_ARGS = \
+ --add-include-path=$(srcdir) \
+ $(addprefix --c-include=src/, $(introspection_sources))
+endif
+
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$(VER)-0.1.gir: libappindicator$(VER).la
-AppIndicator-0.1.gir: libappindicator.la $(glib_enum_h)
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 +230,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/app-indicator.c b/src/app-indicator.c
index 146bee2..4886605 100644
--- a/src/app-indicator.c
+++ b/src/app-indicator.c
@@ -36,7 +36,11 @@ License version 3 and version 2.1 along with this program. If not, see
#include <libdbusmenu-glib/menuitem.h>
#include <libdbusmenu-glib/server.h>
+#ifdef HAVE_GTK3
+#include <libdbusmenu-gtk3/client.h>
+#else
#include <libdbusmenu-gtk/client.h>
+#endif
#include <libindicator/indicator-desktop-shortcuts.h>
@@ -1589,13 +1593,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);
@@ -1607,16 +1615,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);
@@ -1665,7 +1675,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"))
{
@@ -1817,7 +1827,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/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>