[gnome-power-manager] Port InhibitApplet to libpanel-applet-3



commit fe6c37ce8df3a0778b80e5c7683ce4bdcef4a935
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Fri Jun 18 15:39:25 2010 +0200

    Port InhibitApplet to libpanel-applet-3
    
    Signed-off-by: Richard Hughes <richard hughsie com>

 applets/inhibit/GNOME_InhibitApplet.server.in.in   |   36 -----------
 applets/inhibit/GNOME_InhibitApplet.xml            |    8 ---
 applets/inhibit/Makefile.am                        |   31 +++++++---
 applets/inhibit/inhibit-applet-menu.xml            |    3 +
 applets/inhibit/inhibit-applet.c                   |   67 ++++++++++++--------
 .../org.gnome.InhibitApplet.panel-applet.in.in     |   16 +++++
 ...me.panel.applet.InhibitAppletFactory.service.in |    3 +
 7 files changed, 84 insertions(+), 80 deletions(-)
---
diff --git a/applets/inhibit/Makefile.am b/applets/inhibit/Makefile.am
index 7b44240..701d1cc 100644
--- a/applets/inhibit/Makefile.am
+++ b/applets/inhibit/Makefile.am
@@ -14,6 +14,7 @@ INCLUDES =							\
 	-DLIBDIR=\""$(libdir)"\" 				\
 	-DVERSION="\"$(VERSION)\"" 				\
 	-DGPM_DATA=\"$(pkgdatadir)\"				\
+	-DINHIBIT_MENU_UI_DIR=\""$(uidir)"\"			\
 	-DEGG_LOG_FILE=\""~/gnome-power-manager.log"\"		\
 	-DEGG_VERBOSE="\"GPM_VERBOSE\""				\
 	-DEGG_LOGGING="\"GPM_LOGGING\""				\
@@ -37,19 +38,31 @@ gnome_inhibit_applet_LDADD =					\
 	$(GNOME_LIBS)						\
 	$(PANEL_LIBS)
 
-serverdir       = $(libdir)/bonobo/servers
-server_in_files = GNOME_InhibitApplet.server.in
-server_DATA     = $(server_in_files:.server.in=.server)
+appletdir       = $(datadir)/gnome-panel/applets
+applet_in_files = org.gnome.InhibitApplet.panel-applet.in
+applet_DATA     = $(applet_in_files:.panel-applet.in=.panel-applet)
 
-$(server_in_files): $(server_in_files:.server.in=.server.in.in)
-	sed -e "s|\ LIBEXECDIR\@|$(libexecdir)|" -e "s|\ VERSION\@|$(VERSION)|" $< > $@
+$(applet_in_files): $(applet_in_files).in Makefile
+	$(AM_V_GEN)sed \
+            -e "s|\ LIBEXECDIR\@|$(libexecdir)|" \
+            -e "s|\ VERSION\@|$(PACKAGE_VERSION)|" \
+            $< > $@
 
- INTLTOOL_SERVER_RULE@
+%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+servicedir       = $(datadir)/dbus-1/services
+service_in_files = org.gnome.panel.applet.InhibitAppletFactory.service.in
+service_DATA     = $(service_in_files:.service.in=.service)
+
+org.gnome.panel.applet.InhibitAppletFactory.service: $(service_in_files)
+        $(AM_V_GEN)sed \
+            -e "s|\ LIBEXECDIR\@|$(libexecdir)|" \
+            $< > $@
 
 uidir   = $(datadir)/gnome-2.0/ui
-ui_DATA = GNOME_InhibitApplet.xml
+ui_DATA = inhibit-applet-menu.xml
 
-EXTRA_DIST = GNOME_InhibitApplet.server.in.in $(ui_DATA)
+EXTRA_DIST = org.gnome.InhibitApplet.panel-applet.in.in $(ui_DATA) $(service_in_files)
 
 DISTCLEANFILES =						\
