void extras_register_stock() { static gboolean stock_is_init = FALSE; GtkIconFactory *icon_factory = NULL; int i; if (stock_is_init) return; stock_is_init = TRUE; icon_factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(icon_factory); for (i = 0; i < G_N_ELEMENTS(stock_icons); i++) { GdkPixbuf *pixbuf; GtkIconSet *iconset; gchar *filename; filename = find_file(stock_icons[i].dir, stock_icons[i].filename); if (filename == NULL) continue; pixbuf = gdk_pixbuf_new_from_file(filename, NULL); g_free(filename); iconset = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset); gtk_icon_set_unref(iconset); } }
static void add_stock_item(void) { GtkIconSet *icon_set; GtkIconFactory *factory = gtk_icon_factory_new(); GtkIconTheme *theme = gtk_icon_theme_get_default(); GtkStockItem item = { (gchar*)(GEANYSENDMAIL_STOCK_MAIL), (gchar*)(N_("Mail")), 0, 0, (gchar*)(GETTEXT_PACKAGE) }; if (gtk_icon_theme_has_icon(theme, "mail-message-new")) { GtkIconSource *icon_source = gtk_icon_source_new(); icon_set = gtk_icon_set_new(); gtk_icon_source_set_icon_name(icon_source, "mail-message-new"); gtk_icon_set_add_source(icon_set, icon_source); gtk_icon_source_free(icon_source); } else { GdkPixbuf *pb = gdk_pixbuf_new_from_xpm_data(mail_icon); icon_set = gtk_icon_set_new_from_pixbuf(pb); g_object_unref(pb); } gtk_icon_factory_add(factory, item.stock_id, icon_set); gtk_stock_add(&item, 1); gtk_icon_factory_add_default(factory); g_object_unref(factory); gtk_icon_set_unref(icon_set); }
static void meta_stock_icons_init (void) { GtkIconFactory *factory; int i; MetaStockIcon items[] = { { METACITY_STOCK_DELETE, stock_delete_data }, { METACITY_STOCK_MINIMIZE, stock_minimize_data }, { METACITY_STOCK_MAXIMIZE, stock_maximize_data } }; factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); for (i = 0; i < (gint) G_N_ELEMENTS (items); i++) { GtkIconSet *icon_set; GdkPixbuf *pixbuf; pixbuf = gdk_pixbuf_new_from_inline (-1, items[i].icon_data, FALSE, NULL); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, items[i].stock_id, icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); } g_object_unref (G_OBJECT (factory)); }
static void register_stock_icons (void) { static gboolean registered = FALSE; if (!registered) { GdkPixbuf *pixbuf; GtkIconFactory *factory; GtkIconSet *icon_set; static GtkStockItem items[] = { { "demo-gtk-logo", "_GTK!", 0, 0, NULL } }; registered = TRUE; gtk_stock_add (items, G_N_ELEMENTS (items)); factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); pixbuf = gdk_pixbuf_new_from_resource ("/application/gtk-logo-24.png", NULL); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, "demo-gtk-logo", icon_set); gtk_icon_set_unref (icon_set); g_object_unref (pixbuf); /* Drop our reference to the factory, GTK will hold a reference. */ g_object_unref (factory); } }
void setup_icons() { GtkIconFactory *icons = gtk_icon_factory_new(); gtk_icon_factory_add(icons, "slade-mode-verts", gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file("res/tb_verts16.png", NULL))); gtk_icon_factory_add(icons, "slade-mode-lines", gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file("res/tb_lines16.png", NULL))); gtk_icon_factory_add(icons, "slade-mode-sectors", gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file("res/tb_sectors16.png", NULL))); gtk_icon_factory_add(icons, "slade-mode-things", gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file("res/tb_things16.png", NULL))); gtk_icon_factory_add(icons, "slade-mode-3d", gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file("res/tb_3d16.png", NULL))); gtk_icon_factory_add_default(icons); }
virtual attached_t create_detached(GdkPixbuf* pixbuf) const { attached_t detached = 0; if ((pixbuf)) { if (!(detached = gtk_icon_set_new_from_pixbuf(pixbuf))) { VEDERE_LOG_ERROR("fained 0 == gtk_icon_set_new_from_pixbuf()"); } } return detached; }
void lshw_gtk_stock_init(void) { static int stock_initted = 0; GtkIconFactory *icon_factory; int i; GtkWidget *win; if (stock_initted) return; stock_initted = 1; /* Setup the icon factory. */ icon_factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(icon_factory); /* Er, yeah, a hack, but it works. :) */ win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_realize(win); for (i = 0; i < G_N_ELEMENTS(stock_icons); i++) { GdkPixbuf *pixbuf; GtkIconSet *iconset; gchar *filename; filename = find_file(stock_icons[i].filename); if (filename == NULL) continue; pixbuf = gdk_pixbuf_new_from_file(filename, NULL); g_free(filename); if(pixbuf) /* we managed to load something */ { iconset = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(G_OBJECT(pixbuf)); gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset); gtk_icon_set_unref(iconset); } } gtk_widget_destroy(win); /* register logo icon size */ gtk_icon_size_register(LSHW_ICON_SIZE_LOGO, LSHW_DEFAULT_ICON_SIZE, LSHW_DEFAULT_ICON_SIZE); g_object_unref(G_OBJECT(icon_factory)); (void) &id; /* avoid "id defined but not used" warning */ }
/** * @param icon a validly filled out GxkStockIcon * * Register a new stock icon from an inlined pixbuf. * The inlined pixbuf pixels are not copied, so the * caller must make sure for the data to remain valid. */ void gxk_stock_register_icon (const GxkStockIcon *icon) { GdkPixbuf *pixbuf; GtkIconSet *iset; g_return_if_fail (icon != NULL); pixbuf = gdk_pixbuf_new_from_inline (-1, icon->inlined_pixbuf, FALSE, NULL); iset = gtk_icon_set_new_from_pixbuf (pixbuf); g_object_unref (pixbuf); gtk_icon_factory_add (stock_icon_factory, icon->stock_id, iset); gtk_icon_set_unref (iset); }
static void _add_stock_icon_name (GtkIconFactory *factory, const char *name, const gchar *icon) { GdkPixbuf *pixbuf; GtkIconSet *set; char *path; path = g_strdup_printf ("/org/gnome/Dia/icons/%s.png", icon); pixbuf = pixbuf_from_resource (path); set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, name, set); g_object_unref (pixbuf); g_free (path); pixbuf = NULL; }
void gxw_init() { #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); #endif GtkIconFactory *factory = gtk_icon_factory_new(); for (image_entry *p = image_data; p->icon_name; p++) { gtk_icon_factory_add( factory, p->icon_name, gtk_icon_set_new_from_pixbuf( gdk_pixbuf_new_from_inline( -1, p->icon_data, FALSE, NULL))); } gtk_icon_factory_add_default(factory); }
static VALUE rg_initialize(int argc, VALUE *argv, VALUE self) { GtkIconSet *icon_set; VALUE pixbuf; rb_scan_args(argc, argv, "01", &pixbuf); if(NIL_P(pixbuf)) icon_set = gtk_icon_set_new(); else icon_set = gtk_icon_set_new_from_pixbuf(RVAL2GOBJ(pixbuf)); G_INITIALIZE(self, icon_set); return Qnil; }
static GdkPixbuf* add(GtkIconFactory *factory, const guchar *inline_data, const gchar *stock_id) { GtkIconSet *set; GdkPixbuf *pixbuf; pixbuf = gdk_pixbuf_new_from_inline(-1, inline_data, FALSE, NULL); set = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(G_OBJECT(pixbuf)); gtk_icon_factory_add(factory, stock_id, set); gtk_icon_set_unref(set); return pixbuf; }
static void register_stock_icon(void) { static gboolean registered = FALSE; if (!registered) { GdkPixbuf *pixbuf; GtkIconFactory *factory; static GtkStockItem items[] = { { (gchar*)"abi-table-widget", (gchar*)"_Table", static_cast<GdkModifierType>(0), 0, NULL } }; registered = TRUE; /* Register our stock items */ gtk_stock_add (items, G_N_ELEMENTS (items)); /* Add our custom icon factory to the list of defaults */ factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); // Must be C cast pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)widget_tb_insert_table_xpm); /* Register icon to accompany stock item */ if (pixbuf != NULL) { GtkIconSet *icon_set; icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, "abi-table-widget", icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); } else { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); } /* Drop our reference to the factory, GTK will hold a reference. */ g_object_unref (G_OBJECT (factory)); } }
/* * Initialise tool actions. * The caller owns the return value. */ static GtkActionGroup * create_or_ref_tool_actions (void) { GtkIconFactory *icon_factory; GtkActionGroup *actions; GtkAction *action; int i; if (tool_actions) return g_object_ref (tool_actions); actions = gtk_action_group_new ("tool-actions"); gtk_action_group_set_translation_domain (actions, NULL); gtk_action_group_set_translate_func (actions, _dia_translate, NULL, NULL); gtk_action_group_add_actions (actions, tool_entries, G_N_ELEMENTS (tool_entries), NULL); icon_factory = gtk_icon_factory_new (); for (i = 0; i < num_tools; i++) { action = gtk_action_group_get_action (actions, tool_data[i].action_name); if (action != NULL) { g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (tool_menu_select), &tool_data[i].callback_data); gtk_action_set_tooltip (action, _(tool_data[i].tool_desc)); { GdkPixbuf *pb = tool_get_pixbuf (&tool_data[i]); GtkIconSet *is = gtk_icon_set_new_from_pixbuf (pb); /* not sure if the action name is unique enough */ gtk_icon_factory_add (icon_factory, tool_data[i].action_name, is); gtk_action_set_stock_id (action, tool_data[i].action_name); g_object_unref (pb); } } else { g_warning ("couldn't find tool menu item %s", tool_data[i].action_name); } } gtk_icon_factory_add_default (icon_factory); return actions; }
static void load_stock_icon (char * id, char * filename, GtkIconFactory * iconfactory) { char * path = g_strdup_printf ("%s/images/%s", aud_get_path (AUD_PATH_DATA_DIR), filename); GdkPixbuf * pixbuf = gdk_pixbuf_new_from_file (path, NULL); if (pixbuf == NULL) goto ERR; GtkIconSet * iconset = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_icon_factory_add(iconfactory, id, iconset); ERR: g_free (path); }
static void _add_stock_icon (GtkIconFactory *factory, const char *name, const guint8 *data, const size_t size) { GdkPixbuf *pixbuf; GtkIconSet *set; GError *err = NULL; pixbuf = gdk_pixbuf_new_from_inline (size, data, FALSE, &err); if (err) { g_warning ("%s", err->message); g_error_free (err); err = NULL; } set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, name, set); g_object_unref (pixbuf); pixbuf = NULL; }
static void add_stock_entry (const gchar *stock_id, char **xpm_data) { static GtkIconFactory *factory = NULL; GdkPixbuf *pixbuf; GtkIconSet *icon_set; if (!factory) { factory =gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); } pixbuf = gdk_pixbuf_new_from_xpm_data ((const gchar **)xpm_data); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, stock_id, icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); }
static gboolean register_icon(const gchar *name) { GtkIconSet *icon_set; GdkPixbuf *pixbuf; GString *filename; struct stat st; g_return_val_if_fail(uim_factory, FALSE); if (is_icon_registered(name)) return TRUE; filename = g_string_new(UIM_PIXMAPSDIR "/"); g_string_append(filename, name); if (with_dark_bg) { g_string_append(filename, "_dark_background"); } g_string_append(filename, ".png"); if (with_dark_bg && stat(filename->str, &st) == -1) { g_string_free(filename, TRUE); filename = g_string_new(UIM_PIXMAPSDIR "/"); g_string_append(filename, name); g_string_append(filename, ".png"); } pixbuf = gdk_pixbuf_new_from_file(filename->str, NULL); if (!pixbuf) { g_string_free(filename, TRUE); return FALSE; } icon_set = gtk_icon_set_new_from_pixbuf(pixbuf); gtk_icon_factory_add(uim_factory, name, icon_set); uim_icon_list = g_list_append(uim_icon_list, g_strdup(name)); g_string_free(filename, TRUE); gtk_icon_set_unref(icon_set); g_object_unref(G_OBJECT(pixbuf)); return TRUE; }
static void register_my_stock_icons (void) { GtkIconFactory *icon_factory; GtkIconSet *icon_set; GdkPixbuf *pixbuf; gint i; icon_factory = gtk_icon_factory_new (); for (i = 0; i < n_stock_icons; i++) { pixbuf = gdk_pixbuf_new_from_xpm_data(stock_icons[i].icon_xpm); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); g_object_unref(pixbuf); gtk_icon_factory_add (icon_factory, stock_icons[i].stockid, icon_set); gtk_icon_set_unref (icon_set); } gtk_icon_factory_add_default(icon_factory); g_object_unref(icon_factory); }
void load_custom_stock () { GtkIconFactory *factory; GtkIconSet *iconset; GdkPixbuf *image; GError *error = NULL; icon icons[] = { {DATA_DIR ICONDIR "frame.svg", TBO_STOCK_FRAME}, {DATA_DIR ICONDIR "selector.svg", TBO_STOCK_SELECTOR}, {DATA_DIR ICONDIR "doodle.svg", TBO_STOCK_DOODLE}, {DATA_DIR ICONDIR "text.svg", TBO_STOCK_TEXT} }; int i; factory = gtk_icon_factory_new (); for (i=0; i<G_N_ELEMENTS (icons); i++) { image = (GdkPixbuf *) gdk_pixbuf_new_from_file (icons[i].image, &error); if (image == NULL) { printf (_("error loading image %s\n"), icons[i].image); } iconset = gtk_icon_set_new_from_pixbuf (image); gtk_icon_factory_add (factory, icons[i].stockid, iconset); g_object_unref (G_OBJECT(image)); gtk_icon_set_unref (iconset); } gtk_icon_factory_add_default (factory); g_object_unref (G_OBJECT (factory)); }
void nsgtk_about_dialog_init(GtkWindow *parent, struct browser_window *bw, const char *version) { GtkWidget *dialog, *vbox, *button, *image, *label; gchar *name_string; GList *pixbufs = gtk_window_get_default_icon_list(); name_string = g_markup_printf_escaped ("<span size=\"xx-large\" weight=\"bold\">NetSurf %s</span>", version); /* Create the widgets */ dialog = gtk_dialog_new_with_buttons("About NetSurf", parent, GTK_DIALOG_DESTROY_WITH_PARENT, NULL); vbox = gtk_vbox_new (FALSE, 8); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), vbox, TRUE, TRUE, 0); if (pixbufs != NULL) { GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf(GDK_PIXBUF(g_list_nth_data(pixbufs, 0))); image = gtk_image_new(); gtk_image_set_from_icon_set (GTK_IMAGE (image), icon_set, GTK_ICON_SIZE_DIALOG); gtk_icon_set_unref (icon_set); g_list_free (pixbufs); gtk_box_pack_start(GTK_BOX (vbox), image, FALSE, FALSE, 0); } label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), name_string); g_free (name_string); gtk_label_set_selectable (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); label = gtk_label_new("NetSurf is a small fast web browser"); gtk_label_set_selectable(GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); label = gtk_label_new("Copyright © 2003 - 2012 The NetSurf Developers"); gtk_label_set_selectable(GTK_LABEL(label), TRUE); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); gtk_box_pack_start(GTK_BOX (vbox), label, FALSE, FALSE, 0); nsgtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); /* Add the OK button */ gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE); /* Add the credits button */ button = gtk_button_new_from_stock ("Credits"); gtk_box_pack_end(GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, TRUE, 0); gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), button, TRUE); g_signal_connect(button, "clicked", G_CALLBACK(nsgtk_about_dialog_credits), (gpointer)bw); /* Add the Licence button */ button = gtk_button_new_from_stock ("Licence"); gtk_box_pack_end(GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, TRUE, 0); gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), button, TRUE); g_signal_connect(button, "clicked", G_CALLBACK(nsgtk_about_dialog_licence), (gpointer)bw); /* Ensure that the dialog box is destroyed when the user responds. */ g_signal_connect_swapped(dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); /* Add the label, and show everything we've added to the dialog. */ gtk_widget_show_all(dialog); }
/** * gnomemeeting_stock_icons_init: * * Initializes the GnomeMeeting stock icons * **/ void gnomemeeting_stock_icons_init (void) { GtkIconFactory *factory; int i; typedef struct { char *id; const guint8 *data; } GmStockIcon; static const GmStockIcon items[] = { { GM_STOCK_COLOR_BRIGHTNESS_CONTRAST, gm_color_brightness_contrast_stock_data }, { GM_STOCK_STATUS_ONLINE, gm_status_online_stock_data }, { GM_STOCK_STATUS_OFFLINE, gm_status_offline_stock_data }, { GM_STOCK_STATUS_UNKNOWN, gm_status_unknown_stock_data }, { GM_STOCK_STATUS_AWAY, gm_status_away_stock_data }, { GM_STOCK_STATUS_DND, gm_status_dnd_stock_data }, { GM_STOCK_STATUS_INACALL, gm_status_inacall_stock_data_16 }, { GM_STOCK_STATUS_RINGING, gm_status_ringing_stock_data_16 }, { GM_STOCK_REMOTE_OBJECT, gm_remote_contact_stock_data}, { GM_STOCK_LOCAL_OBJECT, gm_local_contact_stock_data}, { GM_STOCK_MESSAGE, gm_message_stock_data}, { GM_STOCK_CALL_PLACED, gm_call_placed_stock_data}, { GM_STOCK_CALL_MISSED, gm_call_missed_stock_data}, { GM_STOCK_CALL_RECEIVED, gm_call_received_stock_data}, { GM_STOCK_CALL_TRANSFER, gm_call_transfer_stock_data}, { GM_STOCK_PHONE_HANG_UP_16, gm_phone_hang_up_stock_data_16}, { GM_STOCK_PHONE_PICK_UP_16, gm_phone_pick_up_stock_data_16}, { GM_STOCK_PHONE_HANG_UP_24, gm_phone_hang_up_stock_data_24}, { GM_STOCK_PHONE_PICK_UP_24, gm_phone_pick_up_stock_data_24}, }; typedef struct { char *id; gint size; const guint8 *data; } GmThemeIcon; static const GmThemeIcon theme_builtins[] = { { GM_ICON_ADD_CONTACT, 24, gm_add_contact_24_stock_data}, { GM_ICON_AUDIO_VOLUME_HIGH, 16, gm_audio_volume_high_16_stock_data }, { GM_ICON_BRIGHTNESS, 16, gm_brightness_16_stock_data}, { GM_ICON_CAMERA_VIDEO, 16, gm_camera_video_16_stock_data }, { GM_ICON_COLOURNESS, 16, gm_colourness_16_stock_data}, { GM_ICON_CONTRAST, 16, gm_contrast_16_stock_data}, { GM_ICON_INTERNET_GROUP_CHAT, 24, gm_internet_group_chat_24_stock_data }, { GM_ICON_LOGO, 16, gm_logo_16_stock_data }, { GM_ICON_LOGO, 22, gm_logo_22_stock_data }, { GM_ICON_LOGO, 32, gm_logo_32_stock_data }, { GM_ICON_LOGO, 48, gm_logo_48_stock_data }, { GM_ICON_LOGO, 72, gm_logo_72_stock_data }, { GM_ICON_MEDIA_PLAYBACK_PAUSE, 16, gm_media_playback_pause_16_stock_data }, { GM_ICON_MICROPHONE, 24, gm_microphone_24_stock_data }, { GM_ICON_SYSTEM_SEARCH, 16, gm_system_search_16_stock_data}, { GM_ICON_WHITENESS, 16, gm_whiteness_16_stock_data}, }; /* First, register honest-to-goodness custom stock icons */ factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); for (i = 0; i < (int) G_N_ELEMENTS (items); i++) { GtkIconSet *icon_set; GdkPixbuf *pixbuf; pixbuf = gdk_pixbuf_new_from_inline (-1, items[i].data, FALSE, NULL); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, items[i].id, icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); } g_object_unref (G_OBJECT (factory)); /* Now install theme builtins */ for (i = 0; i < (int) G_N_ELEMENTS (theme_builtins); i++) { GdkPixbuf *pixbuf; pixbuf = gdk_pixbuf_new_from_inline (-1, theme_builtins[i].data, FALSE, NULL); gtk_icon_theme_add_builtin_icon (theme_builtins[i].id, theme_builtins[i].size, pixbuf); g_object_unref (G_OBJECT (pixbuf)); } }
static void nouvelle_convers(PurpleConversation *conv, void *data) { // printf("Une nouvelle conversation:%s!!\n", purple_conversation_get_name(conv)); PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); GtkWidget *bbox=gtkconv->lower_hbox; GtkWidget *icon; GtkWidget *menu; GtkWidget *menuitem; void **arg; GtkSizeGroup *sg; int i, ret, handle; int argcp; char **argvp; char *gamename; GdkPixbuf *pixbuf; GtkIconSet *iconset; GtkIconFactory *factory; factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(factory); pixbuf = gdk_pixbuf_new_from_xpm_data(ggz_xpm); iconset = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(G_OBJECT(pixbuf)); gtk_icon_factory_add (factory, "ggzicon", iconset); sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); #if PURPLE_MAJOR_VERSION < 2 icon = purple_gtkconv_button_new("ggzicon", "Jouer", "Pfff", gtkconv->tooltips, GTK_SIGNAL_FUNC(PopMenu), NULL); #else icon = NULL; /* FIXME! */ #endif if(icon == NULL) { printf("Arf :/ \n"); return; } else { printf("OK :) \n"); } /* Menu */ menu = gtk_menu_new(); handle = ggz_conf_parse(GGZMODULECONFIG, GGZ_CONF_RDONLY); ret = ggz_conf_read_list(handle, "Games", "*Engines*", &argcp, &argvp); for(i = 0; i < argcp; i++) { gamename = argvp[i]; arg = malloc(sizeof(void*)*2); arg[0] = (gpointer)conv; arg[1] = strdup(gamename); menuitem = gtk_menu_item_new_with_label(gamename); gtk_signal_connect_object(GTK_OBJECT(menuitem), "event", GTK_SIGNAL_FUNC(icon_clicked), (gpointer) arg); gtk_menu_append(GTK_MENU(menu), menuitem); gtk_widget_show(menuitem); } ggz_conf_close(handle); //Menu général gtk_signal_connect_object(GTK_OBJECT(icon), "event", GTK_SIGNAL_FUNC(PopMenu), GTK_OBJECT(menu)); //Fin menu gtk_box_pack_start(GTK_BOX(bbox), icon, FALSE, FALSE, 0); gtk_button_set_relief(GTK_BUTTON(icon), GTK_RELIEF_NONE); gtk_tooltips_set_tip(gtkconv->tooltips, icon, g_strdup("Clickez sur ce bouton pour jouer avec votre correspondant"), 0); g_hash_table_insert(conv->data, g_strdup("icon"), icon); gtk_size_group_add_widget(sg, icon); gtk_box_reorder_child(GTK_BOX(bbox), icon, 7); gtk_widget_show(icon); }
/* generate application specific stock items */ void stock_icons_init(void) { GtkIconFactory * factory; gint32 i; GdkPixbuf * pixbuf; GtkIconSet *icon_set; /* register non-standard pixmaps with the gtk-stock engine */ static const GtkStockItem stock_items[] = { { WIRESHARK_STOCK_CAPTURE_INTERFACES, "_Interfaces", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_OPTIONS, "_Options", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_START, "_Start", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_STOP, "S_top", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_RESTART, "_Restart", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_FILTER, "_Capture Filter", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, "_Capture Filter:", 0, 0, NULL }, { WIRESHARK_STOCK_CAPTURE_DETAILS, "_Details", 0, 0, NULL }, #ifdef HAVE_GEOIP { WIRESHARK_STOCK_MAP, "Map", 0, 0, NULL }, #endif { WIRESHARK_STOCK_FOLLOW_STREAM, "Follow Stream", 0, 0, NULL }, { WIRESHARK_STOCK_DISPLAY_FILTER, "Display _Filter", 0, 0, NULL }, { WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, "F_ilter:", 0, 0, NULL }, { WIRESHARK_STOCK_BROWSE, "_Browse...", 0, 0, NULL }, { WIRESHARK_STOCK_CREATE_STAT, "Create _Stat", 0, 0, NULL }, { WIRESHARK_STOCK_EXPORT, "_Export...", 0, 0, NULL }, { WIRESHARK_STOCK_IMPORT, "_Import...", 0, 0, NULL }, { WIRESHARK_STOCK_EDIT, "_Edit...", 0, 0, NULL }, { WIRESHARK_STOCK_ADD_EXPRESSION, "E_xpression..." , 0, 0, NULL }, /* plus sign coming from icon */ { WIRESHARK_STOCK_CLEAR_EXPRESSION, "Clea_r" , 0, 0, NULL }, { WIRESHARK_STOCK_APPLY_EXPRESSION, "App_ly" , 0, 0, NULL }, { WIRESHARK_STOCK_SAVE_ALL, "Save A_ll", 0, 0, NULL }, { WIRESHARK_STOCK_DONT_SAVE, "Continue _without Saving", 0, 0, NULL }, { WIRESHARK_STOCK_QUIT_DONT_SAVE, "Quit _without Saving", 0, 0, NULL }, { WIRESHARK_STOCK_STOP_DONT_SAVE, "Stop and Continue _without Saving", 0, 0, NULL }, { WIRESHARK_STOCK_STOP_QUIT_DONT_SAVE, "Stop and Quit _without Saving", 0, 0, NULL }, { WIRESHARK_STOCK_STOP_SAVE, "Stop and Save", 0, 0, NULL }, { WIRESHARK_STOCK_ABOUT, "_About", 0, 0, NULL }, { WIRESHARK_STOCK_COLORIZE, "_Colorize", 0, 0, NULL }, { WIRESHARK_STOCK_AUTOSCROLL, "_Auto Scroll", 0, 0, NULL }, { WIRESHARK_STOCK_RESIZE_COLUMNS, "Resize Columns", 0, 0, NULL }, { WIRESHARK_STOCK_TIME, "Time", 0, 0, NULL }, { WIRESHARK_STOCK_INTERNET, "Internet", 0, 0, NULL }, { WIRESHARK_STOCK_WEB_SUPPORT, "Web Support", 0, 0, NULL }, { WIRESHARK_STOCK_WIKI, "Wiki", 0, 0, NULL }, { WIRESHARK_STOCK_CONVERSATIONS, "Conversations", 0, 0, NULL }, { WIRESHARK_STOCK_ENDPOINTS, "Endpoints", 0, 0, NULL }, { WIRESHARK_STOCK_EXPERT_INFO, "Expert Info", 0, 0, NULL }, { WIRESHARK_STOCK_GRAPHS, "Graphs", 0, 0, NULL }, { WIRESHARK_STOCK_FLOW_GRAPH, "Flow Graph", 0, 0, NULL }, { WIRESHARK_STOCK_TELEPHONY, "Telephony", 0, 0, NULL }, { WIRESHARK_STOCK_DECODE_AS, "Decode As", 0, 0, NULL }, { WIRESHARK_STOCK_CHECKBOX, "Checkbox", 0, 0, NULL }, { WIRESHARK_STOCK_FILE_SET_LIST, "List Files", 0, 0, NULL }, { WIRESHARK_STOCK_FILE_SET_NEXT, "Next File", 0, 0, NULL }, { WIRESHARK_STOCK_FILE_SET_PREVIOUS, "Previous File", 0, 0, NULL }, { WIRESHARK_STOCK_FILTER_OUT_STREAM, "Filter Out This Stream", 0, 0, NULL }, { WIRESHARK_STOCK_ENABLE, "Enable", 0, 0, NULL }, { WIRESHARK_STOCK_DISABLE, "Disable", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR1, "Color 1", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR2, "Color 2", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR3, "Color 3", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR4, "Color 4", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR5, "Color 5", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR6, "Color 6", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR7, "Color 7", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR8, "Color 8", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR9, "Color 9", 0, 0, NULL }, { WIRESHARK_STOCK_COLOR0, "Color 10", 0, 0, NULL }, { WIRESHARK_STOCK_DECODE, "Decode", 0, 0, NULL }, { WIRESHARK_STOCK_AUDIO_PLAYER, "Player", 0, 0, NULL }, { WIRESHARK_STOCK_VOIP_FLOW, "Flow", 0, 0, NULL }, { WIRESHARK_STOCK_TELEPHONE, "Telephone", 0, 0, NULL }, { WIRESHARK_STOCK_PREPARE_FILTER, "Prepare Filter", 0, 0, NULL }, { WIRESHARK_STOCK_ANALYZE, "Analyze", 0, 0, NULL }, { WIRESHARK_STOCK_FILE, "File", 0, 0, NULL } }; static const stock_pixmap_t pixmaps[] = { { WIRESHARK_STOCK_CAPTURE_INTERFACES, capture_interfaces_24_xpm }, { WIRESHARK_STOCK_CAPTURE_OPTIONS, capture_options_24_xpm }, { WIRESHARK_STOCK_CAPTURE_START, capture_start_24_xpm }, { WIRESHARK_STOCK_CAPTURE_STOP, capture_stop_24_xpm }, { WIRESHARK_STOCK_CAPTURE_RESTART, capture_restart_24_xpm }, { WIRESHARK_STOCK_CAPTURE_FILTER, capture_filter_24_xpm }, { WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, capture_filter_24_xpm }, { WIRESHARK_STOCK_CAPTURE_DETAILS, capture_details_24_xpm }, #ifdef HAVE_GEOIP { WIRESHARK_STOCK_MAP, internet_24_xpm}, #endif { WIRESHARK_STOCK_DISPLAY_FILTER, display_filter_24_xpm }, { WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, display_filter_24_xpm }, { WIRESHARK_STOCK_ABOUT, wsicon16_xpm }, { WIRESHARK_STOCK_COLORIZE, colorize_24_xpm }, { WIRESHARK_STOCK_AUTOSCROLL, autoscroll_24_xpm }, { WIRESHARK_STOCK_RESIZE_COLUMNS, resize_columns_24_xpm}, { WIRESHARK_STOCK_TIME, time_24_xpm}, { WIRESHARK_STOCK_INTERNET, internet_24_xpm}, { WIRESHARK_STOCK_WEB_SUPPORT, web_support_24_xpm}, { WIRESHARK_STOCK_WIKI, wiki_24_xpm}, { WIRESHARK_STOCK_CONVERSATIONS, conversations_16_xpm}, { WIRESHARK_STOCK_ENDPOINTS, endpoints_16_xpm}, { WIRESHARK_STOCK_EXPERT_INFO, expert_info_16_xpm}, { WIRESHARK_STOCK_GRAPHS, graphs_16_xpm}, { WIRESHARK_STOCK_FLOW_GRAPH, flow_graph_16_xpm}, { WIRESHARK_STOCK_TELEPHONY, telephony_16_xpm}, { WIRESHARK_STOCK_DECODE_AS, decode_as_16_xpm}, { WIRESHARK_STOCK_CHECKBOX, checkbox_16_xpm}, { WIRESHARK_STOCK_FILE_SET_LIST, file_set_list_16_xpm}, { WIRESHARK_STOCK_FILE_SET_NEXT, file_set_next_16_xpm}, { WIRESHARK_STOCK_FILE_SET_PREVIOUS, file_set_previous_16_xpm}, { WIRESHARK_STOCK_FILTER_OUT_STREAM, display_filter_24_xpm}, { WIRESHARK_STOCK_ENABLE, checkbox_16_xpm}, { WIRESHARK_STOCK_COLOR1, icon_color_1_xpm}, { WIRESHARK_STOCK_COLOR2, icon_color_2_xpm}, { WIRESHARK_STOCK_COLOR3, icon_color_3_xpm}, { WIRESHARK_STOCK_COLOR4, icon_color_4_xpm}, { WIRESHARK_STOCK_COLOR5, icon_color_5_xpm}, { WIRESHARK_STOCK_COLOR6, icon_color_6_xpm}, { WIRESHARK_STOCK_COLOR7, icon_color_7_xpm}, { WIRESHARK_STOCK_COLOR8, icon_color_8_xpm}, { WIRESHARK_STOCK_COLOR9, icon_color_9_xpm}, { WIRESHARK_STOCK_COLOR0, icon_color_0_xpm}, { WIRESHARK_STOCK_DECODE, decode_24_xpm}, { WIRESHARK_STOCK_AUDIO_PLAYER, audio_player_24_xpm}, { WIRESHARK_STOCK_VOIP_FLOW, voip_flow_24_xpm}, { WIRESHARK_STOCK_TELEPHONE, telephone_16_xpm}, { WIRESHARK_STOCK_PREPARE_FILTER, display_filter_24_xpm}, { WIRESHARK_STOCK_ANALYZE, analyze_24_xpm}, { WIRESHARK_STOCK_FILE, WiresharkDoc_24_xpm}, { NULL, NULL } }; /* Register our stock items */ gtk_stock_add (stock_items, G_N_ELEMENTS (stock_items)); /* Add our custom icon factory to the list of defaults */ factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(factory); /* Create the stock items to add into our icon factory */ for (i = 0; pixmaps[i].name != NULL; i++) { /* The default icon */ pixbuf = gdk_pixbuf_new_from_xpm_data((const char **) (pixmaps[i].xpm_data)); g_assert(pixbuf); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); /* XXX - add different sized icons here (some 16*16 icons look a bit blurred) */ /*gtk_icon_set_add_source(icon_set, const GtkIconSource *source);*/ gtk_icon_factory_add (factory, pixmaps[i].name, icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); } /* use default stock icons for Wireshark specifics where the icon metapher makes sense */ /* PLEASE DON'T REUSE STOCK ICONS IF THEY ARE USUALLY USED FOR SOME DIFFERENT MEANING!!!) */ icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OPEN); gtk_icon_factory_add(factory, WIRESHARK_STOCK_BROWSE, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OK); gtk_icon_factory_add(factory, WIRESHARK_STOCK_CREATE_STAT, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_SAVE); gtk_icon_factory_add(factory, WIRESHARK_STOCK_EXPORT, icon_set); /* XXX: needs a better icon */ icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OPEN); gtk_icon_factory_add(factory, WIRESHARK_STOCK_IMPORT, icon_set); /* XXX: needs a better icon */ icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_PROPERTIES); gtk_icon_factory_add(factory, WIRESHARK_STOCK_EDIT, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_ADD); gtk_icon_factory_add(factory, WIRESHARK_STOCK_ADD_EXPRESSION, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLEAR); gtk_icon_factory_add(factory, WIRESHARK_STOCK_CLEAR_EXPRESSION, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_APPLY); gtk_icon_factory_add(factory, WIRESHARK_STOCK_APPLY_EXPRESSION, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLEAR); gtk_icon_factory_add(factory, WIRESHARK_STOCK_DONT_SAVE, icon_set); gtk_icon_factory_add(factory, WIRESHARK_STOCK_QUIT_DONT_SAVE, icon_set); gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_DONT_SAVE, icon_set); gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_QUIT_DONT_SAVE, icon_set); icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_SAVE); gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_SAVE, icon_set); gtk_icon_factory_add(factory, WIRESHARK_STOCK_SAVE_ALL, icon_set); /* XXX: needs a better icon */ icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLOSE); gtk_icon_factory_add(factory, WIRESHARK_STOCK_DISABLE, icon_set); /* Drop our reference to the factory, GTK will hold a reference.*/ g_object_unref (G_OBJECT (factory)); }
/** * pixbuf_cache_register_stocks: register galeon icons with the gnome stock * system so people can theme our icons */ void gul_pixbuf_cache_register_stocks (void) { static gboolean done = FALSE; GtkIconFactory *factory; GtkIconSet *icon_set; GtkIconSource *icon_source; gint i; GtkStockItem items[] = { { GALEON_STOCK_SEPARATOR ,"_Separator", 0, 0, NULL }, { GALEON_STOCK_FOLDER ,"_Folder", 0, 0, NULL }, { GALEON_STOCK_DEFAULT ,"_Default", 0, 0, NULL }, { GALEON_STOCK_HISTORY ,"_History", 0, 0, NULL }, { GALEON_STOCK_FILTER ,"_Filter", 0, 0, NULL }, { GALEON_STOCK_POPUP_BLOCKED ,"_Popup blocked", 0, 0, NULL }, { GALEON_STOCK_SECURE ,"_Secure", 0, 0, NULL }, { GALEON_STOCK_INSECURE ,"_Insecure", 0, 0, NULL }, { GALEON_STOCK_DOWNLOAD ,"_Download", 0, 0, NULL }, { GALEON_STOCK_ENTRY ,"_Entry", 0, 0, NULL } }; const char * icon_theme_items[] = { STOCK_ZOOM, STOCK_NEW_TAB, STOCK_FULLSCREEN, STOCK_VIEW_SOURCE, STOCK_SEND_MAIL, STOCK_ADD_BOOKMARK, STOCK_SPINNER_REST, STOCK_SELECT_ALL, STOCK_EDIT_BOOKMARK, STOCK_CONNECT, STOCK_DISCONNECT, STOCK_LOCK_BROKEN }; if (done) { return; } done = TRUE; gtk_stock_add (items, G_N_ELEMENTS (items)); factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); for (i = 0; i < (gint) G_N_ELEMENTS (items); i++) { GdkPixbuf *pixbuf; gchar *fn; fn = g_strconcat (items[i].stock_id, ".png", NULL); pixbuf = gul_pixbuf_cache_get (fn); g_free (fn); icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); gtk_icon_factory_add (factory, items[i].stock_id, icon_set); gtk_icon_set_unref (icon_set); g_object_unref (G_OBJECT (pixbuf)); } for (i = 0; i < (int) G_N_ELEMENTS (icon_theme_items); i++) { icon_set = gtk_icon_set_new (); icon_source = gtk_icon_source_new (); gtk_icon_source_set_icon_name (icon_source, icon_theme_items[i]); gtk_icon_set_add_source (icon_set, icon_source); gtk_icon_factory_add (factory, icon_theme_items[i], icon_set); gtk_icon_set_unref (icon_set); gtk_icon_source_free (icon_source); } g_object_unref (G_OBJECT (factory)); }