[gnome-applets] [charpick] Port to new libpanel-applet API
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-applets] [charpick] Port to new libpanel-applet API
- Date: Wed, 18 Aug 2010 14:39:55 +0000 (UTC)
commit a7c53c1b700a3ea3c18f44ad069d746c8b3351a8
Author: Carlos Garcia Campos <carlosgc gnome org>
Date: Tue Feb 23 12:32:15 2010 +0100
[charpick] Port to new libpanel-applet API
charpick/GNOME_CharpickerApplet.server.in.in | 35 ----------
charpick/GNOME_CharpickerApplet.xml | 12 ----
charpick/Makefile.am | 48 +++++++++-----
charpick/charpick-applet-menu.xml | 4 +
charpick/charpick.c | 68 ++++++++++---------
charpick/charpick.h | 6 +-
...ome.applets.CharpickerApplet.panel-applet.in.in | 16 +++++
...panel.applet.CharpickerAppletFactory.service.in | 3 +
charpick/properties.c | 5 +-
9 files changed, 94 insertions(+), 103 deletions(-)
---
diff --git a/charpick/Makefile.am b/charpick/Makefile.am
index d71a6df..f305714 100644
--- a/charpick/Makefile.am
+++ b/charpick/Makefile.am
@@ -1,10 +1,10 @@
SUBDIRS = help
-INCLUDES = \
- -I. \
- -I$(srcdir) \
- $(GNOME_APPLETS_CFLAGS) \
- $(GNOME_LIBS2_CFLAGS) \
+INCLUDES = \
+ -I. \
+ -I$(srcdir) \
+ -DCHARPICK_MENU_UI_DIR=\""$(uidir)"\" \
+ $(GNOME_APPLETS3_CFLAGS) \
$(GUCHARMAP_CFLAGS)
libexec_PROGRAMS = charpick_applet2
@@ -14,20 +14,31 @@ charpick_applet2_SOURCES = charpick.c \
properties.c
charpick_applet2_LDADD = \
- $(GNOME_APPLETS_LIBS) \
- $(GNOME_LIBS2_LIBS) \
+ $(GNOME_APPLETS3_LIBS) \
$(GUCHARMAP_LIBS)
-serverdir = $(libdir)/bonobo/servers
-server_in_files = GNOME_CharpickerApplet.server.in
-server_DATA = $(server_in_files:.server.in=.server)
+appletdir = $(datadir)/gnome-panel/applets
+applet_in_files = org.gnome.applets.CharpickerApplet.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)|" $< > $@
+$(applet_in_files): $(applet_in_files).in Makefile
+ $(AM_V_GEN)sed \
+ -e "s|\ LIBEXECDIR\@|$(libexecdir)|" \
+ -e "s|\ VERSION\@|$(PACKAGE_VERSION)|" \
+ $< > $@
-CLEANFILES = $(server_in_files) $(server_DATA) $(schemas_DATA)
+%.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
- INTLTOOL_SERVER_RULE@
+servicedir = $(datadir)/dbus-1/services
+service_in_files = org.gnome.panel.applet.CharpickerAppletFactory.service.in
+service_DATA = $(service_in_files:.service.in=.service)
+
+org.gnome.panel.applet.CharpickerAppletFactory.service: $(service_in_files)
+ $(AM_V_GEN)sed \
+ -e "s|\ LIBEXECDIR\@|$(libexecdir)|" \
+ $< > $@
+
+CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA)
schemasdir = @GCONF_SCHEMA_FILE_DIR@
schemas_in_files = charpick.schemas.in
@@ -35,11 +46,12 @@ schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
@INTLTOOL_SCHEMAS_RULE@
uidir = $(datadir)/gnome-2.0/ui
-ui_DATA = GNOME_CharpickerApplet.xml
+ui_DATA = charpick-applet-menu.xml
-EXTRA_DIST = \
- GNOME_CharpickerApplet.server.in.in \
- $(ui_DATA) \
+EXTRA_DIST = \
+ org.gnome.applets.CharpickerApplet.panel-applet.in.in \
+ $(service_in_files) \
+ $(ui_DATA) \
$(schemas_in_files)
if GCONF_SCHEMAS_INSTALL
diff --git a/charpick/charpick-applet-menu.xml b/charpick/charpick-applet-menu.xml
new file mode 100644
index 0000000..b1af96a
--- /dev/null
+++ b/charpick/charpick-applet-menu.xml
@@ -0,0 +1,4 @@
+<menuitem name="Item 1" action="Preferences" />
+<menuitem name="Item 2" action="Help" />
+<menuitem name="Item 3" action="About" />
+
diff --git a/charpick/charpick.c b/charpick/charpick.c
index e78eabc..164a457 100644
--- a/charpick/charpick.c
+++ b/charpick/charpick.c
@@ -583,9 +583,8 @@ static void applet_change_orient(PanelApplet *applet, PanelAppletOrient o, gpoin
static void
-about (BonoboUIComponent *uic,
- charpick_data *curr_data,
- const char *verb)
+about (GtkAction *action,
+ charpick_data *curr_data)
{
static const char * const authors[] = {
"Alexandre Muñiz <munizao xprt net>",
@@ -615,9 +614,8 @@ about (BonoboUIComponent *uic,
static void
-help_cb (BonoboUIComponent *uic,
- charpick_data *curr_data,
- const char *verb)
+help_cb (GtkAction *action,
+ charpick_data *curr_data)
{
GError *error = NULL;
@@ -712,12 +710,16 @@ get_chartable (charpick_data *curr_data)
}
-static const BonoboUIVerb charpick_applet_menu_verbs [] = {
- BONOBO_UI_UNSAFE_VERB ("Preferences", show_preferences_dialog),
- BONOBO_UI_UNSAFE_VERB ("Help", help_cb),
- BONOBO_UI_UNSAFE_VERB ("About", about),
-
- BONOBO_UI_VERB_END
+static const GtkActionEntry charpick_applet_menu_actions [] = {
+ { "Preferences", GTK_STOCK_PROPERTIES, N_("_Preferences"),
+ NULL, NULL,
+ G_CALLBACK (show_preferences_dialog) },
+ { "Help", GTK_STOCK_HELP, N_("_Help"),
+ NULL, NULL,
+ G_CALLBACK (help_cb) },
+ { "About", GTK_STOCK_ABOUT, N_("_About"),
+ NULL, NULL,
+ G_CALLBACK (about) }
};
void
@@ -749,6 +751,8 @@ charpicker_applet_fill (PanelApplet *applet)
GdkAtom utf8_atom;
GList *list;
gchar *string;
+ GtkActionGroup *action_group;
+ gchar *ui_path;
g_set_application_name (_("Character Palette"));
@@ -825,24 +829,25 @@ charpicker_applet_fill (PanelApplet *applet)
G_CALLBACK (applet_destroy), curr_data);
gtk_widget_show_all (GTK_WIDGET (applet));
-
+
+ action_group = gtk_action_group_new ("Charpicker Applet Actions");
+ gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+ gtk_action_group_add_actions (action_group,
+ charpick_applet_menu_actions,
+ G_N_ELEMENTS (charpick_applet_menu_actions),
+ curr_data);
+ ui_path = g_build_filename (CHARPICK_MENU_UI_DIR, "charpick-applet-menu.xml", NULL);
panel_applet_setup_menu_from_file (PANEL_APPLET (applet),
- DATADIR,
- "GNOME_CharpickerApplet.xml",
- NULL,
- charpick_applet_menu_verbs,
- curr_data);
+ ui_path, action_group);
+ g_free (ui_path);
if (panel_applet_get_locked_down (PANEL_APPLET (applet))) {
- BonoboUIComponent *popup_component;
-
- popup_component = panel_applet_get_popup_component (PANEL_APPLET (applet));
+ GtkAction *action;
- bonobo_ui_component_set_prop (popup_component,
- "/commands/Preferences",
- "hidden", "1",
- NULL);
+ action = gtk_action_group_get_action (action_group, "Preferences");
+ gtk_action_set_visible (action, FALSE);
}
+ g_object_unref (action_group);
register_stock_for_edit ();
populate_menu (curr_data);
@@ -857,16 +862,15 @@ charpicker_applet_factory (PanelApplet *applet,
{
gboolean retval = FALSE;
- if (!strcmp (iid, "OAFIID:GNOME_CharpickerApplet"))
+ if (!strcmp (iid, "CharpickerApplet"))
retval = charpicker_applet_fill (applet);
return retval;
}
-PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_CharpickerApplet_Factory",
- PANEL_TYPE_APPLET,
- "char-palette",
- "0",
- charpicker_applet_factory,
- NULL)
+PANEL_APPLET_OUT_PROCESS_FACTORY ("CharpickerAppletFactory",
+ PANEL_TYPE_APPLET,
+ "char-palette",
+ charpicker_applet_factory,
+ NULL)
diff --git a/charpick/charpick.h b/charpick/charpick.h
index 8de9912..1ce2a72 100644
--- a/charpick/charpick.h
+++ b/charpick/charpick.h
@@ -1,6 +1,7 @@
/* charpick.h -- header file for character picker applet */
#include <glib.h>
+#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <gconf/gconf-client.h>
#include <panel-applet.h>
@@ -46,9 +47,8 @@ void build_table (charpick_data *curr_data);
void add_to_popup_menu (charpick_data *curr_data);
void populate_menu (charpick_data *curr_data);
void save_chartable (charpick_data *curr_data);
-void show_preferences_dialog (BonoboUIComponent *uic,
- charpick_data *curr_data,
- const char *verbname);
+void show_preferences_dialog (GtkAction *action,
+ charpick_data *curr_data);
void add_edit_dialog_create (charpick_data *curr_data,
gchar *string,
diff --git a/charpick/org.gnome.applets.CharpickerApplet.panel-applet.in.in b/charpick/org.gnome.applets.CharpickerApplet.panel-applet.in.in
new file mode 100644
index 0000000..0972e05
--- /dev/null
+++ b/charpick/org.gnome.applets.CharpickerApplet.panel-applet.in.in
@@ -0,0 +1,16 @@
+[Applet Factory]
+Id=CharpickerAppletFactory
+Location= LIBEXECDIR@/charpick_applet2
+_Name=Charpicker Applet Factory
+_Description=Charpicker Applet Factory
+
+[CharpickerApplet]
+_Name=Character Palette
+_Description=Insert characters
+Icon=accessories-character-map
+BonoboId=OAFIID:GNOME_CharpickerApplet
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-applets
+X-GNOME-Bugzilla-Component=charpick
+X-GNOME-Bugzilla-Version= VERSION@
+X-GNOME-Bugzilla-OtherBinaries=charpick_applet2
diff --git a/charpick/org.gnome.panel.applet.CharpickerAppletFactory.service.in b/charpick/org.gnome.panel.applet.CharpickerAppletFactory.service.in
new file mode 100644
index 0000000..ad1e609
--- /dev/null
+++ b/charpick/org.gnome.panel.applet.CharpickerAppletFactory.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.panel.applet.CharpickerAppletFactory
+Exec= LIBEXECDIR@/charpick_applet2
diff --git a/charpick/properties.c b/charpick/properties.c
index 6538e28..c3bd475 100644
--- a/charpick/properties.c
+++ b/charpick/properties.c
@@ -528,9 +528,8 @@ response_cb (GtkDialog *dialog, gint id, gpointer data)
}
void
-show_preferences_dialog (BonoboUIComponent *uic,
- charpick_data *curr_data,
- const gchar *verbname)
+show_preferences_dialog (GtkAction *action,
+ charpick_data *curr_data)
{
if (curr_data->propwindow) {
gtk_window_set_screen (GTK_WINDOW (curr_data->propwindow),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]