int main (int argc, char **argv) { GdkDisplay *display; guint n_screens, i; gtk_init (&argc, &argv); display = gdk_display_get_default (); n_screens = gdk_display_get_n_screens (display); for (i = 0; i < n_screens; i++) { GtkStatusIcon *icon; icon = gtk_status_icon_new (); gtk_status_icon_set_screen (icon, gdk_display_get_screen (display, i)); update_icons (); g_signal_connect (icon, "size-changed", G_CALLBACK (size_changed_cb), NULL); g_signal_connect (icon, "notify::embedded", G_CALLBACK (embedded_changed_cb), NULL); g_signal_connect (icon, "notify::orientation", G_CALLBACK (orientation_changed_cb), NULL); g_signal_connect (icon, "notify::screen", G_CALLBACK (screen_changed_cb), NULL); g_print ("icon size %d\n", gtk_status_icon_get_size (icon)); g_signal_connect (icon, "activate", G_CALLBACK (icon_activated), NULL); g_signal_connect (icon, "popup-menu", G_CALLBACK (popup_menu), NULL); icons = g_slist_append (icons, icon); update_icons (); timeout = gdk_threads_add_timeout (2000, timeout_handler, icon); } gtk_main (); return 0; }
static gboolean timeout_handler (gpointer data) { if (status == TEST_STATUS_INFO) status = TEST_STATUS_QUESTION; else status = TEST_STATUS_INFO; update_icons (); return TRUE; }
/* load XMP metadata from a file (the file may contain other data) */ static void import_dialog_response (GtkWidget *dlg, gint response_id, gpointer data) { MetadataGui *mgui = data; g_return_if_fail (mgui != NULL); if (response_id == GTK_RESPONSE_OK) { gchar *filename; gchar *buffer; gsize buffer_length; GError *error = NULL; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dlg)); if (! g_file_get_contents (filename, &buffer, &buffer_length, &error)) { metadata_message_dialog (GTK_MESSAGE_ERROR, GTK_WINDOW (dlg), _("Open failed"), error->message); g_error_free (error); g_free (filename); return; } if (! xmp_model_parse_buffer (mgui->xmp_model, buffer, buffer_length, TRUE, &error)) { metadata_message_dialog (GTK_MESSAGE_ERROR, GTK_WINDOW (dlg), _("Open failed"), error->message); g_error_free (error); g_free (filename); return; } update_icons (mgui); g_free (buffer); g_free (filename); } gtk_widget_destroy (dlg); /* FIXME: destroy or unmap? */ }
void on_pane_icon_size_changed(FmConfig* cfg, gpointer unused) { update_icons(); }
static void on_pane_icon_size_changed(FmConfig* cfg, gpointer user_data) { FmPlacesModel* model = FM_PLACES_MODEL(user_data); update_icons(model); }
gboolean metadata_dialog (gint32 image_ID, XMPModel *xmp_model) { MetadataGui mgui; GtkWidget *notebook; gimp_ui_init (PLUG_IN_BINARY, FALSE); mgui.dlg = gimp_dialog_new (_("Image Properties"), PLUG_IN_ROLE, NULL, 0, gimp_standard_help_func, EDITOR_PROC, _("_Import XMP..."), RESPONSE_IMPORT, _("_Export XMP..."), RESPONSE_EXPORT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_alternative_button_order (GTK_DIALOG (mgui.dlg), RESPONSE_IMPORT, RESPONSE_EXPORT, GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL, -1); gimp_window_set_transient (GTK_WINDOW (mgui.dlg)); g_signal_connect (mgui.dlg, "response", G_CALLBACK (metadata_dialog_response), &mgui); g_signal_connect (mgui.dlg, "destroy", G_CALLBACK (gtk_main_quit), NULL); notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP); gtk_container_set_border_width (GTK_CONTAINER (notebook), 12); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (mgui.dlg))), notebook, TRUE, TRUE, 0); gtk_widget_show (notebook); mgui.xmp_model = xmp_model; mgui.edit_icon = gtk_widget_render_icon (mgui.dlg, GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU, NULL); mgui.auto_icon = gtk_widget_render_icon (mgui.dlg, GIMP_STOCK_WILBER, GTK_ICON_SIZE_MENU, NULL); update_icons (&mgui); mgui.run_ok = FALSE; /* add the tabs to the notebook */ add_description_tab (notebook, &mgui); add_copyright_tab (notebook); add_origin_tab (notebook); add_camera1_tab (notebook); add_camera2_tab (notebook); add_thumbnail_tab (notebook); add_advanced_tab (notebook, xmp_model_get_tree_model (mgui.xmp_model)); gtk_window_set_default_size (GTK_WINDOW (mgui.dlg), 400, 500); gtk_widget_show (mgui.dlg); /* run, baby, run! */ gtk_main (); /* clean up and return */ g_object_unref (mgui.auto_icon); g_object_unref (mgui.edit_icon); return mgui.run_ok; }