static void gui_restore_callback (Gimp *gimp, GimpInitStatusFunc status_callback) { GimpDisplayConfig *display_config = GIMP_DISPLAY_CONFIG (gimp->config); GimpGuiConfig *gui_config = GIMP_GUI_CONFIG (gimp->config); if (gimp->be_verbose) g_print ("INIT: %s\n", G_STRFUNC); gui_vtable_init (gimp); if (! gui_config->show_tooltips) gimp_help_disable_tooltips (); g_signal_connect (gui_config, "notify::show-tooltips", G_CALLBACK (gui_show_tooltips_notify), gimp); gimp_dialogs_show_help_button (gui_config->use_help && gui_config->show_help_button); g_signal_connect (gui_config, "notify::use-help", G_CALLBACK (gui_show_help_button_notify), gimp); g_signal_connect (gui_config, "notify::user-manual-online", G_CALLBACK (gui_user_manual_notify), gimp); g_signal_connect (gui_config, "notify::show-help-button", G_CALLBACK (gui_show_help_button_notify), gimp); g_signal_connect (gimp_get_user_context (gimp), "display-changed", G_CALLBACK (gui_display_changed), gimp); /* make sure the monitor resolution is valid */ if (display_config->monitor_res_from_gdk || display_config->monitor_xres < GIMP_MIN_RESOLUTION || display_config->monitor_yres < GIMP_MIN_RESOLUTION) { gdouble xres, yres; gimp_get_monitor_resolution (initial_screen, initial_monitor, &xres, &yres); g_object_set (gimp->config, "monitor-xresolution", xres, "monitor-yresolution", yres, "monitor-resolution-from-windowing-system", TRUE, NULL); } actions_init (gimp); menus_init (gimp, global_action_factory); gimp_render_init (gimp); dialogs_init (gimp, global_menu_factory); gimp_clipboard_init (gimp); gimp_clipboard_set_buffer (gimp, gimp->global_buffer); g_signal_connect (gimp, "buffer-changed", G_CALLBACK (gui_global_buffer_changed), NULL); gimp_devices_init (gimp); gimp_controllers_init (gimp); session_init (gimp); g_type_class_unref (g_type_class_ref (GIMP_TYPE_COLOR_SELECTOR_PALETTE)); status_callback (NULL, _("Tool Options"), 1.0); gimp_tools_restore (gimp); }
static void init_application () { GtkBuilder *builder = NULL; GtkWidget *window; GtkWidget *btn_capture; GtkWidget *infobar_close, *infobar_reconnect; GtkWidget *infobar_box; GtkWidget *vcheck_dont_show; GtkAboutDialog *about = NULL; unsigned int major, minor; char patch[9]; const gchar *tmp; gchar tmp2[1024]; builder = gtk_builder_new(); if (!gtk_builder_add_from_file(builder, "./osc.glade", NULL)) { gtk_builder_add_from_file(builder, OSC_GLADE_FILE_PATH "osc.glade", NULL); } else { GtkImage *logo; GdkPixbuf *pixbuf; GError *err = NULL; /* We are running locally, so load the local files */ logo = GTK_IMAGE(gtk_builder_get_object(builder, "about_ADI_logo")); g_object_set(logo, "file","./icons/ADIlogo.png", NULL); logo = GTK_IMAGE(gtk_builder_get_object(builder, "about_IIO_logo")); g_object_set(logo, "file","./icons/IIOlogo.png", NULL); about = GTK_ABOUT_DIALOG(gtk_builder_get_object(builder, "About_dialog")); pixbuf = gdk_pixbuf_new_from_file("./icons/osc128.png", &err); if (pixbuf) { g_object_set(about, "logo", pixbuf, NULL); g_object_unref(pixbuf); } } /* Override version in About menu with git branch and commit hash. */ if (!about) about = GTK_ABOUT_DIALOG(gtk_builder_get_object(builder, "About_dialog")); gtk_about_dialog_set_version(about, OSC_VERSION); iio_library_get_version(&major, &minor, patch); tmp = gtk_label_get_label(GTK_LABEL(gtk_builder_get_object(builder, "libiio_title"))); sprintf(tmp2, "%s\nlibiio version : %i.%i-%s\n", tmp, major, minor, patch); gtk_label_set_label(GTK_LABEL(gtk_builder_get_object(builder, "libiio_title")), tmp2); window = GTK_WIDGET(gtk_builder_get_object(builder, "main_menu")); notebook = GTK_WIDGET(gtk_builder_get_object(builder, "notebook")); btn_capture = GTK_WIDGET(gtk_builder_get_object(builder, "new_capture_plot")); tooltips_en = GTK_WIDGET(gtk_builder_get_object(builder, "menuitem_tooltips_en")); versioncheck_en = GTK_WIDGET(gtk_builder_get_object(builder, "menuitem_vcheck_startup")); vcheck_dont_show = GTK_WIDGET(gtk_builder_get_object(builder, "version_check_dont_show_again")); infobar_box = GTK_WIDGET(gtk_builder_get_object(builder, "connect_infobar_container")); infobar = gui_connection_infobar_new(&infobar_close, &infobar_reconnect); gtk_box_pack_start(GTK_BOX(infobar_box), infobar, FALSE, TRUE, 0); main_window = window; /* Connect signals. */ g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(application_quit), NULL); g_signal_connect(G_OBJECT(btn_capture), "activate", G_CALLBACK(new_plot_cb), NULL); g_signal_connect(G_OBJECT(tooltips_en), "toggled", G_CALLBACK(tooltips_enable_cb), NULL); g_signal_connect(G_OBJECT(versioncheck_en), "toggled", G_CALLBACK(versioncheck_en_cb), vcheck_dont_show); g_signal_connect(G_OBJECT(vcheck_dont_show), "toggled", G_CALLBACK(vcheck_dont_show_cb), versioncheck_en); g_signal_connect(G_OBJECT(infobar_close), "clicked", G_CALLBACK(infobar_hide_cb), NULL); g_signal_connect(G_OBJECT(infobar_reconnect), "clicked", G_CALLBACK(infobar_reconnect_cb), NULL); dialogs_init(builder); ctx = osc_create_context(); if (ctx) do_init(ctx); gtk_widget_show(window); }