/* Create a window with 2 progress bars and 1 label */ void create_pbar_type5(const gchar * title) { GladeXML *xml; reset_counters(); xml = glade_xml_new(tilp_paths_build_glade("pbars-2.glade"), "pbar5_dbox", PACKAGE); if (!xml) g_error("GUI loading failed !\n"); glade_xml_signal_autoconnect(xml); window = glade_xml_get_widget(xml, "pbar5_dbox"); gtk_window_set_title(GTK_WINDOW(window), title); pbar_wnd.label_part = glade_xml_get_widget(xml, "label52"); pbar_wnd.label = glade_xml_get_widget(xml, "label53"); gtk_label_set_text(GTK_LABEL(pbar_wnd.label), ""); pbar_wnd.pbar2 = glade_xml_get_widget(xml, "progressbar50"); pbar_wnd.pbar1 = glade_xml_get_widget(xml, "progressbar51"); pbar_wnd.label_rate = glade_xml_get_widget(xml, "label54"); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_TYPE); gtk_widget_show_all(window); }
GtkWidget * nma_wired_dialog_new (const char *glade_file, NMClient *nm_client, NMSettingsConnectionInterface *connection, NMDevice *device) { GladeXML *xml; GtkWidget *dialog; gboolean success; xml = glade_xml_new (glade_file, "wireless_dialog", NULL); if (!xml) { applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the glade file was not found).")); return NULL; } dialog = glade_xml_get_widget (xml, "wireless_dialog"); if (!dialog) { nm_warning ("Couldn't find glade wireless_dialog widget."); g_object_unref (xml); return NULL; } success = dialog_init (dialog, xml, nm_client, glade_file, NM_CONNECTION (connection)); if (!success) { nm_warning ("Couldn't create wired security dialog."); gtk_widget_destroy (dialog); return NULL; } g_object_set_data_full (G_OBJECT (dialog), "connection", g_object_ref (connection), (GDestroyNotify) g_object_unref); return dialog; }
/*********************************************************** * Function: // main * Description: // 入口函数 ***********************************************************/ int main( int argc, char *argv[] ) { gtk_init( &argc, &argv ); // 初始化GTK+库 GladeXML *ui; // 声明GladeXML类型变量 ui = glade_xml_new( "xms_apitest.glade", NULL, NULL ); // 创建GladeXML对象 GtkWidget *window; // 声明GtkWidget类型变量 window = glade_xml_get_widget( ui, "main_dialog" ); // 从GladeXML对象获得GtkWidget界面构件 GtkWidget *label; label = glade_xml_get_widget( ui, "label1" ); gtk_label_set_label( GTK_LABEL( label ), "Hello World!" ); text_view = glade_xml_get_widget (ui, "textview1"); // 修改界面构件的属性 gtk_widget_show_all( window ); // 显示window内的所有构件 glade_xml_signal_autoconnect( ui ); // 连接GladeXML对象所有已定义信号 InitSystem( ); //初始化系统 gtk_main( ); // 开始GTK+主循环 return 0; }
GtkWidget * planner_property_dialog_new (PlannerWindow *main_window, MrpProject *project, GType owner, const gchar *title) { GladeXML *glade; GtkWidget *dialog; PlannerPropertyDialogPriv *priv; gchar *filename; g_return_val_if_fail (MRP_IS_PROJECT (project), NULL); priv = g_new0 (PlannerPropertyDialogPriv, 1); filename = mrp_paths_get_glade_dir ("property-dialog.glade"); glade = glade_xml_new (filename, NULL, NULL); g_free (filename); dialog = glade_xml_get_widget (glade, "dialog"); gtk_window_set_title (GTK_WINDOW (dialog), title); g_object_set_data (G_OBJECT (dialog), "priv", priv); priv->main_window = main_window; priv->project = project; priv->owner = owner; property_dialog_setup_widgets (dialog, glade); g_object_unref (glade); return dialog; }
/////////////////////////////////////////////////////////////////////////////////////////// // // CS : PUBLIC void initUI(gchar *pWindowTitle, ST_PrinterStatus *pPrinterStatus, gboolean isPrinting, ENUM_OtherMessageID otherMsg) // IN : gchar *pWindowTitle : Window title string. // ST_PrinterStatus *pPrinterStatus : Information of printer status. // gboolean isPrinting : TRUE : Printing. // FALSE : Not printing. // ENUM_OtherMessageID otherMsg : Message ID except printer status message. // OUT : None. // RETURN : None. // PUBLIC void initUI(gchar *pWindowTitle, ST_PrinterStatus *pPrinterStatus, gboolean isPrinting, ENUM_OtherMessageID otherMsg) { #ifdef USE_libglade /*** Parameters start ***/ gchar gladeFileName[MAX_BUF_SIZE]; // Buffer for glade file name. ENUM_STSMessageID *pMessageID; // Pointer to array of message ID. gint i; // Counter. /*** Parameters end ***/ // Create full path of glade file name. memset (gladeFileName, 0, MAX_BUF_SIZE); strncpy(gladeFileName, STR_SHARE_DIRECTORY_NAME, (MAX_BUF_SIZE<(strlen(STR_SHARE_DIRECTORY_NAME)+strlen(GLADE_FILE_NAME)+1))? MAX_BUF_SIZE<(strlen(STR_SHARE_DIRECTORY_NAME)+strlen(GLADE_FILE_NAME)+1)); strcat(gladeFileName, "/"); strcat(gladeFileName, GLADE_FILE_NAME); // Show window. gXmlMainWnd = glade_xml_new(gladeFileName, STR_WINDOW_NAME_MAIN); // Set window title. setWindowTitle(STR_WINDOW_NAME_MAIN, pWindowTitle); // Initialize related cartridge area drawing handling. initDrawing(); // Disable [Cancel Printing] button. activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); if (isPrinting == FALSE) { // Not printing. // Initialize UI settings. (Without printer status.) updateUISettings(NULL, otherMsg, TRUE, TRUE, TRUE, TRUE); } else { // Printing. // Enable [Cancel Printing] button. if (pPrinterStatus->printInterface == ID_DEV_1284 ) activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, TRUE); // Check messages. pMessageID = pPrinterStatus->pMessageID; for (i = 0; i < pPrinterStatus->messageNum; i++) { if (*pMessageID == ID_STS_MESSAGE_CARTRIDGE_UNSUPPORTED || *pMessageID == ID_STS_MESSAGE_OC_PAPER_OUT21 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_PAPER_OUT22 // ver.2.5 || *pMssageID == ID_STS_MESSAGE_OC_PAPER_JAM || *pMssageID == ID_STS_MESSAGE_OC_PAPER_JAM03 // ver.2.5 || *pMssageID == ID_STS_MESSAGE_OC_PAPER_JAM04 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_USBDEVICE // Ver.2.4 || *pMessageID == ID_STS_MESSAGE_OC_HEADALIGNMENT // Ver.2.4 ) { // Disable [Cancel Printing] button. activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); break; } pMessageID++; } // Initialize UI settings related with printer status. updateUISettings(pPrinterStatus, ID_OTHER_MESSAGE_NONE, TRUE, TRUE, TRUE, TRUE); } // Hide [Continue] button. showWidget(STR_MAIN_BUTTON_NAME_CONTINUE, FALSE); //for Ver.2.70 showWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); // Signal connect. glade_xml_signal_autoconnect(gXmlMainWnd); return; #else // use Gtk+-1.2 /*** Parameters start ***/ ENUM_STSMessageID *pMessageID; // Pointer to array of message ID. gint i; // Counter. // struct sigaction sa; /*** Parameters end ***/ // Show window. gMainWnd = create_mainWindow(); // Initialize related cartridge area drawing handling. initDrawing(); // Set window title. setWindowTitle(STR_WINDOW_NAME_MAIN, pWindowTitle); // Disable [Cancel Printing] button. activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); if (isPrinting == FALSE) { // Not printing. // Initialize UI settings. (Without printer status.) updateUISettings(NULL, otherMsg, TRUE, TRUE, TRUE, TRUE); } else { // Printing. // Enable [Cancel Printing] button. if (pPrinterStatus->printInterface == ID_DEV_1284 ) activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, TRUE); // Check messages. pMessageID = pPrinterStatus->pMessageID; for (i = 0; i < pPrinterStatus->messageNum; i++) { if (*pMessageID == ID_STS_MESSAGE_CARTRIDGE_UNSUPPORTED || *pMessageID == ID_STS_MESSAGE_OC_PAPER_OUT21 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_PAPER_OUT22 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_PAPER_JAM || *pMessageID == ID_STS_MESSAGE_OC_PAPER_JAM03 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_PAPER_JAM04 // ver.2.5 || *pMessageID == ID_STS_MESSAGE_OC_USBDEVICE // Ver.2.4 || *pMessageID == ID_STS_MESSAGE_OC_HEADALIGNMENT // Ver.2.4 ) { // Disable [Cancel Printing] button. activateWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); break; } pMessageID++; } // Initialize UI settings related with printer status. updateUISettings(pPrinterStatus, ID_OTHER_MESSAGE_NONE, TRUE, TRUE, TRUE, TRUE); } // Hide [Continue] button. showWidget(STR_MAIN_BUTTON_NAME_CONTINUE, FALSE); //for Ver.2.70 showWidget(STR_MAIN_BUTTON_NAME_CANCEL, FALSE); // Show showWidget(STR_WINDOW_NAME_MAIN, TRUE); // Signal connect. // memset( &sa, 0, sizeof(sa)); // sa.sa_handler = sighand_term; // if( sigaction( SIGTERM, &sa, NULL) ) perror("sigaction"); return; #endif // USE_libglade }// End initUI
gint display_romversion_dbox(gboolean file_only) { GladeXML *xml; GtkWidget *data; gint result; GtkListStore *store; xml = glade_xml_new (tilp_paths_build_glade("romversion-2.glade"), "romversion_dbox", PACKAGE); if (!xml) g_error(_("%s: GUI loading failed!\n"), __FILE__); glade_xml_signal_autoconnect(xml); // display list box dbox = glade_xml_get_widget(xml, "romversion_dbox"); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dbox), GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL,-1); data = glade_xml_get_widget(xml, "clist1"); store = clist_create(data); clist_populate(store); // run main box gtk_dialog_set_response_sensitive(GTK_DIALOG(dbox), GTK_RESPONSE_OK, FALSE); result = gtk_dialog_run(GTK_DIALOG(dbox)); gtk_widget_destroy(dbox); switch (result) { case GTK_RESPONSE_OK: if(chosen_file == NULL) break; if(!ti68k_is_a_img_file(chosen_file)) break; // Remove previous tib file g_free(params.tib_file); params.tib_file = g_strconcat("", NULL); // Set new image g_free(params.rom_file); params.rom_file = g_strconcat(inst_paths.img_dir, chosen_file, NULL); g_free(chosen_file); chosen_file = NULL; if(file_only) return 0; // Restart engine by exiting the GTK loop g_free(params.sav_file); params.sav_file = g_strdup(""); while(gtk_events_pending()) gtk_main_iteration(); gtk_main_quit(); break; default: if(file_only) return -1; break; } return 0; }
static GtkWidget *_create_popup_menu(XiphosHtml *html, const gchar *mod_name, DIALOG_DATA *d) { gchar *glade_file; #ifdef USE_GTKBUILDER GtkBuilder *gxml; #else GladeXML *gxml; #endif const gchar *mname = (is_dialog ? d->mod_name : mod_name); XI_message(("_create_popup_menu mod_name:%s", mod_name)); if (!mname || !*mname) return NULL; #ifdef USE_GTKBUILDER #ifdef HAVE_GTK_314 glade_file = gui_general_user_file("xi-menus-popup.gtkbuilder", FALSE); #else glade_file = gui_general_user_file("xi-menus-popup_old.gtkbuilder", FALSE); #endif #else glade_file = gui_general_user_file("xi-menus.glade", FALSE); #endif g_return_val_if_fail((glade_file != NULL), NULL); #ifdef USE_GTKBUILDER gxml = gtk_builder_new(); gtk_builder_add_from_file(gxml, glade_file, NULL); #else gxml = glade_xml_new(glade_file, "menu_popup", NULL); #endif g_free(glade_file); g_return_val_if_fail((gxml != NULL), NULL); GtkWidget *menu = UI_GET_ITEM(gxml, "menu_popup"); GtkWidget *bookmark = UI_GET_ITEM(gxml, "bookmark"); GtkWidget *open = UI_GET_ITEM(gxml, "open_module2"); GtkWidget *export_ = UI_GET_ITEM(gxml, "export_passage"); GtkWidget *close = UI_GET_ITEM(gxml, "close"); GtkWidget *note = UI_GET_ITEM(gxml, "note"); GtkWidget *mark_verse = UI_GET_ITEM(gxml, "mark_verse"); GtkWidget *open_edit = UI_GET_ITEM(gxml, "open_in_editor"); GtkWidget *mod_opt_sub = UI_GET_ITEM(gxml, "module_options1_menu"); GtkWidget *lookup = UI_GET_ITEM(gxml, "lookup_selection1"); GtkWidget *lookup_sub = UI_GET_ITEM(gxml, "lookup_selection1_menu"); GtkWidget *unlock = UI_GET_ITEM(gxml, "unlock_this_module"); GtkWidget *book_heading = UI_GET_ITEM(gxml, "display_book_heading"); GtkWidget *chapter_heading = UI_GET_ITEM(gxml, "display_chapter_heading"); GtkWidget *rename_percomm = UI_GET_ITEM(gxml, "rename_perscomm"); GtkWidget *dump_percomm = UI_GET_ITEM(gxml, "dump_perscomm"); GtkWidget *open_sub = gtk_menu_new(); GtkWidget *note_sub = gtk_menu_new(); gtk_widget_hide(unlock); gtk_widget_hide(book_heading); gtk_widget_hide(export_); gtk_widget_hide(chapter_heading); gtk_widget_hide(rename_percomm); gtk_widget_hide(dump_percomm); gtk_widget_hide(note); gtk_widget_hide(open_edit); gtk_widget_hide(mark_verse); gtk_widget_hide(close); /* FIXME: hide until connected to dialog close */ if (is_dialog) { gtk_widget_hide(open); gtk_widget_hide(bookmark); gtk_widget_hide(export_); } else { gtk_widget_hide(close); gtk_menu_item_set_submenu(GTK_MENU_ITEM(open), open_sub); gui_add_mods_2_gtk_menu(_get_type_mod_list(), open_sub, (GCallback)on_view_mod_activate); /* unlock from main window only */ if (main_has_cipher_tag((gchar *)mod_name)) gtk_widget_show(unlock); } switch (main_get_mod_type((gchar *)mname)) { case TEXT_TYPE: gtk_widget_show(export_); if (is_dialog) break; gtk_widget_show(note); gtk_widget_show(mark_verse); gtk_menu_item_set_submenu(GTK_MENU_ITEM(note), note_sub); gui_add_mods_2_gtk_menu(PERCOMM_LIST, note_sub, (GCallback) on_edit_percomm_activate); break; case COMMENTARY_TYPE: gtk_widget_show(export_); gtk_widget_show(book_heading); gtk_widget_show(chapter_heading); break; case PERCOM_TYPE: gtk_widget_show(export_); gtk_widget_show(open_edit); g_signal_connect(G_OBJECT(open_edit), "activate", G_CALLBACK(on_edit_percomm_activate), (gchar *)(is_dialog ? d->mod_name : mod_name)); gtk_widget_show(rename_percomm); gtk_widget_show(dump_percomm); break; case DICTIONARY_TYPE: break; case BOOK_TYPE: break; case PRAYERLIST_TYPE: gtk_widget_show(open_edit); g_signal_connect(G_OBJECT(open_edit), "activate", G_CALLBACK(on_edit_prayerlist_activate), (gchar *)(is_dialog ? d->mod_name : mod_name)); break; } gtk_menu_item_set_submenu(GTK_MENU_ITEM(lookup), lookup_sub); gui_add_mods_2_gtk_menu(DICT_DESC_LIST, lookup_sub, (GCallback)_lookup_selection); /* = glade_xml_get_widget (gxml, ""); */ _add_and_check_global_opts(gxml, (char *)(is_dialog ? d->mod_name : mod_name), mod_opt_sub, d); /* connect signals and data */ #ifdef USE_GTKBUILDER gtk_builder_connect_signals(gxml, html); /*gtk_builder_connect_signals_full (gxml, (GtkBuilderConnectFunc)gui_glade_signal_connect_func, html); */ #else glade_xml_signal_autoconnect_full(gxml, (GladeXMLConnectFunc)gui_glade_signal_connect_func, html); #endif return menu; }
CEPage * ce_page_wireless_security_new (NMConnection *connection, GtkWindow *parent_window, GError **error) { CEPageWirelessSecurity *self; CEPage *parent; NMSettingWireless *s_wireless; NMSettingWirelessSecurity *s_wsec = NULL; const char *setting_name = NULL; NMUtilsSecurityType default_type = NMU_SEC_NONE; const char *security; self = CE_PAGE_WIRELESS_SECURITY (g_object_new (CE_TYPE_PAGE_WIRELESS_SECURITY, CE_PAGE_CONNECTION, connection, CE_PAGE_PARENT_WINDOW, parent_window, NULL)); parent = CE_PAGE (self); s_wireless = NM_SETTING_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS)); if (!s_wireless) { g_set_error (error, 0, 0, "%s", _("Could not load WiFi security user interface; missing WiFi setting.")); g_object_unref (self); return NULL; } parent->xml = glade_xml_new (GLADEDIR "/ce-page-wireless-security.glade", "WirelessSecurityPage", NULL); if (!parent->xml) { g_set_error (error, 0, 0, "%s", _("Could not load WiFi security user interface.")); g_object_unref (self); return NULL; } parent->page = glade_xml_get_widget (parent->xml, "WirelessSecurityPage"); if (!parent->page) { g_set_error (error, 0, 0, "%s", _("Could not load WiFi security user interface.")); g_object_unref (self); return NULL; } g_object_ref_sink (parent->page); parent->title = g_strdup (_("Wireless Security")); self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); s_wsec = NM_SETTING_WIRELESS_SECURITY (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY)); security = nm_setting_wireless_get_security (s_wireless); if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) s_wsec = NULL; if (s_wsec) default_type = get_default_type_for_security (s_wsec); /* Get secrets if the connection is not 802.1x enabled */ if ( default_type == NMU_SEC_STATIC_WEP || default_type == NMU_SEC_LEAP || default_type == NMU_SEC_WPA_PSK || default_type == NMU_SEC_WPA2_PSK) { setting_name = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME; } /* Or if it is 802.1x enabled */ if ( default_type == NMU_SEC_DYNAMIC_WEP || default_type == NMU_SEC_WPA_ENTERPRISE || default_type == NMU_SEC_WPA2_ENTERPRISE) { setting_name = NM_SETTING_802_1X_SETTING_NAME; } g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); if (!ce_page_initialize (parent, setting_name, error)) { g_object_unref (self); return NULL; } return CE_PAGE (self); }
int main (int argc, char *argv[]) { GtkWidget *dialog; GtkWidget *browse_button; GtkWidget *help_button; GtkWidget *face_image; gboolean face_browser; char *greeter; int max_size; bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); gtk_init(&argc, &argv); photofile = g_build_filename (g_get_home_dir (), ".face", NULL); /* Read config data in bulk */ mdmcomm_comm_bulk_start (); face_browser = mdm_config_get_bool (MDM_KEY_BROWSER); max_size = mdm_config_get_int (MDM_KEY_USER_MAX_FILE); max_width = mdm_config_get_int (MDM_KEY_MAX_ICON_WIDTH); max_height = mdm_config_get_int (MDM_KEY_MAX_ICON_HEIGHT); greeter = mdm_config_get_string (MDM_KEY_GREETER); facedir = mdm_config_get_string (MDM_KEY_GLOBAL_FACE_DIR); /* At this point we are done using the socket, so close it */ mdmcomm_comm_bulk_stop (); imagename = NULL; gtk_window_set_default_icon_name ("stock_person"); xml = glade_xml_new (MDM_GLADE_DIR "/mdmphotosetup.glade", NULL, NULL); dialog = glade_xml_get_widget (xml, "face_dialog"); face_image = glade_xml_get_widget (xml, "face_image"); browse_button = glade_xml_get_widget (xml, "browse_button"); help_button = glade_xml_get_widget (xml, "helpbutton1"); gtk_widget_set_size_request (browse_button, MAX (max_width, 230), MAX (max_height, 130)); if (g_access (photofile, R_OK) == 0) { gtk_image_set_from_file (GTK_IMAGE (face_image), photofile); } else { gtk_image_set_from_icon_name (GTK_IMAGE (face_image), "stock_person", GTK_ICON_SIZE_DIALOG); } g_signal_connect (browse_button, "clicked", G_CALLBACK (browse_button_cb), dialog); g_signal_connect (help_button, "clicked", G_CALLBACK (help_button_cb), dialog); g_signal_connect (dialog, "response", G_CALLBACK (dialog_response), NULL); gtk_widget_show_all (dialog); gtk_main (); return 0; }
int main (int argc, char *argv[]) { GtkWidget *dialog = NULL; #ifdef G_OS_WIN32 gchar *temp; package_prefix = g_win32_get_package_installation_directory (NULL, NULL); package_datadir = g_strdup_printf ("%s%s", package_prefix, "/share"); #endif #ifdef ENABLE_NLS #ifdef G_OS_WIN32 temp = g_strdup_printf ("%s%s", package_prefix, "/lib/locale"); bindtextdomain (GETTEXT_PACKAGE, temp); g_free (temp); #else bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); #endif bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif gtk_set_locale (); gtk_init (&argc, &argv); #ifdef G_OS_WIN32 temp = g_strdup_printf ("%s%s", package_datadir, "/pixmaps"); //add_pixmap_directory (temp); g_free (temp); #else //add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); #endif //dialog = create_dialog (); xml = glade_xml_new (GLADE_FILE, NULL, NULL); if( !xml ) { #ifdef G_OS_WIN32 g_free (package_prefix); g_free (package_datadir); #endif return 1; } connect_signals (); dialog = glade_xml_get_widget (xml, "dialog"); gtk_window_set_title (GTK_WINDOW (dialog), PACKAGE " v" VERSION); usb_init (); if (usbOpenDevice (&handle, USBDEV_SHARED_VENDOR, /*NULL */USBDEV_VENDOR_NAME , USBDEV_SHARED_PRODUCT, /*NULL */ USBDEV_NAME ) != 0) { psg_message_dialog (GTK_MESSAGE_WARNING, //fprintf (stderr, "Could not find USB device \"%s\" with vid=0x%x pid=0x%x\n", USBDEV_NAME, USBDEV_SHARED_VENDOR, USBDEV_SHARED_PRODUCT); //exit (1); } // We have searched all devices on all busses for our USB device above. Now // try to open it and perform the vendor specific control operations for the // function requested by the user. gtk_widget_show (dialog); update_toggles (dialog); gtk_main (); usb_close (handle); #ifdef G_OS_WIN32 g_free (package_prefix); g_free (package_datadir); #endif return 0; }
static void create_basics () { GtkWidget *window = NULL; GtkWidget *box; GtkWidget *scrollbar; GtkWidget *ruler; GtkDataboxGraph *graph; gfloat min_x, max_x; gfloat min_y, max_y; gfloat *X; gfloat *Y; gfloat buffer; GdkRGBA color; gint i; GladeXML *gxml; gxml = glade_xml_new (GLADE_FILE, NULL, NULL); /* This is important */ glade_xml_signal_autoconnect (gxml); window = glade_xml_get_widget (gxml, "window"); /* You could associate a scrollbar with a GtkDatabox widget either * this way ...*/ scrollbar = glade_xml_get_widget (gxml, "scrollbar_x"); box = glade_xml_get_widget (gxml, "box"); gtk_databox_set_adjustment_x (GTK_DATABOX (box), gtk_range_get_adjustment (GTK_RANGE (scrollbar))); /* or this way ... */ scrollbar = glade_xml_get_widget (gxml, "scrollbar_y"); gtk_databox_set_adjustment_y (GTK_DATABOX (box), gtk_range_get_adjustment (GTK_RANGE (scrollbar))); ruler = glade_xml_get_widget (gxml, "ruler_x"); gtk_databox_set_ruler_x (GTK_DATABOX (box), GTK_DATABOX_RULER (ruler)); ruler = glade_xml_get_widget (gxml, "ruler_y"); gtk_databox_set_ruler_y (GTK_DATABOX (box), GTK_DATABOX_RULER (ruler)); /* end of gtk_databox_create_box_with_scrollbars_and_rulers */ color.red = 0.33; color.green = 0.33; color.blue = 0.33; gtk_widget_override_background_color (box, GTK_STATE_FLAG_NORMAL, &color); X = g_new0 (gfloat, POINTS); Y = g_new0 (gfloat, POINTS); for (i = 0; i < POINTS; i++) { X[i] = i; Y[i] = 100. * sin (i * 2 * G_PI / POINTS); } color.red = 0; color.green = 1; color.blue = 0; color.alpha = 1; graph = gtk_databox_points_new (POINTS, X, Y, &color, 1); gtk_databox_graph_add (GTK_DATABOX (box), graph); X = g_new0 (gfloat, STEPS); Y = g_new0 (gfloat, STEPS); for (i = 0; i < STEPS / 2; i++) { X[i * 2] = X[i * 2 + 1] = 2 * (i + .5) * POINTS / STEPS; if (i > 0) Y[i * 2 - 1] = 100. * sin ((i * 2) * 2 * G_PI / STEPS); Y[i * 2] = 100. * sin ((i * 2) * 2 * G_PI / STEPS); if (i == STEPS / 2 - 1) Y[i * 2 + 1] = 100. * sin (((i + 1) * 2) * 2 * G_PI / STEPS); } color.red = 1; color.green = 0; color.blue = 0; color.alpha = 1; graph = gtk_databox_lines_new (STEPS, X, Y, &color, 1); gtk_databox_graph_add (GTK_DATABOX (box), graph); X = g_new0 (gfloat, BARS); Y = g_new0 (gfloat, BARS); for (i = 0; i < BARS; i++) { X[i] = i * POINTS / BARS; Y[i] = 80. * sin (i * 2 * G_PI / BARS); } color.red = 0; color.green = 1; color.blue = 1; color.alpha = 1; graph = gtk_databox_bars_new (BARS, X, Y, &color, 1); gtk_databox_graph_add (GTK_DATABOX (box), graph); color.red = 0.5; color.green = 0.5; color.blue = 0.5; graph = gtk_databox_cross_simple_new (&color, 0); gtk_databox_graph_add (GTK_DATABOX (box), graph); /* Instead of doing stuff what you see below, you could call * gtk_databox_auto_rescale (GTK_DATABOX (box), 0.05); * as is done in the other examples * Of course, you are more flexible in adjusting the scaling by doing * it yourself, though. */ if (0 > gtk_databox_calculate_extrema (GTK_DATABOX (box), &min_x, &max_x, &min_y, &max_y)) { g_warning ("Calculating extrema failed. Resorting to default values"); min_x = -100.; min_y = -100.; max_x = +100.; max_y = +100.; } else { gfloat width = max_x - min_x; gfloat height = max_y - min_y; gfloat border = 0.05; min_x -= border * width; min_y -= border * height; max_x += border * width; max_y += border * height; } /* We want larger y values to be higher on the screen */ buffer = min_y; min_y = max_y; max_y = buffer; gtk_databox_set_total_limits (GTK_DATABOX (box), min_x, max_x, min_y, max_y); /* end of gtk_databox_auto_rescale */ gtk_widget_show (window); gdk_window_set_cursor (box->window, gdk_cursor_new (GDK_CROSS)); }
void showPreferences(gpointer data) { char* glade_file; GladeXML* gladeWindow; //Load interface from glade file glade_file = g_build_filename(GLADEDIR, GLADE_XML_FILE, NULL); gladeWindow = glade_xml_new(glade_file, "preferences-dialog", NULL); //In case we cannot load glade file if (gladeWindow == NULL) { errorDialog(_("Could not load the preferences interface"), glade_file); g_free (glade_file); return; } g_free (glade_file); //Get the widgets that we will need historyLength = glade_xml_get_widget(gladeWindow, "historyLength"); itemLength = glade_xml_get_widget(gladeWindow, "itemLength"); primaryCheck = glade_xml_get_widget(gladeWindow, "primaryCheck"); defaultCheck = glade_xml_get_widget(gladeWindow, "defaultCheck"); markDefaultCheck = glade_xml_get_widget(gladeWindow, "markDefaultCheck"); saveHistCheck = glade_xml_get_widget(gladeWindow, "saveHistCheck"); keyCombEntry = glade_xml_get_widget(gladeWindow, "keyComb"); helpButton = glade_xml_get_widget(gladeWindow, "helpButton"); closeButton = glade_xml_get_widget(gladeWindow, "closeButton"); prefWin = glade_xml_get_widget(gladeWindow, "preferences-dialog"); //Connect signals to handlers g_signal_connect ((gpointer) primaryCheck, "toggled", G_CALLBACK (on_primaryCheck_toggled), NULL); g_signal_connect ((gpointer) defaultCheck, "toggled", G_CALLBACK (on_defaultCheck_toggled), NULL); g_signal_connect ((gpointer) helpButton, "clicked", G_CALLBACK (on_helpButton_clicked), NULL); g_signal_connect ((gpointer) closeButton, "clicked", G_CALLBACK (on_closeButton_clicked), NULL); g_signal_connect ((gpointer) itemLength, "value_changed", G_CALLBACK (on_itemLength_value_changed), NULL); g_signal_connect ((gpointer) historyLength, "value_changed", G_CALLBACK (on_historyLength_value_changed), NULL); g_signal_connect ((gpointer) markDefaultCheck, "toggled", G_CALLBACK (on_markDefaultCheck_toggled), NULL); g_signal_connect ((gpointer) saveHistCheck, "toggled", G_CALLBACK (on_saveHistCheck_toggled), NULL); g_signal_connect ((gpointer) keyCombEntry, "changed", G_CALLBACK (on_keyCombEntry_changed), NULL); //Show preferences dialog setWidgets(); gtk_widget_show_all(prefWin); //free the glade data g_object_unref(gladeWindow); }
/*! \brief Creates a group of 2D Table Editors packed into a GtkNotebook \param button is a pointer to the widget the user click on, which has bound to is a list of the TE Table ID's which we need to create on-screen representations for \returns TRUE on success, FALSE otherwise */ G_MODULE_EXPORT gboolean create_2d_table_editor_group(GtkWidget *button) { GladeXML *main_xml = NULL; GladeXML *xml = NULL; GtkWidget *widget = NULL; GtkWidget *window = NULL; GtkWidget *notebook = NULL; GtkWidget *curve = NULL; GtkWidget *x_parent = NULL; GtkWidget *y_parent = NULL; GtkWidget *x_table = NULL; GtkWidget *y_table = NULL; GtkWidget *label = NULL; GtkWidget *entry = NULL; GtkWidget *dummy = NULL; GtkWidget *gauge = NULL; GtkWidget *parent = NULL; GtkWidget *curve_parent = NULL; CurveData *cdata = NULL; GArray *x_entries = NULL; GArray *y_entries = NULL; GList *widget_list = NULL; GList *curve_list = NULL; GList *gauge_list = NULL; gchar * tmpbuf = NULL; gchar * filename = NULL; gchar **vector = NULL; GList ***ecu_widgets = NULL; gint num_tabs = 0; gint x_mult = 0; gint y_mult = 0; gint page = 0; gint offset = 0; gint i = 0; gint j = 0; gfloat tmpf = 0.0; guint32 id = 0; gint rows = 0; gint table_num = 0; Firmware_Details *firmware = NULL; firmware = DATA_GET(global_data,"firmware"); ecu_widgets = DATA_GET(global_data,"ecu_widgets"); main_xml = (GladeXML *)DATA_GET(global_data,"main_xml"); if (!main_xml) return FALSE; xml = glade_xml_new(main_xml->filename,"table_editor_window",NULL); window = glade_xml_get_widget(xml,"table_editor_window"); glade_xml_signal_autoconnect(xml); g_signal_connect(G_OBJECT(window),"destroy_event", G_CALLBACK(close_2d_editor),NULL); g_signal_connect(G_OBJECT(window),"delete_event", G_CALLBACK(close_2d_editor),NULL); gtk_window_set_title(GTK_WINDOW(window),_("2D Table Group Editor")); gtk_window_resize(GTK_WINDOW(window),800,530); widget = glade_xml_get_widget(xml,"2d_close_button"); g_signal_connect_swapped(G_OBJECT(widget),"clicked", G_CALLBACK(close_2d_editor),window); widget = glade_xml_get_widget(xml,"get_data_button"); OBJ_SET(widget,"handler",GINT_TO_POINTER(READ_VE_CONST)); OBJ_SET_FULL(widget,"bind_to_list",g_strdup("get_data_buttons"),g_free); bind_to_lists_f(widget,"get_data_buttons"); widget_list = g_list_prepend(widget_list,(gpointer)widget); widget = glade_xml_get_widget(xml,"burn_data_button"); OBJ_SET(widget,"handler",GINT_TO_POINTER(BURN_FLASH)); OBJ_SET_FULL(widget,"bind_to_list",g_strdup("burners"),g_free); bind_to_lists_f(widget,"burners"); widget_list = g_list_prepend(widget_list,(gpointer)widget); /* widget = glade_xml_get_widget(xml,"curve_editor_menuitem"); gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE); */ widget = glade_xml_get_widget(xml,"close_menuitem"); OBJ_SET(widget,"window",(gpointer)window); widget = glade_xml_get_widget(xml,"te_layout_hbox1"); gtk_widget_destroy(widget); widget = glade_xml_get_widget(xml,"te_layout_vbox"); tmpbuf = OBJ_GET(button,"te_tables"); vector = parse_keys_f(tmpbuf,&num_tabs,","); notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook),GTK_POS_LEFT); gtk_box_pack_start(GTK_BOX(widget),notebook,TRUE,TRUE,0); for (j = 0;j < num_tabs;j++) { table_num = (gint)strtod(vector[j],NULL); if (table_num >= firmware->total_te_tables) { warn_user_f("Requested to create 2D table editor window for an undefined (out of range) table ID"); return FALSE; } if (!firmware->te_params) { warn_user_f("No 2D table Editor tables (te_tables) defined in interrogation profile, yet told to create a graph for a table... BUG detected!"); continue; } if (!firmware->te_params[table_num]) { warn_user_f("Requested to create a 2D table editor window for an undefined table!"); continue; } xml = glade_xml_new(main_xml->filename,"te_layout_hbox1",NULL); widget = glade_xml_get_widget(xml,"te_layout_hbox1"); label = gtk_label_new(firmware->te_params[table_num]->title); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); if (firmware->te_params[table_num]->bind_to_list) { OBJ_SET_FULL(widget,"bind_to_list", g_strdup(firmware->te_params[table_num]->bind_to_list),g_free); OBJ_SET(widget,"match_type", GINT_TO_POINTER(firmware->te_params[table_num]->match_type)); bind_to_lists_f(widget,firmware->te_params[table_num]->bind_to_list); widget_list = g_list_prepend(widget_list,(gpointer)widget); OBJ_SET_FULL(label,"bind_to_list", g_strdup(firmware->te_params[table_num]->bind_to_list),g_free); OBJ_SET(label,"match_type", GINT_TO_POINTER(firmware->te_params[table_num]->match_type)); bind_to_lists_f(label,firmware->te_params[table_num]->bind_to_list); widget_list = g_list_prepend(widget_list,(gpointer)label); } if (firmware->te_params[table_num]->gauge || firmware->te_params[table_num]->c_gauge || firmware->te_params[table_num]->f_gauge) { parent = glade_xml_get_widget(xml,"te_gaugeframe"); gauge = mtx_gauge_face_new(); gauge_list = g_list_prepend(gauge_list,(gpointer)gauge); OBJ_SET(window,"gauge",gauge); if (firmware->te_params[table_num]->gauge_temp_dep) { if ((GINT)DATA_GET(global_data,"mtx_temp_units") == CELSIUS) tmpbuf = g_strdelimit(firmware->te_params[table_num]->c_gauge,"\\",'/'); else if ((GINT)DATA_GET(global_data,"mtx_temp_units") == KELVIN) tmpbuf = g_strdelimit(firmware->te_params[table_num]->c_gauge,"\\",'/'); else tmpbuf = g_strdelimit(firmware->te_params[table_num]->f_gauge,"\\",'/'); } else tmpbuf = g_strdelimit(firmware->te_params[table_num]->gauge,"\\",'/'); filename = get_file(g_strconcat(GAUGES_DATA_DIR,PSEP,tmpbuf,NULL),NULL); mtx_gauge_face_import_xml(MTX_GAUGE_FACE(gauge),filename); lookup_current_value_f(firmware->te_params[table_num]->gauge_datasource, &tmpf); mtx_gauge_face_set_value(MTX_GAUGE_FACE(gauge),tmpf); g_free(filename); id = create_rtv_value_change_watch_f(firmware->te_params[table_num]->gauge_datasource,FALSE,"update_misc_gauge",(gpointer)gauge); OBJ_SET(gauge,"gauge_id",GINT_TO_POINTER(id)); gtk_container_add(GTK_CONTAINER(parent),gauge); } gtk_notebook_append_page(GTK_NOTEBOOK(notebook),widget,label); curve_parent = glade_xml_get_widget(xml,"te_right_frame"); curve = mtx_curve_new(); curve_list = g_list_prepend(curve_list,(gpointer)curve); mtx_curve_set_title(MTX_CURVE(curve),_(firmware->te_params[table_num]->title)); mtx_curve_set_x_axis_label(MTX_CURVE(curve),_(firmware->te_params[table_num]->x_axis_label)); mtx_curve_set_y_axis_label(MTX_CURVE(curve),_(firmware->te_params[table_num]->y_axis_label)); cdata = g_new0(CurveData, 1); cdata->curve = curve; cdata->axis = _X_; cdata->source = firmware->te_params[table_num]->x_source; id = create_rtv_value_change_watch_f(cdata->source,FALSE,"update_curve_marker",(gpointer)cdata); mtx_curve_set_show_x_marker(MTX_CURVE(curve),TRUE); OBJ_SET(curve,"cdata",(gpointer)cdata); OBJ_SET(curve,"marker_id",GINT_TO_POINTER(id)); mtx_curve_set_auto_hide_vertexes(MTX_CURVE(curve),TRUE); g_signal_connect(G_OBJECT(curve),"coords-changed", G_CALLBACK(coords_changed), NULL); g_signal_connect(G_OBJECT(curve),"vertex-proximity", G_CALLBACK(vertex_proximity), NULL); g_signal_connect(G_OBJECT(curve),"marker-proximity", G_CALLBACK(marker_proximity), NULL); label = glade_xml_get_widget(xml,"x_units"); gtk_label_set_markup(GTK_LABEL(label),firmware->te_params[table_num]->x_units); label = glade_xml_get_widget(xml,"y_units"); gtk_label_set_markup(GTK_LABEL(label),firmware->te_params[table_num]->y_units); label = glade_xml_get_widget(xml,"x_title"); gtk_label_set_markup(GTK_LABEL(label),firmware->te_params[table_num]->x_name); label = glade_xml_get_widget(xml,"y_title"); gtk_label_set_markup(GTK_LABEL(label),firmware->te_params[table_num]->y_name); rows = firmware->te_params[table_num]->bincount; mtx_curve_set_empty_array(MTX_CURVE(curve),rows); x_table = gtk_table_new(rows+1,1,FALSE); y_table = gtk_table_new(rows+1,1,FALSE); x_parent = glade_xml_get_widget(xml,"te_x_frame"); y_parent = glade_xml_get_widget(xml,"te_y_frame"); gtk_container_set_border_width(GTK_CONTAINER(x_table),5); gtk_container_set_border_width(GTK_CONTAINER(y_table),5); gtk_container_add(GTK_CONTAINER(x_parent),x_table); gtk_container_add(GTK_CONTAINER(y_parent),y_table); x_mult = get_multiplier_f(firmware->te_params[table_num]->x_size); y_mult = get_multiplier_f(firmware->te_params[table_num]->y_size); x_entries = g_array_new(FALSE,TRUE,sizeof(GtkWidget *)); y_entries = g_array_new(FALSE,TRUE,sizeof(GtkWidget *)); for (i=0;i<rows;i++) { /* X Column */ entry = gtk_entry_new(); OBJ_SET(entry,"last_value",GINT_TO_POINTER(-G_MAXINT)); gtk_entry_set_width_chars(GTK_ENTRY(entry),7); OBJ_SET(entry,"curve_index",GINT_TO_POINTER(i)); g_array_insert_val(x_entries,i,entry); OBJ_SET(entry,"curve_axis",GINT_TO_POINTER(_X_)); OBJ_SET(entry,"dl_type",GINT_TO_POINTER(IMMEDIATE)); OBJ_SET(entry,"handler",GINT_TO_POINTER(GENERIC)); OBJ_SET_FULL(entry,"raw_lower",g_strdup_printf("%i",(firmware->te_params[table_num]->x_raw_lower)),g_free); OBJ_SET_FULL(entry,"raw_upper",g_strdup_printf("%i",(firmware->te_params[table_num]->x_raw_upper)),g_free); OBJ_SET(entry,"fromecu_mult",firmware->te_params[table_num]->x_fromecu_mult); OBJ_SET(entry,"fromecu_add",firmware->te_params[table_num]->x_fromecu_add); OBJ_SET(entry,"precision",GINT_TO_POINTER(firmware->te_params[table_num]->x_precision)); OBJ_SET(entry,"size",GINT_TO_POINTER(firmware->te_params[table_num]->x_size)); OBJ_SET(entry,"page",GINT_TO_POINTER(firmware->te_params[table_num]->x_page)); OBJ_SET(entry,"temp_dep",GINT_TO_POINTER(firmware->te_params[table_num]->x_temp_dep)); OBJ_SET(entry,"use_color",GINT_TO_POINTER(firmware->te_params[table_num]->x_use_color)); if(firmware->te_params[table_num]->x_temp_dep) { OBJ_SET(entry,"widget_temp",DATA_GET(global_data,"mtx_temp_units")); OBJ_SET_FULL(entry,"bind_to_list", g_strdup("temperature"),g_free); bind_to_lists_f(entry,"temperature"); } offset = (i*x_mult) + firmware->te_params[table_num]->x_base; OBJ_SET(entry,"offset",GINT_TO_POINTER(offset)); g_signal_connect(G_OBJECT(entry),"changed", G_CALLBACK(update_2d_curve),curve); g_signal_connect(G_OBJECT(entry),"changed", G_CALLBACK(entry_changed_handler_f),NULL); g_signal_connect(G_OBJECT(entry),"key_press_event", G_CALLBACK(key_event_f),NULL); g_signal_connect(G_OBJECT(entry),"key_release_event", G_CALLBACK(key_event_f),NULL); g_signal_connect(G_OBJECT(entry),"focus_out_event", G_CALLBACK(focus_out_handler_f),NULL); g_signal_connect(G_OBJECT(entry),"activate", G_CALLBACK(std_entry_handler_f),NULL); if (firmware->te_params[table_num]->reversed) gtk_table_attach(GTK_TABLE(x_table),entry, 0,1,rows-i-1,rows-i, GTK_SHRINK,GTK_SHRINK,0,0); else gtk_table_attach(GTK_TABLE(x_table),entry, 0,1,i,i+1, GTK_SHRINK,GTK_SHRINK,0,0); page = firmware->te_params[table_num]->x_page; ecu_widgets[page][offset] = g_list_prepend(ecu_widgets[page][offset],(gpointer)entry); widget_list = g_list_prepend(widget_list,(gpointer)entry); update_widget(G_OBJECT(entry),NULL); /* Y Column */ entry = gtk_entry_new(); OBJ_SET(entry,"last_value",GINT_TO_POINTER(-G_MAXINT)); gtk_entry_set_width_chars(GTK_ENTRY(entry),7); OBJ_SET(entry,"curve_index",GINT_TO_POINTER(i)); g_array_insert_val(y_entries,i,entry); OBJ_SET(entry,"curve_axis",GINT_TO_POINTER(_Y_)); OBJ_SET(entry,"dl_type",GINT_TO_POINTER(IMMEDIATE)); OBJ_SET(entry,"handler",GINT_TO_POINTER(GENERIC)); OBJ_SET_FULL(entry,"raw_lower",g_strdup_printf("%i",(firmware->te_params[table_num]->y_raw_lower)),g_free); OBJ_SET_FULL(entry,"raw_upper",g_strdup_printf("%i",(firmware->te_params[table_num]->y_raw_upper)),g_free); OBJ_SET(entry,"fromecu_mult",firmware->te_params[table_num]->y_fromecu_mult); OBJ_SET(entry,"fromecu_add",firmware->te_params[table_num]->y_fromecu_add); OBJ_SET(entry,"precision",GINT_TO_POINTER(firmware->te_params[table_num]->y_precision)); OBJ_SET(entry,"size",GINT_TO_POINTER(firmware->te_params[table_num]->y_size)); OBJ_SET(entry,"page",GINT_TO_POINTER(firmware->te_params[table_num]->y_page)); OBJ_SET(entry,"temp_dep",GINT_TO_POINTER(firmware->te_params[table_num]->y_temp_dep)); OBJ_SET(entry,"use_color",GINT_TO_POINTER(firmware->te_params[table_num]->y_use_color)); if(firmware->te_params[table_num]->y_temp_dep) { OBJ_SET(entry,"widget_temp",DATA_GET(global_data,"mtx_temp_units")); OBJ_SET_FULL(entry,"bind_to_list", g_strdup("temperature"),g_free); bind_to_lists_f(entry,"temperature"); } offset = (i*y_mult) + firmware->te_params[table_num]->y_base; OBJ_SET(entry,"offset",GINT_TO_POINTER(offset)); g_signal_connect(G_OBJECT(entry),"changed", G_CALLBACK(update_2d_curve),curve); g_signal_connect(G_OBJECT(entry),"changed", G_CALLBACK(entry_changed_handler_f),NULL); g_signal_connect(G_OBJECT(entry),"key_press_event", G_CALLBACK(key_event_f),NULL); g_signal_connect(G_OBJECT(entry),"key_release_event", G_CALLBACK(key_event_f),NULL); g_signal_connect(G_OBJECT(entry),"focus_out_event", G_CALLBACK(focus_out_handler_f),NULL); g_signal_connect(G_OBJECT(entry),"activate", G_CALLBACK(std_entry_handler_f),NULL); if (firmware->te_params[table_num]->reversed) gtk_table_attach(GTK_TABLE(y_table),entry, 0,1,rows-i-1,rows-i, GTK_SHRINK,GTK_SHRINK,0,0); else gtk_table_attach(GTK_TABLE(y_table),entry, 0,1,i,i+1, GTK_SHRINK,GTK_SHRINK,0,0); page = firmware->te_params[table_num]->y_page; ecu_widgets[page][offset] = g_list_prepend(ecu_widgets[page][offset],(gpointer)entry); widget_list = g_list_prepend(widget_list,(gpointer)entry); update_widget(G_OBJECT(entry),NULL); } /* Create the "LOCK" buttons */ dummy = gtk_toggle_button_new_with_label("Unlocked"); OBJ_SET(dummy,"axis",GINT_TO_POINTER(_X_)); g_signal_connect(G_OBJECT(dummy),"toggled", G_CALLBACK(set_axis_locking),curve); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dummy),firmware->te_params[table_num]->x_lock); gtk_table_attach(GTK_TABLE(x_table),dummy, 0,1,i,i+1, GTK_EXPAND|GTK_FILL,0,0,0); dummy = gtk_toggle_button_new_with_label("Unlocked"); OBJ_SET(dummy,"axis",GINT_TO_POINTER(_Y_)); g_signal_connect(G_OBJECT(dummy),"toggled", G_CALLBACK(set_axis_locking),curve); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dummy),firmware->te_params[table_num]->y_lock); gtk_table_attach(GTK_TABLE(y_table),dummy, 0,1,i,i+1, GTK_EXPAND|GTK_FILL,0,0,0); mtx_curve_set_x_precision(MTX_CURVE(curve),firmware->te_params[table_num]->x_precision); mtx_curve_set_y_precision(MTX_CURVE(curve),firmware->te_params[table_num]->y_precision); mtx_curve_set_hard_limits(MTX_CURVE(curve), (gfloat)firmware->te_params[table_num]->x_raw_lower, (gfloat)firmware->te_params[table_num]->x_raw_upper, (gfloat)firmware->te_params[table_num]->y_raw_lower, (gfloat)firmware->te_params[table_num]->y_raw_upper); OBJ_SET(curve,"x_entries",x_entries); OBJ_SET(curve,"y_entries",y_entries); if (firmware->te_params[table_num]->bind_to_list) g_list_foreach(get_list_f(firmware->te_params[table_num]->bind_to_list),alter_widget_state_f,NULL); create_rtv_value_change_watch_f(cdata->source,TRUE,"update_curve_marker",(gpointer)cdata); gtk_container_add(GTK_CONTAINER(curve_parent),curve); } OBJ_SET(window,"widget_list",widget_list); OBJ_SET(window,"curve_list",curve_list); OBJ_SET(window,"gauge_list",gauge_list); gtk_widget_show_all(window); return TRUE; }
gint display_infos_dbox() { GladeXML *xml; GtkWidget *dbox; GtkWidget *label; gint result; gchar *str; xml = glade_xml_new (tilp_paths_build_glade("infos-2.glade"), "infos_dbox", PACKAGE); if (!xml) g_error(_("%s: GUI loading failed!\n"), __FILE__); glade_xml_signal_autoconnect(xml); dbox = glade_xml_get_widget(xml, "infos_dbox"); label = glade_xml_get_widget(xml, "label20"); switch(skin_infos.type) { case SKIN_TYPE_TIEMU: str = g_strdup_printf("%s", "TiEmu v2.00"); break; case SKIN_TYPE_VTI: str = g_strdup_printf("%s", "VTi 2.5"); break; case SKIN_TYPE_OLD_VTI: str = g_strdup_printf("%s", "VTi 2.1"); break; default: str = g_strdup_printf("%s", _("unknown")); break; } gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label21"); str = g_strdup_printf("%s", skin_infos.name); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label22"); if(skin_infos.author) str = g_strdup_printf("%s", skin_infos.author); else str = g_strdup(""); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label23"); str = g_strdup_printf("%s", ti68k_calctype_to_string(tihw.calc_type)); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label24"); str = g_strdup_printf("%s", tihw.rom_version); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label25"); str = g_strdup_printf("%i KB", tihw.ram_size >> 10); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label26"); str = g_strdup_printf("%i KB", tihw.rom_size >> 10); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label27"); str = g_strdup_printf("%s", ti68k_romtype_to_string(tihw.rom_flash)); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); label = glade_xml_get_widget(xml, "label28"); str = g_strdup_printf("%s", ti68k_hwtype_to_string(tihw.hw_type)); gtk_label_set_text(GTK_LABEL(label), str); g_free(str); result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: break; default: break; } gtk_widget_destroy(dbox); return 0; }
/*! \brief load_rt_text_pf() is called to load up the runtime text configurations from the file specified in the firmware's interrogation profile, and populate a new window with the runtiem vars text value box. */ G_MODULE_EXPORT void load_rt_text_pf(void) { GtkWidget *treeview = NULL; GtkWidget *window = NULL; GtkWidget *parent = NULL; gint x = 0; gint y = 0; GtkListStore *store = NULL; gchar *filename = NULL; GladeXML *main_xml = NULL; GladeXML *xml = NULL; gboolean xml_result = FALSE; CmdLineArgs *args = DATA_GET(global_data,"args"); xmlDoc *doc = NULL; xmlNode *root_element = NULL; Firmware_Details *firmware = NULL; firmware = DATA_GET(global_data,"firmware"); if (!(DATA_GET(global_data,"interrogated"))) return; if (!firmware->rtt_map_file) { dbg_func(CRITICAL,g_strdup_printf(__FILE__": firmware->rtt_map_file is UNDEFINED,\n\texiting runtime text window creation routine!!!!\n")); return; } main_xml = (GladeXML *)DATA_GET(global_data,"main_xml"); if ((!main_xml) || (DATA_GET(global_data,"leaving"))) return; if (!DATA_GET(global_data,"rtvars_loaded")) { dbg_func(CRITICAL,g_strdup(__FILE__": load_rt_text_pf()\n\tCRITICAL ERROR, Realtime Variable definitions NOT LOADED!!!\n\n")); return; } gdk_threads_enter(); set_title(g_strdup(_("Loading RT Text..."))); filename = get_file(g_build_path(PSEP,RTTEXT_DATA_DIR,firmware->rtt_map_file,NULL),g_strdup("xml")); if (!filename) { dbg_func(RTMLOADER|CRITICAL,g_strdup_printf(__FILE__": load_rt_text_pf()\n\t File \"%s.xml\" not found!!, exiting function\n",firmware->rtt_map_file)); set_title(g_strdup(_("ERROR RunTimeText Map XML file DOES NOT EXIST!!!"))); gdk_threads_leave(); return; } /* Create window */ xml = glade_xml_new(main_xml->filename,"rtt_window",NULL); window = glade_xml_get_widget(xml,"rtt_window"); register_widget("rtt_window",window); x = (GINT)DATA_GET(global_data,"rtt_x_origin"); y = (GINT)DATA_GET(global_data,"rtt_y_origin"); gtk_window_move(GTK_WINDOW(window),x,y); gtk_window_set_default_size(GTK_WINDOW(window),-1,-1); g_object_set(window, "resizable", TRUE, NULL); parent = glade_xml_get_widget(xml,"rtt_vbox"); glade_xml_signal_autoconnect(xml); LIBXML_TEST_VERSION doc = xmlReadFile(filename, NULL, 0); g_free(filename); if (doc == NULL) { printf(_("error: could not parse file %s\n"),filename); gdk_threads_leave(); return; } /*Get the root element node */ store = gtk_list_store_new(RTT_NUM_COLS,G_TYPE_POINTER,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_FLOAT); DATA_SET(global_data,"rtt_model",store); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); gtk_box_pack_start(GTK_BOX(parent),treeview,TRUE,TRUE,0); setup_rtt_treeview(treeview); root_element = xmlDocGetRootElement(doc); xml_result = load_rtt_xml_elements(root_element,store,parent); xmlFreeDoc(doc); xmlCleanupParser(); if (xml_result == FALSE) gtk_widget_destroy(window); else if ((!args->hide_rttext) && (xml_result)) gtk_widget_show_all(window); set_title(g_strdup(_("RT Text Loaded..."))); gdk_threads_leave(); return; }
void init_main_window(const gchar * glade_file) { GladeXML *xml; GtkWidget *widget; GtkTextBuffer *txtbuf; char title[256]; GdkPixmap *pixmap; GdkBitmap *mask; GtkStyle *style; xml = glade_xml_new(glade_file, "window1", NULL); if (!xml) g_error(_("GUI loading failed !\n")); glade_xml_signal_autoconnect(xml); main_wnd = glade_xml_get_widget(xml, "window1"); hpaned = glade_xml_get_widget(xml, "hpaned1"); vpaned = glade_xml_get_widget(xml, "vpaned1"); tree1_w = glade_xml_get_widget(xml, "treeview1"); tree2_w = glade_xml_get_widget(xml, "treeview2"); text_w = glade_xml_get_widget(xml, "textview3"); back_btn = glade_xml_get_widget(xml, "button1"); gtk_widget_set_sensitive(back_btn, FALSE); widget = glade_xml_get_widget(xml, "show_name1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_name); widget = glade_xml_get_widget(xml, "show_range1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_range); widget = glade_xml_get_widget(xml, "show_data1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_value); style = gtk_widget_get_style(main_wnd); widget = glade_xml_get_widget(xml, "toolbar1"); pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) xpm_single_view); gtk_image_set_from_pixmap(GTK_IMAGE (((GtkToolbarChild *) (g_list_nth(GTK_TOOLBAR(widget)-> children, 5)->data))->icon), pixmap, mask); pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) xpm_split_view); gtk_image_set_from_pixmap(GTK_IMAGE (((GtkToolbarChild *) (g_list_nth(GTK_TOOLBAR(widget)-> children, 6)->data))->icon), pixmap, mask); pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) xpm_tree_view); gtk_image_set_from_pixmap(GTK_IMAGE (((GtkToolbarChild *) (g_list_nth(GTK_TOOLBAR(widget)-> children, 7)->data))->icon), pixmap, mask); switch (view_mode) { case SINGLE_VIEW: widget = glade_xml_get_widget(xml, "button4"); g_signal_emit_by_name(widget, "clicked"); break; case SPLIT_VIEW: widget = glade_xml_get_widget(xml, "button5"); g_signal_emit_by_name(widget, "clicked"); break; case FULL_VIEW: widget = glade_xml_get_widget(xml, "button6"); g_signal_emit_by_name(widget, "clicked"); break; } txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1", "foreground", "red", "weight", PANGO_WEIGHT_BOLD, NULL); tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2", /*"style", PANGO_STYLE_OBLIQUE, */ NULL); sprintf(title, _("Linux Kernel v%s Configuration"), getenv("KERNELRELEASE")); gtk_window_set_title(GTK_WINDOW(main_wnd), title); gtk_widget_show(main_wnd); }
static GtkWidget *_create_mark_verse_dialog(gchar *module, gchar *key) { #ifdef USE_GTKBUILDER GtkBuilder *gxml; #else GladeXML *gxml; #endif GtkWidget *sw; gchar osisreference[100]; gchar *old_note = NULL; gchar *glade_file = gui_general_user_file("markverse" UI_SUFFIX, TRUE); g_return_val_if_fail(glade_file != NULL, NULL); XI_message(("%s", glade_file)); g_snprintf(osisreference, 100, "%s %s", module, main_get_osisref_from_key((const char *)module, (const char *)key)); note = NULL; /* build the widget */ #ifdef USE_GTKBUILDER gxml = gtk_builder_new(); gtk_builder_add_from_file(gxml, glade_file, NULL); #else gxml = glade_xml_new(glade_file, NULL, NULL); #endif g_free(glade_file); g_return_val_if_fail(gxml != NULL, NULL); /* lookup the root widget */ mark_verse_dialog = UI_GET_ITEM(gxml, "dialog"); gtk_window_set_default_size(GTK_WINDOW(mark_verse_dialog), 300, 350); g_signal_connect(mark_verse_dialog, "response", G_CALLBACK(on_mark_verse_response), NULL); /* entrys */ entry_key = UI_GET_ITEM(gxml, "entry2"); entry_module = UI_GET_ITEM(gxml, "entry3"); textview = UI_GET_ITEM(gxml, "textview"); textbuffer = gtk_text_view_get_buffer((GtkTextView *)textview); gtk_entry_set_text(GTK_ENTRY(entry_key), key); gtk_entry_set_text(GTK_ENTRY(entry_module), module); sw = UI_GET_ITEM(gxml, "scrolledwindow1"); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview), GTK_WRAP_WORD); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); g_signal_connect(entry_key, "activate", G_CALLBACK(on_mark_verse_enter), NULL); g_signal_connect(entry_module, "activate", G_CALLBACK(on_mark_verse_enter), NULL); old_note = xml_get_list_from_label("osisrefmarkedverses", "markedverse", osisreference); note = g_strdup((old_note) ? old_note : ""); gtk_text_buffer_set_text(textbuffer, (old_note) ? old_note : "", -1); g_signal_connect(textbuffer, "changed", G_CALLBACK(on_buffer_changed), NULL); return mark_verse_dialog; }
/* Main Window Initialization */ void init_main_window(const gchar * glade_file) { GladeXML *xml; GtkWidget *widget; GtkTextBuffer *txtbuf; char title[256]; GtkStyle *style; xml = glade_xml_new(glade_file, "window1", NULL); if (!xml) g_error(_("GUI loading failed !\n")); glade_xml_signal_autoconnect(xml); main_wnd = glade_xml_get_widget(xml, "window1"); hpaned = glade_xml_get_widget(xml, "hpaned1"); vpaned = glade_xml_get_widget(xml, "vpaned1"); tree1_w = glade_xml_get_widget(xml, "treeview1"); tree2_w = glade_xml_get_widget(xml, "treeview2"); text_w = glade_xml_get_widget(xml, "textview3"); back_btn = glade_xml_get_widget(xml, "button1"); gtk_widget_set_sensitive(back_btn, FALSE); widget = glade_xml_get_widget(xml, "show_name1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_name); widget = glade_xml_get_widget(xml, "show_range1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_range); widget = glade_xml_get_widget(xml, "show_data1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_value); save_btn = glade_xml_get_widget(xml, "button3"); save_menu_item = glade_xml_get_widget(xml, "save1"); conf_set_changed_callback(conf_changed); style = gtk_widget_get_style(main_wnd); widget = glade_xml_get_widget(xml, "toolbar1"); #if 0 /* Use stock Gtk icons instead */ replace_button_icon(xml, main_wnd->window, style, "button1", (gchar **) xpm_back); replace_button_icon(xml, main_wnd->window, style, "button2", (gchar **) xpm_load); replace_button_icon(xml, main_wnd->window, style, "button3", (gchar **) xpm_save); #endif replace_button_icon(xml, main_wnd->window, style, "button4", (gchar **) xpm_single_view); replace_button_icon(xml, main_wnd->window, style, "button5", (gchar **) xpm_split_view); replace_button_icon(xml, main_wnd->window, style, "button6", (gchar **) xpm_tree_view); #if 0 switch (view_mode) { case SINGLE_VIEW: widget = glade_xml_get_widget(xml, "button4"); g_signal_emit_by_name(widget, "clicked"); break; case SPLIT_VIEW: widget = glade_xml_get_widget(xml, "button5"); g_signal_emit_by_name(widget, "clicked"); break; case FULL_VIEW: widget = glade_xml_get_widget(xml, "button6"); g_signal_emit_by_name(widget, "clicked"); break; } #endif txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1", "foreground", "red", "weight", PANGO_WEIGHT_BOLD, NULL); tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2", /*"style", PANGO_STYLE_OBLIQUE, */ NULL); sprintf(title, _("WRS-sw v%s Configuration"), getenv("KERNELVERSION")); gtk_window_set_title(GTK_WINDOW(main_wnd), title); gtk_widget_show(main_wnd); }
static void sunone_permissions_dialog_init (SunOnePermissionsDialog *object) { SunOnePermissionsDialog *dialog = SUNONE_PERMISSIONS_DIALOG (object); SunOnePermissionsDialogPrivate *priv; GtkWidget *label, *notebook; GtkTreeSelection *perm_selection, *owner_selection; dialog->priv = g_new0(SunOnePermissionsDialogPrivate, 1); priv = dialog->priv; dialog->merged_acls = NULL; priv->cnc = NULL; priv->calid = NULL; priv->calprops = NULL; /* set up the dialog */ g_object_set (G_OBJECT (dialog), "allow_grow", TRUE, NULL); /* load UI */ priv->xml = glade_xml_new (SUNONE_GLADEDIR "/sunone-permissions-dialog.glade", "main-notebook", NULL); if (!priv->xml) { label = gtk_label_new (_("Could not load permissions dialog UI")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, TRUE, TRUE, 0); return; } notebook = glade_xml_get_widget (priv->xml, "main-notebook"); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, TRUE, TRUE, 0); /* permissions tab's widgets */ priv->main_table = glade_xml_get_widget (priv->xml, "permissions-main-table"); priv->add_button = glade_xml_get_widget (priv->xml, "permissions-add-button"); g_signal_connect (G_OBJECT (priv->add_button), "clicked", G_CALLBACK (add_permission_cb), dialog); priv->edit_button = glade_xml_get_widget (priv->xml, "permissions-edit-button"); g_signal_connect (G_OBJECT (priv->edit_button), "clicked", G_CALLBACK (edit_permission_cb), dialog); priv->remove_button = glade_xml_get_widget (priv->xml, "permissions-remove-button"); g_signal_connect (G_OBJECT (priv->remove_button), "clicked", G_CALLBACK (remove_permission_cb), dialog); priv->perm_tree = (GtkTreeView *)glade_xml_get_widget (priv->xml, "perm-tree"); perm_selection = gtk_tree_view_get_selection (priv->perm_tree); g_signal_connect (G_OBJECT (perm_selection), "changed", G_CALLBACK (permission_selection_changed_cb), dialog); /* owners tab's widgets */ priv->owners_tree = (GtkTreeView *)glade_xml_get_widget (priv->xml, "owners-tree"); owner_selection = gtk_tree_view_get_selection (priv->owners_tree); g_signal_connect (G_OBJECT (owner_selection), "changed", G_CALLBACK (owners_selection_changed_cb), dialog); priv->owners_add_button = glade_xml_get_widget (priv->xml, "owners-add-button"); g_signal_connect (G_OBJECT (priv->owners_add_button), "clicked", G_CALLBACK (add_owner_cb), dialog); priv->owners_remove_button = glade_xml_get_widget (priv->xml, "owners-remove-button"); g_signal_connect (G_OBJECT (priv->owners_remove_button), "clicked", G_CALLBACK (remove_owner_cb), dialog); }
int main(int argc, char* argv[]) { regex_t fregex; gtk_init(&argc,&argv); // check the correct BASS was loaded if (HIWORD(BASS_GetVersion())!=BASSVERSION) { Error("An incorrect version of BASS was loaded"); return 0; } // initialize default device if (!BASS_Init(-1,44100,0,NULL,NULL)) { Error("Can't initialize device"); return 0; } // initialize GUI glade=glade_xml_new(GLADE_PATH"speakers.glade",NULL,NULL); if (!glade) return 0; win=GetWidget("window1"); if (!win) return 0; glade_xml_signal_autoconnect(glade); { // check how many speakers the device supports BASS_INFO i; BASS_GetInfo(&i); if (i.speakers<8) { gtk_widget_set_sensitive(GetWidget("open4"),FALSE); gtk_widget_set_sensitive(GetWidget("swap3"),FALSE); } if (i.speakers<6) { gtk_widget_set_sensitive(GetWidget("open3"),FALSE); gtk_widget_set_sensitive(GetWidget("swap2"),FALSE); } if (i.speakers<4) { gtk_widget_set_sensitive(GetWidget("open2"),FALSE); gtk_widget_set_sensitive(GetWidget("swap1"),FALSE); } } { // initialize file selector GtkFileFilter *filter; filesel=gtk_file_chooser_dialog_new("Open File",GTK_WINDOW(win),GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"Playable files"); regcomp(&fregex,"\\.(mo3|xm|mod|s3m|it|umx|mp[1-3]|ogg|wav|aif)$",REG_ICASE|REG_NOSUB|REG_EXTENDED); gtk_file_filter_add_custom(filter,GTK_FILE_FILTER_FILENAME,FileExtensionFilter,&fregex,NULL); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"All files"); gtk_file_filter_add_pattern(filter,"*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); } gtk_widget_show(win); gtk_main(); gtk_widget_destroy(filesel); regfree(&fregex); BASS_Free(); return 0; }
gint display_release_dbox() { GladeXML *xml; GtkWidget *dbox; GtkTextBuffer *txtbuf; GtkWidget *text; FILE *fd; gchar *filename; gchar buffer[65536]; gint len = 0; struct stat stbuf; gint result; PangoFontDescription *font_desc; #ifdef _MSC_VER /* MSVC builds. MinGW builds use Linux file structures. */ filename = g_strconcat(inst_paths.base_dir, "Release.txt", NULL); #else /* */ filename = g_strconcat(inst_paths.base_dir, "RELEASE", NULL); #endif /* */ if (access(filename, F_OK) == 0) { if (stat(filename, &stbuf) != -1) { len = stbuf.st_size; } if ((fd = fopen(filename, "r")) != NULL) { memset(buffer, 0, sizeof(buffer)); len = fread(buffer, 1, len, fd); fclose(fd); } } xml = glade_xml_new(tilp_paths_build_glade("release-2.glade"), "release_dbox", PACKAGE); if (!xml) g_error(_("%s: GUI loading failed!\n"), __FILE__); glade_xml_signal_autoconnect(xml); dbox = glade_xml_get_widget(xml, "release_dbox"); text = glade_xml_get_widget(xml, "textview1"); // Change font font_desc = pango_font_description_from_string ("Courier"); gtk_widget_modify_font (text, font_desc); pango_font_description_free (font_desc); // Set text txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); gtk_text_buffer_set_text(txtbuf, buffer, len); result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: break; default: break; } gtk_widget_destroy(dbox); return 0; }
gint display_manpage_dbox() { GladeXML *xml; GtkWidget *dbox; GtkTextBuffer *txtbuf; GtkWidget *text; FILE *fd; gchar *filename; gchar buffer[32768]; gint len = 0; struct stat stbuf; gint result; PangoFontDescription *font_desc; filename = g_strconcat(inst_paths.manpage_dir, "Manpage.txt", NULL); if (access(filename, F_OK) == 0) { if (stat(filename, &stbuf) != -1) { len = stbuf.st_size; len -= 2; } if ((fd = fopen(filename, "r")) != NULL) { memset(buffer, 0, sizeof(buffer)); len = fread(buffer, 1, len, fd); fclose(fd); } } xml = glade_xml_new (tilp_paths_build_glade("manpage-2.glade"), "manpage_dbox", PACKAGE); if (!xml) g_error(_("%s: GUI loading failed!\n"), __FILE__); glade_xml_signal_autoconnect(xml); dbox = glade_xml_get_widget(xml, "manpage_dbox"); text = glade_xml_get_widget(xml, "textview1"); // Change font font_desc = pango_font_description_from_string ("Courier"); gtk_widget_modify_font (text, font_desc); pango_font_description_free (font_desc); // Set text txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); gtk_text_buffer_set_text(txtbuf, buffer, len); while (gtk_events_pending()) gtk_main_iteration(); result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: break; default: break; } gtk_widget_destroy(dbox); return 0; }
/** * Cette fonction est la boucle principale du programme. * Elle permet de rassembler toutes les autres fonctions dans un contenu reflétant * le fonctionnement du programme. Pour comprendre le fonctionnement d'un programme, * lire le main() devrait suffire. * Dans notre cas en revanche ce n'est pas tout à fait exact, car gtk implique * une execution évènementielle, c'est à dire une éxécution basée sur les * évènements. Le programme ne se lit donc plus du haut vers le bas, mais en * fonction des évènements liés à des fonctions dites de callback, dans le fichier * libGUI.c. */ int main(int argc, char ** argv) { // Commençons par charger les préférences, si elles existent. On ouvre le fichier // en lecture pour charger la structure préférences : fichierPreferences = fopen(".olonoPrefs", "rb"); if (fichierPreferences == NULL) erreur("Pas de fichier de préférences trouvé\n"); else { // On lit 1 élément de donnée de longueur preferences depuis le fichier // fPreferences pour le stocker dans la variable prefs (de type preferences) fread(&prefs,sizeof(preferences),1,fichierPreferences); /// INIT 2 : Préférences globales (from file) couleurDepart = prefs.couleurDepart; allowIA = prefs.allowIA; couleurIA = prefs.couleurIA; affJouable = prefs.affJouable; taillePlateau = prefs.taillePlateau; if (args.verbose) ecrire("Chargement de :\n\t couleurDepart: %d, allowIA : %d\n\t couleurIA : %d, taillePlateau: %d",couleurDepart,allowIA,couleurIA,taillePlateau); } /* On initialise les arguments à leur valeur par défaut */ args.taillePlateau = 0; args.verbose = 0; args.Tore = 0; /* This is where the magic should happen | Attention, instant magique ... */ argp_parse (&argp, argc, argv, 0, 0, &args); /// INIT 3 : Préférences globales (from) if (args.taillePlateau != 0) if (atoi((char*) args.taillePlateau) <= 25 && atoi((char*) args.taillePlateau) >= 4) taillePlateau = atoi((char*) args.taillePlateau); /// Les 3 priorités d'initialisation étant terminées, on peut désormais // assigner la couleur de départ du jeton : jeton = couleurDepart; /// ######################################################################## /// /// ### On commence les choses sérieuses ici (cad le main) ################# /// /// ######################################################################## /// gint i=0,j=0,n=0; CASE caseActuelle[625]; wOlono = g_malloc(sizeof(window)); plateau = createPlateau(); initPlateau(plateau); tronc = initHistorique(plateau,couleurDepart); /// ######################################################################## /// /// ### On fait chauffer l'Interface Graphique ############################# /// /// ######################################################################## /// GladeXML *xml; /* Initialisation de la lib GTK+ */ gtk_init(&argc, &argv); /* load the interface and complete it with the variable pieces */ xml = glade_xml_new(DATADIR "/" GLADEDIR "/" GLADEFILE, NULL, NULL); /* connect the signals in the interface */ glade_xml_signal_autoconnect(xml); /* // timer up*/ /* wOlono->pIAClock = g_timer_new();*/ /* g_timer_start(wOlono->pIAClock);*/ // get the main Window wOlono->pWindow = glade_xml_get_widget(xml, "olonoWindow"); gtk_window_set_title(GTK_WINDOW (wOlono->pWindow), "OloNO v" VERSION); // get checkBoxes, and set their values wOlono->pCheckAllowIA = glade_xml_get_widget(xml, "allowIA"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (wOlono->pCheckAllowIA),allowIA); wOlono->pCheckiaIsBlack = glade_xml_get_widget(xml, "iaIsBlack"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (wOlono->pCheckiaIsBlack),couleurIA); wOlono->pCheckAffJouable = glade_xml_get_widget(xml, "showPossibleMoves"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (wOlono->pCheckAffJouable),affJouable); wOlono->pCheckCouleurDeb = glade_xml_get_widget(xml, "whiteStart"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (wOlono->pCheckCouleurDeb),!couleurDepart); // also get the spin button and set the default value : wOlono->pSpinTT = glade_xml_get_widget(xml, "taillePlateau"); gtk_spin_button_set_value(GTK_SPIN_BUTTON (wOlono->pSpinTT),taillePlateau); // why not speak to the prefs window too ? wOlono->pPrefWindow = glade_xml_get_widget(xml, "olonoPreferences"); // get the status bar : wOlono->pStatusBar = glade_xml_get_widget(xml, "barreDesTaches"); // creating context ids : wOlono->contextId01 = gtk_statusbar_get_context_id(GTK_STATUSBAR(wOlono->pStatusBar), "MsgTour"); wOlono->contextId02 = gtk_statusbar_get_context_id(GTK_STATUSBAR(wOlono->pStatusBar), "MsgScore"); // creating first blank message for contextId01 : gtk_statusbar_push (GTK_STATUSBAR (wOlono->pStatusBar), GPOINTER_TO_INT(wOlono->contextId01),"Bienvenue - Youkoso"); // On s'occupe de charger les images en mémoire : wOlono->imgVide = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGVIDE,&wOlono->gerror); wOlono->imgBlanche = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGBLANCHE,&wOlono->gerror); wOlono->imgNoire = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGNOIRE,&wOlono->gerror); wOlono->imgJoker = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGJOKER,&wOlono->gerror); // Puis on créé les dérivées transparentes : wOlono->imgTransBlanche = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGTBLANCHE,&wOlono->gerror); wOlono->imgTransNoire = gdk_pixbuf_new_from_file(DATADIR "/" IMGDIR "/" IMGTNOIRE,&wOlono->gerror); // set the plateau. wOlono->pPlateau = gtk_table_new(taillePlateau,taillePlateau,TRUE); for (i=0;i<taillePlateau;i++) { for (j=0;j<taillePlateau;j++) { n=i*taillePlateau+j; wOlono->pImage[n] = gtk_image_new(); wOlono->pEvent[n] = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (wOlono->pEvent[n]), wOlono->pImage[n]); // Important : On place le gtk_event_box au dessus sinon on peut pas // recevoir des évènements, puisqu'il est caché par l'image. gtk_event_box_set_above_child (GTK_EVENT_BOX (wOlono->pEvent[n]),1); // On rempli caseActuelle : caseActuelle[n].x = i; caseActuelle[n].y = j; // On connecte chaque signal à la fonction callback : g_signal_connect (G_OBJECT (wOlono->pEvent[n]), "button_press_event", G_CALLBACK (on_case_clic), &caseActuelle[n]); gtk_table_attach_defaults (GTK_TABLE (wOlono->pPlateau), wOlono->pEvent[n], i, i+1, j, j+1); } } /* Rafraichit le plateau (fait concorder celui en mémoire et celui affiché) */ refreshBoard(plateau); wOlono->pContainer = glade_xml_get_widget(xml, "cadreAspect"); gtk_container_add(GTK_CONTAINER(wOlono->pContainer), wOlono->pPlateau); /* For all the abandonned widgets ie plateau */ gtk_widget_show_all (wOlono->pPlateau); /* start the event loop */ gtk_main(); return 0; }
EAPMethodTLS * eap_method_tls_new (const char *glade_file, WirelessSecurity *parent, NMConnection *connection, gboolean phase2) { EAPMethodTLS *method; GtkWidget *widget; GladeXML *xml; NMSetting8021x *s_8021x = NULL; g_return_val_if_fail (glade_file != NULL, NULL); xml = glade_xml_new (glade_file, "eap_tls_notebook", NULL); if (xml == NULL) { g_warning ("Couldn't get eap_tls_widget from glade xml"); return NULL; } widget = glade_xml_get_widget (xml, "eap_tls_notebook"); g_assert (widget); g_object_ref_sink (widget); method = g_slice_new0 (EAPMethodTLS); if (!method) { g_object_unref (xml); g_object_unref (widget); return NULL; } eap_method_init (EAP_METHOD (method), validate, add_to_size_group, fill_connection, update_secrets, destroy, xml, widget, "eap_tls_identity_entry"); eap_method_nag_init (EAP_METHOD (method), glade_file, "eap_tls_ca_cert_button", connection, phase2); method->phase2 = phase2; if (connection) s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X)); widget = glade_xml_get_widget (xml, "eap_tls_identity_entry"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, parent); if (s_8021x && nm_setting_802_1x_get_identity (s_8021x)) gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x)); setup_filepicker (xml, "eap_tls_user_cert_button", _("Choose your personal certificate..."), parent, method, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_client_cert_scheme : nm_setting_802_1x_get_client_cert_scheme, phase2 ? nm_setting_802_1x_get_phase2_client_cert_path : nm_setting_802_1x_get_client_cert_path, FALSE, TRUE); setup_filepicker (xml, "eap_tls_ca_cert_button", _("Choose a Certificate Authority certificate..."), parent, method, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : nm_setting_802_1x_get_ca_cert_scheme, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : nm_setting_802_1x_get_ca_cert_path, FALSE, FALSE); setup_filepicker (xml, "eap_tls_private_key_button", _("Choose your private key..."), parent, method, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_private_key_scheme : nm_setting_802_1x_get_private_key_scheme, phase2 ? nm_setting_802_1x_get_phase2_private_key_path : nm_setting_802_1x_get_private_key_path, TRUE, FALSE); /* Fill secrets, if any */ if (connection) update_secrets (EAP_METHOD (method), connection); widget = glade_xml_get_widget (xml, "eap_tls_private_key_password_entry"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, parent); widget = glade_xml_get_widget (xml, "show_checkbutton"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, method); return method; }
/* Creates a "goto date" dialog and runs it */ void goto_dialog (GnomeCalendar *gcal) { time_t start_time; struct icaltimetype tt; int b; char *gladefile; if (dlg) { return; } dlg = g_new0 (GoToDialog, 1); /* Load the content widgets */ gladefile = g_build_filename (EVOLUTION_GLADEDIR, "goto-dialog.glade", NULL); dlg->xml = glade_xml_new (gladefile, NULL, NULL); g_free (gladefile); if (!dlg->xml) { g_message ("goto_dialog(): Could not load the Glade XML file!"); g_free (dlg); return; } if (!get_widgets (dlg)) { g_message ("goto_dialog(): Could not find all widgets in the XML file!"); g_free (dlg); return; } dlg->gcal = gcal; gnome_calendar_get_selected_time_range (dlg->gcal, &start_time, NULL); tt = icaltime_from_timet_with_zone (start_time, FALSE, gnome_calendar_get_timezone (gcal)); dlg->year_val = tt.year; dlg->month_val = tt.month - 1; dlg->day_val = tt.day; gtk_option_menu_set_history (GTK_OPTION_MENU (dlg->month), dlg->month_val); gtk_spin_button_set_value (GTK_SPIN_BUTTON (dlg->year), dlg->year_val); create_ecal (dlg); goto_dialog_init_widgets (dlg); gtk_window_set_transient_for (GTK_WINDOW (dlg->dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal)))); /* set initial selection to current day */ dlg->ecal->calitem->selection_set = TRUE; dlg->ecal->calitem->selection_start_month_offset = 0; dlg->ecal->calitem->selection_start_day = tt.day; dlg->ecal->calitem->selection_end_month_offset = 0; dlg->ecal->calitem->selection_end_day = tt.day; /* Set week_start_day. Convert it to 0 (Mon) to 6 (Sun), which is what we use. */ dlg->ecal->calitem->week_start_day = (calendar_config_get_week_start_day () + 6) % 7; gnome_canvas_item_grab_focus (GNOME_CANVAS_ITEM (dlg->ecal->calitem)); b = gtk_dialog_run (GTK_DIALOG (dlg->dialog)); gtk_widget_destroy (dlg->dialog); if (b == 0) goto_today (dlg); g_object_unref (dlg->xml); g_free (dlg); dlg = NULL; }
gint display_comm_dbox() { GladeXML *xml; GtkWidget *dbox; GtkWidget *data; gint result; int err; init = !0; xml = glade_xml_new (tilp_paths_build_glade("comm-2.glade"), "comm_dbox", PACKAGE); if (!xml) g_error(_("%s: GUI loading failed !\n"), __FILE__); glade_xml_signal_autoconnect(xml); dbox = glade_xml_get_widget(xml, "comm_dbox"); ad = 0; //options.auto_detect; // Auto-detect button = glade_xml_get_widget(xml, "checkbutton_calc_auto"); if (ad) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); // Cable data = glade_xml_get_widget(xml, "optionmenu_comm_cable"); switch (link_cable.link_type) { case LINK_TGL: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 0); break; case LINK_SER: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 1); break; case LINK_SLV: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 2); break; case LINK_PAR: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 3); break; case LINK_VTI: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 4); break; case LINK_TIE: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 5); break; case LINK_VTL: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 6); break; case LINK_NUL: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 7); break; default: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 7); break; } // Port port = data = glade_xml_get_widget(xml, "optionmenu_comm_port"); switch (link_cable.port) { case PARALLEL_PORT_1: case SERIAL_PORT_1: case USB_PORT_1: case VIRTUAL_PORT_1: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 1); break; case PARALLEL_PORT_2: case SERIAL_PORT_2: case USB_PORT_2: case VIRTUAL_PORT_2: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 2); break; case PARALLEL_PORT_3: case SERIAL_PORT_3: case USB_PORT_3: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 3); break; case SERIAL_PORT_4: case USB_PORT_4: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 4); break; case NULL_PORT: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 5); break; case USER_PORT: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 0); break; default: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 0); break; } // Calc data = glade_xml_get_widget(xml, "optionmenu_comm_calc"); switch(tihw.calc_type) { case TI92: link_cable.calc_type = CALC_TI92; break; case TI89: link_cable.calc_type = CALC_TI89; break; case TI92p: link_cable.calc_type = CALC_TI92P; break; case V200: link_cable.calc_type = CALC_V200; break; default: break; } switch (link_cable.calc_type) { case CALC_TI73: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 0); break; case CALC_TI82: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 1); break; case CALC_TI83: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 2); break; case CALC_TI83P: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 3); break; case CALC_TI84P: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 4); break; case CALC_TI85: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 5); break; case CALC_TI86: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 6); break; case CALC_TI89: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 7); break; case CALC_TI89T: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 8); break; case CALC_TI92: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 9); break; case CALC_TI92P: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 10); break; case CALC_V200: gtk_option_menu_set_history(GTK_OPTION_MENU(data), 11); break; } // Timeout tmo = data = glade_xml_get_widget(xml, "spinbutton_comm_timeout"); if(link_cable.link_type != LINK_NUL) gtk_spin_button_set_value(GTK_SPIN_BUTTON(data), link_cable.timeout); else gtk_spin_button_set_value(GTK_SPIN_BUTTON(data), params.timeout); // Delay data = glade_xml_get_widget(xml, "spinbutton_comm_delay"); gtk_spin_button_set_value(GTK_SPIN_BUTTON(data), link_cable.delay); // Avoid early callbacks memcpy(&tmp_lp, &link_cable, sizeof(TicableLinkParam)); // Loop init = 0; result = gtk_dialog_run(GTK_DIALOG(dbox)); switch (result) { case GTK_RESPONSE_OK: tmp_lp.timeout = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(tmo)); memcpy(&link_cable, &tmp_lp, sizeof(TicableLinkParam)); if(link_cable.link_type == LINK_NUL) params.timeout = tmp_lp.timeout; err = ti68k_linkport_reconfigure(); handle_error(); break; case GTK_RESPONSE_HELP: break; default: break; } gtk_widget_destroy(dbox); return 0; }
WirelessSecurityWPAPSK * ws_wpa_psk_new (const char *glade_file, NMConnection *connection) { WirelessSecurityWPAPSK *sec; GtkWidget *widget; GladeXML *xml; g_return_val_if_fail (glade_file != NULL, NULL); xml = glade_xml_new (glade_file, "wpa_psk_notebook", NULL); if (xml == NULL) { g_warning ("Couldn't get wpa_psk_widget from glade xml"); return NULL; } widget = glade_xml_get_widget (xml, "wpa_psk_notebook"); g_assert (widget); g_object_ref_sink (widget); sec = g_slice_new0 (WirelessSecurityWPAPSK); if (!sec) { g_object_unref (xml); g_object_unref (widget); return NULL; } wireless_security_init (WIRELESS_SECURITY (sec), validate, add_to_size_group, fill_connection, destroy, xml, widget, "wpa_psk_entry"); widget = glade_xml_get_widget (xml, "wpa_psk_entry"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); /* Fill secrets, if any */ if (connection) { helper_fill_secret_entry (connection, GTK_ENTRY (widget), NM_TYPE_SETTING_WIRELESS_SECURITY, (HelperSecretFunc) nm_setting_wireless_security_get_psk, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK); } widget = glade_xml_get_widget (xml, "show_checkbutton"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); widget = glade_xml_get_widget (xml, "wpa_psk_type_combo"); g_assert (widget); gtk_widget_hide (widget); widget = glade_xml_get_widget (xml, "wpa_psk_type_label"); g_assert (widget); gtk_widget_hide (widget); return sec; }
static void setup_gui (ETableConfig *config) { GladeXML *gui; gboolean can_group; gchar *filename; create_global_store (config); can_group = e_table_sort_info_get_can_group (config->state->sort_info); filename = g_build_filename (EVOLUTION_GLADEDIR, "e-table-config.glade", NULL); gui = glade_xml_new (filename, NULL, GETTEXT_PACKAGE); g_free (filename); g_object_unref (global_store); config->dialog_toplevel = glade_xml_get_widget ( gui, "e-table-config"); if (config->header) gtk_window_set_title (GTK_WINDOW (config->dialog_toplevel), config->header); config->dialog_show_fields = glade_xml_get_widget ( gui, "dialog-show-fields"); config->dialog_group_by = glade_xml_get_widget ( gui, "dialog-group-by"); config->dialog_sort = glade_xml_get_widget ( gui, "dialog-sort"); config->sort_label = glade_xml_get_widget ( gui, "label-sort"); config->group_label = glade_xml_get_widget ( gui, "label-group"); config->fields_label = glade_xml_get_widget ( gui, "label-fields"); connect_button (config, gui, "button-sort", G_CALLBACK (config_button_sort)); connect_button (config, gui, "button-group", G_CALLBACK (config_button_group)); connect_button (config, gui, "button-fields", G_CALLBACK (config_button_fields)); if (!can_group) { GtkWidget *w; w = glade_xml_get_widget (gui, "button-group"); if (w) gtk_widget_hide (w); w = glade_xml_get_widget (gui, "label3"); if (w) gtk_widget_hide (w); w = config->group_label; if (w) gtk_widget_hide (w); } configure_sort_dialog (config, gui); configure_group_dialog (config, gui); configure_fields_dialog (config, gui); g_object_weak_ref (G_OBJECT (config->dialog_toplevel), dialog_destroyed, config); g_signal_connect (config->dialog_toplevel, "response", G_CALLBACK (dialog_response), config); g_object_unref (gui); }
EAPMethodPEAP * eap_method_peap_new (const char *glade_file, WirelessSecurity *parent, NMConnection *connection) { EAPMethodPEAP *method; GtkWidget *widget; GladeXML *xml; GtkFileFilter *filter; NMSetting8021x *s_8021x = NULL; const char *filename; g_return_val_if_fail (glade_file != NULL, NULL); xml = glade_xml_new (glade_file, "eap_peap_notebook", NULL); if (xml == NULL) { g_warning ("Couldn't get eap_peap_widget from glade xml"); return NULL; } widget = glade_xml_get_widget (xml, "eap_peap_notebook"); g_assert (widget); g_object_ref_sink (widget); method = g_slice_new0 (EAPMethodPEAP); if (!method) { g_object_unref (xml); g_object_unref (widget); return NULL; } eap_method_init (EAP_METHOD (method), validate, add_to_size_group, fill_connection, destroy, xml, widget, "eap_peap_anon_identity_entry"); eap_method_nag_init (EAP_METHOD (method), glade_file, "eap_peap_ca_cert_button", connection); method->sec_parent = parent; if (connection) s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X)); widget = glade_xml_get_widget (xml, "eap_peap_ca_cert_button"); g_assert (widget); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE); gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), _("Choose a Certificate Authority certificate...")); g_signal_connect (G_OBJECT (widget), "selection-changed", (GCallback) wireless_security_changed_cb, parent); filter = eap_method_default_file_chooser_filter_new (FALSE); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); if (connection) { filename = g_object_get_data (G_OBJECT (connection), NMA_PATH_CA_CERT_TAG); if (filename) gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename); } widget = inner_auth_combo_init (method, glade_file, connection, s_8021x); inner_auth_combo_changed_cb (widget, (gpointer) method); widget = glade_xml_get_widget (xml, "eap_peap_version_combo"); g_assert (widget); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); if (s_8021x) { const char *peapver; peapver = nm_setting_802_1x_get_phase1_peapver (s_8021x); if (peapver) { /* Index 0 is "Automatic" */ if (!strcmp (peapver, "0")) gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1); else if (!strcmp (peapver, "1")) gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2); } } g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, parent); widget = glade_xml_get_widget (xml, "eap_peap_anon_identity_entry"); if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x)) gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x)); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, parent); return method; }
void gmdb_sql_new_cb (GtkWidget *w, gpointer data) { GtkTargetEntry src; GtkWidget *mi, *but, *combobox; GladeXML *sqlwin_xml; /* load the interface */ sqlwin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-sql.glade", NULL, NULL); /* connect the signals in the interface */ glade_xml_signal_autoconnect(sqlwin_xml); sql_list = g_list_append(sql_list, sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "save_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_save_cb), sqlwin_xml); but = glade_xml_get_widget (sqlwin_xml, "save_button"); g_signal_connect (G_OBJECT (but), "clicked", G_CALLBACK (gmdb_sql_save_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "save_as_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_save_as_cb), sqlwin_xml); //but = glade_xml_get_widget (sqlwin_xml, "save_as_button"); //g_signal_connect (G_OBJECT (but), "clicked", // G_CALLBACK (gmdb_sql_save_as_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "results_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_results_cb), sqlwin_xml); but = glade_xml_get_widget (sqlwin_xml, "results_button"); g_signal_connect (G_OBJECT (but), "clicked", G_CALLBACK (gmdb_sql_results_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "open_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_open_cb), sqlwin_xml); but = glade_xml_get_widget (sqlwin_xml, "open_button"); g_signal_connect (G_OBJECT (but), "clicked", G_CALLBACK (gmdb_sql_open_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "paste_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_paste_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "cut_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_cut_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "copy_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_copy_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "close_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_close_cb), sqlwin_xml); but = glade_xml_get_widget (sqlwin_xml, "close_button"); g_signal_connect (G_OBJECT (but), "clicked", G_CALLBACK (gmdb_sql_close_cb), sqlwin_xml); mi = glade_xml_get_widget (sqlwin_xml, "execute_menu"); g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (gmdb_sql_execute_cb), sqlwin_xml); combobox = glade_xml_get_widget(sqlwin_xml, "sql_combo"); g_signal_connect (G_OBJECT(GTK_COMBO_BOX(combobox)), "changed", G_CALLBACK (gmdb_sql_select_hist_cb), sqlwin_xml); but = glade_xml_get_widget (sqlwin_xml, "execute_button"); g_signal_connect (G_OBJECT (but), "clicked", G_CALLBACK (gmdb_sql_execute_cb), sqlwin_xml); /* set up treeview, libglade only gives us the empty widget */ GtkWidget *tree = glade_xml_get_widget(sqlwin_xml, "sql_treeview"); GtkTreeStore *store = gtk_tree_store_new(1, G_TYPE_STRING); gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store)); GtkCellRenderer *renderer; GtkTreeViewColumn *column; renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("Name", renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW (tree), column); GtkTreeSelection *select = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree)); gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE); //g_signal_connect (G_OBJECT (select), "changed", //G_CALLBACK (gmdb_sql_select_cb), sqlwin_xml); /* populate first level of tree */ gmdb_sql_tree_populate(mdb, sqlwin_xml); GtkWidget *textview = glade_xml_get_widget(sqlwin_xml, "sql_textview"); src.target = "table"; src.flags = 0; src.info = 1; gtk_drag_source_set( tree, GDK_BUTTON1_MASK, &src, 1, GDK_ACTION_COPY); gtk_drag_dest_set( textview, //GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT , // GTK_DEST_DEFAULT_DROP, &src, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); gtk_signal_connect( GTK_OBJECT(tree), "drag_data_get", GTK_SIGNAL_FUNC(gmdb_sql_dnd_dataget_cb), sqlwin_xml); gtk_signal_connect( GTK_OBJECT(textview), "drag_data_received", GTK_SIGNAL_FUNC(gmdb_sql_dnd_datareceived_cb), sqlwin_xml); //GValue value = {0, }; //but = glade_xml_get_widget(sqlwin_xml, "results_button"); //g_value_init(&value, G_TYPE_STRING); //g_value_set_static_string(&value, GMDB_ICONDIR "stock_export.png"); //g_object_set_property(G_OBJECT (but), "file" , &value); //g_value_unset (&value); gtk_widget_grab_focus(GTK_WIDGET(textview)); }