-	$(server_DATA) $(server_DATA).in
+	$(applet_DATA) $(applet_DATA).in $(server_DATA)
diff --git a/applets/inhibit/inhibit-applet-menu.xml b/applets/inhibit/inhibit-applet-menu.xml
new file mode 100644
index 0000000..efc2659
--- /dev/null
+++ b/applets/inhibit/inhibit-applet-menu.xml
@@ -0,0 +1,3 @@
+<menuitem name="Help" action="Help" />
+<menuitem name="About" action="About" />
+
diff --git a/applets/inhibit/inhibit-applet.c b/applets/inhibit/inhibit-applet.c
index 2a0a831..0b3fd0c 100644
--- a/applets/inhibit/inhibit-applet.c
+++ b/applets/inhibit/inhibit-applet.c
@@ -30,6 +30,7 @@
 #include <panel-applet.h>
 #include <gtk/gtk.h>
 #include <glib-object.h>
+#include <glib/gi18n.h>
 #include <dbus/dbus-glib.h>
 
 #include "egg-debug.h"
@@ -79,12 +80,12 @@ static void	gpm_applet_check_size		(GpmInhibitApplet *applet);
 static gboolean	gpm_applet_draw_cb		(GpmInhibitApplet *applet);
 static void	gpm_applet_update_tooltip	(GpmInhibitApplet *applet);
 static gboolean	gpm_applet_click_cb		(GpmInhibitApplet *applet, GdkEventButton *event);
-static void	gpm_applet_dialog_about_cb	(BonoboUIComponent *uic, gpointer data, const gchar *verbname);
-static gboolean	gpm_applet_bonobo_cb		(PanelApplet *_applet, const gchar *iid, gpointer data);
+static void	gpm_applet_dialog_about_cb	(GtkAction *action, gpointer data);
+static gboolean	gpm_applet_cb		        (PanelApplet *_applet, const gchar *iid, gpointer data);
 static void	gpm_applet_destroy_cb		(GtkObject *object);
 
-#define GPM_INHIBIT_APPLET_OAFID		"OAFIID:GNOME_InhibitApplet"
-#define GPM_INHIBIT_APPLET_FACTORY_OAFID	"OAFIID:GNOME_InhibitApplet_Factory"
+#define GPM_INHIBIT_APPLET_ID		        "InhibitApplet"
+#define GPM_INHIBIT_APPLET_FACTORY_ID	        "InhibitAppletFactory"
 #define GPM_INHIBIT_APPLET_ICON_INHIBIT		"gpm-inhibit"
 #define GPM_INHIBIT_APPLET_ICON_INVALID		"gpm-inhibit-invalid"
 #define GPM_INHIBIT_APPLET_ICON_UNINHIBIT	"gpm-hibernate"
@@ -406,7 +407,7 @@ gpm_applet_click_cb (GpmInhibitApplet *applet, GdkEventButton *event)
  * displays about dialog
  **/
 static void
