static GtkWidget* combobox_entry_new(GtkTreeModel* model) { GtkWidget* combobox; #if HAVE_COMBO_BOX_ENTRY combobox = gtk_combo_box_entry_new_with_model(model, ENCODING_COLUMN_ENCODING); #else combobox = gtk_combo_box_new_with_model_and_entry(model); gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(combobox), ENCODING_COLUMN_ENCODING); #endif return combobox; }
void wxBitmapComboBox::GTKCreateComboBoxWidget() { GtkListStore *store; store = gtk_list_store_new( 2, G_TYPE_OBJECT, G_TYPE_STRING ); if ( HasFlag(wxCB_READONLY) ) { m_widget = gtk_combo_box_new_with_model( GTK_TREE_MODEL(store) ); } else { #ifdef __WXGTK3__ m_widget = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(m_widget), m_stringCellIndex); #else m_widget = gtk_combo_box_entry_new_with_model( GTK_TREE_MODEL(store), m_stringCellIndex ); #endif m_entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(m_widget))); gtk_editable_set_editable(GTK_EDITABLE(m_entry), true); } g_object_ref(m_widget); // This must be called as gtk_combo_box_entry_new_with_model adds // automatically adds one text column. gtk_cell_layout_clear( GTK_CELL_LAYOUT(m_widget) ); GtkCellRenderer* imageRenderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(m_widget), imageRenderer, FALSE); gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(m_widget), imageRenderer, "pixbuf", 0); GtkCellRenderer* textRenderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_end( GTK_CELL_LAYOUT(m_widget), textRenderer, TRUE ); gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(m_widget), textRenderer, "text", 1); }
GtkWidget* create_tool_item( GtkAction* action ) { GtkWidget* item = 0; if ( IS_EGE_SELECT_ONE_ACTION(action) && EGE_SELECT_ONE_ACTION(action)->private_data->model ) { EgeSelectOneAction* act = EGE_SELECT_ONE_ACTION(action); item = GTK_WIDGET( gtk_tool_item_new() ); if ( act->private_data->appearanceMode == APPEARANCE_FULL ) { #if GTK_CHECK_VERSION(3,0,0) GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(holder), FALSE); #else GtkWidget* holder = gtk_hbox_new( FALSE, 0 ); #endif GtkRadioAction* ract = 0; GSList* group = 0; GtkTreeIter iter; gboolean valid = FALSE; gint index = 0; { gchar* sss = 0; g_object_get( G_OBJECT(action), "short_label", &sss, NULL ); // If short_label not defined, g_object_get will return label. // This hack allows a label to be used with a drop-down menu when // no label is used with a set of icons that are self-explanatory. if (sss && strcmp( sss, "NotUsed" ) != 0 ) { GtkWidget* lbl = gtk_label_new(sss); gtk_box_pack_start( GTK_BOX(holder), lbl, FALSE, FALSE, 4 ); } g_free( sss ); sss = 0; } valid = gtk_tree_model_get_iter_first( act->private_data->model, &iter ); while ( valid ) { gchar* str = 0; gchar* tip = 0; gchar* iconId = 0; gboolean sens = true; /* gint size = 0; */ gtk_tree_model_get( act->private_data->model, &iter, act->private_data->labelColumn, &str, -1 ); if ( act->private_data->iconColumn >= 0 ) { gtk_tree_model_get( act->private_data->model, &iter, act->private_data->iconColumn, &iconId, -1 ); } if ( act->private_data->tooltipColumn >= 0 ) { gtk_tree_model_get( act->private_data->model, &iter, act->private_data->tooltipColumn, &tip, -1 ); } if ( act->private_data->sensitiveColumn >= 0 ) { gtk_tree_model_get( act->private_data->model, &iter, act->private_data->sensitiveColumn, &sens, -1 ); } if ( act->private_data->radioActionType ) { void* obj = g_object_new( act->private_data->radioActionType, "name", "Name 1", "label", str, "tooltip", tip, "value", index, /* "iconId", iconId, "iconSize", size, */ NULL ); if ( iconId ) { g_object_set( G_OBJECT(obj), act->private_data->iconProperty, iconId, NULL ); } if ( act->private_data->iconProperty ) { /* TODO get this string to be set instead of hardcoded */ if ( act->private_data->iconSize >= 0 ) { g_object_set( G_OBJECT(obj), "iconSize", act->private_data->iconSize, NULL ); } } ract = GTK_RADIO_ACTION(obj); } else { ract = gtk_radio_action_new( "Name 1", str, tip, iconId, index ); } if ( act->private_data->sensitiveColumn >= 0 ) { gtk_action_set_sensitive( GTK_ACTION(ract), sens ); } gtk_radio_action_set_group( ract, group ); group = gtk_radio_action_get_group( ract ); if ( index == act->private_data->active ) { gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(ract), TRUE ); } g_signal_connect( G_OBJECT(ract), "changed", G_CALLBACK( proxy_action_chagned_cb ), act ); GtkWidget* sub = gtk_action_create_tool_item( GTK_ACTION(ract) ); gtk_activatable_set_related_action( GTK_ACTIVATABLE (sub), GTK_ACTION(ract) ); gtk_tool_item_set_tooltip_text( GTK_TOOL_ITEM(sub), tip ); gtk_box_pack_start( GTK_BOX(holder), sub, FALSE, FALSE, 0 ); g_free( str ); g_free( tip ); g_free( iconId ); index++; valid = gtk_tree_model_iter_next( act->private_data->model, &iter ); } g_object_set_data( G_OBJECT(holder), "ege-proxy_action-group", group ); gtk_container_add( GTK_CONTAINER(item), holder ); } else { #if GTK_CHECK_VERSION(3,0,0) GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous(GTK_BOX(holder), FALSE); #else GtkWidget *holder = gtk_hbox_new( FALSE, 4 ); #endif GtkEntry *entry = 0; GtkWidget *normal; if (act->private_data->selectionMode == SELECTION_OPEN) { normal = gtk_combo_box_new_with_model_and_entry (act->private_data->model); gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (normal), act->private_data->labelColumn); GtkWidget *child = gtk_bin_get_child( GTK_BIN(normal) ); if (GTK_IS_ENTRY(child)) { int maxUsed = scan_max_width( act->private_data->model, act->private_data->labelColumn ); GtkEntryCompletion *complete = 0; entry = GTK_ENTRY(child); gtk_entry_set_width_chars(entry, maxUsed); /* replace with property */ complete = gtk_entry_completion_new(); gtk_entry_completion_set_model( complete, act->private_data->model ); gtk_entry_completion_set_text_column( complete, act->private_data->labelColumn ); gtk_entry_completion_set_inline_completion( complete, FALSE ); gtk_entry_completion_set_inline_selection( complete, FALSE ); gtk_entry_completion_set_popup_completion( complete, TRUE ); gtk_entry_completion_set_popup_set_width( complete, FALSE ); gtk_entry_set_completion( entry, complete ); g_signal_connect( G_OBJECT(child), "activate", G_CALLBACK(combo_entry_changed_cb), act ); g_signal_connect( G_OBJECT(child), "focus-out-event", G_CALLBACK(combo_entry_focus_lost_cb), act ); } } else { GtkCellRenderer * renderer = NULL; normal = gtk_combo_box_new_with_model( act->private_data->model ); if ( act->private_data->iconColumn >= 0 ) { renderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(normal), renderer, TRUE ); /* "icon-name" */ gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(normal), renderer, "stock-id", act->private_data->iconColumn ); } renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(normal), renderer, TRUE ); gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(normal), renderer, "text", act->private_data->labelColumn ); } gtk_combo_box_set_active( GTK_COMBO_BOX(normal), act->private_data->active ); if ( entry && (act->private_data->active == -1) ) { gtk_entry_set_text( entry, act->private_data->activeText ); } g_signal_connect( G_OBJECT(normal), "changed", G_CALLBACK(combo_changed_cb), action ); g_object_set_data( G_OBJECT(holder), "ege-combo-box", normal ); g_object_set_data( G_OBJECT(act), "ege-combo-box", normal ); if (act->private_data->appearanceMode == APPEARANCE_COMPACT) { gchar* sss = 0; g_object_get( G_OBJECT(action), "short_label", &sss, NULL ); if (sss) { GtkWidget* lbl = gtk_label_new(sss); gtk_box_pack_start( GTK_BOX(holder), lbl, FALSE, FALSE, 4 ); g_free( sss ); sss = 0; } } gtk_box_pack_start( GTK_BOX(holder), normal, FALSE, FALSE, 0 ); { #if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(holder, GTK_ALIGN_START); gtk_container_add(GTK_CONTAINER(item), holder); #else GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0); gtk_container_add( GTK_CONTAINER(align), holder); gtk_container_add( GTK_CONTAINER(item), align ); #endif } } gtk_widget_show_all( item ); } else { item = GTK_ACTION_CLASS(ege_select_one_action_parent_class)->create_tool_item( action ); } return item; }
void dlg_export_to_flickr (FlickrServer *server, GthBrowser *browser, GList *file_list) { DialogData *data; GList *scan; int n_total; goffset total_size; char *total_size_formatted; char *text; char *title; data = g_new0 (DialogData, 1); data->server = server; data->browser = browser; data->settings = g_settings_new (GTHUMB_FLICKR_SCHEMA); data->location = gth_file_data_dup (gth_browser_get_location_data (browser)); data->builder = _gtk_builder_new_from_file ("export-to-flickr.ui", "flicker_utils"); data->cancellable = g_cancellable_new (); data->dialog = g_object_new (GTK_TYPE_DIALOG, "transient-for", GTK_WINDOW (browser), "modal", FALSE, "destroy-with-parent", FALSE, "use-header-bar", _gtk_settings_get_dialogs_use_header (), NULL); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), _gtk_builder_get_widget (data->builder, "dialog_content")); gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, _GTK_LABEL_UPLOAD, GTK_RESPONSE_OK, NULL); _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); { GtkCellLayout *cell_layout; GtkCellRenderer *renderer; data->photoset_combobox = gtk_combo_box_new_with_model_and_entry (GTK_TREE_MODEL (GET_WIDGET ("photoset_liststore"))); gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (data->photoset_combobox), PHOTOSET_TITLE_COLUMN); gtk_widget_show (data->photoset_combobox); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("photoset_combobox_container")), data->photoset_combobox); cell_layout = GTK_CELL_LAYOUT (data->photoset_combobox); gtk_cell_layout_clear (cell_layout); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (cell_layout, renderer, FALSE); gtk_cell_layout_set_attributes (cell_layout, renderer, "icon-name", PHOTOSET_ICON_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (cell_layout, renderer, TRUE); gtk_cell_layout_set_attributes (cell_layout, renderer, "text", PHOTOSET_TITLE_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (cell_layout, renderer, FALSE); gtk_cell_layout_set_attributes (cell_layout, renderer, "text", PHOTOSET_N_PHOTOS_COLUMN, NULL); } data->file_list = NULL; n_total = 0; total_size = 0; for (scan = file_list; scan; scan = scan->next) { GthFileData *file_data = scan->data; const char *mime_type; mime_type = gth_file_data_get_mime_type (file_data); if (g_content_type_equals (mime_type, "image/bmp") || g_content_type_equals (mime_type, "image/gif") || g_content_type_equals (mime_type, "image/jpeg") || g_content_type_equals (mime_type, "image/png")) { total_size += g_file_info_get_size (file_data->info); n_total++; data->file_list = g_list_prepend (data->file_list, g_object_ref (file_data)); } } data->file_list = g_list_reverse (data->file_list); if (data->file_list == NULL) { GError *error; error = g_error_new_literal (GTH_ERROR, GTH_ERROR_GENERIC, _("No valid file selected.")); _gtk_error_dialog_from_gerror_show (GTK_WINDOW (browser), _("Could not export the files"), error); g_clear_error (&error); gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_DELETE_EVENT); return; } total_size_formatted = g_format_size (total_size); text = g_strdup_printf (g_dngettext (NULL, "%d file (%s)", "%d files (%s)", n_total), n_total, total_size_formatted); gtk_label_set_text (GTK_LABEL (GET_WIDGET ("images_info_label")), text); g_free (text); g_free (total_size_formatted); _gtk_window_resize_to_fit_screen_height (data->dialog, 500); /* Set the widget data */ data->list_view = gth_file_list_new (gth_grid_view_new (), GTH_FILE_LIST_MODE_NO_SELECTION, FALSE); gth_file_list_set_thumb_size (GTH_FILE_LIST (data->list_view), 112); gth_file_list_enable_thumbs (GTH_FILE_LIST (data->list_view), TRUE); gth_file_list_set_ignore_hidden (GTH_FILE_LIST (data->list_view), TRUE); gth_file_list_set_caption (GTH_FILE_LIST (data->list_view), "none"); gth_file_list_set_sort_func (GTH_FILE_LIST (data->list_view), gth_main_get_sort_type ("file::name")->cmp_func, FALSE); gtk_widget_show (data->list_view); gtk_box_pack_start (GTK_BOX (GET_WIDGET ("images_box")), data->list_view, TRUE, TRUE, 0); gth_file_list_set_files (GTH_FILE_LIST (data->list_view), data->file_list); gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (data->photoset_combobox))), g_file_info_get_edit_name (data->location->info)); gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, FALSE); title = g_strdup_printf (_("Export to %s"), data->server->name); gtk_window_set_title (GTK_WINDOW (data->dialog), title); g_free (title); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("resize_checkbutton")), g_settings_get_int (data->settings, PREF_FLICKR_RESIZE_WIDTH) != -1); _gtk_combo_box_add_image_sizes (GTK_COMBO_BOX (GET_WIDGET ("resize_combobox")), g_settings_get_int (data->settings, PREF_FLICKR_RESIZE_WIDTH), g_settings_get_int (data->settings, PREF_FLICKR_RESIZE_HEIGHT)); /* Set the signals handlers. */ g_signal_connect (data->dialog, "delete-event", G_CALLBACK (gtk_true), NULL); g_signal_connect (data->dialog, "response", G_CALLBACK (export_dialog_response_cb), data); g_signal_connect (GET_WIDGET ("edit_accounts_button"), "clicked", G_CALLBACK (edit_accounts_button_clicked_cb), data); g_signal_connect (GET_WIDGET ("account_combobox"), "changed", G_CALLBACK (account_combobox_changed_cb), data); g_signal_connect (GET_WIDGET ("resize_checkbutton"), "toggled", G_CALLBACK (resize_checkbutton_toggled_cb), data); update_sensitivity (data); data->service = flickr_service_new (server, data->cancellable, GTK_WIDGET (data->browser), data->dialog); g_signal_connect (data->service, "account-ready", G_CALLBACK (authentication_ready_cb), data); g_signal_connect (data->service, "accounts-changed", G_CALLBACK (authentication_accounts_changed_cb), data); data->progress_dialog = gth_progress_dialog_new (GTK_WINDOW (data->browser)); gth_progress_dialog_add_task (GTH_PROGRESS_DIALOG (data->progress_dialog), GTH_TASK (data->service), GTH_TASK_FLAGS_DEFAULT); web_service_autoconnect (WEB_SERVICE (data->service)); }
void AP_UnixDialog_Styles::_constructModifyDialogContents(GtkWidget * container) { GtkWidget *dialog_vbox1 = NULL; GtkWidget *OverallVbox = NULL; GtkWidget *comboTable = NULL; GtkWidget *nameLabel = NULL; GtkWidget *basedOnLabel = NULL; GtkWidget *followingLabel = NULL; GtkWidget *styleTypeLabel = NULL; GtkWidget *styleNameEntry = NULL; GtkWidget *basedOnCombo = NULL; GtkWidget *basedOnEntry = NULL; GtkWidget *followingCombo = NULL; GtkWidget *followingEntry = NULL; GtkWidget *styleTypeCombo = NULL; GtkWidget *styleTypeEntry = NULL; GtkWidget *previewFrame = NULL; GtkWidget *modifyDrawingArea = NULL; GtkWidget *DescriptionText = NULL; GtkWidget *checkBoxRow = NULL; GtkWidget *checkAddTo = NULL; GtkWidget *checkAutoUpdate = NULL; GtkWidget *deletePropCombo = NULL; GtkWidget *deletePropEntry = NULL; GtkWidget *deletePropButton = NULL; const XAP_StringSet * pSS = m_pApp->getStringSet(); dialog_vbox1 = container; gtk_widget_show (dialog_vbox1); OverallVbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (OverallVbox); gtk_box_pack_start (GTK_BOX (dialog_vbox1), OverallVbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (OverallVbox), 5); comboTable = gtk_table_new (4,2, TRUE); gtk_widget_show (comboTable); gtk_box_pack_start (GTK_BOX (OverallVbox), comboTable, TRUE, TRUE, 2); gtk_container_set_border_width (GTK_CONTAINER (comboTable), 2); gtk_table_set_row_spacings (GTK_TABLE (comboTable), 6); gtk_table_set_col_spacings (GTK_TABLE (comboTable), 2); UT_UTF8String s; pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyName,s); nameLabel = gtk_label_new ( s.utf8_str()); gtk_widget_show (nameLabel); gtk_table_attach (GTK_TABLE (comboTable), nameLabel, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (nameLabel), 0, 0.5); gtk_label_set_justify (GTK_LABEL (nameLabel), GTK_JUSTIFY_LEFT); gtk_misc_set_padding (GTK_MISC (nameLabel), 2, 2); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyType,s); styleTypeLabel = gtk_label_new ( s.utf8_str()); gtk_widget_show (styleTypeLabel); gtk_table_attach (GTK_TABLE (comboTable), styleTypeLabel, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (styleTypeLabel), 0, 0.5); gtk_label_set_justify (GTK_LABEL (styleTypeLabel), GTK_JUSTIFY_LEFT); gtk_misc_set_padding (GTK_MISC (styleTypeLabel), 2, 2); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyBasedOn,s); basedOnLabel = gtk_label_new (s.utf8_str() ); gtk_widget_show (basedOnLabel); gtk_table_attach (GTK_TABLE (comboTable), basedOnLabel, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (basedOnLabel), 0, 0.5); gtk_label_set_justify (GTK_LABEL (basedOnLabel), GTK_JUSTIFY_LEFT); gtk_misc_set_padding (GTK_MISC (basedOnLabel), 2, 2); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyFollowing,s); followingLabel = gtk_label_new (s.utf8_str()); gtk_widget_show (followingLabel); gtk_table_attach (GTK_TABLE (comboTable), followingLabel, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (followingLabel), 0, 0.5); gtk_misc_set_padding (GTK_MISC (followingLabel), 2, 3); styleNameEntry = gtk_entry_new (); gtk_widget_show (styleNameEntry); gtk_table_attach (GTK_TABLE (comboTable), styleNameEntry, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_size_request (styleNameEntry, 158, -1); basedOnCombo = gtk_combo_box_text_new_with_entry (); gtk_widget_show (basedOnCombo); gtk_table_attach (GTK_TABLE (comboTable), basedOnCombo, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); basedOnEntry = gtk_bin_get_child(GTK_BIN(basedOnCombo)); gtk_widget_show (basedOnEntry); gtk_widget_set_size_request (basedOnEntry, 158, -1); followingCombo = gtk_combo_box_text_new_with_entry (); gtk_widget_show (followingCombo); gtk_table_attach (GTK_TABLE (comboTable), followingCombo, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); followingEntry = gtk_bin_get_child(GTK_BIN(followingCombo)); gtk_widget_show (followingEntry); gtk_widget_set_size_request (followingEntry, 158, -1); // // Cannot modify style type attribute // if(isNew()) { styleTypeCombo = gtk_combo_box_text_new_with_entry(); gtk_widget_show (styleTypeCombo); gtk_table_attach (GTK_TABLE (comboTable), styleTypeCombo, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); styleTypeEntry = gtk_bin_get_child(GTK_BIN(styleTypeCombo)); gtk_widget_show (styleTypeEntry); gtk_widget_set_size_request (styleTypeEntry, 158, -1); } else { styleTypeEntry = gtk_entry_new (); gtk_widget_show (styleTypeEntry); gtk_table_attach (GTK_TABLE (comboTable), styleTypeEntry, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_size_request (styleTypeEntry, 158, -1); } pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyPreview,s); previewFrame = gtk_frame_new (s.utf8_str()); gtk_frame_set_shadow_type(GTK_FRAME(previewFrame), GTK_SHADOW_NONE); gtk_widget_show (previewFrame); gtk_box_pack_start (GTK_BOX (OverallVbox), previewFrame, TRUE, TRUE, 2); gtk_container_set_border_width (GTK_CONTAINER (previewFrame), 5); modifyDrawingArea = createDrawingArea(); gtk_widget_show (modifyDrawingArea); gtk_container_add (GTK_CONTAINER (previewFrame), modifyDrawingArea); gtk_widget_set_size_request (modifyDrawingArea, -1, 120); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyDescription,s); GtkWidget * descriptionFrame = gtk_frame_new (s.utf8_str()); gtk_frame_set_shadow_type(GTK_FRAME(descriptionFrame), GTK_SHADOW_NONE); gtk_widget_show (descriptionFrame); gtk_box_pack_start (GTK_BOX (OverallVbox), descriptionFrame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (descriptionFrame), 5); DescriptionText = gtk_label_new (NULL); gtk_widget_show (DescriptionText); gtk_container_add (GTK_CONTAINER (descriptionFrame), DescriptionText); gtk_misc_set_alignment (GTK_MISC (DescriptionText), 0, 0.5); gtk_label_set_justify (GTK_LABEL (DescriptionText), GTK_JUSTIFY_LEFT); gtk_label_set_line_wrap (GTK_LABEL (DescriptionText), TRUE); // // Code to choose properties to be removed from the current style. // GtkWidget * deleteRow = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2); gtk_widget_show (deleteRow); gtk_box_pack_start (GTK_BOX (OverallVbox), deleteRow, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (deleteRow), 2); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_RemoveLab,s); GtkWidget * deleteLabel = gtk_label_new(s.utf8_str()); gtk_widget_show (deleteLabel); gtk_box_pack_start (GTK_BOX (deleteRow), deleteLabel, TRUE, TRUE, 0); GtkListStore * store = gtk_list_store_new(1, G_TYPE_STRING); deletePropCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); gtk_widget_show (deletePropCombo); gtk_box_pack_start (GTK_BOX (deleteRow), deletePropCombo, TRUE, TRUE, 0); deletePropEntry = gtk_bin_get_child(GTK_BIN(deletePropCombo)); gtk_widget_show (deletePropEntry); gtk_widget_set_size_request (deletePropEntry, 158, -1); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_RemoveButton,s); deletePropButton = gtk_button_new_with_label(s.utf8_str()); gtk_widget_show(deletePropButton); gtk_box_pack_start (GTK_BOX (deleteRow), deletePropButton, TRUE, TRUE, 0); checkBoxRow = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3); gtk_box_pack_start (GTK_BOX (OverallVbox), checkBoxRow, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (checkBoxRow), 2); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyTemplate,s); checkAddTo = gtk_check_button_new_with_label (s.utf8_str()); gtk_widget_show (checkAddTo); gtk_box_pack_start (GTK_BOX (checkBoxRow), checkAddTo, TRUE, TRUE, 0); pSS->getValueUTF8(AP_STRING_ID_DLG_Styles_ModifyAutomatic,s); checkAutoUpdate = gtk_check_button_new_with_label (s.utf8_str()); gtk_widget_show (checkAutoUpdate); gtk_box_pack_start (GTK_BOX (checkBoxRow), checkAutoUpdate, TRUE, TRUE, 0); // // Save widget pointers in member variables // m_wStyleNameEntry = styleNameEntry; m_wBasedOnCombo = basedOnCombo; m_wBasedOnEntry = basedOnEntry; m_wFollowingCombo = followingCombo; m_wFollowingEntry = followingEntry; m_wStyleTypeCombo = styleTypeCombo; m_wStyleTypeEntry = styleTypeEntry; m_wModifyDrawingArea = modifyDrawingArea; m_wLabDescription = DescriptionText; m_wDeletePropCombo = deletePropCombo; m_wDeletePropEntry = deletePropEntry; m_wDeletePropButton = deletePropButton; }
void connection_dialog(gboolean auto_connect) { gint i; connecting = NULL; wait_for_tuner = FALSE; dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(dialog), "Connect"); gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(ui.window)); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); g_signal_connect(dialog, "destroy", G_CALLBACK(connection_dialog_destroy), NULL); content = gtk_vbox_new(FALSE, 3); gtk_container_add(GTK_CONTAINER(dialog), content); r_serial = gtk_radio_button_new_with_label(NULL, "Serial port"); gtk_box_pack_start(GTK_BOX(content), r_serial, TRUE, TRUE, 2); c_serial = gtk_combo_box_text_new(); #ifdef G_OS_WIN32 gchar tmp[10]; for(i=1; i<=20; i++) { g_snprintf(tmp, sizeof(tmp), "COM%d", i); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(c_serial), tmp); if(g_ascii_strcasecmp(tmp, conf.serial) == 0) { gtk_combo_box_set_active(GTK_COMBO_BOX(c_serial), i-1); } } #else struct dirent *dir; DIR *d = opendir("/dev"); i=0; if(d) { while((dir = readdir(d))) { #ifdef __APPLE__ if(!strncmp(dir->d_name, "cu.usbserial", 12)) #else if(!strncmp(dir->d_name, "ttyUSB", 6) || !strncmp(dir->d_name, "ttyACM", 6) || !strncmp(dir->d_name, "ttyS", 4) || !strncmp(dir->d_name, "rfcomm", 6)) #endif { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(c_serial), dir->d_name); if(g_ascii_strcasecmp(dir->d_name, conf.serial) == 0) { gtk_combo_box_set_active(GTK_COMBO_BOX(c_serial), i); } i++; } } closedir(d); } #endif g_signal_connect(c_serial, "changed", G_CALLBACK(connection_dialog_select), r_serial); gtk_box_pack_start(GTK_BOX(content), c_serial, TRUE, TRUE, 0); r_tcp = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(r_serial), "TCP/IP"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(r_tcp), conf.network); gtk_box_pack_start(GTK_BOX(content), r_tcp, TRUE, TRUE, 2); box_tcp1 = gtk_hbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(content), box_tcp1); l_host = gtk_label_new("Host:"); gtk_box_pack_start(GTK_BOX(box_tcp1), l_host, TRUE, FALSE, 1); ls_host = gtk_list_store_new(1, G_TYPE_STRING); if(conf.host) { for(i=0; conf.host[i]; i++) { GtkTreeIter iter; gtk_list_store_append(ls_host, &iter); gtk_list_store_set(ls_host, &iter, 0, conf.host[i], -1); } } e_host = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(ls_host)); gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(e_host), 0); gtk_combo_box_set_active(GTK_COMBO_BOX(e_host), 0); g_signal_connect(e_host, "changed", G_CALLBACK(connection_dialog_select), r_tcp); gtk_box_pack_start(GTK_BOX(box_tcp1), e_host, TRUE, FALSE, 1); l_port = gtk_label_new("Port:"); gtk_box_pack_start(GTK_BOX(box_tcp1), l_port, TRUE, FALSE, 1); e_port = gtk_entry_new_with_max_length(5); gtk_entry_set_width_chars(GTK_ENTRY(e_port), 5); gchar *s_port = g_strdup_printf("%d", conf.port); gtk_entry_set_text(GTK_ENTRY(e_port), s_port); g_free(s_port); g_signal_connect(e_port, "changed", G_CALLBACK(connection_dialog_select), r_tcp); gtk_box_pack_start(GTK_BOX(box_tcp1), e_port, TRUE, FALSE, 1); box_tcp2 = gtk_hbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(content), box_tcp2); l_password = gtk_label_new("Password:"******"changed", G_CALLBACK(connection_dialog_select), r_tcp); gtk_box_pack_start(GTK_BOX(box_tcp2), e_password, TRUE, TRUE, 1); c_password = gtk_check_button_new_with_label("Keep"); if(conf.password && strlen(conf.password)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c_password), TRUE); } g_signal_connect(c_password, "toggled", G_CALLBACK(connection_dialog_select), r_tcp); gtk_box_pack_start(GTK_BOX(box_tcp2), c_password, FALSE, FALSE, 1); box_status_wrapper = gtk_hbox_new(TRUE, 5); gtk_box_pack_start(GTK_BOX(content), box_status_wrapper, FALSE, FALSE, 1); box_status = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(box_status_wrapper), box_status, FALSE, FALSE, 1); spinner = gtk_spinner_new(); gtk_box_pack_start(GTK_BOX(box_status), spinner, FALSE, FALSE, 1); l_status = gtk_label_new(NULL); gtk_box_pack_start(GTK_BOX(box_status), l_status, FALSE, FALSE, 1); box_button = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(box_button), GTK_BUTTONBOX_END); gtk_box_set_spacing(GTK_BOX(box_button), 5); gtk_box_pack_start(GTK_BOX(content), box_button, FALSE, FALSE, 5); b_connect = gtk_button_new_from_stock(GTK_STOCK_OK); g_signal_connect(dialog, "key-press-event", G_CALLBACK(connection_dialog_key), b_connect); g_signal_connect(b_connect, "clicked", G_CALLBACK(connection_dialog_connect), NULL); gtk_container_add(GTK_CONTAINER(box_button), b_connect); b_cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); g_signal_connect_swapped(b_cancel, "clicked", G_CALLBACK(gtk_widget_destroy), dialog); gtk_container_add(GTK_CONTAINER(box_button), b_cancel); #ifdef G_OS_WIN32 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui.b_ontop))) { gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); } #endif gtk_widget_show_all(dialog); gtk_widget_hide(spinner); gtk_widget_hide(l_status); connect_button(FALSE); if(auto_connect || (conf.auto_reconnect && successfully_connected)) { gtk_button_clicked(GTK_BUTTON(b_connect)); } }