int main (int argc, char *argv[]) { #ifndef WIN32 // Do not run as root. if (getuid () == 0) { cout << "Bibledit-Xiphos has not been designed to run with root privileges." << endl; return 1; } #endif // The necessary g* initializers, in the proper order. g_thread_init(NULL); g_type_init (); gtk_init (&argc, &argv); gchar * iconfile = g_build_filename (PACKAGE_DATA_DIR, "bibledit-xiphos.xpm", NULL); gtk_window_set_default_icon_from_file(iconfile, NULL); g_free (iconfile); // Initialize variables. event_id_rescan_bus = 0; last_message_id = "0"; quit = false; // Read settings. GKeyFile *keyfile = g_key_file_new(); gchar * key_file_name = registry_file_name (); g_key_file_load_from_file(keyfile, key_file_name, G_KEY_FILE_NONE, NULL); g_free (key_file_name); GtkBuilder *gtkbuilder; gtkbuilder = gtk_builder_new (); gchar * filename = g_build_filename (PACKAGE_DATA_DIR, "gtkbuilder.xml", NULL); gtk_builder_add_from_file (gtkbuilder, filename, NULL); g_free (filename); window = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "window")); g_signal_connect ((gpointer) window, "delete_event", G_CALLBACK (quit_program), NULL); gtk_widget_show_all (window); entry_url = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "entry_url")); gchar * url = g_key_file_get_string (keyfile, "settings", "bibledit-web-url", NULL); if (!url) { url = strdup ("http://localhost/bibledit"); } gtk_entry_set_text (GTK_ENTRY (entry_url), url); g_free (url); g_signal_connect((gpointer) entry_url, "changed", G_CALLBACK(on_entry_url_changed), NULL); button_url = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "button_url")); g_signal_connect((gpointer) button_url, "clicked", G_CALLBACK(on_button_url_clicked), NULL); label_url = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_url")); entry_user = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "entry_user")); gchar * user = g_key_file_get_string (keyfile, "settings", "bibledit-web-user", NULL); if (!user) { user = strdup (""); } gtk_entry_set_text (GTK_ENTRY (entry_user), user); g_free (user); g_signal_connect((gpointer) entry_user, "changed", G_CALLBACK(on_entry_user_changed), NULL); label_xiphos_process = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_xiphos_process")); label_id = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_id")); label_command = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_command")); label_body = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_body")); label_xiphos = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "label_xiphos")); button_hide = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "button_hide")); g_signal_connect((gpointer) button_hide, "clicked", G_CALLBACK(on_button_hide_clicked), NULL); g_key_file_free (keyfile); // We use asynchronous transport, so that we can send several messages simultanously. session = soup_session_async_new_with_options (SOUP_SESSION_USER_AGENT, "bibledit-xiphos/1.0", NULL); start_xiphos_web_listener (); // Obtain a connection to the Session Bus. GError *error = NULL; sigcon = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if(sigcon) { con = dbus_g_connection_get_connection(sigcon); } else { printf ("%s\n", error->message); fflush (stdout); g_error_free(error); return 1; } // Request our name on the DBus. if (con) { DBusError *dbuserror = NULL; int retval = dbus_bus_request_name(con, "org.bibledit.xiphos", 0, dbuserror); if (retval != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { if (dbus_error_is_set(dbuserror)) { printf ("%s\n", dbuserror->message); fflush (stdout); dbus_error_free(dbuserror); } } } // Connect to a couple of signals that indicate applications have started or have exited. // Then a rescan of the bus can show whether the programs that we're interested in run. proxy = NULL; if (sigcon) proxy = dbus_g_proxy_new_for_name(sigcon, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus"); if (proxy) { dbus_g_proxy_add_signal(proxy, "NameAcquired", G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_connect_signal(proxy, "NameAcquired", G_CALLBACK (on_name_acquired), NULL, NULL); dbus_g_proxy_add_signal(proxy, "NameOwnerChanged", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_connect_signal(proxy, "NameOwnerChanged", G_CALLBACK (on_name_owner_changed), NULL, NULL); dbus_g_proxy_add_signal(proxy, "NameLost", G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_connect_signal(proxy, "NameLost", G_CALLBACK (on_name_lost), NULL, NULL); } // Signal trapping for doing a clean exit. signal(SIGINT, sigproc); signal(SIGQUIT, sigquit); // Main loop. gtk_main(); // Destroy any pending timeout. destroy_source(event_id_rescan_bus); // Abort the session including the listeners soup_session_abort (session); // The connection obtained through dbus_g_connection_get_connection does not have its reference count incremented. // Therefore it should not be unreferenced. // dbus_connection_unref(con); // Destroy the proxy. if (proxy) { g_object_unref(proxy); } // Well done. return 0; }
gint display_action_dbox(gchar *target) { GtkBuilder *builder; GError* error = NULL; GtkWidget *dbox; GtkWidget *data; GtkTreeIter iter; GList *sel; int button = 0; gint result; gboolean empty = TRUE; // update folder listing (if supported) if (!(ticalcs_calc_features(calc_handle) & FTS_SILENT) ) return BUTTON1; else { if(remote.var_tree == NULL) { if (tilp_dirlist_remote()) return BUTTON1; ctree_refresh(); labels_refresh(); } } // box creation builder = gtk_builder_new(); if (!gtk_builder_add_from_file (builder, tilp_paths_build_builder("action.ui"), &error)) { g_warning (_("Couldn't load builder file: %s\n"), error->message); g_error_free (error); return 0; // THIS RETURNS ! } gtk_builder_connect_signals(builder, NULL); dbox = GTK_WIDGET (gtk_builder_get_object (builder, "action_dbox")); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dbox), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL,-1); clist = data = GTK_WIDGET (gtk_builder_get_object (builder, "treeview1")); // clist creation create_clist(data); // fill model for (sel = local.selection1; sel != NULL; sel = sel->next) { FileEntry *f = (FileEntry *)sel->data; FileContent *c = (FileContent *)f->content1; if(f->content1 == NULL) // file can't be loaded continue; // we have now 1 VarEntry per FileContent { VarEntry *v = c->entries[0]; VarEntry *w; gchar **row_text = g_malloc0(5 * sizeof(gchar *)); char *trans; char full_name[260]; // modify attr or folder if target is specified if(strcmp(target, "")) { if(!strcmp(target, "<FLASH>")) { v->attr = ATTRB_ARCHIVED; } else { strcpy(v->folder, target); } } // search for matching var tifiles_build_fullname(options.calc_model, full_name, v->folder, v->name); trans = ticonv_varname_to_utf8(options.calc_model, (const char *)full_name, v->type); w = ticalcs_dirlist_ve_exist(remote.var_tree, v); if (w == NULL) continue; if(w->attr == ATTRB_LOCKED || w->attr == ATTRB_ARCHIVED) v->action = ACT_SKIP; else v->action = ACT_SKIP; //don't overwrite as default behaviour // file contains an already existing var: add it to the window row_text[0] = trans; row_text[1] = g_strdup(tifiles_attribute_to_string(v->attr)); row_text[2] = g_strdup(f->name); row_text[3] = g_strdup(action2string(v->action)); tilp_vars_translate(row_text[0]); gtk_list_store_append(list, &iter); gtk_list_store_set(list, &iter, COLUMN_VAR, row_text[0], COLUMN_ATTR, row_text[1], COLUMN_FILE, row_text[2], COLUMN_ACTION, row_text[3], COLUMN_DATA_F, (gpointer)f, COLUMN_DATA_V, (gpointer)v, -1); g_strfreev(row_text); empty = FALSE; } } if (empty == TRUE) { button = BUTTON1; // skip box as ok goto out_clean; } // select all vars { GtkTreeView *view = GTK_TREE_VIEW(clist); GtkTreeSelection *sel2; sel2 = gtk_tree_view_get_selection(view); gtk_tree_selection_select_all(sel2); } // box running gtk_dialog_set_default_response(GTK_DIALOG(dbox), GTK_RESPONSE_CANCEL); result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: button = BUTTON1; break; case GTK_RESPONSE_CANCEL: button = BUTTON2; default: button = BUTTON2; break; } out_clean: gtk_widget_destroy(dbox); return button; }
static void show_dialog (MateDACapplet* capplet, const gchar* start_page) { GObject *obj; GtkBuilder *builder; guint builder_result; capplet->builder = builder = gtk_builder_new (); if (g_file_test (MATECC_UI_DIR "/mate-default-applications-properties.ui", G_FILE_TEST_EXISTS) != FALSE) { builder_result = gtk_builder_add_from_file (builder, MATECC_UI_DIR "/mate-default-applications-properties.ui", NULL); } else { builder_result = gtk_builder_add_from_file (builder, "./mate-default-applications-properties.ui", NULL); } if (builder_result == 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not load the main interface")); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("Please make sure that the applet " "is properly installed")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); exit (EXIT_FAILURE); } capplet->window = _gtk_builder_get_widget (builder,"preferred_apps_dialog"); g_signal_connect (capplet->window, "response", G_CALLBACK (close_cb), NULL); capplet->web_browser_command_entry = _gtk_builder_get_widget (builder, "web_browser_command_entry"); capplet->web_browser_command_label = _gtk_builder_get_widget (builder, "web_browser_command_label"); capplet->web_browser_terminal_checkbutton = _gtk_builder_get_widget(builder, "web_browser_terminal_checkbutton"); capplet->default_radiobutton = _gtk_builder_get_widget (builder, "web_browser_default_radiobutton"); capplet->new_win_radiobutton = _gtk_builder_get_widget (builder, "web_browser_new_win_radiobutton"); capplet->new_tab_radiobutton = _gtk_builder_get_widget (builder, "web_browser_new_tab_radiobutton"); capplet->mail_reader_command_entry = _gtk_builder_get_widget (builder, "mail_reader_command_entry"); capplet->mail_reader_command_label = _gtk_builder_get_widget (builder, "mail_reader_command_label"); capplet->mail_reader_terminal_checkbutton = _gtk_builder_get_widget (builder, "mail_reader_terminal_checkbutton"); capplet->terminal_command_entry = _gtk_builder_get_widget (builder, "terminal_command_entry"); capplet->terminal_command_label = _gtk_builder_get_widget (builder, "terminal_command_label"); capplet->terminal_exec_flag_entry = _gtk_builder_get_widget (builder, "terminal_exec_flag_entry"); capplet->terminal_exec_flag_label = _gtk_builder_get_widget (builder, "terminal_exec_flag_label"); capplet->media_player_command_entry = _gtk_builder_get_widget (builder, "media_player_command_entry"); capplet->media_player_command_label = _gtk_builder_get_widget (builder, "media_player_command_label"); capplet->media_player_terminal_checkbutton = _gtk_builder_get_widget (builder, "media_player_terminal_checkbutton"); capplet->visual_command_entry = _gtk_builder_get_widget (builder, "visual_command_entry"); capplet->visual_command_label = _gtk_builder_get_widget (builder, "visual_command_label"); capplet->visual_startup_checkbutton = _gtk_builder_get_widget (builder, "visual_start_checkbutton"); capplet->mobility_command_entry = _gtk_builder_get_widget (builder, "mobility_command_entry"); capplet->mobility_command_label = _gtk_builder_get_widget (builder, "mobility_command_label"); capplet->mobility_startup_checkbutton = _gtk_builder_get_widget (builder, "mobility_start_checkbutton"); capplet->web_combo_box = _gtk_builder_get_widget (builder, "web_browser_combobox"); capplet->mail_combo_box = _gtk_builder_get_widget (builder, "mail_reader_combobox"); capplet->term_combo_box = _gtk_builder_get_widget (builder, "terminal_combobox"); capplet->media_combo_box = _gtk_builder_get_widget (builder, "media_player_combobox"); capplet->visual_combo_box = _gtk_builder_get_widget (builder, "visual_combobox"); capplet->mobility_combo_box = _gtk_builder_get_widget (builder, "mobility_combobox"); g_signal_connect (capplet->window, "screen-changed", G_CALLBACK (screen_changed_cb), capplet); screen_changed_cb (capplet->window, gdk_screen_get_default (), capplet); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->web_combo_box), capplet->web_browsers); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->mail_combo_box), capplet->mail_readers); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->term_combo_box), capplet->terminals); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->media_combo_box), capplet->media_players); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->visual_combo_box), capplet->visual_ats); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->mobility_combo_box), capplet->mobility_ats); g_signal_connect (capplet->web_combo_box, "changed", G_CALLBACK (web_combo_changed_cb), capplet); g_signal_connect (capplet->mail_combo_box, "changed", G_CALLBACK (mail_combo_changed_cb), capplet); g_signal_connect (capplet->term_combo_box, "changed", G_CALLBACK (terminal_combo_changed_cb), capplet); g_signal_connect (capplet->media_combo_box, "changed", G_CALLBACK (media_combo_changed_cb), capplet); g_signal_connect (capplet->visual_combo_box, "changed", G_CALLBACK (visual_combo_changed_cb), capplet); g_signal_connect (capplet->mobility_combo_box, "changed", G_CALLBACK (mobility_combo_changed_cb), capplet); g_signal_connect (capplet->default_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); g_signal_connect (capplet->new_win_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); g_signal_connect (capplet->new_tab_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); /* Setup MateConfPropertyEditors */ /* Web Browser */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_HTTP_EXEC, capplet->web_combo_box, "conv-from-widget-cb", web_combo_conv_from_widget, "conv-to-widget-cb", web_combo_conv_to_widget, "data", capplet, NULL); obj = mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_HTTP_EXEC, capplet->web_browser_command_entry, NULL); g_signal_connect (obj, "value-changed", G_CALLBACK (web_mateconf_changed_cb), capplet); obj = mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_HTTP_NEEDS_TERM, capplet->web_browser_terminal_checkbutton, NULL); g_signal_connect (obj, "value-changed", G_CALLBACK (web_mateconf_changed_cb), capplet); /* Mailer */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MAILER_EXEC, capplet->mail_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->mail_readers, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MAILER_EXEC, capplet->mail_reader_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MAILER_NEEDS_TERM, capplet->mail_reader_terminal_checkbutton, NULL); /* Media player */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MEDIA_EXEC, capplet->media_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->media_players, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MEDIA_EXEC, capplet->media_player_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MEDIA_NEEDS_TERM, capplet->media_player_terminal_checkbutton, NULL); /* Terminal */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC, capplet->term_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->terminals, NULL); mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, capplet->term_combo_box, "conv-from-widget-cb", combo_conv_from_widget_term_flag, "conv-to-widget-cb", combo_conv_to_widget_term_flag, "data", capplet->terminals, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC, capplet->terminal_command_entry, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, capplet->terminal_exec_flag_entry, NULL); /* Visual */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_VISUAL_EXEC, capplet->visual_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->visual_ats, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_VISUAL_EXEC, capplet->visual_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_VISUAL_STARTUP, capplet->visual_startup_checkbutton, NULL); /* Mobility */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MOBILITY_EXEC, capplet->mobility_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->mobility_ats, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MOBILITY_EXEC, capplet->mobility_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MOBILITY_STARTUP, capplet->mobility_startup_checkbutton, NULL); gtk_window_set_icon_name (GTK_WINDOW (capplet->window), "preferences-desktop-default-applications"); if (start_page != NULL) { gchar *page_name; GtkWidget *w; page_name = g_strconcat (start_page, "_vbox", NULL); w = _gtk_builder_get_widget (builder, page_name); if (w != NULL) { GtkNotebook *nb; gint pindex; nb = GTK_NOTEBOOK (_gtk_builder_get_widget (builder, "preferred_apps_notebook")); pindex = gtk_notebook_page_num (nb, w); if (pindex != -1) gtk_notebook_set_current_page (nb, pindex); } g_free (page_name); } gtk_widget_show (capplet->window); }
static gint on_ask_rename(FmFileOpsJob* job, FmFileInfo* src, FmFileInfo* dest, char** new_name, FmProgressDisplay* data) { int res; GtkBuilder* builder; GtkDialog *dlg; GtkImage *src_icon, *dest_icon; GtkLabel *src_fi, *dest_fi; GtkEntry *filename; GtkToggleButton *apply_all; char* tmp; const char* disp_size; FmPath* path; FmIcon* icon; FmFileOpOption options; gboolean no_valid_dest; /* return default operation if the user has set it */ if(data->default_opt) return data->default_opt; no_valid_dest = (fm_file_info_get_desc(dest) == NULL); builder = gtk_builder_new(); path = fm_file_info_get_path(dest); icon = fm_file_info_get_icon(src); if(data->timer) g_timer_stop(data->timer); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); ensure_dlg(data); gtk_builder_add_from_file(builder, PACKAGE_UI_DIR "/ask-rename.ui", NULL); dlg = GTK_DIALOG(gtk_builder_get_object(builder, "dlg")); src_icon = GTK_IMAGE(gtk_builder_get_object(builder, "src_icon")); src_fi = GTK_LABEL(gtk_builder_get_object(builder, "src_fi")); dest_icon = GTK_IMAGE(gtk_builder_get_object(builder, "dest_icon")); dest_fi = GTK_LABEL(gtk_builder_get_object(builder, "dest_fi")); filename = GTK_ENTRY(gtk_builder_get_object(builder, "filename")); apply_all = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "apply_all")); gtk_window_set_transient_for(GTK_WINDOW(dlg), GTK_WINDOW(data->dlg)); gtk_image_set_from_gicon(src_icon, G_ICON(icon), GTK_ICON_SIZE_DIALOG); disp_size = fm_file_info_get_disp_size(src); if(disp_size) { tmp = g_strdup_printf(_("Type: %s\nSize: %s\nModified: %s"), fm_file_info_get_desc(src), disp_size, fm_file_info_get_disp_mtime(src)); } else { tmp = g_strdup_printf(_("Type: %s\nModified: %s"), fm_file_info_get_desc(src), fm_file_info_get_disp_mtime(src)); } gtk_label_set_text(src_fi, tmp); g_free(tmp); gtk_image_set_from_gicon(dest_icon, G_ICON(icon), GTK_ICON_SIZE_DIALOG); disp_size = fm_file_info_get_disp_size(dest); if(disp_size) { tmp = g_strdup_printf(_("Type: %s\nSize: %s\nModified: %s"), fm_file_info_get_desc(dest), disp_size, fm_file_info_get_disp_mtime(dest)); } else if (no_valid_dest) { tmp = NULL; gtk_widget_destroy(GTK_WIDGET(dest_icon)); gtk_widget_destroy(GTK_WIDGET(dest_fi)); /* FIXME: change texts in dialog appropriately */ } else { tmp = g_strdup_printf(_("Type: %s\nModified: %s"), fm_file_info_get_desc(dest), fm_file_info_get_disp_mtime(dest)); } if (tmp) gtk_label_set_text(dest_fi, tmp); g_free(tmp); options = fm_file_ops_job_get_options(job); if (!(options & FM_FILE_OP_RENAME)) { GtkWidget *widget = GTK_WIDGET(gtk_builder_get_object(builder, "rename")); gtk_widget_destroy(widget); } if (!(options & FM_FILE_OP_OVERWRITE) || no_valid_dest) { GtkWidget *widget = GTK_WIDGET(gtk_builder_get_object(builder, "overwrite")); gtk_widget_destroy(widget); } if (!(options & FM_FILE_OP_SKIP)) { GtkWidget *widget = GTK_WIDGET(gtk_builder_get_object(builder, "skip")); gtk_widget_destroy(widget); } tmp = g_filename_display_name(fm_path_get_basename(path)); gtk_entry_set_text(filename, tmp); g_object_set_data_full(G_OBJECT(filename), "old_name", tmp, g_free); g_signal_connect(filename, "changed", G_CALLBACK(on_filename_changed), gtk_builder_get_object(builder, "rename")); g_object_unref(builder); res = gtk_dialog_run(dlg); switch(res) { case RESPONSE_RENAME: *new_name = g_strdup(gtk_entry_get_text(filename)); res = FM_FILE_OP_RENAME; break; case RESPONSE_OVERWRITE: res = FM_FILE_OP_OVERWRITE; break; case RESPONSE_SKIP: res = FM_FILE_OP_SKIP; break; default: res = FM_FILE_OP_CANCEL; } if(gtk_toggle_button_get_active(apply_all)) { if(res == RESPONSE_OVERWRITE || res == FM_FILE_OP_SKIP) data->default_opt = res; } gtk_widget_destroy(GTK_WIDGET(dlg)); if(data->timer) g_timer_continue(data->timer); return res; }
/*************************** * * * Encodings dialog window * * * **************************/ void gxi_edit_encodings_clicked_cb (GtkButton *button, GncXmlImportData *data) { GtkBuilder *builder; GtkWidget *dialog; GtkListStore *list_store; GtkTreeStore *tree_store; GtkTreeIter iter, parent, *parent_ptr; GList *encodings_bak, *enc_iter; const gchar *encoding; system_encoding_type *system_enc; gpointer enc_ptr; gint i, j; builder = gtk_builder_new(); gnc_builder_add_from_file (builder, "assistant-xml-encoding.glade", "encodings_dialog"); dialog = GTK_WIDGET(gtk_builder_get_object (builder, "encodings_dialog")); data->encodings_dialog = dialog; // Set the style context for this assistant so it can be easily manipulated with css gnc_widget_set_style_context (GTK_WIDGET(dialog), "GncAssistXmlEncoding"); gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, data); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (data->assistant)); data->available_encs_view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "available_encs_view")); data->custom_enc_entry = GTK_WIDGET(gtk_builder_get_object (builder, "custom_enc_entry")); /* set up selected encodings list */ data->selected_encs_view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "selected_encs_view")); list_store = gtk_list_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER); for (enc_iter = data->encodings; enc_iter; enc_iter = enc_iter->next) { encoding = g_quark_to_string (GPOINTER_TO_UINT (enc_iter->data)); gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, ENC_COL_STRING, encoding, ENC_COL_QUARK, enc_iter->data, -1); } gtk_tree_view_insert_column_with_attributes ( data->selected_encs_view, -1, NULL, gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL); gtk_tree_view_set_model (data->selected_encs_view, GTK_TREE_MODEL (list_store)); g_object_unref (list_store); /* set up system encodings list */ data->available_encs_view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "available_encs_view")); tree_store = gtk_tree_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER); for (i = 0, system_enc = system_encodings; i < n_system_encodings; i++, system_enc++) { if (i == 0) { /* first system encoding */ parent_ptr = NULL; } else { parent_ptr = &iter; for (j = 0; j < system_enc->parent; j++) if (gtk_tree_model_iter_parent (GTK_TREE_MODEL (tree_store), &parent, &iter)) { /* go up one level */ iter = parent; } else { /* no parent to toplevel element */ parent_ptr = NULL; } } if (system_enc->encoding) enc_ptr = GUINT_TO_POINTER (g_quark_from_string (system_enc->encoding)); else enc_ptr = NULL; gtk_tree_store_append (tree_store, &iter, parent_ptr); gtk_tree_store_set (tree_store, &iter, ENC_COL_STRING, gettext (system_enc->text), ENC_COL_QUARK, enc_ptr, -1); } gtk_tree_view_insert_column_with_attributes ( data->available_encs_view, -1, NULL, gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL); gtk_tree_view_set_model (data->available_encs_view, GTK_TREE_MODEL (tree_store)); g_object_unref (tree_store); /* run the dialog */ encodings_bak = g_list_copy (data->encodings); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { g_list_free (encodings_bak); if (!g_list_find (data->encodings, GUINT_TO_POINTER (data->default_encoding))) { /* choose top level encoding then */ data->default_encoding = GPOINTER_TO_UINT (data->encodings->data); } /* update whole page */ gxi_check_file (data); gxi_update_default_enc_combo (data); gxi_update_string_box (data); gxi_update_conversion_forward (data); } else { g_list_free (data->encodings); data->encodings = encodings_bak; } g_object_unref(G_OBJECT(builder)); gtk_widget_destroy (dialog); data->encodings_dialog = NULL; }
/** * terminal_profile_edit: * @profile: a #GSettings * @transient_parent: a #GtkWindow, or %NULL * @widget_name: a widget name in the profile editor's UI, or %NULL * * Shows the profile editor with @profile, anchored to @transient_parent. * If @widget_name is non-%NULL, focuses the corresponding widget and * switches the notebook to its containing page. */ void terminal_profile_edit (GSettings *profile, GtkWindow *transient_parent, const char *widget_name) { TerminalSettingsList *profiles_list; GtkBuilder *builder; GError *error = NULL; GtkWidget *editor, *w; gs_free char *uuid = NULL; guint i; editor = g_object_get_data (G_OBJECT (profile), "editor-window"); if (editor) { terminal_util_dialog_focus_widget (editor, widget_name); gtk_window_set_transient_for (GTK_WINDOW (editor), GTK_WINDOW (transient_parent)); gtk_window_present (GTK_WINDOW (editor)); return; } #if !GTK_CHECK_VERSION (3, 19, 8) fixup_color_chooser_button (); #endif profiles_list = terminal_app_get_profiles_list (terminal_app_get ()); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/org/gnome/terminal/ui/profile-preferences.ui", &error); g_assert_no_error (error); editor = (GtkWidget *) gtk_builder_get_object (builder, "profile-editor-dialog"); g_object_set_data_full (G_OBJECT (editor), "builder", builder, (GDestroyNotify) g_object_unref); /* Store the dialogue on the profile, so we can acccess it above to check if * there's already a profile editor for this profile. */ g_object_set_data (G_OBJECT (profile), "editor-window", editor); g_signal_connect (editor, "destroy", G_CALLBACK (profile_editor_destroyed), profile); w = (GtkWidget *) gtk_builder_get_object (builder, "close-button"); g_signal_connect (w, "clicked", G_CALLBACK (editor_close_button_clicked_cb), editor); w = (GtkWidget *) gtk_builder_get_object (builder, "help-button"); g_signal_connect (w, "clicked", G_CALLBACK (editor_help_button_clicked_cb), editor); w = (GtkWidget *) gtk_builder_get_object (builder, "profile-editor-notebook"); gtk_widget_add_events (w, GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK); g_signal_connect (w, "scroll-event", G_CALLBACK (scroll_event_cb), NULL); uuid = terminal_settings_list_dup_uuid_from_child (profiles_list, profile); gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (builder, "profile-uuid")), uuid); g_signal_connect (gtk_builder_get_object (builder, "default-size-reset-button"), "clicked", G_CALLBACK (default_size_reset_cb), profile); w = (GtkWidget *) gtk_builder_get_object (builder, "color-scheme-combobox"); init_color_scheme_menu (w); /* Hook up the palette colorpickers and combo box */ for (i = 0; i < TERMINAL_PALETTE_SIZE; ++i) { char name[32]; char *text; g_snprintf (name, sizeof (name), "palette-colorpicker-%u", i + 1); w = (GtkWidget *) gtk_builder_get_object (builder, name); #if GTK_CHECK_VERSION (3, 19, 8) g_object_set (w, "show-editor", TRUE, NULL); #endif g_object_set_data (G_OBJECT (w), "palette-entry-index", GUINT_TO_POINTER (i)); text = g_strdup_printf (_("Choose Palette Color %u"), i + 1); gtk_color_button_set_title (GTK_COLOR_BUTTON (w), text); g_free (text); text = g_strdup_printf (_("Palette entry %u"), i + 1); gtk_widget_set_tooltip_text (w, text); g_free (text); g_signal_connect (w, "notify::rgba", G_CALLBACK (palette_color_notify_cb), profile); } profile_palette_notify_colorpickers_cb (profile, TERMINAL_PROFILE_PALETTE_KEY, editor); g_signal_connect (profile, "changed::" TERMINAL_PROFILE_PALETTE_KEY, G_CALLBACK (profile_palette_notify_colorpickers_cb), editor); w = (GtkWidget *) gtk_builder_get_object (builder, "palette-combobox"); g_signal_connect (w, "notify::active", G_CALLBACK (palette_scheme_combo_changed_cb), profile); profile_palette_notify_scheme_combo_cb (profile, TERMINAL_PROFILE_PALETTE_KEY, GTK_COMBO_BOX (w)); g_signal_connect (profile, "changed::" TERMINAL_PROFILE_PALETTE_KEY, G_CALLBACK (profile_palette_notify_scheme_combo_cb), w); /* Hook up the color scheme pickers and combo box */ w = (GtkWidget *) gtk_builder_get_object (builder, "color-scheme-combobox"); g_signal_connect (w, "notify::active", G_CALLBACK (color_scheme_combo_changed_cb), profile); profile_colors_notify_scheme_combo_cb (profile, NULL, GTK_COMBO_BOX (w)); g_signal_connect (profile, "changed::" TERMINAL_PROFILE_FOREGROUND_COLOR_KEY, G_CALLBACK (profile_colors_notify_scheme_combo_cb), w); g_signal_connect (profile, "changed::" TERMINAL_PROFILE_BACKGROUND_COLOR_KEY, G_CALLBACK (profile_colors_notify_scheme_combo_cb), w); w = GTK_WIDGET (gtk_builder_get_object (builder, "custom-command-entry")); custom_command_entry_changed_cb (GTK_ENTRY (w)); g_signal_connect (w, "changed", G_CALLBACK (custom_command_entry_changed_cb), NULL); g_signal_connect (gtk_builder_get_object (builder, "reset-compat-defaults-button"), "clicked", G_CALLBACK (reset_compat_defaults_cb), profile); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_VISIBLE_NAME_KEY, editor, "title", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) string_to_window_title, NULL, NULL, NULL); g_settings_bind (profile, TERMINAL_PROFILE_ALLOW_BOLD_KEY, gtk_builder_get_object (builder, "allow-bold-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_BACKGROUND_COLOR_KEY, gtk_builder_get_object (builder, "background-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_BACKSPACE_BINDING_KEY, gtk_builder_get_object (builder, "backspace-binding-combobox"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) string_to_enum, (GSettingsBindSetMapping) enum_to_string, vte_erase_binding_get_type, NULL); g_settings_bind (profile, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY, gtk_builder_get_object (builder, "bold-color-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY, gtk_builder_get_object (builder, "bold-colorpicker"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_BOLD_COLOR_KEY, gtk_builder_get_object (builder, "bold-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind (profile, TERMINAL_PROFILE_CURSOR_COLORS_SET_KEY, gtk_builder_get_object (builder, "cursor-colors-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_CURSOR_COLORS_SET_KEY, gtk_builder_get_object (builder, "cursor-foreground-colorpicker"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind (profile, TERMINAL_PROFILE_CURSOR_COLORS_SET_KEY, gtk_builder_get_object (builder, "cursor-background-colorpicker"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_CURSOR_FOREGROUND_COLOR_KEY, gtk_builder_get_object (builder, "cursor-foreground-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_CURSOR_BACKGROUND_COLOR_KEY, gtk_builder_get_object (builder, "cursor-background-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind (profile, TERMINAL_PROFILE_HIGHLIGHT_COLORS_SET_KEY, gtk_builder_get_object (builder, "highlight-colors-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_HIGHLIGHT_COLORS_SET_KEY, gtk_builder_get_object (builder, "highlight-foreground-colorpicker"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind (profile, TERMINAL_PROFILE_HIGHLIGHT_COLORS_SET_KEY, gtk_builder_get_object (builder, "highlight-background-colorpicker"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_HIGHLIGHT_FOREGROUND_COLOR_KEY, gtk_builder_get_object (builder, "highlight-foreground-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_HIGHLIGHT_BACKGROUND_COLOR_KEY, gtk_builder_get_object (builder, "highlight-background-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_NO_SENSITIVITY, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_CURSOR_SHAPE_KEY, gtk_builder_get_object (builder, "cursor-shape-combobox"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) string_to_enum, (GSettingsBindSetMapping) enum_to_string, vte_cursor_shape_get_type, NULL); g_settings_bind (profile, TERMINAL_PROFILE_CUSTOM_COMMAND_KEY, gtk_builder_get_object (builder, "custom-command-entry"), "text", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS_KEY, gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "default-size-columns-spinbutton"))), "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS_KEY, gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "default-size-rows-spinbutton"))), "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_DELETE_BINDING_KEY, gtk_builder_get_object (builder, "delete-binding-combobox"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) string_to_enum, (GSettingsBindSetMapping) enum_to_string, vte_erase_binding_get_type, NULL); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_EXIT_ACTION_KEY, gtk_builder_get_object (builder, "exit-action-combobox"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) string_to_enum, (GSettingsBindSetMapping) enum_to_string, terminal_exit_action_get_type, NULL); g_settings_bind (profile, TERMINAL_PROFILE_FONT_KEY, gtk_builder_get_object (builder, "font-selector"), "font-name", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_FOREGROUND_COLOR_KEY, gtk_builder_get_object (builder, "foreground-colorpicker"), "rgba", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) s_to_rgba, (GSettingsBindSetMapping) rgba_to_s, NULL, NULL); g_settings_bind (profile, TERMINAL_PROFILE_LOGIN_SHELL_KEY, gtk_builder_get_object (builder, "login-shell-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_VISIBLE_NAME_KEY, gtk_builder_get_object (builder, "profile-name-entry"), "text", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_SCROLLBACK_LINES_KEY, gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "scrollback-lines-spinbutton"))), "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_SCROLLBACK_UNLIMITED_KEY, gtk_builder_get_object (builder, "scrollback-limited-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_INVERT_BOOLEAN); g_settings_bind (profile, TERMINAL_PROFILE_SCROLLBACK_UNLIMITED_KEY, gtk_builder_get_object (builder, "scrollback-box"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_SCROLLBAR_POLICY_KEY, gtk_builder_get_object (builder, "scrollbar-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET, (GSettingsBindGetMapping) scrollbar_policy_to_bool, (GSettingsBindSetMapping) bool_to_scrollbar_policy, NULL, NULL); g_settings_bind (profile, TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY, gtk_builder_get_object (builder, "scroll-on-keystroke-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY, gtk_builder_get_object (builder, "scroll-on-output-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY, gtk_builder_get_object (builder, "custom-font-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET | G_SETTINGS_BIND_INVERT_BOOLEAN); g_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY, gtk_builder_get_object (builder, "use-custom-command-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_USE_THEME_COLORS_KEY, gtk_builder_get_object (builder, "use-theme-colors-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_AUDIBLE_BELL_KEY, gtk_builder_get_object (builder, "bell-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); g_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY, gtk_builder_get_object (builder, "custom-command-box"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind (profile, TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY, gtk_builder_get_object (builder, "font-selector"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind (profile, TERMINAL_PROFILE_USE_THEME_COLORS_KEY, gtk_builder_get_object (builder, "colors-box"), "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_NO_SENSITIVITY); g_settings_bind_writable (profile, TERMINAL_PROFILE_PALETTE_KEY, gtk_builder_get_object (builder, "palette-box"), "sensitive", FALSE); g_settings_bind (profile, TERMINAL_PROFILE_REWRAP_ON_RESIZE_KEY, gtk_builder_get_object (builder, "rewrap-on-resize-checkbutton"), "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); /* Compatibility options */ w = (GtkWidget *) gtk_builder_get_object (builder, "encoding-combobox"); init_encodings_combo (w); g_settings_bind (profile, TERMINAL_PROFILE_ENCODING_KEY, w, "active-id", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); w = (GtkWidget *) gtk_builder_get_object (builder, "cjk-ambiguous-width-combobox"); g_settings_bind (profile, TERMINAL_PROFILE_CJK_UTF8_AMBIGUOUS_WIDTH_KEY, w, "active-id", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); /* Finished! */ terminal_util_bind_mnemonic_label_sensitivity (editor); terminal_util_dialog_focus_widget (editor, widget_name); gtk_window_set_transient_for (GTK_WINDOW (editor), GTK_WINDOW (transient_parent)); gtk_window_present (GTK_WINDOW (editor)); }
boolean CDisplayCueImage::initialize() { m_bError=false; //>>>> Reading Settings: //Number of Cues: CString l_sSettingValue; m_ui32NuberOfCue = getStaticBoxContext().getSettingCount()/2 -1; //Do we display the images in full screen? getBoxAlgorithmContext()->getStaticBoxContext()->getSettingValue(0, l_sSettingValue); m_bFullScreen=(l_sSettingValue==CString("true")?true:false); //Clear screen stimulation: getBoxAlgorithmContext()->getStaticBoxContext()->getSettingValue(1, l_sSettingValue); m_ui64ClearScreenStimulation=getTypeManager().getEnumerationEntryValueFromName(OV_TypeId_Stimulation, l_sSettingValue); //Stimulation ID and images file names for each cue m_pImageNames = new CString[m_ui32NuberOfCue]; m_pStimulationsId = new uint64[m_ui32NuberOfCue]; for(uint32 i=0; i<m_ui32NuberOfCue; i++) { getBoxAlgorithmContext()->getStaticBoxContext()->getSettingValue(2*i+2, m_pImageNames[i]); getBoxAlgorithmContext()->getStaticBoxContext()->getSettingValue(2*i+3, l_sSettingValue); m_pStimulationsId[i]=getTypeManager().getEnumerationEntryValueFromName(OV_TypeId_Stimulation, l_sSettingValue); } //>>>> Initialisation m_oStimulationDecoder.initialize(*this); m_oStimulationEncoder.initialize(*this); //load the gtk builder interface m_pBuilderInterface=gtk_builder_new(); gtk_builder_add_from_file(m_pBuilderInterface, "../share/openvibe-plugins/simple-visualisation/openvibe-simple-visualisation-DisplayCueImage.ui", NULL); if(!m_pBuilderInterface) { m_bError = true; getBoxAlgorithmContext()->getPlayerContext()->getLogManager() << LogLevel_ImportantWarning << "Couldn't load the interface !"; return false; } gtk_builder_connect_signals(m_pBuilderInterface, NULL); m_pDrawingArea = GTK_WIDGET(gtk_builder_get_object(m_pBuilderInterface, "DisplayCueImageDrawingArea")); g_signal_connect(G_OBJECT(m_pDrawingArea), "expose_event", G_CALLBACK(DisplayCueImage_RedrawCallback), this); g_signal_connect(G_OBJECT(m_pDrawingArea), "size-allocate", G_CALLBACK(DisplayCueImage_SizeAllocateCallback), this); //set widget bg color gtk_widget_modify_bg(m_pDrawingArea, GTK_STATE_NORMAL, &m_oBackgroundColor); gtk_widget_modify_bg(m_pDrawingArea, GTK_STATE_PRELIGHT, &m_oBackgroundColor); gtk_widget_modify_bg(m_pDrawingArea, GTK_STATE_ACTIVE, &m_oBackgroundColor); gtk_widget_modify_fg(m_pDrawingArea, GTK_STATE_NORMAL, &m_oForegroundColor); gtk_widget_modify_fg(m_pDrawingArea, GTK_STATE_PRELIGHT, &m_oForegroundColor); gtk_widget_modify_fg(m_pDrawingArea, GTK_STATE_ACTIVE, &m_oForegroundColor); //Load the pictures: m_pOriginalPicture = new GdkPixbuf*[m_ui32NuberOfCue]; m_pScaledPicture = new GdkPixbuf*[m_ui32NuberOfCue]; for(uint32 i=0; i<m_ui32NuberOfCue; i++) { m_pOriginalPicture[i] = gdk_pixbuf_new_from_file_at_size(m_pImageNames[i], -1, -1, NULL); m_pScaledPicture[i]=0; if(!m_pOriginalPicture[i]) { getBoxAlgorithmContext()->getPlayerContext()->getLogManager() << LogLevel_Warning << "Error couldn't load ressource file : " << m_pImageNames[i] << "!\n"; m_bError = true; return false; } } getBoxAlgorithmContext()->getVisualisationContext()->setWidget(m_pDrawingArea); return true; }
/*----------导入功能up----------------------------------------------------------------*/ void create_view(GtkWidget *container,gpointer data)//容器管理的主界面 { GtkTreeViewColumn *column22; GtkTreeViewColumn *column33; GtkTreeViewColumn *column44; GtkWidget *window; //GtkWidget *combox_images; GtkBuilder *builder; GtkTreeIter iter; GtkWidget *button11; GtkWidget *button22; GtkWidget *button33; GtkWidget *button44; GtkWidget *button55; GtkWidget *button66; GtkWidget *button77; GtkWidget *button88; GtkWidget *button99; GtkWidget *button110; GtkCellRenderer *cell11; GtkListStore *list11; GtkCellRenderer *cell; GtkTreeSelection *selection; static int j; docker_contain(); builder=gtk_builder_new (); gtk_builder_add_from_file (builder,CONTAINER_MANAGE_FILE,NULL); window=GTK_WIDGET(gtk_builder_get_object (builder,CONTAINER_MANAGE_WINDOW)); gtk_window_set_title (window,_("contians manage")); gtk_widget_set_name(window, "nfs_container_mange_window"); button11=GTK_WIDGET(gtk_builder_get_object (builder,"button1")); button22=GTK_WIDGET(gtk_builder_get_object (builder,"button2")); button33=GTK_WIDGET(gtk_builder_get_object (builder,"button3")); button44=GTK_WIDGET(gtk_builder_get_object (builder,"button4")); button55=GTK_WIDGET(gtk_builder_get_object (builder,"button5")); button66=GTK_WIDGET(gtk_builder_get_object (builder,"button6")); button77=GTK_WIDGET(gtk_builder_get_object (builder,"button7")); button88=GTK_WIDGET(gtk_builder_get_object (builder,"button8")); button99=GTK_WIDGET(gtk_builder_get_object (builder,"button9")); button110=GTK_WIDGET(gtk_builder_get_object (builder,"button10")); column22=GTK_WIDGET(gtk_builder_get_object (builder,"treeviewcolumn1")); column33=GTK_WIDGET(gtk_builder_get_object (builder,"treeviewcolumn2")); column44=GTK_WIDGET(gtk_builder_get_object (builder,"treeviewcolumn3")); gtk_tree_view_column_set_title (column22,_("Mirror image")); cell=gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column22, cell,FALSE); gtk_tree_view_column_set_attributes(column22,cell,"text",0,NULL); gtk_tree_view_column_set_title (column33,"ID"); cell=gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column33,cell,FALSE); gtk_tree_view_column_set_attributes(column33,cell,"text",1,NULL); gtk_tree_view_column_set_title (column44,_("name_colum")); cell=gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column44,cell,FALSE); gtk_tree_view_column_set_attributes(column44,cell,"text",2,NULL); gtk_button_set_label (GTK_BUTTON(button11),_("starting contain and enter")); gtk_button_set_label (GTK_BUTTON(button22),_("stop contian")); gtk_button_set_label (GTK_BUTTON(button33),_("create gurd contian")); gtk_button_set_label (GTK_BUTTON(button44),_("create contian")); gtk_button_set_label (GTK_BUTTON(button55),_("export")); gtk_button_set_label (GTK_BUTTON(button66),_("ls starting contain")); gtk_button_set_label (GTK_BUTTON(button77),_("ls gurd contain")); gtk_button_set_label (GTK_BUTTON(button88),_("dele on contian")); gtk_button_set_label (GTK_BUTTON(button99),_("dele mul contians")); gtk_button_set_label (GTK_BUTTON(button110),_("import")); tree_view=GTK_WIDGET(gtk_builder_get_object (builder,"treeview1")); list11=gtk_list_store_new (4, G_TYPE_STRING,G_TYPE_STRING, G_TYPE_STRING,G_TYPE_STRING); gtk_tree_view_set_model (GTK_TREE_VIEW(tree_view),GTK_TREE_MODEL(list11)); selection=gtk_tree_view_get_selection (GTK_TREE_VIEW(tree_view)); //mod=gtk_tree_view_get_model (GTK_TREE_VIEW(tree_view)); g_signal_connect(G_OBJECT(tree_view),"cursor-changed",G_CALLBACK(clicked_row11),selection); //g_signal_connect(G_OBJECT(selection),"changed",G_CALLBACK(clicked_row11),selection); g_signal_connect(G_OBJECT(button11),"clicked",G_CALLBACK(button11_treeview_fun),selection); g_signal_connect(G_OBJECT(button88),"clicked",G_CALLBACK(button88_treeview_fun),selection); g_signal_connect(G_OBJECT(button44),"clicked",G_CALLBACK(button44_treeview_fun),selection); g_signal_connect(G_OBJECT(button33),"clicked",G_CALLBACK(button33_treeview_fun),selection); g_signal_connect(G_OBJECT(button99),"clicked",G_CALLBACK(button99_treeview_fun),selection); g_signal_connect(G_OBJECT(button66),"clicked",G_CALLBACK(button33_fun),"docker ps"); g_signal_connect(G_OBJECT(button22),"clicked",G_CALLBACK(button22_treeview_fun),selection); g_signal_connect(G_OBJECT(button110),"clicked",G_CALLBACK(import_selcet_file),window); g_signal_connect(G_OBJECT(button55),"clicked",G_CALLBACK(export_selcet_file),selection); g_signal_connect(G_OBJECT(button77),"clicked",G_CALLBACK(button77_lsgurd_fun),window); for(j=0;j<contains_num;j++){ gtk_list_store_append (list11,&iter); gtk_list_store_set (list11, &iter, 0,&a[j].image,-1); gtk_list_store_set (list11, &iter, 1,&a[j].id,-1); gtk_list_store_set (list11, &iter, 2,&a[j].name,-1); } g_object_unref (builder); gtk_widget_show_all (window); //return tree_view; }
static void activate (GApplication *app) { GtkBuilder *builder; GtkWindow *window; GtkWidget *widget; GtkTreeModel *model; GtkTreeIter iter; GError *error = NULL; GtkWidget *sw; GtkWidget *scrollbar; GtkWidget *menu; GtkWidget *item; static GActionEntry win_entries[] = { { "run", activate_run, NULL, NULL, NULL } }; builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/ui/main.ui", &error); if (error != NULL) { g_critical ("%s", error->message); exit (1); } window = (GtkWindow *)gtk_builder_get_object (builder, "window"); gtk_application_add_window (GTK_APPLICATION (app), window); g_action_map_add_action_entries (G_ACTION_MAP (window), win_entries, G_N_ELEMENTS (win_entries), window); notebook = (GtkWidget *)gtk_builder_get_object (builder, "notebook"); info_view = (GtkWidget *)gtk_builder_get_object (builder, "info-textview"); source_view = (GtkWidget *)gtk_builder_get_object (builder, "source-textview"); headerbar = (GtkWidget *)gtk_builder_get_object (builder, "headerbar"); treeview = (GtkWidget *)gtk_builder_get_object (builder, "treeview"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)); sw = (GtkWidget *)gtk_builder_get_object (builder, "source-scrolledwindow"); scrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (sw)); menu = gtk_menu_new (); item = gtk_menu_item_new_with_label ("Start"); g_signal_connect (item, "activate", G_CALLBACK (start_cb), scrollbar); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_label ("End"); g_signal_connect (item, "activate", G_CALLBACK (end_cb), scrollbar); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show_all (menu); g_signal_connect (scrollbar, "popup-menu", G_CALLBACK (scrollbar_popup), menu); load_file (gtk_demos[0].name, gtk_demos[0].filename); populate_model (model); g_signal_connect (treeview, "row-activated", G_CALLBACK (row_activated_cb), model); widget = (GtkWidget *)gtk_builder_get_object (builder, "treeview-selection"); g_signal_connect (widget, "changed", G_CALLBACK (selection_cb), model); gtk_tree_model_get_iter_first (gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)), &iter); gtk_tree_selection_select_iter (GTK_TREE_SELECTION (widget), &iter); gtk_tree_view_collapse_all (GTK_TREE_VIEW (treeview)); gtk_widget_show_all (GTK_WIDGET (window)); g_object_unref (builder); }
/* Initialize and display the preferences dialog. */ void terminal_preferences_dialog(GtkAction * action, LXTerminal * terminal) { Setting * setting = terminal->setting; GtkBuilder * builder = gtk_builder_new(); if ( ! gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "/lxterminal/lxterminal-preferences.ui", NULL)) { g_object_unref(builder); return; } GtkWidget * dialog = GTK_WIDGET(gtk_builder_get_object(builder, "lxterminal_preferences")); gtk_window_set_title(GTK_WINDOW(dialog), _("LXTerminal")); gtk_window_set_icon_from_file(GTK_WINDOW(dialog), PACKAGE_DATA_DIR "/pixmaps/lxterminal.png", NULL); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_dialog_response_event), terminal); GtkWidget * w = GTK_WIDGET(gtk_builder_get_object(builder, "terminal_font")); gtk_font_button_set_font_name(GTK_FONT_BUTTON(w), setting->font_name); g_signal_connect(G_OBJECT(w), "font-set", G_CALLBACK(preferences_dialog_font_set_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "background_color")); gtk_color_button_set_color(GTK_COLOR_BUTTON(w), &setting->background_color); gtk_color_button_set_alpha(GTK_COLOR_BUTTON(w), setting->background_alpha); g_signal_connect(G_OBJECT(w), "color-set", G_CALLBACK(preferences_dialog_background_color_set_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "foreground_color")); gtk_color_button_set_color(GTK_COLOR_BUTTON(w), &setting->foreground_color); g_signal_connect(G_OBJECT(w), "color-set", G_CALLBACK(preferences_dialog_foreground_color_set_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "allow_bold")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), ! setting->disallow_bold); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_allow_bold_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "cursor_blink")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->cursor_blink); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_cursor_blink_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "cursor_style_block")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), ! setting->cursor_underline); w = GTK_WIDGET(gtk_builder_get_object(builder, "cursor_style_underline")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->cursor_underline); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_cursor_underline_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "audible_bell")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->audible_bell); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_audible_bell_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "tab_position")); gtk_combo_box_set_active(GTK_COMBO_BOX(w), terminal_tab_get_position_id(setting->tab_position)); g_signal_connect(G_OBJECT(w), "changed", G_CALLBACK(preferences_dialog_tab_position_changed_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "scrollback_lines")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), setting->scrollback); g_signal_connect(G_OBJECT(w), "value-changed", G_CALLBACK(preferences_dialog_scrollback_value_changed_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "hide_scroll_bar")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->hide_scroll_bar); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_hide_scroll_bar_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "hide_menu_bar")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->hide_menu_bar); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_hide_menu_bar_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "hide_close_button")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->hide_close_button); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_hide_close_button_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "select_by_word")); gtk_entry_set_text(GTK_ENTRY(w), setting->word_selection_characters); g_signal_connect(G_OBJECT(w), "focus-out-event", G_CALLBACK(preferences_dialog_selection_focus_out_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "disable_f10")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->disable_f10); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_disable_f10_toggled_event), terminal); w = GTK_WIDGET(gtk_builder_get_object(builder, "disable_alt")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), setting->disable_alt); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(preferences_dialog_disable_alt_toggled_event), terminal); gtk_widget_show_all(dialog); g_object_unref(builder); }
/* Do the actual applet initialization */ static void init_wtapplet (PanelApplet *applet) { WTApplet *wtapplet = g_new0 (WTApplet, 1); wtapplet->applet = applet; wtapplet->settings = panel_applet_settings_new (applet, WINDOWTITLE_GSCHEMA); wtapplet->prefs = loadPreferences(wtapplet); wtapplet->activescreen = wnck_screen_get_default(); wnck_screen_force_update(wtapplet->activescreen); wtapplet->activeworkspace = wnck_screen_get_active_workspace(wtapplet->activescreen); wtapplet->activewindow = wnck_screen_get_active_window(wtapplet->activescreen); wtapplet->umaxedwindow = getUpperMaximized(wtapplet); wtapplet->rootwindow = getRootWindow(wtapplet->activescreen); wtapplet->prefbuilder = gtk_builder_new(); wtapplet->box = GTK_BOX(gtk_hbox_new(FALSE, 0)); wtapplet->icon = GTK_IMAGE(gtk_image_new()); wtapplet->title = GTK_LABEL(gtk_label_new(NULL)); wtapplet->eb_icon = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->eb_title = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->orient = panel_applet_get_orient(wtapplet->applet); wtapplet->size_hints = g_new(gint,2); // Widgets to eventboxes, eventboxes to box gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->icon), TRUE); gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->title), TRUE); gtk_container_add (GTK_CONTAINER (wtapplet->eb_icon), GTK_WIDGET(wtapplet->icon)); gtk_container_add (GTK_CONTAINER (wtapplet->eb_title), GTK_WIDGET(wtapplet->title)); gtk_event_box_set_visible_window (wtapplet->eb_icon, FALSE); gtk_event_box_set_visible_window (wtapplet->eb_title, FALSE); // Rotate & place elements setAlignment(wtapplet, (gdouble)wtapplet->prefs->alignment); placeWidgets(wtapplet); // Add box to applet gtk_container_add (GTK_CONTAINER(wtapplet->applet), GTK_WIDGET(wtapplet->box)); // Set event handling (icon & title clicks) g_signal_connect(G_OBJECT (wtapplet->eb_icon), "button-press-event", G_CALLBACK (icon_clicked), wtapplet); g_signal_connect(G_OBJECT (wtapplet->eb_title), "button-press-event", G_CALLBACK (title_clicked), wtapplet); // Global window tracking g_signal_connect(wtapplet->activescreen, "active-window-changed", G_CALLBACK (active_window_changed), wtapplet); // <-- this thing is crashing with compiz !!! g_signal_connect(wtapplet->activescreen, "viewports-changed", G_CALLBACK (viewports_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "active-workspace-changed", G_CALLBACK (active_workspace_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-closed", G_CALLBACK (window_closed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-opened", G_CALLBACK (window_opened), wtapplet); // g_signal_connect(G_OBJECT (wtapplet->title), "size-request", G_CALLBACK (applet_title_size_request), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "size-allocate", G_CALLBACK (applet_size_allocate), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-background", G_CALLBACK (applet_change_background), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-orient", G_CALLBACK (applet_change_orient), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-size", G_CALLBACK (applet_change_pixel_size), wtapplet); // Track active window changes wtapplet->active_handler_state = g_signal_connect(G_OBJECT (wtapplet->activewindow), "state-changed", G_CALLBACK (active_window_state_changed), wtapplet); wtapplet->active_handler_name = g_signal_connect(G_OBJECT (wtapplet->activewindow), "name-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); wtapplet->active_handler_icon = g_signal_connect(G_OBJECT (wtapplet->activewindow), "icon-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); // Setup applet right-click menu GSimpleActionGroup *action_group = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (action_group), windowtitle_menu_actions, G_N_ELEMENTS (windowtitle_menu_actions), wtapplet); panel_applet_setup_menu (applet, windowtitle_menu_items, action_group, GETTEXT_PACKAGE); gtk_widget_insert_action_group (GTK_WIDGET (wtapplet->applet), "windowtitle", G_ACTION_GROUP (action_group)); toggleExpand (wtapplet); toggleHidden (wtapplet); // Properly hide or show stuff updateTitle (wtapplet); }
void settings_show (GtkWidget *widget, SchematicView *sv) { gint i; GtkWidget *engine_group = NULL; GtkWidget *w, *pbox, *toplevel; GtkBuilder *gui; GError *perror = NULL; gchar *msg; Settings *s; Schematic *sm; g_return_if_fail (sv != NULL); // If no engine available, stop oregano if ((g_find_program_in_path (engine[0]) == NULL) && (g_find_program_in_path (engine[1]) == NULL)) { gchar *msg; msg = g_strdup_printf ( _("No engine allowing analysis is available.\n" "You might install one, at least! \n" "Either ngspice or gnucap.")); oregano_error_with_title (_("Could not create settings dialog"), msg); g_free (msg); return; } g_return_if_fail (sv != NULL); if ((gui = gtk_builder_new ()) == NULL) { oregano_error (_("Could not create settings dialog")); return; } gtk_builder_set_translation_domain (gui, NULL); sm = schematic_view_get_schematic (sv); s = schematic_get_settings (sm); // Only allow one instance of the property box per schematic. if (GTK_WIDGET (SETTINGS (s)->pbox)) { gdk_window_raise (gtk_widget_get_window ( GTK_WIDGET (SETTINGS (s)->pbox))); return; } if (gtk_builder_add_from_file (gui, OREGANO_UIDIR "/settings.ui", &perror) <= 0) { msg = perror->message; oregano_error_with_title (_("Could not create settings dialog"), msg); g_error_free (perror); return; } w = toplevel = GTK_WIDGET (gtk_builder_get_object (gui, "toplevel")); if (!w) { oregano_error (_("Could not create settings dialog")); return; } g_signal_connect (G_OBJECT (w), "delete_event", G_CALLBACK (delete_event_callback), s); pbox = toplevel; s->pbox = GTK_WIDGET (pbox); w = GTK_WIDGET (gtk_builder_get_object (gui, "close_bt")); g_signal_connect (G_OBJECT (w), "clicked", G_CALLBACK (apply_callback), s); w = GTK_WIDGET (gtk_builder_get_object (gui, "splash-enable")); s->w_show_splash = w; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), oregano.show_splash); w = GTK_WIDGET (gtk_builder_get_object (gui, "compress-enable")); s->w_compress_files = w; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), oregano.compress_files); w = GTK_WIDGET (gtk_builder_get_object (gui, "log-enable")); s->w_show_log = w; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), oregano.show_log); w = GTK_WIDGET (gtk_builder_get_object (gui, "grid-size")); gtk_widget_set_sensitive (w, FALSE); w = GTK_WIDGET (gtk_builder_get_object (gui, "realtime-enable")); gtk_widget_set_sensitive (w, FALSE); w = GTK_WIDGET (gtk_builder_get_object (gui, "engine_table")); for (i = 0; i < OREGANO_ENGINE_COUNT; i++) { if (engine_group) button[i] = gtk_radio_button_new_with_label_from_widget ( GTK_RADIO_BUTTON (engine_group), engine[i]); else button[i] = engine_group = gtk_radio_button_new_with_label_from_widget (NULL, engine[i]); g_object_set_data (G_OBJECT (button[i]), "id", GUINT_TO_POINTER (i)); gtk_grid_attach (GTK_GRID (w), button[i], 0, i, 1, 1); g_signal_connect (G_OBJECT (button[i]), "clicked", G_CALLBACK (set_engine_name), s); } // Is the engine available? // In that case the button is active if (g_find_program_in_path (engine[oregano.engine]) != NULL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button[oregano.engine]), TRUE); // Otherwise the button is inactive else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button[oregano.engine]), FALSE); // If no engine available, stop oregano if ((g_find_program_in_path (engine[0]) == NULL) && (g_find_program_in_path (engine[1]) == NULL)) { gchar *msg; msg = g_strdup_printf ( _("No engine allowing analysis is available.\n" "You might install one, at least! \n" "Either ngspice or gnucap.")); oregano_error_with_title (_("Could not create settings dialog"), msg); g_free (msg); } gtk_widget_show_all (toplevel); }
GtkWidget * AP_UnixDialog_PageSetup::_constructWindow (void) { // get the path where our UI file is located std::string ui_path = static_cast<XAP_UnixApp*>(XAP_App::getApp())->getAbiSuiteAppUIDir() + "/ap_UnixDialog_PageSetup.xml"; // load the dialog from the UI file m_pBuilder = gtk_builder_new(); gtk_builder_add_from_file(m_pBuilder, ui_path.c_str(), NULL); const XAP_StringSet * pSS = m_pApp->getStringSet (); GList *glist; GtkLabel *orientation; m_window = _getWidget("ap_UnixDialog_PageSetup"); m_wHelp = _getWidget("wHelp"); m_comboPageSize = _getWidget("comboPageSize"); m_entryPageWidth = _getWidget("wWidthSpin"); m_entryPageHeight = _getWidget("wHeightSpin"); m_optionPageUnits = _getWidget("optionPageUnits"); m_radioPagePortrait = _getWidget("rbPortrait"); m_radioPageLandscape = _getWidget("rbLandscape"); m_spinPageScale = _getWidget("wPageScale"); m_optionMarginUnits = _getWidget("optionMarginUnits"); m_spinMarginTop = _getWidget("wTopSpin"); m_spinMarginBottom = _getWidget("wBottomSpin"); m_spinMarginLeft = _getWidget("wLeftSpin"); m_spinMarginRight = _getWidget("wRightSpin"); m_spinMarginHeader = _getWidget("wHeaderSpin"); m_spinMarginFooter = _getWidget("wFooterSpin"); m_MarginHbox = _getWidget("hbox15"); m_PageHbox = _getWidget("hbox16"); /* required for translations */ gtk_label_set_text (GTK_LABEL (_getWidget("lbPage")), _(AP, DLG_PageSetup_Page)); gtk_label_set_text (GTK_LABEL (_getWidget("lbMargin")), _(AP, DLG_PageSetup_Margin)); Markup (_getWidget("lbPaper"), pSS, _(AP, DLG_PageSetup_Paper)); gtk_label_set_text (GTK_LABEL (_getWidget("lbPaperSize")), _(AP, DLG_PageSetup_Paper_Size)); gtk_label_set_text (GTK_LABEL (_getWidget("lbPageUnits")), _(AP, DLG_PageSetup_Units)); gtk_label_set_text (GTK_LABEL (_getWidget("lbWidth")), _(AP, DLG_PageSetup_Width)); gtk_label_set_text (GTK_LABEL (_getWidget("lbHeight")), _(AP, DLG_PageSetup_Height)); Markup (_getWidget("lbOrientation"), pSS, _(AP, DLG_PageSetup_Orient)); /* radio button labels */ glist = gtk_container_get_children (GTK_CONTAINER (m_radioPagePortrait)); orientation = GTK_LABEL (g_list_nth_data (glist, 0)); gtk_label_set_text (GTK_LABEL (orientation), _(AP, DLG_PageSetup_Portrait)); glist = gtk_container_get_children (GTK_CONTAINER (m_radioPageLandscape)); orientation = GTK_LABEL (g_list_nth_data (glist, 0)); gtk_label_set_text (GTK_LABEL (orientation), _(AP, DLG_PageSetup_Landscape)); Markup (_getWidget("lbScale"), pSS, _(AP, DLG_PageSetup_Scale)); gtk_label_set_text (GTK_LABEL (_getWidget("lbAdjust")), _(AP, DLG_PageSetup_Adjust)); gtk_label_set_text (GTK_LABEL (_getWidget("lbPercentNormalSize")), _(AP, DLG_PageSetup_Percent)); gtk_label_set_text (GTK_LABEL (_getWidget("lbMarginUnits")), _(AP, DLG_PageSetup_Units)); gtk_label_set_text (GTK_LABEL (_getWidget("lbTop")), _(AP, DLG_PageSetup_Top)); gtk_label_set_text (GTK_LABEL (_getWidget("lbRight")), _(AP, DLG_PageSetup_Right)); gtk_label_set_text (GTK_LABEL (_getWidget("lbLeft")), _(AP, DLG_PageSetup_Left)); gtk_label_set_text (GTK_LABEL (_getWidget("lbBottom")), _(AP, DLG_PageSetup_Bottom)); gtk_label_set_text (GTK_LABEL (_getWidget("lbHeader")), _(AP, DLG_PageSetup_Header)); gtk_label_set_text (GTK_LABEL (_getWidget("lbFooter")), _(AP, DLG_PageSetup_Footer)); /* end translation req */ /* setup page width and height */ if (!getPageOrientation () == PORTRAIT) { m_PageSize.setLandscape(); } gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_entryPageWidth), m_PageSize.Width (getPageUnits ())); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_entryPageHeight), m_PageSize.Height (getPageUnits ())); /* setup margin numbers */ gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginTop), getMarginTop ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginBottom), getMarginBottom ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginLeft), getMarginLeft ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginRight), getMarginRight ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginHeader), getMarginHeader ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinMarginFooter), getMarginFooter ()); /* setup scale number */ gtk_spin_button_set_value (GTK_SPIN_BUTTON (m_spinPageScale), static_cast<float>(getPageScale ())); // fill the combobox all of our supported page sizes GtkListStore* pagesize_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); GtkTreeIter pagesize_iter; for (UT_uint32 i = fp_PageSize::_first_predefined_pagesize_; i < fp_PageSize::_last_predefined_pagesize_dont_use_; i++) { gtk_list_store_append(pagesize_store, &pagesize_iter); gtk_list_store_set(pagesize_store, &pagesize_iter, 0, fp_PageSize::PredefinedToName ((fp_PageSize::Predefined)i), 1, this, -1); } gtk_combo_box_set_model(GTK_COMBO_BOX(m_comboPageSize), GTK_TREE_MODEL(pagesize_store)); m_iComboPageSizeListID = g_signal_connect(G_OBJECT(m_comboPageSize), "changed", G_CALLBACK(s_page_size_changed), static_cast<gpointer>(this)); /* setup page units menu */ GtkComboBox *combo = GTK_COMBO_BOX(m_optionPageUnits); XAP_makeGtkComboBoxText(combo, G_TYPE_INT); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_inch), DIM_IN); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_cm), DIM_CM); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_mm), DIM_MM); XAP_comboBoxSetActiveFromIntCol(combo, 1, getPageUnits ()); /* setup margin units menu */ combo = GTK_COMBO_BOX(m_optionMarginUnits); XAP_makeGtkComboBoxText(combo, G_TYPE_INT); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_inch), DIM_IN); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_cm), DIM_CM); XAP_appendComboBoxTextAndInt(combo, _(XAP, DLG_Unit_mm), DIM_MM); last_margin_unit = getMarginUnits (); XAP_comboBoxSetActiveFromIntCol(combo, 1, last_margin_unit); /* add margin XPM image to the margin window */ customPreview = create_pixmap (m_MarginHbox, margin_xpm); gtk_widget_show (customPreview); gtk_box_pack_start (GTK_BOX (m_MarginHbox), customPreview, FALSE, FALSE, 0); /* add correct page XPM image to the page window */ if (getPageOrientation () == PORTRAIT) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (m_radioPagePortrait), TRUE); customPreview = create_pixmap (m_PageHbox, orient_vertical_xpm); gtk_widget_show (customPreview); gtk_box_pack_start (GTK_BOX (m_PageHbox), customPreview, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (m_PageHbox), customPreview, 0); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (m_radioPageLandscape), TRUE); customPreview = create_pixmap (m_PageHbox, orient_horizontal_xpm); gtk_widget_show (customPreview); gtk_box_pack_start (GTK_BOX (m_PageHbox), customPreview, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (m_PageHbox), customPreview, 0); } abiAddStockButton(GTK_DIALOG(m_window), GTK_STOCK_CANCEL, BUTTON_CANCEL); abiAddStockButton(GTK_DIALOG(m_window), GTK_STOCK_OK, BUTTON_OK); _connectSignals (); return m_window; }
static gboolean nsgtk_window_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) { struct gui_window *gw = data; struct gui_window *z; struct rect clip; struct redraw_context ctx = { .interactive = true, .background_images = true, .plot = &nsgtk_plotters }; double x1; double y1; double x2; double y2; assert(gw); assert(gw->bw); for (z = window_list; z && z != gw; z = z->next) continue; assert(z); assert(GTK_WIDGET(gw->layout) == widget); current_widget = (GtkWidget *)gw->layout; current_cr = cr; cairo_clip_extents(cr, &x1, &y1, &x2, &y2); clip.x0 = x1; clip.y0 = y1; clip.x1 = x2; clip.y1 = y2; browser_window_redraw(gw->bw, 0, 0, &clip, &ctx); if (gw->careth != 0) { nsgtk_plot_caret(gw->caretx, gw->carety, gw->careth); } current_widget = NULL; return FALSE; } #else static gboolean nsgtk_window_draw_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { struct gui_window *gw = data; struct gui_window *z; struct rect clip; struct redraw_context ctx = { .interactive = true, .background_images = true, .plot = &nsgtk_plotters }; assert(gw); assert(gw->bw); for (z = window_list; z && z != gw; z = z->next) continue; assert(z); assert(GTK_WIDGET(gw->layout) == widget); current_widget = (GtkWidget *)gw->layout; current_cr = gdk_cairo_create(nsgtk_layout_get_bin_window(gw->layout)); clip.x0 = event->area.x; clip.y0 = event->area.y; clip.x1 = event->area.x + event->area.width; clip.y1 = event->area.y + event->area.height; browser_window_redraw(gw->bw, 0, 0, &clip, &ctx); if (gw->careth != 0) { nsgtk_plot_caret(gw->caretx, gw->carety, gw->careth); } cairo_destroy(current_cr); current_widget = NULL; return FALSE; } #endif static gboolean nsgtk_window_motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data) { struct gui_window *g = data; bool shift = event->state & GDK_SHIFT_MASK; bool ctrl = event->state & GDK_CONTROL_MASK; if ((abs(event->x - g->last_x) < 5) && (abs(event->y - g->last_y) < 5)) { /* Mouse hasn't moved far enough from press coordinate for this * to be considered a drag. */ return FALSE; } else { /* This is a drag, ensure it's always treated as such, even if * we drag back over the press location */ g->last_x = INT_MIN; g->last_y = INT_MIN; } if (g->mouse.state & BROWSER_MOUSE_PRESS_1) { /* Start button 1 drag */ browser_window_mouse_click(g->bw, BROWSER_MOUSE_DRAG_1, g->mouse.pressed_x, g->mouse.pressed_y); /* Replace PRESS with HOLDING and declare drag in progress */ g->mouse.state ^= (BROWSER_MOUSE_PRESS_1 | BROWSER_MOUSE_HOLDING_1); g->mouse.state |= BROWSER_MOUSE_DRAG_ON; } else if (g->mouse.state & BROWSER_MOUSE_PRESS_2) { /* Start button 2 drag */ browser_window_mouse_click(g->bw, BROWSER_MOUSE_DRAG_2, g->mouse.pressed_x, g->mouse.pressed_y); /* Replace PRESS with HOLDING and declare drag in progress */ g->mouse.state ^= (BROWSER_MOUSE_PRESS_2 | BROWSER_MOUSE_HOLDING_2); g->mouse.state |= BROWSER_MOUSE_DRAG_ON; } /* Handle modifiers being removed */ if (g->mouse.state & BROWSER_MOUSE_MOD_1 && !shift) g->mouse.state ^= BROWSER_MOUSE_MOD_1; if (g->mouse.state & BROWSER_MOUSE_MOD_2 && !ctrl) g->mouse.state ^= BROWSER_MOUSE_MOD_2; browser_window_mouse_track(g->bw, g->mouse.state, event->x / g->bw->scale, event->y / g->bw->scale); return TRUE; } static gboolean nsgtk_window_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data) { struct gui_window *g = data; gtk_widget_grab_focus(GTK_WIDGET(g->layout)); gtk_widget_hide(GTK_WIDGET(nsgtk_scaffolding_history_window( g->scaffold)->window)); g->mouse.pressed_x = event->x / g->bw->scale; g->mouse.pressed_y = event->y / g->bw->scale; switch (event->button) { case 1: /* Left button, usually. Pass to core as BUTTON 1. */ g->mouse.state = BROWSER_MOUSE_PRESS_1; break; case 2: /* Middle button, usually. Pass to core as BUTTON 2 */ g->mouse.state = BROWSER_MOUSE_PRESS_2; break; case 3: /* Right button, usually. Action button, context menu. */ browser_window_remove_caret(g->bw); nsgtk_scaffolding_popup_menu(g->scaffold, g->mouse.pressed_x, g->mouse.pressed_y); return TRUE; default: return FALSE; } /* Handle the modifiers too */ if (event->state & GDK_SHIFT_MASK) g->mouse.state |= BROWSER_MOUSE_MOD_1; if (event->state & GDK_CONTROL_MASK) g->mouse.state |= BROWSER_MOUSE_MOD_2; /* Record where we pressed, for use when determining whether to start * a drag in motion notify events. */ g->last_x = event->x; g->last_y = event->y; browser_window_mouse_click(g->bw, g->mouse.state, g->mouse.pressed_x, g->mouse.pressed_y); return TRUE; } static gboolean nsgtk_window_button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data) { struct gui_window *g = data; bool shift = event->state & GDK_SHIFT_MASK; bool ctrl = event->state & GDK_CONTROL_MASK; /* If the mouse state is PRESS then we are waiting for a release to emit * a click event, otherwise just reset the state to nothing */ if (g->mouse.state & BROWSER_MOUSE_PRESS_1) g->mouse.state ^= (BROWSER_MOUSE_PRESS_1 | BROWSER_MOUSE_CLICK_1); else if (g->mouse.state & BROWSER_MOUSE_PRESS_2) g->mouse.state ^= (BROWSER_MOUSE_PRESS_2 | BROWSER_MOUSE_CLICK_2); /* Handle modifiers being removed */ if (g->mouse.state & BROWSER_MOUSE_MOD_1 && !shift) g->mouse.state ^= BROWSER_MOUSE_MOD_1; if (g->mouse.state & BROWSER_MOUSE_MOD_2 && !ctrl) g->mouse.state ^= BROWSER_MOUSE_MOD_2; if (g->mouse.state & (BROWSER_MOUSE_CLICK_1|BROWSER_MOUSE_CLICK_2)) { browser_window_mouse_click(g->bw, g->mouse.state, event->x / g->bw->scale, event->y / g->bw->scale); } else { browser_window_mouse_track(g->bw, 0, event->x / g->bw->scale, event->y / g->bw->scale); } g->mouse.state = 0; return TRUE; } static gboolean nsgtk_window_scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer data) { struct gui_window *g = data; double value; GtkAdjustment *vscroll = nsgtk_layout_get_vadjustment(g->layout); GtkAdjustment *hscroll = nsgtk_layout_get_hadjustment(g->layout); GtkAllocation alloc; LOG(("%d", event->direction)); switch (event->direction) { case GDK_SCROLL_LEFT: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, -100, 0) != true) { /* core did not handle event do horizontal scroll */ value = gtk_adjustment_get_value(hscroll) - (nsgtk_adjustment_get_step_increment(hscroll) *2); if (value < nsgtk_adjustment_get_lower(hscroll)) { value = nsgtk_adjustment_get_lower(hscroll); } gtk_adjustment_set_value(hscroll, value); } break; case GDK_SCROLL_UP: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, 0, -100) != true) { /* core did not handle event change vertical * adjustment. */ value = gtk_adjustment_get_value(vscroll) - (nsgtk_adjustment_get_step_increment(vscroll) * 2); if (value < nsgtk_adjustment_get_lower(vscroll)) { value = nsgtk_adjustment_get_lower(vscroll); } gtk_adjustment_set_value(vscroll, value); } break; case GDK_SCROLL_RIGHT: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, 100, 0) != true) { /* core did not handle event change horizontal * adjustment. */ value = gtk_adjustment_get_value(hscroll) + (nsgtk_adjustment_get_step_increment(hscroll) * 2); /* @todo consider gtk_widget_get_allocated_width() */ nsgtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); if (value > nsgtk_adjustment_get_upper(hscroll) - alloc.width) { value = nsgtk_adjustment_get_upper(hscroll) - alloc.width; } gtk_adjustment_set_value(hscroll, value); } break; case GDK_SCROLL_DOWN: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, 0, 100) != true) { /* core did not handle event change vertical * adjustment. */ value = gtk_adjustment_get_value(vscroll) + (nsgtk_adjustment_get_step_increment(vscroll) * 2); /* @todo consider gtk_widget_get_allocated_height */ nsgtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); if (value > nsgtk_adjustment_get_upper(vscroll) - alloc.height) { value = nsgtk_adjustment_get_upper(vscroll) - alloc.height; } gtk_adjustment_set_value(vscroll, value); } break; default: break; } return TRUE; } static gboolean nsgtk_window_keypress_event(GtkWidget *widget, GdkEventKey *event, gpointer data) { struct gui_window *g = data; uint32_t nskey = gtk_gui_gdkkey_to_nskey(event); if (browser_window_key_press(g->bw, nskey)) return TRUE; if ((event->state & 0x7) != 0) return TRUE; double value; GtkAdjustment *vscroll = nsgtk_layout_get_vadjustment(g->layout); GtkAdjustment *hscroll = nsgtk_layout_get_hadjustment(g->layout); GtkAllocation alloc; /* @todo consider gtk_widget_get_allocated_width() */ nsgtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); switch (event->keyval) { case GDK_KEY(Home): case GDK_KEY(KP_Home): value = nsgtk_adjustment_get_lower(vscroll); gtk_adjustment_set_value(vscroll, value); break; case GDK_KEY(End): case GDK_KEY(KP_End): value = nsgtk_adjustment_get_upper(vscroll) - alloc.height; if (value < nsgtk_adjustment_get_lower(vscroll)) value = nsgtk_adjustment_get_lower(vscroll); gtk_adjustment_set_value(vscroll, value); break; case GDK_KEY(Left): case GDK_KEY(KP_Left): value = gtk_adjustment_get_value(hscroll) - nsgtk_adjustment_get_step_increment(hscroll); if (value < nsgtk_adjustment_get_lower(hscroll)) value = nsgtk_adjustment_get_lower(hscroll); gtk_adjustment_set_value(hscroll, value); break; case GDK_KEY(Up): case GDK_KEY(KP_Up): value = gtk_adjustment_get_value(vscroll) - nsgtk_adjustment_get_step_increment(vscroll); if (value < nsgtk_adjustment_get_lower(vscroll)) value = nsgtk_adjustment_get_lower(vscroll); gtk_adjustment_set_value(vscroll, value); break; case GDK_KEY(Right): case GDK_KEY(KP_Right): value = gtk_adjustment_get_value(hscroll) + nsgtk_adjustment_get_step_increment(hscroll); if (value > nsgtk_adjustment_get_upper(hscroll) - alloc.width) value = nsgtk_adjustment_get_upper(hscroll) - alloc.width; gtk_adjustment_set_value(hscroll, value); break; case GDK_KEY(Down): case GDK_KEY(KP_Down): value = gtk_adjustment_get_value(vscroll) + nsgtk_adjustment_get_step_increment(vscroll); if (value > nsgtk_adjustment_get_upper(vscroll) - alloc.height) value = nsgtk_adjustment_get_upper(vscroll) - alloc.height; gtk_adjustment_set_value(vscroll, value); break; case GDK_KEY(Page_Up): case GDK_KEY(KP_Page_Up): value = gtk_adjustment_get_value(vscroll) - nsgtk_adjustment_get_page_increment(vscroll); if (value < nsgtk_adjustment_get_lower(vscroll)) value = nsgtk_adjustment_get_lower(vscroll); gtk_adjustment_set_value(vscroll, value); break; case GDK_KEY(Page_Down): case GDK_KEY(KP_Page_Down): value = gtk_adjustment_get_value(vscroll) + nsgtk_adjustment_get_page_increment(vscroll); if (value > nsgtk_adjustment_get_upper(vscroll) - alloc.height) value = nsgtk_adjustment_get_upper(vscroll) - alloc.height; gtk_adjustment_set_value(vscroll, value); break; default: break; } return TRUE; } static gboolean nsgtk_window_size_allocate_event(GtkWidget *widget, GtkAllocation *allocation, gpointer data) { struct gui_window *g = data; g->bw->reformat_pending = true; browser_reformat_pending = true; if (g->paned != NULL) { /* Set status bar / scroll bar proportion according to * option_toolbar_status_width */ /* TODO: Probably want to detect when the user adjusts the * status bar width, remember that proportion for the * window, and use that here. */ gtk_paned_set_position(g->paned, (nsoption_int(toolbar_status_width) * allocation->width) / 10000); } return TRUE; } /* Core interface docuemnted in desktop/gui.h to create a gui_window */ struct gui_window *gui_create_browser_window(struct browser_window *bw, struct browser_window *clone, bool new_tab) { struct gui_window *g; /**< what we're creating to return */ g = calloc(1, sizeof(*g)); if (!g) { warn_user("NoMemory", 0); return 0; } LOG(("Creating gui window %p for browser window %p", g, bw)); g->bw = bw; g->paned = NULL; g->mouse.state = 0; g->current_pointer = GUI_POINTER_DEFAULT; if (clone != NULL) { bw->scale = clone->scale; } else { bw->scale = (float) nsoption_int(scale) / 100.0; } g->careth = 0; if (new_tab) { assert(clone != NULL); g->scaffold = clone->window->scaffold; } else { /* Now construct and attach a scaffold */ g->scaffold = nsgtk_new_scaffolding(g); } if (g->scaffold == NULL) { warn_user("NoMemory", 0); free(g); return NULL; } /* Construct our primary elements */ /* top-level document (not a frame) => create a new tab */ GError* error = NULL; GtkBuilder* xml = gtk_builder_new(); if (!gtk_builder_add_from_file(xml, glade_file_location->tabcontents, &error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free(error); return 0; } g->layout = GTK_LAYOUT(gtk_builder_get_object(xml, "layout")); g->status_bar = GTK_LABEL(gtk_builder_get_object(xml, "status_bar")); g->paned = GTK_PANED(gtk_builder_get_object(xml, "hpaned1")); /* connect the scrollbars to the layout widget */ nsgtk_layout_set_hadjustment(g->layout, gtk_range_get_adjustment(GTK_RANGE( gtk_builder_get_object(xml, "hscrollbar")))); nsgtk_layout_set_vadjustment(g->layout, gtk_range_get_adjustment(GTK_RANGE( gtk_builder_get_object(xml, "vscrollbar")))); /* add the tab to the scaffold */ bool tempback = true; switch (temp_open_background) { case -1: tempback = !(nsoption_bool(focus_new)); break; case 0: tempback = false; break; case 1: tempback = true; break; } GtkWidget *tab_contents = GTK_WIDGET(gtk_builder_get_object(xml, "tabContents")); g_object_set_data(G_OBJECT(tab_contents), "gui_window", g); nsgtk_tab_add(g, tab_contents, tempback); g_object_unref(xml); /* Attach ourselves to the list (push_top) */ if (window_list) window_list->prev = g; g->next = window_list; g->prev = NULL; window_list = g; /* set the events we're interested in receiving from the browser's * drawing area. */ gtk_widget_add_events(GTK_WIDGET(g->layout), GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_SCROLL_MASK); nsgtk_widget_set_can_focus(GTK_WIDGET(g->layout), TRUE); /* set the default background colour of the drawing area to white. */ nsgtk_widget_override_background_color(GTK_WIDGET(g->layout), GTK_STATE_NORMAL, 0, 0xffff, 0xffff, 0xffff); nsgtk_connect_draw_event(GTK_WIDGET(g->layout), G_CALLBACK(nsgtk_window_draw_event), g); #define CONNECT(obj, sig, callback, ptr) \ g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) CONNECT(g->layout, "motion_notify_event", nsgtk_window_motion_notify_event, g); g->signalhandler[NSGTK_WINDOW_SIGNAL_CLICK] = CONNECT(g->layout, "button_press_event", nsgtk_window_button_press_event, g); CONNECT(g->layout, "button_release_event", nsgtk_window_button_release_event, g); CONNECT(g->layout, "key_press_event", nsgtk_window_keypress_event, g); CONNECT(g->layout, "size_allocate", nsgtk_window_size_allocate_event, g); CONNECT(g->layout, "scroll_event", nsgtk_window_scroll_event, g); return g; } void nsgtk_reflow_all_windows(void) { for (struct gui_window *g = window_list; g; g = g->next) { nsgtk_tab_options_changed( nsgtk_scaffolding_notebook(g->scaffold)); g->bw->reformat_pending = true; } browser_reformat_pending = true; } /** * Process pending reformats */ void nsgtk_window_process_reformats(void) { struct gui_window *g; GtkAllocation alloc; browser_reformat_pending = false; for (g = window_list; g; g = g->next) { if (!g->bw->reformat_pending) continue; g->bw->reformat_pending = false; /* @todo consider gtk_widget_get_allocated_width() */ nsgtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); browser_window_reformat(g->bw, false, alloc.width, alloc.height); } } void nsgtk_window_destroy_browser(struct gui_window *g) { browser_window_destroy(g->bw); } void gui_window_destroy(struct gui_window *g) { if (g->prev) g->prev->next = g->next; else window_list = g->next; if (g->next) g->next->prev = g->prev; LOG(("Destroying gui_window %p", g)); assert(g != NULL); assert(g->bw != NULL); LOG((" Scaffolding: %p", g->scaffold)); LOG((" Window name: %s", g->bw->name)); /* tab => remove tab */ gtk_widget_destroy(gtk_widget_get_parent(GTK_WIDGET(g->layout))); } /** * set favicon */ void gui_window_set_icon(struct gui_window *gw, hlcache_handle *icon) { struct bitmap *icon_bitmap = NULL; /* free any existing icon */ if (gw->icon != NULL) { g_object_unref(gw->icon); gw->icon = NULL; } if (icon != NULL) { icon_bitmap = content_get_bitmap(icon); if (icon_bitmap != NULL) { LOG(("Using %p bitmap", icon_bitmap)); gw->icon = nsgdk_pixbuf_get_from_surface(icon_bitmap->surface, 16, 16); } } if (gw->icon == NULL) { LOG(("Using default favicon")); g_object_ref(favicon_pixbuf); gw->icon = favicon_pixbuf; } nsgtk_scaffolding_set_icon(gw); } static void nsgtk_redraw_caret(struct gui_window *g) { int sx, sy; if (g->careth == 0) return; gui_window_get_scroll(g, &sx, &sy); gtk_widget_queue_draw_area(GTK_WIDGET(g->layout), g->caretx - sx, g->carety - sy, 1, g->careth + 1); }
void MainFrame::load_view() { builder = gtk_builder_new(); gtk_builder_add_from_file( builder, (_view_prefix_path +"MainPanel.ui").c_str() , NULL); }
GtkWidget * ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic) { GtkBuilder *builder; GtkWidget *dialog, *widget, *ok_button; GtkListStore *store; GtkTreeIter model_iter; GtkTreeSelection *selection; gint offset; GtkTreeViewColumn *column; GtkCellRenderer *renderer; int i; GSList *renderers = NULL; GError* error = NULL; /* Initialize temporary storage vars */ g_free (last_edited); last_edited = NULL; last_path = NULL; g_free (last_path); last_column = -1; builder = gtk_builder_new (); if (!gtk_builder_add_from_file (builder, UIDIR "/ce-ip4-routes.ui", &error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free (error); return NULL; } dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_dialog")); if (!dialog) { g_warning ("%s: Couldn't load ip4 routes dialog from .ui file.", __func__); g_object_unref (builder); return NULL; } gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref); ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); /* Add existing routes */ for (i = 0; i < nm_setting_ip4_config_get_num_routes (s_ip4); i++) { NMIP4Route *route = nm_setting_ip4_config_get_route (s_ip4, i); struct in_addr tmp_addr; char ip_string[INET_ADDRSTRLEN]; char *tmp; if (!route) { g_warning ("%s: empty IP4 route structure!", __func__); continue; } gtk_list_store_append (store, &model_iter); tmp_addr.s_addr = nm_ip4_route_get_dest (route);; if (inet_ntop (AF_INET, &tmp_addr, &ip_string[0], sizeof (ip_string))) gtk_list_store_set (store, &model_iter, COL_ADDRESS, ip_string, -1); tmp_addr.s_addr = nm_utils_ip4_prefix_to_netmask (nm_ip4_route_get_prefix (route)); if (inet_ntop (AF_INET, &tmp_addr, &ip_string[0], sizeof (ip_string))) gtk_list_store_set (store, &model_iter, COL_PREFIX, ip_string, -1); tmp_addr.s_addr = nm_ip4_route_get_next_hop (route); if (tmp_addr.s_addr && inet_ntop (AF_INET, &tmp_addr, &ip_string[0], sizeof (ip_string))) gtk_list_store_set (store, &model_iter, COL_NEXT_HOP, ip_string, -1); if (nm_ip4_route_get_metric (route)) { tmp = g_strdup_printf ("%d", nm_ip4_route_get_metric (route)); gtk_list_store_set (store, &model_iter, COL_METRIC, tmp, -1); g_free (tmp); } } widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes")); gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (store)); g_object_unref (store); /* IP Address column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder); g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_ADDRESS)); g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button); g_signal_connect (renderer, "editing-canceled", G_CALLBACK (cell_editing_canceled), builder); renderers = g_slist_append (renderers, renderer); offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), -1, _("Address"), renderer, "text", COL_ADDRESS, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), offset - 1); gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* Prefix column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder); g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_PREFIX)); g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button); g_signal_connect (renderer, "editing-canceled", G_CALLBACK (cell_editing_canceled), builder); renderers = g_slist_append (renderers, renderer); offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), -1, _("Netmask"), renderer, "text", COL_PREFIX, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), offset - 1); gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* Gateway column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder); g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_NEXT_HOP)); g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button); g_signal_connect (renderer, "editing-canceled", G_CALLBACK (cell_editing_canceled), builder); renderers = g_slist_append (renderers, renderer); offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), -1, _("Gateway"), renderer, "text", COL_NEXT_HOP, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), offset - 1); gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* Metric column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder); g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_METRIC)); g_signal_connect (renderer, "editing-started", G_CALLBACK (uint_cell_editing_started), ok_button); g_signal_connect (renderer, "editing-canceled", G_CALLBACK (cell_editing_canceled), builder); renderers = g_slist_append (renderers, renderer); offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), -1, _("Metric"), renderer, "text", COL_METRIC, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), offset - 1); gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); g_object_set_data_full (G_OBJECT (dialog), "renderers", renderers, (GDestroyNotify) g_slist_free); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); g_signal_connect (selection, "changed", G_CALLBACK (list_selection_changed), GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_delete_button"))); g_signal_connect (widget, "button-press-event", G_CALLBACK (tree_view_button_pressed_cb), builder); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_add_button")); gtk_widget_set_sensitive (widget, TRUE); g_signal_connect (widget, "clicked", G_CALLBACK (route_add_clicked), builder); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_delete_button")); gtk_widget_set_sensitive (widget, FALSE); g_signal_connect (widget, "clicked", G_CALLBACK (route_delete_clicked), builder); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_ignore_auto_routes")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), nm_setting_ip4_config_get_ignore_auto_routes (s_ip4)); gtk_widget_set_sensitive (widget, automatic); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_never_default")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), nm_setting_ip4_config_get_never_default (s_ip4)); /* Update initial validity */ validate (dialog); return dialog; }
static void pkg_channel_page_init (PkgChannelPage *page) { PkgChannelPagePrivate *priv; gchar *path; GtkTreeViewColumn *column; GtkCellRenderer *cell; ENTRY; page->priv = G_TYPE_INSTANCE_GET_PRIVATE(page, PKG_TYPE_CHANNEL_PAGE, PkgChannelPagePrivate); priv = page->priv; #define EXTRACT_WIDGET(_n, _w) \ G_STMT_START { \ priv->_w = (gpointer)gtk_builder_get_object(priv->builder, _n); \ } G_STMT_END path = pkg_path_for_data("ui", "pkg-channel-page.ui", NULL); priv->builder = gtk_builder_new(); gtk_builder_add_from_file(priv->builder, path, NULL); g_free(path); EXTRACT_WIDGET("page-label", page_label); EXTRACT_WIDGET("channel-page", container); EXTRACT_WIDGET("target", target); EXTRACT_WIDGET("args", args); EXTRACT_WIDGET("working-dir", working_dir); EXTRACT_WIDGET("env", env); EXTRACT_WIDGET("pid", pid); EXTRACT_WIDGET("kill-pid", kill_pid); EXTRACT_WIDGET("exit-status", exit_status); EXTRACT_WIDGET("muted", muted); EXTRACT_WIDGET("sources", sources); gtk_widget_unparent(priv->container); gtk_container_add(GTK_CONTAINER(page), priv->container); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("ID")); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->sources), column); cell = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, cell, TRUE); gtk_tree_view_column_add_attribute(column, cell, "text", COLUMN_IDSTR); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Plugin")); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->sources), column); cell = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, cell, TRUE); gtk_tree_view_column_add_attribute(column, cell, "text", COLUMN_PLUGIN); priv->model = gtk_list_store_new(3, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model(GTK_TREE_VIEW(priv->sources), GTK_TREE_MODEL(priv->model)); EXIT; }
/* TODO: just add a translation_doamin arg to get_ui_objects method */ static gboolean get_ui_objects_with_translation_domain (const gchar *filename, const gchar *translation_domain, gchar **root_objects, GtkWidget **error_widget, const gchar *object_name, va_list args) { GtkBuilder *builder; const gchar *name; GError *error = NULL; gchar *filename_markup; gboolean ret = TRUE; g_return_val_if_fail (filename != NULL, FALSE); g_return_val_if_fail (error_widget != NULL, FALSE); g_return_val_if_fail (object_name != NULL, FALSE); filename_markup = g_markup_printf_escaped ("<i>%s</i>", filename); *error_widget = NULL; builder = gtk_builder_new (); if (translation_domain != NULL) { gtk_builder_set_translation_domain (builder, translation_domain); } if (root_objects != NULL) { gtk_builder_add_objects_from_file (builder, filename, root_objects, &error); } else { gtk_builder_add_from_file (builder, filename, &error); } if (error != NULL) { *error_widget = handle_builder_error (_("Unable to open UI file %s. Error: %s"), filename_markup, error->message); g_error_free (error); g_free (filename_markup); g_object_unref (builder); return FALSE; } for (name = object_name; name; name = va_arg (args, const gchar *)) { GObject **gobj; gobj = va_arg (args, GObject **); *gobj = gtk_builder_get_object (builder, name); if (!*gobj) { *error_widget = handle_builder_error (_("Unable to find the object '%s' inside file %s."), name, filename_markup), ret = FALSE; break; } /* we return a new ref for the root objects, * the others are already reffed by their parent root object */ if (root_objects != NULL) { gint i; for (i = 0; root_objects[i] != NULL; ++i) { if ((strcmp (name, root_objects[i]) == 0)) { g_object_ref (*gobj); } } } } g_free (filename_markup); g_object_unref (builder); return ret; }
static void notifications_button_clicked_cb (GtkWidget *button, GtkBuilder *dialog) { GtkWidget *w; notifications_dialog = gtk_builder_new (); gtk_builder_add_from_file (notifications_dialog, MATECC_UI_DIR "/mate-keyboard-properties-a11y-notifications.ui", NULL); stickykeys_enable_toggled_cb (WID ("stickykeys_enable"), dialog); slowkeys_enable_toggled_cb (WID ("slowkeys_enable"), dialog); bouncekeys_enable_toggled_cb (WID ("bouncekeys_enable"), dialog); w = NWID ("feature_state_change_beep"); g_settings_bind (a11y_settings, "feature-state-change-beep", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("togglekeys_enable"); g_settings_bind (a11y_settings, "togglekeys_-enable", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("stickykeys_modifier_beep"); g_settings_bind (a11y_settings, "stickykeys-modifier-beep", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_press"); g_settings_bind (a11y_settings, "slowkeys-beep-press", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_accept"); g_settings_bind (a11y_settings, "slowkeys-beep-accept", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_reject"); g_settings_bind (a11y_settings, "slowkeys-beep-reject", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("bouncekeys_beep_reject"); g_settings_bind (a11y_settings, "bouncekeys-beep-reject", w, "active", G_SETTINGS_BIND_DEFAULT); GSettings *marco_settings = g_settings_new (MARCO_SCHEMA); w = NWID ("visual_bell_enable"); g_settings_bind (marco_settings, "visual-bell", w, "active", G_SETTINGS_BIND_DEFAULT); g_signal_connect (w, "toggled", G_CALLBACK (visual_bell_enable_toggled_cb), dialog); visual_bell_enable_toggled_cb (w, dialog); bell_flash_gsettings_changed (marco_settings, "visual-bell-type", NULL); g_signal_connect (NWID ("visual_bell_titlebar"), "clicked", G_CALLBACK(bell_flash_radio_changed), notifications_dialog); g_signal_connect (NWID ("visual_bell_fullscreen"), "clicked", G_CALLBACK(bell_flash_radio_changed), notifications_dialog); g_signal_connect (marco_settings, "changed::visual-bell-type", G_CALLBACK (bell_flash_gsettings_changed), notifications_dialog); w = NWID ("a11y_notifications_dialog"); gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (WID ("keyboard_dialog"))); g_signal_connect (w, "response", G_CALLBACK (a11y_notifications_dialog_response_cb), NULL); gtk_dialog_run (GTK_DIALOG (w)); g_object_unref (marco_settings); g_object_unref (notifications_dialog); notifications_dialog = NULL; }
//nfalg 0:sh 1:mirsoft 2: cit 3:vm 4:配置网络 7:其他,不带有是和否的提示消息, 11: 带有是和否的提示消息,这里 void SYMsgDialog(int nflag, char *msg) { if (showSyMsgDlg == 1) return; showSyMsgDlg = 1; builder = gtk_builder_new(); GError *error1 = NULL; gtk_builder_add_from_file (builder, "SYthrdMsgDlg.glade", &error1); window = gtk_builder_get_object(builder, "window_symsg"); GObject * label_thrdtext; label_thrdtext = gtk_builder_get_object(builder, "label_thrdtext"); labeltext = (GtkLabel *)label_thrdtext; if (nflag == 7 || nflag == 11 || nflag == 4) gtk_label_set_text(GTK_LABEL(label_thrdtext), msg); else if (nflag == 0) { gtk_label_set_text(GTK_LABEL(label_thrdtext), "正在连接,请稍后 ... "); } //绘制控件 /*----- CSS ----------- */ GtkCssProvider *provider; GdkDisplay *display; GdkScreen *screen; /*-----------------------*/ /* ----------------- CSS ----------------------------------------------------------------------------------------------*/ provider = gtk_css_provider_new (); display = gdk_display_get_default (); screen = gdk_display_get_default_screen (display); gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gsize bytes_written, bytes_read; GError *error = 0; gtk_css_provider_load_from_path (provider, g_filename_to_utf8(g_symsgcss, strlen(g_symsgcss), &bytes_read, &bytes_written, &error), NULL); //gtk_css_provider_load_from_path (provider, home, NULL); g_object_unref (provider); /* --------------------------------------------------------------------------------------------------------------------*/ GObject * btnsymsg_close; btnsymsg_close = gtk_builder_get_object(builder, "btnsymsg_close"); g_signal_connect(GTK_BUTTON(btnsymsg_close), "clicked", G_CALLBACK(close_button_clicked), NULL); g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); if (nflag == 0 || nflag == 1) ShenCloud_login(); //if (nflag == 4) // SaveSysNetwork(); //ok-cancel btn GObject * btn_OK; GObject * btn_Cancel; btn_OK = gtk_builder_get_object(builder, "btn_OK"); btn_Cancel = gtk_builder_get_object(builder, "btn_Cancel"); gtk_button_set_label(GTK_BUTTON(btn_OK), "是"); gtk_button_set_label(GTK_BUTTON(btn_Cancel), "否"); if (nflag == 11) { gtk_widget_set_visible(GTK_WIDGET(btn_OK), TRUE); gtk_widget_set_visible(GTK_WIDGET(btn_Cancel), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(btn_OK), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(btn_Cancel), TRUE); }else { gtk_widget_set_visible(GTK_WIDGET(btn_OK), FALSE); gtk_widget_set_visible(GTK_WIDGET(btn_Cancel), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(btn_OK), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(btn_Cancel), FALSE); } g_signal_connect(GTK_BUTTON(btn_OK), "clicked", G_CALLBACK(OK_button_clicked), NULL); g_signal_connect(GTK_BUTTON(btn_Cancel), "clicked", G_CALLBACK(Cancel_button_clicked), NULL); gtk_main (); g_object_unref (G_OBJECT (builder)); showSyMsgDlg = 0; }
void ConfigurePlugins() { if (!UseGui) { /* How do we get here if we're not running the GUI? */ /* Ryan: we're going to imagine that someday, there will be a way * to configure plugins from the commandline */ printf("ERROR: Plugins cannot be configured without the GUI."); return; } GtkWidget *widget; gchar *path; UpdatePluginsBIOS(); builder = gtk_builder_new(); if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) { g_warning("Error: interface could not be loaded!"); return; } UpdatePluginsBIOS_UpdateGUI(builder); ConfDlg = GTK_WIDGET(gtk_builder_get_object(builder, "ConfDlg")); gtk_window_set_title(GTK_WINDOW(ConfDlg), _("Configure PCSXR")); gtk_widget_show (ConfDlg); /* Set the paths in the file choosers to be based on the saved configurations */ widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkFileChooser_Bios")); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (widget), Config.BiosDir); widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkFileChooser_Plugin")); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (widget), Config.PluginsDir); if (strlen(Config.PluginsDir) == 0) { if((path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (widget))) != NULL) { strcpy(Config.PluginsDir, path); g_free(path); } } widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfGpu")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_configure_plugin), GINT_TO_POINTER(PSE_LT_GPU), NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfSpu")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_configure_plugin), GINT_TO_POINTER(PSE_LT_SPU), NULL, G_CONNECT_AFTER); /* ADB TODO Does pad 1 and 2 need to be different? */ widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfPad1")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(OnConfConf_Pad1Conf), builder, NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfPad2")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(OnConfConf_Pad2Conf), builder, NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfCdr")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_configure_plugin), GINT_TO_POINTER(PSE_LT_CDR), NULL, G_CONNECT_AFTER); #ifdef ENABLE_SIO1API widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfSio1")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_configure_plugin), (gpointer) PSE_LT_SIO1, NULL, G_CONNECT_AFTER); #else widget = GTK_WIDGET(gtk_builder_get_object(builder, "label18")); gtk_widget_set_sensitive(widget, FALSE); widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkCombo_Sio1")); gtk_widget_set_sensitive(widget, FALSE); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_ConfSio1")); gtk_widget_set_sensitive(widget, FALSE); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutSio1")); gtk_widget_set_sensitive(widget, FALSE); #endif widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutGpu")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_about_plugin), GINT_TO_POINTER(PSE_LT_GPU), NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutSpu")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_about_plugin), GINT_TO_POINTER(PSE_LT_SPU), NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutPad1")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(OnConfConf_Pad1About), builder, NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutPad2")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(OnConfConf_Pad2About), builder, NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutCdr")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_about_plugin), GINT_TO_POINTER(PSE_LT_CDR), NULL, G_CONNECT_AFTER); #ifdef ENABLE_SIO1API widget = GTK_WIDGET(gtk_builder_get_object(builder, "btn_AboutSio1")); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_about_plugin), (gpointer) PSE_LT_SIO1, NULL, G_CONNECT_AFTER); #endif widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkFileChooser_Bios")); g_signal_connect_data(G_OBJECT(widget), "current_folder_changed", G_CALLBACK(OnBiosPath_Changed), builder, NULL, G_CONNECT_AFTER); widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkFileChooser_Plugin")); g_signal_connect_data(G_OBJECT(widget), "current_folder_changed", G_CALLBACK(OnPluginPath_Changed), builder, NULL, G_CONNECT_AFTER); g_signal_connect_data(G_OBJECT(ConfDlg), "response", G_CALLBACK(OnConf_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER); }
/** * create_bookmarks_window: * * Create a new bookmark-editing window. * @list: The CajaBookmarkList that this window will edit. * * Return value: A pointer to the new window. **/ GtkWindow * create_bookmarks_window (CajaBookmarkList *list, CajaWindow *window_source) { GtkWidget *window; GtkTreeViewColumn *col; GtkCellRenderer *rend; GtkBuilder *builder; bookmarks = list; builder = gtk_builder_new (); if (!gtk_builder_add_from_file (builder, UIDIR "/caja-bookmarks-window.ui", NULL)) { return NULL; } window = (GtkWidget *)gtk_builder_get_object (builder, "bookmarks_dialog"); bookmark_list_widget = (GtkTreeView *)gtk_builder_get_object (builder, "bookmark_tree_view"); remove_button = (GtkWidget *)gtk_builder_get_object (builder, "bookmark_delete_button"); jump_button = (GtkWidget *)gtk_builder_get_object (builder, "bookmark_jump_button"); application = window_source->application; if (CAJA_IS_NAVIGATION_WINDOW (window_source)) { parent_is_browser_window = TRUE; } else { parent_is_browser_window = FALSE; } set_up_close_accelerator (window); gtk_window_set_wmclass (GTK_WINDOW (window), "bookmarks", "Caja"); caja_bookmarks_window_restore_geometry (window); g_object_weak_ref (G_OBJECT (window_source), edit_bookmarks_dialog_reset_signals, window_source); bookmark_list_widget = GTK_TREE_VIEW (gtk_builder_get_object (builder, "bookmark_tree_view")); rend = gtk_cell_renderer_pixbuf_new (); col = gtk_tree_view_column_new_with_attributes ("Icon", rend, "pixbuf", BOOKMARK_LIST_COLUMN_ICON, NULL); gtk_tree_view_append_column (bookmark_list_widget, GTK_TREE_VIEW_COLUMN (col)); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (col), CAJA_ICON_SIZE_SMALLER); rend = gtk_cell_renderer_text_new (); g_object_set (rend, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); col = gtk_tree_view_column_new_with_attributes ("Icon", rend, "text", BOOKMARK_LIST_COLUMN_NAME, "style", BOOKMARK_LIST_COLUMN_STYLE, NULL); gtk_tree_view_append_column (bookmark_list_widget, GTK_TREE_VIEW_COLUMN (col)); bookmark_list_store = create_bookmark_store (); setup_empty_list (); gtk_tree_view_set_model (bookmark_list_widget, GTK_TREE_MODEL (bookmark_empty_list_store)); bookmark_selection = GTK_TREE_SELECTION (gtk_tree_view_get_selection (bookmark_list_widget)); name_field = caja_entry_new (); gtk_widget_show (name_field); gtk_box_pack_start (GTK_BOX (gtk_builder_get_object (builder, "bookmark_name_placeholder")), name_field, TRUE, TRUE, 0); gtk_label_set_mnemonic_widget ( GTK_LABEL (gtk_builder_get_object (builder, "bookmark_name_label")), name_field); uri_field = caja_entry_new (); gtk_widget_show (uri_field); gtk_box_pack_start (GTK_BOX (gtk_builder_get_object (builder, "bookmark_location_placeholder")), uri_field, TRUE, TRUE, 0); gtk_label_set_mnemonic_widget ( GTK_LABEL (gtk_builder_get_object (builder, "bookmark_location_label")), uri_field); bookmark_list_changed_signal_id = g_signal_connect (bookmarks, "contents_changed", G_CALLBACK (on_bookmark_list_changed), NULL); row_changed_signal_id = g_signal_connect (bookmark_list_store, "row_changed", G_CALLBACK (on_row_changed), NULL); row_deleted_signal_id = g_signal_connect (bookmark_list_store, "row_deleted", G_CALLBACK (on_row_deleted), NULL); row_activated_signal_id = g_signal_connect (bookmark_list_widget, "row_activated", G_CALLBACK (on_row_activated), window_source); button_pressed_signal_id = g_signal_connect (bookmark_list_widget, "button_press_event", G_CALLBACK (on_button_pressed), NULL); key_pressed_signal_id = g_signal_connect (bookmark_list_widget, "key_press_event", G_CALLBACK (on_key_pressed), NULL); selection_changed_id = g_signal_connect (bookmark_selection, "changed", G_CALLBACK (on_selection_changed), NULL); g_signal_connect (window, "delete_event", G_CALLBACK (on_window_delete_event), NULL); g_signal_connect (window, "hide", G_CALLBACK (on_window_hide_event), NULL); g_signal_connect (window, "destroy", G_CALLBACK (on_window_destroy_event), NULL); g_signal_connect (window, "response", G_CALLBACK (caja_bookmarks_window_response_callback), NULL); name_field_changed_signal_id = g_signal_connect (name_field, "changed", G_CALLBACK (on_name_field_changed), NULL); g_signal_connect (name_field, "focus_out_event", G_CALLBACK (on_text_field_focus_out_event), NULL); g_signal_connect (name_field, "activate", G_CALLBACK (name_or_uri_field_activate), NULL); uri_field_changed_signal_id = g_signal_connect (uri_field, "changed", G_CALLBACK (on_uri_field_changed), NULL); g_signal_connect (uri_field, "focus_out_event", G_CALLBACK (on_text_field_focus_out_event), NULL); g_signal_connect (uri_field, "activate", G_CALLBACK (name_or_uri_field_activate), NULL); g_signal_connect (remove_button, "clicked", G_CALLBACK (on_remove_button_clicked), NULL); jump_button_signal_id = g_signal_connect (jump_button, "clicked", G_CALLBACK (on_jump_button_clicked), window_source); gtk_tree_selection_set_mode (bookmark_selection, GTK_SELECTION_BROWSE); /* Fill in list widget with bookmarks, must be after signals are wired up. */ repopulate(); g_object_unref (builder); return GTK_WINDOW (window); }
static gboolean _on_show_dlg(gpointer user_data) { FmProgressDisplay* data = (FmProgressDisplay*)user_data; GtkBuilder* builder; GtkLabel* to; GtkWidget *to_label; FmPath* dest; const char* title = NULL; GtkTextTagTable* tag_table; builder = gtk_builder_new(); tag_table = gtk_text_tag_table_new(); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); gtk_builder_add_from_file(builder, PACKAGE_UI_DIR "/progress.ui", NULL); data->dlg = GTK_DIALOG(gtk_builder_get_object(builder, "dlg")); g_object_weak_ref(G_OBJECT(data->dlg), on_progress_dialog_destroy, data); g_signal_connect(data->dlg, "response", G_CALLBACK(on_response), data); /* FIXME: connect to "close" signal */ to_label = (GtkWidget*)gtk_builder_get_object(builder, "to_label"); to = GTK_LABEL(gtk_builder_get_object(builder, "dest")); data->icon = GTK_IMAGE(gtk_builder_get_object(builder, "icon")); data->msg = GTK_LABEL(gtk_builder_get_object(builder, "msg")); data->act = GTK_LABEL(gtk_builder_get_object(builder, "action")); data->src = GTK_LABEL(gtk_builder_get_object(builder, "src")); data->dest = (GtkWidget*)gtk_builder_get_object(builder, "dest"); data->current = GTK_LABEL(gtk_builder_get_object(builder, "current")); data->progress = GTK_PROGRESS_BAR(gtk_builder_get_object(builder, "progress")); data->error_pane = (GtkWidget*)gtk_builder_get_object(builder, "error_pane"); data->error_msg = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "error_msg")); data->data_transferred = GTK_LABEL(gtk_builder_get_object(builder, "data_transferred")); data->data_transferred_label = GTK_LABEL(gtk_builder_get_object(builder, "data_transferred_label")); data->remaining_time = GTK_LABEL(gtk_builder_get_object(builder, "remaining_time")); data->remaining_time_label = GTK_LABEL(gtk_builder_get_object(builder, "remaining_time_label")); data->cancel = GTK_BUTTON(gtk_builder_get_object(builder, "cancel")); data->suspend = GTK_BUTTON(gtk_dialog_add_button(data->dlg, _("_Pause"), 1)); gtk_button_set_use_stock(data->suspend, FALSE); gtk_button_set_use_underline(data->suspend, TRUE); gtk_button_set_image(data->suspend, gtk_image_new_from_stock(GTK_STOCK_MEDIA_PAUSE, GTK_ICON_SIZE_BUTTON)); gtk_dialog_set_alternative_button_order(data->dlg, 1, GTK_RESPONSE_CANCEL, -1); data->bold_tag = gtk_text_tag_new("bold"); g_object_set(data->bold_tag, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(tag_table, data->bold_tag); data->error_buf = gtk_text_buffer_new(tag_table); g_object_unref(tag_table); gtk_text_view_set_buffer(data->error_msg, data->error_buf); gtk_widget_hide(GTK_WIDGET(data->icon)); g_object_unref(builder); /* set the src label */ /* FIXME: direct access to job struct! */ if(data->job->srcs) { GList* l = fm_path_list_peek_head_link(data->job->srcs); int i; char* disp; FmPath* path; GString* str = g_string_sized_new(512); path = FM_PATH(l->data); disp = fm_path_display_basename(path); g_string_assign(str, disp); g_free(disp); for( i =1, l=l->next; i < 10 && l; l=l->next, ++i) { path = FM_PATH(l->data); g_string_append(str, _(", ")); disp = fm_path_display_basename(path); g_string_append(str, disp); g_free(disp); } if(l) g_string_append(str, "..."); gtk_label_set_text(data->src, str->str); gtk_widget_set_tooltip_text(GTK_WIDGET(data->src), str->str); g_string_free(str, TRUE); } /* FIXME: use accessor functions instead */ /* FIXME: direct access to job struct! */ switch(data->job->type) { /* we set title here if text is complex so may be different from the op_text when is translated to other languages */ case FM_FILE_OP_MOVE: /* translators: it is part of "Moving files:" or "Moving xxx.txt" */ data->op_text = _("Moving"); break; case FM_FILE_OP_COPY: /* translators: it is part of "Copying files:" or "Copying xxx.txt" */ data->op_text = _("Copying"); break; case FM_FILE_OP_TRASH: /* translators: it is part of "Trashing files:" or "Trashing xxx.txt" */ data->op_text = _("Trashing"); break; case FM_FILE_OP_DELETE: /* translators: it is part of "Deleting files:" or "Deleting xxx.txt" */ data->op_text = _("Deleting"); break; case FM_FILE_OP_LINK: /* translators: it is part of "Creating link /path/xxx.txt" */ data->op_text = _("Creating link"); /* translators: 'In:' string is followed by destination folder path */ gtk_label_set_markup(GTK_LABEL(to_label), _("<b>In:</b>")); title = _("Creating links to files"); /* NOTE: on creating single symlink or shortcut all operation is done in single I/O therefore it should fit into 0.5s timeout and progress window will never be shown */ break; case FM_FILE_OP_CHANGE_ATTR: /* translators: it is part of "Changing attributes of xxx.txt" */ data->op_text = _("Changing attributes of"); title = _("Changing attributes of files"); /* NOTE: the same about single symlink is appliable here so there is no need to add never used string for translation */ break; case FM_FILE_OP_UNTRASH: /* translators: it is part of "Restoring files:" or "Restoring xxx.txt" */ data->op_text = _("Restoring"); break; case FM_FILE_OP_NONE: ; } data->str = g_string_sized_new(64); if (title) gtk_window_set_title(GTK_WINDOW(data->dlg), title); else { /* note to translators: resulting string is such as "Deleting files" */ g_string_printf(data->str, _("%s files"), data->op_text); gtk_window_set_title(GTK_WINDOW(data->dlg), data->str->str); } gtk_label_set_markup(data->msg, _("<b>File operation is in progress...</b>")); gtk_widget_show(GTK_WIDGET(data->msg)); if (title) /* we already know the exact string */ g_string_printf(data->str, "<b>%s:</b>", title); else if (fm_path_list_get_length(data->job->srcs) == 1) /* note to translators: resulting string is such as "Deleting file" */ g_string_printf(data->str, _("<b>%s file:</b>"), data->op_text); else /* note to translators: resulting string is such as "Deleting files" */ g_string_printf(data->str, _("<b>%s files:</b>"), data->op_text); gtk_label_set_markup(data->act, data->str->str); dest = fm_file_ops_job_get_dest(data->job); if(dest) { char* dest_str = fm_path_display_name(dest, TRUE); gtk_label_set_text(to, dest_str); gtk_widget_set_tooltip_text(GTK_WIDGET(data->dest), dest_str); g_free(dest_str); } else { gtk_widget_destroy(data->dest); gtk_widget_destroy(to_label); } gtk_window_set_transient_for(GTK_WINDOW(data->dlg), data->parent); gtk_window_present(GTK_WINDOW(data->dlg)); data->delay_timeout = 0; return FALSE; }
static void gdict_pref_dialog_init (GdictPrefDialog *dialog) { gchar *font; GError *error = NULL; gtk_window_set_default_size (GTK_WINDOW (dialog), DEFAULT_MIN_WIDTH, DEFAULT_MIN_HEIGHT); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), 2); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); /* add buttons */ gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-help", GTK_RESPONSE_HELP); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-close", GTK_RESPONSE_ACCEPT); dialog->gconf_client = gconf_client_get_default (); gconf_client_add_dir (dialog->gconf_client, GDICT_GCONF_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); dialog->notify_id = gconf_client_notify_add (dialog->gconf_client, GDICT_GCONF_DIR, gdict_pref_dialog_gconf_notify_cb, dialog, NULL, NULL); /* get the UI from the GtkBuilder file */ dialog->builder = gtk_builder_new (); gtk_builder_add_from_file (dialog->builder, GDICT_PREFERENCES_UI, &error); if (error) { g_critical ("Unable to load the preferences user interface: %s", error->message); g_error_free (error); g_assert_not_reached (); } /* the main widget */ gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), GTK_WIDGET (gtk_builder_get_object (dialog->builder, "preferences_root"))); /* keep all the interesting widgets around */ dialog->notebook = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "preferences_notebook")); dialog->sources_view = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "sources_treeview")); build_sources_view (dialog); dialog->active_source = gdict_gconf_get_string_with_default (dialog->gconf_client, GDICT_GCONF_SOURCE_KEY, GDICT_DEFAULT_SOURCE_NAME); dialog->sources_add = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "add_button")); gtk_widget_set_tooltip_text (dialog->sources_add, _("Add a new dictionary source")); g_signal_connect (dialog->sources_add, "clicked", G_CALLBACK (source_add_clicked_cb), dialog); dialog->sources_remove = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "remove_button")); gtk_widget_set_tooltip_text (dialog->sources_remove, _("Remove the currently selected dictionary source")); g_signal_connect (dialog->sources_remove, "clicked", G_CALLBACK (source_remove_clicked_cb), dialog); font = gconf_client_get_string (dialog->gconf_client, GDICT_GCONF_PRINT_FONT_KEY, NULL); if (!font) font = g_strdup (GDICT_DEFAULT_PRINT_FONT); dialog->font_button = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "print_font_button")); gtk_font_button_set_font_name (GTK_FONT_BUTTON (dialog->font_button), font); gtk_widget_set_tooltip_text (dialog->font_button, _("Set the font used for printing the definitions")); g_signal_connect (dialog->font_button, "font-set", G_CALLBACK (font_button_font_set_cb), dialog); g_free (font); gtk_widget_show_all (dialog->notebook); /* we want to intercept the response signal before any other * callbacks might be attached by the users of the * GdictPrefDialog widget. */ g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); }
gboolean gnc_xml_convert_single_file (const gchar *filename) { GncXmlImportData *data; GtkWidget *widget; GtkBuilder *builder; gboolean success; data = g_new0 (GncXmlImportData, 1); data->filename = gnc_uri_get_path (filename); data->canceled = FALSE; /* gather ambiguous info */ gxi_check_file (data); if (data->n_impossible == -1) return FALSE; if (!g_hash_table_size (data->ambiguous_ht)) { /* no ambiguous strings */ success = gxi_parse_file (data) && gxi_save_file (data); gxi_data_destroy (data); } else { /* common assistant initialization */ builder = gtk_builder_new(); gnc_builder_add_from_file (builder , "assistant-xml-encoding.glade", "assistant_xml_encoding"); data->assistant = GTK_WIDGET(gtk_builder_get_object (builder, "assistant_xml_encoding")); /* Enable buttons on all pages. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (data->assistant), GTK_WIDGET(gtk_builder_get_object(builder, "start_page")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (data->assistant), GTK_WIDGET(gtk_builder_get_object(builder, "conversion_page")), TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (data->assistant), GTK_WIDGET(gtk_builder_get_object(builder, "end_page")), TRUE); /* start page, explanations */ gtk_assistant_set_page_title (GTK_ASSISTANT(data->assistant), gtk_assistant_get_nth_page (GTK_ASSISTANT(data->assistant), 0), gettext(encodings_doc_page_title)); widget = GTK_WIDGET(gtk_builder_get_object (builder, "start_page")); gtk_label_set_text (GTK_LABEL(widget), gettext (encodings_doc_string)); /* conversion page */ data->default_encoding_hbox = GTK_WIDGET(gtk_builder_get_object (builder, "default_enc_box")); data->string_box_container = GTK_WIDGET(gtk_builder_get_object (builder, "string_box_container")); data->impossible_label = GTK_WIDGET(gtk_builder_get_object (builder, "impossible_label")); /* finish page */ widget = GTK_WIDGET(gtk_builder_get_object(builder, "end_page")); gtk_label_set_text (GTK_LABEL(widget), gettext (finish_convert_string)); gtk_builder_connect_signals(builder, data); gtk_widget_show_all (data->assistant); gxi_update_default_enc_combo (data); gxi_update_string_box (data); g_object_unref(G_OBJECT(builder)); /* This won't return until the assistant is finished */ gtk_main(); if (data->canceled) success = FALSE; else success = gxi_save_file (data); } /* destroy all the data variables */ gxi_data_destroy (data); g_free (data); return success; }
gint display_options_dbox() { GtkBuilder *builder; GError* error = NULL; GtkWidget *dbox; GtkWidget *data; gint result; builder = gtk_builder_new(); if (!gtk_builder_add_from_file (builder, tilp_paths_build_builder("options.ui"), &error)) { g_warning (_("Couldn't load builder file: %s\n"), error->message); g_error_free (error); return 0; // THIS RETURNS ! } gtk_builder_connect_signals(builder, NULL); dbox = GTK_WIDGET (gtk_builder_get_object (builder, "options_dbox")); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dbox), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL,-1); memcpy(&tmp_options, &options, sizeof(options)); if(options.calc_model == CALC_NSPIRE) { data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton31")); gtk_widget_set_sensitive(data, FALSE); data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton32")); gtk_widget_set_sensitive(data, FALSE); } else { data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton31")); if (!options.backup_as_tigroup) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton32")); if (options.backup_as_tigroup) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); } if(options.calc_model == CALC_NSPIRE) { data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton81")); gtk_widget_set_sensitive(data, FALSE); data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton82")); gtk_widget_set_sensitive(data, FALSE); } else { data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton81")); if (!options.recv_as_group) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton82")); if (options.recv_as_group) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); } data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton51")); if (options.show_all) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); data = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton52")); if (!options.show_all) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); data = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton2")); if (options.overwrite == CONFIRM_YES) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), FALSE); result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: memcpy(&options, &tmp_options, sizeof(tmp_options)); clist_refresh(); break; case GTK_RESPONSE_HELP: break; default: break; } gtk_widget_destroy(dbox); return 0; }
static void gnc_find_account_dialog_create (GtkWidget *parent, FindAccountDialog *facc_dialog) { GtkWidget *dialog; GtkBuilder *builder; GtkTreeSelection *selection; GtkTreeViewColumn *tree_column; GtkCellRenderer *cr; ENTER(" "); builder = gtk_builder_new(); gnc_builder_add_from_file (builder, "dialog-find-account.glade", "list-store"); gnc_builder_add_from_file (builder, "dialog-find-account.glade", "Find Account Dialog"); dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Find Account Dialog")); facc_dialog->dialog = dialog; facc_dialog->session = gnc_get_current_session(); /* parent */ if (parent != NULL) { facc_dialog->parent = parent; gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(parent)); } else facc_dialog->parent = NULL; /* Connect the radio buttons...*/ facc_dialog->radio_root = GTK_WIDGET(gtk_builder_get_object (builder, "radio-root")); facc_dialog->radio_subroot = GTK_WIDGET(gtk_builder_get_object (builder, "radio-subroot")); facc_dialog->filter_text_entry = GTK_WIDGET(gtk_builder_get_object (builder, "filter-text-entry")); facc_dialog->sub_label = GTK_WIDGET(gtk_builder_get_object (builder, "sub-label")); facc_dialog->radio_hbox = GTK_WIDGET(gtk_builder_get_object (builder, "hbox-radio")); facc_dialog->filter_button = GTK_WIDGET(gtk_builder_get_object (builder, "filter-button")); g_signal_connect (facc_dialog->filter_button, "clicked", G_CALLBACK(filter_button_cb), (gpointer)facc_dialog); facc_dialog->view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview")); g_signal_connect (facc_dialog->view, "row-activated", G_CALLBACK(row_double_clicked), (gpointer)facc_dialog); /* Enable alternative line colors */ gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(facc_dialog->view), TRUE); /* default to 'close' button */ gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(facc_dialog->view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); /* Need to add pixbuf renderers here to get the xalign to work. */ tree_column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title (tree_column, _("Place Holder")); gtk_tree_view_append_column (GTK_TREE_VIEW(facc_dialog->view), tree_column); gtk_tree_view_column_set_alignment (tree_column, 0.5); gtk_tree_view_column_set_expand (tree_column, TRUE); cr = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start (tree_column, cr, TRUE); // connect 'active' and set 'xalign' property of the cell renderer gtk_tree_view_column_set_attributes (tree_column, cr, "stock-id", PLACE_HOLDER, NULL); gtk_cell_renderer_set_alignment (cr, 0.5, 0.5); tree_column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title (tree_column, _("Hidden")); gtk_tree_view_append_column (GTK_TREE_VIEW(facc_dialog->view), tree_column); gtk_tree_view_column_set_alignment (tree_column, 0.5); gtk_tree_view_column_set_expand (tree_column, TRUE); cr = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start (tree_column, cr, TRUE); // connect 'active' and set 'xalign' property of the cell renderer gtk_tree_view_column_set_attributes (tree_column, cr, "stock-id", HIDDEN, NULL); gtk_cell_renderer_set_alignment (cr, 0.5, 0.5); tree_column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title (tree_column, _("Not Used")); gtk_tree_view_append_column (GTK_TREE_VIEW(facc_dialog->view), tree_column); gtk_tree_view_column_set_alignment (tree_column, 0.5); gtk_tree_view_column_set_expand (tree_column, TRUE); cr = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start (tree_column, cr, TRUE); // connect 'active' and set 'xalign' property of the cell renderer gtk_tree_view_column_set_attributes (tree_column, cr, "stock-id", NOT_USED, NULL); gtk_cell_renderer_set_alignment (cr, 0.5, 0.5); tree_column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title (tree_column, _("Balance Zero")); gtk_tree_view_append_column (GTK_TREE_VIEW(facc_dialog->view), tree_column); gtk_tree_view_column_set_alignment (tree_column, 0.5); gtk_tree_view_column_set_expand (tree_column, TRUE); cr = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start (tree_column, cr, TRUE); // connect 'active' and set 'xalign' property of the cell renderer gtk_tree_view_column_set_attributes (tree_column, cr, "stock-id", BAL_ZERO, NULL); gtk_cell_renderer_set_alignment (cr, 0.5, 0.5); gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, facc_dialog); g_object_unref (G_OBJECT(builder)); gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(facc_dialog->dialog)); if (facc_dialog->account != NULL) { const gchar *sub_label_start = _("Search from "); gchar *sub_full_name = gnc_account_get_full_name (facc_dialog->account); gchar *sub_label; sub_label = g_strconcat (sub_label_start, sub_full_name, NULL); gtk_button_set_label (GTK_BUTTON(facc_dialog->radio_subroot), sub_label); g_free (sub_full_name); g_free (sub_label); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(facc_dialog->radio_subroot), TRUE); gtk_widget_show_all (facc_dialog->radio_hbox); } else gtk_widget_hide_all (facc_dialog->radio_hbox); // Set the filter to Wildcard gtk_entry_set_text (GTK_ENTRY(facc_dialog->filter_text_entry), ""); get_account_info (facc_dialog); LEAVE(" "); }
int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkBuilder *builder; GtkWidget *window; GError *error = NULL; if(argc == 2 && strcmp(argv[1], "--nogui") == 0) { double res; int err; while(true) { printf("> "); char *input = malloc(100*sizeof(char)); scanf("%s", input); if(strcmp(input, "exit") == 0) return 0; rpn_resolve(input, &res, &err); if(err == 0) printf("%.6f\n", input, res); else printf("ERROR!\n"); } } builder = gtk_builder_new(); if(!gtk_builder_add_from_file(builder, "src/calc.glade", &error)) { g_warning("%s", error->message); g_free(error); return(1); } calclist * list = NULL; calclist_fread(&list, "calculations.txt"); calc_context * context = calc_context_new(builder, &list); window = GTK_WIDGET( gtk_builder_get_object( builder, "window1" ) ); // connect signals g_signal_connect(window, "destroy", G_CALLBACK(callback_quit), context); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_quit")), "clicked", G_CALLBACK(callback_quit), context); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_equals")), "clicked", G_CALLBACK(callback_calculate), context); // number buttons g_signal_connect(GTK_WIDGET(get_widget(builder, "number_0")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_1")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_2")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_3")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_4")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_5")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_6")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_7")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_8")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "number_9")), "clicked", G_CALLBACK(callback_insert), builder); // function buttons g_signal_connect(GTK_WIDGET(get_widget(builder, "button_sine")), "clicked", G_CALLBACK(callback_insert_function), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_cosine")), "clicked", G_CALLBACK(callback_insert_function), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_tangens")), "clicked", G_CALLBACK(callback_insert_function), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_sqrt")), "clicked", G_CALLBACK(callback_insert_function), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_exp")), "clicked", G_CALLBACK(callback_insert_function), builder); // equation buttons g_signal_connect(GTK_WIDGET(get_widget(builder, "button_add")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_subtract")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_multiply")), "clicked", G_CALLBACK(callback_insert), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_divide")), "clicked", G_CALLBACK(callback_insert), builder); // control buttons g_signal_connect(GTK_WIDGET(get_widget(builder, "button_clear")), "clicked", G_CALLBACK(callback_clear), builder); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_previous")), "clicked", G_CALLBACK(callback_previous), context); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_next")), "clicked", G_CALLBACK(callback_next), context); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_next")), "clicked", G_CALLBACK(callback_control_buttons), context); g_signal_connect(GTK_WIDGET(get_widget(builder, "button_previous")), "clicked", G_CALLBACK(callback_control_buttons), context); gtk_widget_show(window); if(list != NULL) { callback_control_buttons(NULL, context); callback_next(NULL, context); } gtk_main(); return 0; }
static PropertyPage * create_property_page (NemoFileInfo *fileinfo) { PropertyPage *page; GError *error; ShareInfo *share_info; char *share_name; gboolean free_share_name; const char *comment; char *apply_button_label; page = g_new0 (PropertyPage, 1); page->path = get_fullpath_from_fileinfo(fileinfo); page->fileinfo = g_object_ref (fileinfo); error = NULL; if (!shares_get_share_info_for_path (page->path, &share_info, &error)) { /* We'll assume that there is no share for that path, but we'll still * bring up an error dialog. */ GtkWidget *message; message = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("There was an error while getting the sharing information")); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message), "%s", error->message); gtk_widget_show (message); share_info = NULL; g_error_free (error); error = NULL; } page->xml = gtk_builder_new (); gtk_builder_set_translation_domain (page->xml, "nemo-share"); g_assert (gtk_builder_add_from_file (page->xml, INTERFACES_DIR"/share-dialog.ui", &error)); page->main = GTK_WIDGET (gtk_builder_get_object (page->xml, "vbox1")); g_assert (page->main != NULL); g_object_set_data_full (G_OBJECT (page->main), "PropertyPage", page, free_property_page_cb); page->checkbutton_share_folder = GTK_WIDGET (gtk_builder_get_object (page->xml,"checkbutton_share_folder")); page->hbox_share_comment = GTK_WIDGET (gtk_builder_get_object (page->xml,"hbox_share_comment")); page->hbox_share_name = GTK_WIDGET (gtk_builder_get_object (page->xml,"hbox_share_name")); page->checkbutton_share_rw_ro = GTK_WIDGET (gtk_builder_get_object (page->xml,"checkbutton_share_rw_ro")); page->checkbutton_share_guest_ok = GTK_WIDGET (gtk_builder_get_object (page->xml,"checkbutton_share_guest_ok")); page->entry_share_name = GTK_WIDGET (gtk_builder_get_object (page->xml,"entry_share_name")); page->entry_share_comment = GTK_WIDGET (gtk_builder_get_object (page->xml,"entry_share_comment")); page->label_status = GTK_WIDGET (gtk_builder_get_object (page->xml,"label_status")); page->button_cancel = GTK_WIDGET (gtk_builder_get_object (page->xml,"button_cancel")); page->button_apply = GTK_WIDGET (gtk_builder_get_object (page->xml,"button_apply")); /* Sanity check so that we don't screw up the Glade file */ g_assert (page->checkbutton_share_folder != NULL && page->hbox_share_comment != NULL && page->hbox_share_name != NULL && page->checkbutton_share_rw_ro != NULL && page->checkbutton_share_guest_ok != NULL && page->entry_share_name != NULL && page->entry_share_comment != NULL && page->label_status != NULL && page->button_cancel != NULL && page->button_apply != NULL); if (share_info) { page->was_initially_shared = TRUE; page->was_writable = share_info->is_writable; } /* Share name */ if (share_info) { share_name = share_info->share_name; free_share_name = FALSE; } else { share_name = g_filename_display_basename (page->path); free_share_name = TRUE; } gtk_entry_set_text (GTK_ENTRY (page->entry_share_name), share_name); if (free_share_name) g_free (share_name); /* Comment */ if (share_info == NULL || share_info->comment == NULL) comment = ""; else comment = share_info->comment; gtk_entry_set_text (GTK_ENTRY (page->entry_share_comment), comment); /* Share toggle */ if (share_info) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_folder), TRUE); else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_folder), FALSE); } /* Share name */ if (g_utf8_strlen(gtk_entry_get_text (GTK_ENTRY (page->entry_share_name)), -1) > 12) property_page_set_warning (page); /* Permissions */ if (share_info != NULL && share_info->is_writable) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_rw_ro), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_rw_ro), FALSE); /* Guest access */ if (share_info != NULL && share_info->guest_ok) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_guest_ok), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->checkbutton_share_guest_ok), FALSE); /* Apply button */ if (share_info) apply_button_label = _("Modify _Share"); else apply_button_label = _("Create _Share"); gtk_button_set_label (GTK_BUTTON (page->button_apply), apply_button_label); gtk_button_set_use_underline (GTK_BUTTON (page->button_apply), TRUE); gtk_button_set_image (GTK_BUTTON (page->button_apply), gtk_image_new_from_stock (GTK_STOCK_SAVE, GTK_ICON_SIZE_BUTTON)); gtk_widget_set_sensitive (page->button_apply, FALSE); /* Sensitivity */ property_page_check_sensitivity (page); /* Signal handlers */ g_signal_connect (page->checkbutton_share_folder, "toggled", G_CALLBACK (on_checkbutton_share_folder_toggled), page); g_signal_connect (page->checkbutton_share_rw_ro, "toggled", G_CALLBACK (on_checkbutton_rw_ro_toggled), page); g_signal_connect (page->checkbutton_share_guest_ok, "toggled", G_CALLBACK (on_checkbutton_guest_ok_toggled), page); g_signal_connect (page->entry_share_name, "changed", G_CALLBACK (modify_share_name_text_entry), page); g_signal_connect (page->entry_share_comment, "changed", G_CALLBACK (modify_share_comment_text_entry), page); g_signal_connect (page->button_apply, "clicked", G_CALLBACK (button_apply_clicked_cb), page); if (share_info != NULL) shares_free_share_info (share_info); return page; }
int main (int argc, char **argv) { GtkBuilder *builder; char *uifile; GError *error; bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); error = NULL; if (!gtk_init_with_args (&argc, &argv, "", (GOptionEntry *) options, GETTEXT_PACKAGE, &error)) { if (error) { g_printerr ("%s\n", error->message); g_error_free (error); } else g_printerr ("Cannot initiliaze GTK+.\n"); return 1; } if (!matecomponent_init (&argc, argv)) { g_printerr ("Cannot initialize matecomponent.\n"); return 1; } if (cli_iid) { load_applet_from_command_line (); gtk_main (); return 0; } builder = gtk_builder_new (); gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); uifile = MATE_PANEL_APPLET_BUILDERDIR "/panel-test-applets.ui"; gtk_builder_add_from_file (builder, uifile, &error); if (error) { g_warning ("Error loading \"%s\": %s", uifile, error->message); g_error_free (error); return 1; } gtk_builder_connect_signals (builder, NULL); win = GTK_WIDGET (gtk_builder_get_object (builder, "toplevel")); applet_combo = GTK_WIDGET (gtk_builder_get_object (builder, "applet-combo")); prefs_dir_entry = GTK_WIDGET (gtk_builder_get_object (builder, "prefs-dir-entry")); orient_combo = GTK_WIDGET (gtk_builder_get_object (builder, "orient-combo")); size_combo = GTK_WIDGET (gtk_builder_get_object (builder, "size-combo")); g_object_unref (builder); setup_options (); gtk_widget_show (win); gtk_main (); return 0; }