-gpm_applet_dialog_about_cb (BonoboUIComponent *uic, gpointer data, const gchar *verbname)
+gpm_applet_dialog_about_cb (GtkAction *action, gpointer data)
 {
 	GtkAboutDialog *about;
 
@@ -471,7 +472,7 @@ gpm_applet_dialog_about_cb (BonoboUIComponent *uic, gpointer data, const gchar *
  * open gpm help
  **/
 static void
-gpm_applet_help_cb (BonoboUIComponent *uic, gpointer data, const gchar *verbname)
+gpm_applet_help_cb (GtkAction *action, gpointer data)
 {
 	gpm_help_display ("applets-inhibit");
 }
@@ -641,44 +642,56 @@ gpm_inhibit_applet_init (GpmInhibitApplet *applet)
 }
 
 /**
- * gpm_applet_bonobo_cb:
- * @_applet: GpmInhibitApplet instance created by the bonobo factory
- * @iid: Bonobo id
+ * gpm_applet_cb:
+ * @_applet: GpmInhibitApplet instance created by the applet factory
+ * @iid: Applet id
  *
- * the function called by bonobo factory after creation
+ * the function called by libpanel-applet factory after creation
  **/
 static gboolean
-gpm_applet_bonobo_cb (PanelApplet *_applet, const gchar *iid, gpointer data)
+gpm_applet_cb (PanelApplet *_applet, const gchar *iid, gpointer data)
 {
 	GpmInhibitApplet *applet = GPM_INHIBIT_APPLET(_applet);
-
-	static BonoboUIVerb verbs [] = {
-		BONOBO_UI_VERB ("About", gpm_applet_dialog_about_cb),
-		BONOBO_UI_VERB ("Help", gpm_applet_help_cb),
-		BONOBO_UI_VERB_END
+	GtkActionGroup *action_group;
+	gchar *ui_path;
+
+	static const GtkActionEntry menu_actions [] = {
+		{ "About", GTK_STOCK_ABOUT, N_("_About"),
+		  NULL, NULL,
+		  G_CALLBACK (gpm_applet_dialog_about_cb) },
+		{ "Help", GTK_STOCK_HELP, N_("_Help"),
+		  NULL, NULL,
+		  G_CALLBACK (gpm_applet_help_cb) }
 	};
 
-	if (strcmp (iid, GPM_INHIBIT_APPLET_OAFID) != 0) {
+	if (strcmp (iid, GPM_INHIBIT_APPLET_ID) != 0) {
 		return FALSE;
 	}
 
-	panel_applet_setup_menu_from_file (PANEL_APPLET (applet),
-					   DATADIR,
-					   "GNOME_InhibitApplet.xml",
-					   NULL, verbs, applet);
+	action_group = gtk_action_group_new ("Inhibit Applet Actions");
+	gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+	gtk_action_group_add_actions (action_group,
+				      menu_actions,
+				      G_N_ELEMENTS (menu_actions),
+				      applet);
+	ui_path = g_build_filename (INHIBIT_MENU_UI_DIR, "inhibit-applet-menu.xml", NULL);
+	panel_applet_setup_menu_from_file (PANEL_APPLET (applet), ui_path, action_group);
+	g_free (ui_path);
+	g_object_unref (action_group);
+
 	gpm_applet_draw_cb (applet);
 	return TRUE;
 }
 
 /**
- * this generates a main with a bonobo factory
+ * this generates a main with a applet factory
  **/
-PANEL_APPLET_BONOBO_FACTORY
+PANEL_APPLET_OUT_PROCESS_FACTORY
  (/* the factory iid */
- GPM_INHIBIT_APPLET_FACTORY_OAFID,
+ GPM_INHIBIT_APPLET_FACTORY_ID,
  /* generates brighness applets instead of regular gnome applets  */
  GPM_TYPE_INHIBIT_APPLET,
- /* the applet name and version */
- "InhibitApplet", VERSION,
+ /* the applet name */
+ "InhibitApplet",
  /* our callback (with no user data) */
- gpm_applet_bonobo_cb, NULL);
+ gpm_applet_cb, NULL)
diff --git a/applets/inhibit/org.gnome.InhibitApplet.panel-applet.in.in b/applets/inhibit/org.gnome.InhibitApplet.panel-applet.in.in
new file mode 100644
index 0000000..3a42afb
--- /dev/null
+++ b/applets/inhibit/org.gnome.InhibitApplet.panel-applet.in.in
@@ -0,0 +1,16 @@
+[Applet Factory]
+Id=InhibitAppletFactory
+Location= LIBEXECDIR@/gnome-inhibit-applet
+_Name=Inhibit Applet Factory
+_Description=Factory for Inhibit Applet
+
+[InhibitApplet]
+_Name=Inhibit Applet
+_Description=Allows user to inhibit automatic power saving
+Icon=gnome-inhibit-applet
+BonoboId=OAFIID:GNOME_InhibitApplet
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-power-manager
+X-GNOME-Bugzilla-Component=applets
+X-GNOME-Bugzilla-Version= VERSION@
+X-GNOME-Bugzilla-OtherBinaries=gnome-inhibit-applet
diff --git a/applets/inhibit/org.gnome.panel.applet.InhibitAppletFactory.service.in b/applets/inhibit/org.gnome.panel.applet.InhibitAppletFactory.service.in
new file mode 100644
index 0000000..d557105
--- /dev/null
+++ b/applets/inhibit/org.gnome.panel.applet.InhibitAppletFactory.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.panel.applet.InhibitAppletFactory
+Exec= LIBEXECDIR@/gnome-inhibit-applet



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]