Revision: 6952
Author: nogu.dev
Date: Sun Feb 13 04:06:06 2011
Log: * gtk3/toolbar/toolbar-applet-gnome3.c
- (register_icons): New function.
- (uim_applet_new): Call register_icons to register uim icons.
http://code.google.com/p/uim/source/detail?r=6952
Modified:
/trunk/gtk3/toolbar/toolbar-applet-gnome3.c
=======================================
--- /trunk/gtk3/toolbar/toolbar-applet-gnome3.c Sun Feb 13 04:05:51 2011
+++ /trunk/gtk3/toolbar/toolbar-applet-gnome3.c Sun Feb 13 04:06:06 2011
@@ -51,16 +51,17 @@
static void exec_hand(GtkAction *action, gpointer data);
static void exec_help(GtkAction *action, gpointer data);
static void display_about_dialog(GtkAction *action, gpointer data);
+static void register_icons(void);
extern GtkWidget *uim_toolbar_applet_new(void);
static const GtkActionEntry uim_menu_actions[] = {
- {"Switcher", UIM_PIXMAPSDIR"/im_switcher.png",
+ {"Switcher", "uim-im-switcher",
N_("Switch input method"), NULL, NULL, G_CALLBACK(exec_switcher)},
{"Pref", GTK_STOCK_PREFERENCES,
N_("Preference"), NULL, NULL, G_CALLBACK(exec_pref)},
- {"Dic", UIM_PIXMAPSDIR"/uim-dict.png",
+ {"Dic", "uim-dict",
N_("Japanese dictionary editor"), NULL, NULL, G_CALLBACK(exec_dic)},
{"Pad", GTK_STOCK_BOLD,
N_("Input pad"), NULL, NULL, G_CALLBACK(exec_pad)},
@@ -143,6 +144,37 @@
g_object_unref(icon);
}
}
+
+static void
+register_icons(void)
+{
+ struct {
+ gchar *filename;
+ gchar *stock_id;
+ } stock_icons[] = {
+ {UIM_PIXMAPSDIR"/im_switcher.png", "uim-im-switcher"},
+ {UIM_PIXMAPSDIR"/uim-dict.png", "uim-dict"}
+ };
+ GtkIconFactory *icon_factory = gtk_icon_factory_new();
+ GtkIconSet *icon_set;
+ GtkIconSource *icon_source;
+ gint n_stock_icons = G_N_ELEMENTS(stock_icons);
+ gint i;
+
+ for (i = 0; i < n_stock_icons; i++) {
+ icon_set = gtk_icon_set_new();
+ icon_source = gtk_icon_source_new();
+ gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
+ gtk_icon_set_add_source(icon_set, icon_source);
+ gtk_icon_source_free(icon_source);
+ gtk_icon_factory_add(icon_factory, stock_icons[i].stock_id, icon_set);
+ gtk_icon_set_unref(icon_set);
+ }
+
+ gtk_icon_factory_add_default(icon_factory);
+
+ g_object_unref(icon_factory);
+}
static gboolean
uim_applet_new(PanelApplet *applet, const gchar *iid, gpointer data)
@@ -163,6 +195,8 @@
gtk_widget_show_all(GTK_WIDGET(applet));
+ register_icons();
+
action_group = gtk_action_group_new("uim Applet Actions");
gtk_action_group_set_translation_domain(action_group, GETTEXT_PACKAGE);
gtk_action_group_add_actions(action_group, uim_menu_actions,