int main(int argc, char *argv[]) { gtk_init(&argc, &argv); gtk_info_bar_new(); return 0; }
void tabmanagergui_create_infobar (GuTabPage* tp) { // we will probably want to make a separate file for infobar // procedures that we can attach to hboxes in both the editor // and the preview window, TODO for 0.7.0 -Alex GtkWidget* infobar = NULL; GtkWidget* message = NULL; GtkWidget* area = NULL; infobar = gtk_info_bar_new (); gtk_widget_set_no_show_all (infobar, TRUE); message = gtk_label_new (""); gtk_label_set_line_wrap (GTK_LABEL(message), TRUE); gtk_widget_show (message); area = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar)); gtk_container_add (GTK_CONTAINER (area), message); gtk_info_bar_add_button (GTK_INFO_BAR (infobar), GTK_STOCK_YES, GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (infobar), GTK_STOCK_NO, GTK_RESPONSE_NO); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); tp->barlabel = message; tp->infobar = infobar; }
/** * e_webdav_discover_content_show_error: * @content: a WebDAV discovery content, created by e_webdav_discover_content_new() * @error: (allow-none): a #GError to show in the UI, or %NULL * * Shows the @error within @content, unless it's a #G_IO_ERROR_CANCELLED, or %NULL, * which are safely ignored. The advantage of this function is that the error * message is removed when the refresh operation is started. * * Since: 3.18 **/ void e_webdav_discover_content_show_error (GtkWidget *content, const GError *error) { EWebDAVDiscoverContentData *data; GtkWidget *label; g_return_if_fail (GTK_IS_GRID (content)); data = g_object_get_data (G_OBJECT (content), WEBDAV_DISCOVER_CONTENT_DATA_KEY); g_return_if_fail (data != NULL); if (data->info_bar) { gtk_widget_destroy (GTK_WIDGET (data->info_bar)); data->info_bar = NULL; } if (!error || g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; data->info_bar = GTK_INFO_BAR (gtk_info_bar_new ()); gtk_info_bar_set_message_type (data->info_bar, GTK_MESSAGE_ERROR); gtk_info_bar_set_show_close_button (data->info_bar, TRUE); label = gtk_label_new (error->message); gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (data->info_bar)), label); gtk_widget_show (label); gtk_widget_show (GTK_WIDGET (data->info_bar)); g_signal_connect (data->info_bar, "response", G_CALLBACK (e_webdav_discover_info_bar_error_response_cb), content); gtk_grid_attach (GTK_GRID (content), GTK_WIDGET (data->info_bar), 0, 2, 1, 1); }
static GtkWidget * gui_connection_infobar_new(GtkWidget **out_infobar_close, GtkWidget **out_infobar_reconnect) { GtkWidget *infobar; GtkWidget *msg_label, *content_area, *action_area; msg_label = gtk_label_new(""); gtk_label_set_markup(GTK_LABEL(msg_label), "<b>ERROR: Connection lost</b>"); gtk_widget_show(msg_label); infobar = gtk_info_bar_new(); gtk_info_bar_set_message_type(GTK_INFO_BAR(infobar), GTK_MESSAGE_ERROR); content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(infobar)); gtk_container_add(GTK_CONTAINER(content_area), msg_label); *out_infobar_close = gtk_info_bar_add_button(GTK_INFO_BAR(infobar), "Close", 0); *out_infobar_reconnect = gtk_info_bar_add_button(GTK_INFO_BAR(infobar), "Reconnect", 0); gtk_widget_set_no_show_all(infobar, TRUE); action_area = gtk_info_bar_get_action_area(GTK_INFO_BAR(infobar)); gtk_orientable_set_orientation(GTK_ORIENTABLE(action_area), GTK_ORIENTATION_HORIZONTAL); return infobar; }
GtkWidget * create_info_bar_import_music(struct con_win *cwin) { const gchar *dir = g_get_user_special_dir(G_USER_DIRECTORY_MUSIC); GtkWidget *info_bar = gtk_info_bar_new(); GtkWidget *action_area = gtk_info_bar_get_action_area(GTK_INFO_BAR (info_bar)); GtkWidget *content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar)); gtk_orientable_set_orientation(GTK_ORIENTABLE(action_area), GTK_ORIENTATION_HORIZONTAL); //GtkInfoBar has undocumented behavior for GTK_RESPONSE_CANCEL gtk_info_bar_add_button(GTK_INFO_BAR(info_bar), GTK_STOCK_NO, GTK_RESPONSE_CANCEL); gtk_info_bar_add_button(GTK_INFO_BAR(info_bar), GTK_STOCK_YES, GTK_RESPONSE_YES); gchar *content = g_strdup_printf(_("Would you like to import %s to library?"), dir); GtkWidget *label = gtk_label_new(content); gtk_box_pack_start(GTK_BOX(content_area), label, FALSE, FALSE, 0); g_signal_connect(info_bar, "response", G_CALLBACK(info_bar_response_cb), cwin); gtk_widget_show_all(info_bar); g_free(content); return info_bar; }
static void spice_usb_device_widget_show_info_bar(SpiceUsbDeviceWidget *self, const gchar *message, GtkMessageType message_type, const gchar *stock_icon_id) { SpiceUsbDeviceWidgetPrivate *priv = self->priv; GtkWidget *info_bar, *content_area, *hbox, *widget; spice_usb_device_widget_hide_info_bar(self); info_bar = gtk_info_bar_new(); gtk_info_bar_set_message_type(GTK_INFO_BAR(info_bar), message_type); content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar)); #if GTK_CHECK_VERSION(3,0,0) hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12); #else hbox = gtk_hbox_new(FALSE, 12); #endif gtk_container_add(GTK_CONTAINER(content_area), hbox); widget = gtk_image_new_from_stock(stock_icon_id, GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0); widget = gtk_label_new(message); gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0); priv->info_bar = gtk_alignment_new(0.0, 0.0, 1.0, 0.0); gtk_alignment_set_padding(GTK_ALIGNMENT(priv->info_bar), 0, 0, 12, 0); gtk_container_add(GTK_CONTAINER(priv->info_bar), info_bar); gtk_box_pack_start(GTK_BOX(self), priv->info_bar, FALSE, FALSE, 0); gtk_widget_show_all(priv->info_bar); }
static void test_info_bar_basic (void) { GtkWidget *infobar; infobar = gtk_info_bar_new (); g_assert (GTK_IS_INFO_BAR (infobar)); gtk_widget_destroy (infobar); }
static void setup_root_info_bar (NemoToolbar *self) { GtkWidget *root_bar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (root_bar), GTK_MESSAGE_ERROR); GtkWidget *content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (root_bar)); GtkWidget *label = gtk_label_new (_("Elevated Privileges")); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (content_area), label); self->priv->root_bar = root_bar; gtk_box_pack_start (GTK_BOX (self), self->priv->root_bar, TRUE, TRUE, 0); }
GtkWidget *gnome_info_bar(gchar *message, GtkMessageType type) { GtkWidget *info_bar = gtk_info_bar_new(); gtk_widget_set_no_show_all(info_bar, TRUE); GtkWidget *message_label = gtk_label_new(NULL); gtk_widget_show(message_label); GtkWidget *content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar)); gtk_container_add(GTK_CONTAINER(content_area), message_label); gtk_label_set_markup(GTK_LABEL(message_label), message); gtk_info_bar_set_message_type(GTK_INFO_BAR(info_bar), type); gtk_widget_show(info_bar); return info_bar; }
void InterfaceGtk::main(int &argc, char **&argv) { GtkWidget *vbox; GtkWidget *info_content; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), PACKAGE_NAME); g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(exit_app), NULL); vbox = gtk_vbox_new(FALSE, 0); editor_widget = scintilla_new(); scintilla_set_id(SCINTILLA(editor_widget), 0); gtk_widget_set_usize(editor_widget, 500, 300); gtk_widget_set_can_focus(editor_widget, FALSE); g_signal_connect(G_OBJECT(editor_widget), SCINTILLA_NOTIFY, G_CALLBACK(scintilla_notify), NULL); gtk_box_pack_start(GTK_BOX(vbox), editor_widget, TRUE, TRUE, 0); info_widget = gtk_info_bar_new(); info_content = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_widget)); message_widget = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(message_widget), 0., 0.); gtk_container_add(GTK_CONTAINER(info_content), message_widget); gtk_box_pack_start(GTK_BOX(vbox), info_widget, FALSE, FALSE, 0); cmdline_widget = gtk_entry_new(); gtk_entry_set_has_frame(GTK_ENTRY(cmdline_widget), FALSE); gtk_editable_set_editable(GTK_EDITABLE(cmdline_widget), FALSE); widget_set_font(cmdline_widget, "Courier"); g_signal_connect(G_OBJECT(cmdline_widget), "key-press-event", G_CALLBACK(cmdline_key_pressed), NULL); gtk_box_pack_start(GTK_BOX(vbox), cmdline_widget, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); popup_widget = gtk_info_popup_new(cmdline_widget); gtk_widget_grab_focus(cmdline_widget); ssm(SCI_SETFOCUS, TRUE); cmdline_update(""); }
static void bisho_pane_init (BishoPane *pane) { GtkWidget *align, *banner_content; gtk_box_set_spacing (GTK_BOX (pane), 8); pane->description = mux_label_new (); gtk_widget_show (pane->description); gtk_box_pack_start (GTK_BOX (pane), pane->description, FALSE, FALSE, 0); align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); gtk_widget_show (align); pane->banner = gtk_info_bar_new (); gtk_container_add (GTK_CONTAINER (align), pane->banner); gtk_box_pack_start (GTK_BOX (pane), align, FALSE, FALSE, 0); pane->banner_label = gtk_label_new (NULL); gtk_label_set_line_wrap (GTK_LABEL (pane->banner_label), TRUE); gtk_widget_show (pane->banner_label); banner_content = gtk_info_bar_get_content_area (GTK_INFO_BAR (pane->banner)); gtk_container_add (GTK_CONTAINER (banner_content), pane->banner_label); align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 32, 0); gtk_widget_show (align); pane->user_box = gtk_hbox_new (FALSE, 0); pane->user_icon = gtk_image_new (); gtk_widget_show (pane->user_icon); gtk_box_pack_start (GTK_BOX (pane->user_box), pane->user_icon, FALSE, FALSE, 8); pane->user_name = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (pane->user_box), pane->user_name, TRUE, TRUE, 8); gtk_container_add (GTK_CONTAINER (align), pane->user_box); gtk_box_pack_start (GTK_BOX (pane), align, FALSE, FALSE, 0); pane->content = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); gtk_alignment_set_padding (GTK_ALIGNMENT (pane->content), 0, 0, 64, 64); gtk_widget_show (pane->content); gtk_box_pack_start (GTK_BOX (pane), pane->content, TRUE, TRUE, 0); pane->disclaimer = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (pane->disclaimer), 0.0, 0.5); gtk_misc_set_padding (GTK_MISC (pane->disclaimer), 6, 6); gtk_widget_show (pane->disclaimer); gtk_box_pack_start (GTK_BOX (pane), pane->disclaimer, FALSE, TRUE, 0); }
int main(int argc, char *argv[]) { GtkWidget *button; GtkWidget *content_area; gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL); GtkWidget *vbox = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(window), vbox); infobar = gtk_info_bar_new(); gtk_info_bar_add_button(GTK_INFO_BAR(infobar), GTK_STOCK_CLOSE, GTK_RESPONSE_OK); g_signal_connect(infobar, "response", G_CALLBACK(gtk_widget_hide), NULL); gtk_box_pack_start(GTK_BOX(vbox), infobar, TRUE, TRUE, 0); label = gtk_label_new("InfoBar displaying information message"); content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(infobar)); gtk_box_pack_start(GTK_BOX(content_area), label, TRUE, TRUE, 0); GtkWidget *hbox = gtk_hbox_new(TRUE, 5); gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); button = gtk_button_new_with_label("Information"); g_signal_connect(button, "clicked", G_CALLBACK(button_clicked), "information"); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("Warning"); g_signal_connect(button, "clicked", G_CALLBACK(button_clicked), "warning"); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("Question"); g_signal_connect(button, "clicked", G_CALLBACK(button_clicked), "question"); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("Error"); g_signal_connect(button, "clicked", G_CALLBACK(button_clicked), "error"); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show_all(window); gtk_main(); return 0; }
ColorVisionDeficiencyConfig::ColorVisionDeficiencyConfig(ColorVisionDeficiency &transformation){ GtkWidget *table = gtk_table_new(2, 2, false); GtkWidget *widget; int table_y = 0; table_y = 0; gtk_table_attach(GTK_TABLE(table), gtk_label_aligned_new(_("Type:"), 0, 0.5, 0, 0), 0, 1, table_y, table_y + 1, GTK_FILL, GTK_FILL, 5, 5); type = widget = create_type_list(); g_signal_connect(G_OBJECT(type), "changed", G_CALLBACK(ColorVisionDeficiencyConfig::type_combobox_change_cb), this); gtk_table_attach(GTK_TABLE(table), widget, 1, 2, table_y, table_y + 1, GtkAttachOptions(GTK_FILL | GTK_EXPAND), GTK_FILL, 5, 0); table_y++; info_bar = widget = gtk_info_bar_new(); info_label = gtk_label_new(""); gtk_label_set_line_wrap(GTK_LABEL(info_label), true); gtk_label_set_justify(GTK_LABEL(info_label), GTK_JUSTIFY_LEFT); gtk_label_set_single_line_mode(GTK_LABEL(info_label), false); gtk_misc_set_alignment(GTK_MISC(info_label), 0, 0.5); gtk_widget_set_size_request(info_label, 1, -1); GtkWidget *content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar)); gtk_container_add(GTK_CONTAINER(content_area), info_label); gtk_widget_show_all(info_bar); g_signal_connect(G_OBJECT(info_label), "size-allocate", G_CALLBACK(info_label_size_allocate_cb), this); gtk_table_attach(GTK_TABLE(table), widget, 1, 2, table_y, table_y + 1, GtkAttachOptions(GTK_FILL | GTK_EXPAND), GTK_FILL, 5, 0); table_y++; gtk_combo_box_set_active(GTK_COMBO_BOX(type), transformation.type); gtk_table_attach(GTK_TABLE(table), gtk_label_aligned_new(_("Strength:"), 0, 0.5, 0, 0), 0, 1, table_y, table_y + 1, GTK_FILL, GTK_FILL, 5, 5); strength = widget = gtk_hscale_new_with_range(0, 100, 1); gtk_range_set_value(GTK_RANGE(widget), transformation.strength * 100); gtk_table_attach(GTK_TABLE(table), widget, 1, 2, table_y, table_y + 1, GtkAttachOptions(GTK_FILL | GTK_EXPAND), GTK_FILL, 5, 0); table_y++; main = table; gtk_widget_show_all(main); g_object_ref(main); }
GtkWidget *create_info_bar_update_music(struct con_win *cwin) { GtkWidget *info_bar = gtk_info_bar_new(); GtkWidget *action_area = gtk_info_bar_get_action_area(GTK_INFO_BAR (info_bar)); GtkWidget *content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar)); gtk_orientable_set_orientation(GTK_ORIENTABLE(action_area), GTK_ORIENTATION_HORIZONTAL); //GtkInfoBar has undocumented behavior for GTK_RESPONSE_CANCEL gtk_info_bar_add_button(GTK_INFO_BAR(info_bar), GTK_STOCK_NO, GTK_RESPONSE_CANCEL); gtk_info_bar_add_button(GTK_INFO_BAR(info_bar), GTK_STOCK_YES, GTK_RESPONSE_YES); GtkWidget *label = gtk_label_new(_("Want to upgrade your music library?")); gtk_box_pack_start(GTK_BOX(content_area), label, FALSE, FALSE, 0); g_signal_connect(info_bar, "response", G_CALLBACK(info_bar_update_response_cb), cwin); gtk_widget_show_all(info_bar); return info_bar; }
static GtkWidget * create_error_message_area (const gchar *primary_text, const gchar *secondary_text, EogErrorMessageAreaButtons buttons) { GtkWidget *message_area; /* create a new message area */ message_area = gtk_info_bar_new (); /* add requested buttons to the message area */ if (buttons & EOG_ERROR_MESSAGE_AREA_CANCEL_BUTTON) gtk_info_bar_add_button (GTK_INFO_BAR (message_area), _("_Cancel"), EOG_ERROR_MESSAGE_AREA_RESPONSE_CANCEL); if (buttons & EOG_ERROR_MESSAGE_AREA_RELOAD_BUTTON) gtk_info_bar_add_button (GTK_INFO_BAR (message_area), _("_Reload"), EOG_ERROR_MESSAGE_AREA_RESPONSE_RELOAD); if (buttons & EOG_ERROR_MESSAGE_AREA_SAVEAS_BUTTON) gtk_info_bar_add_button (GTK_INFO_BAR (message_area), _("Save _As…"), EOG_ERROR_MESSAGE_AREA_RESPONSE_SAVEAS); /* set message type */ gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_ERROR); /* set text and icon */ set_message_area_text_and_icon (GTK_INFO_BAR (message_area), GTK_STOCK_DIALOG_ERROR, primary_text, secondary_text); return message_area; }
bool wxInfoBar::Create(wxWindow *parent, wxWindowID winid) { if ( !UseNative() ) return wxInfoBarGeneric::Create(parent, winid); m_impl = new wxInfoBarGTKImpl; // this control is created initially hidden Hide(); if ( !CreateBase(parent, winid) ) return false; // create the info bar widget itself m_widget = gtk_info_bar_new(); wxCHECK_MSG( m_widget, false, "failed to create GtkInfoBar" ); g_object_ref(m_widget); // also create a label which will be used to show our message m_impl->m_label = gtk_label_new(""); gtk_widget_show(m_impl->m_label); GtkWidget * const contentArea = gtk_info_bar_get_content_area(GTK_INFO_BAR(m_widget)); wxCHECK_MSG( contentArea, false, "failed to get GtkInfoBar content area" ); gtk_container_add(GTK_CONTAINER(contentArea), m_impl->m_label); // finish creation and connect to all the signals we're interested in m_parent->DoAddChild(this); PostCreation(wxDefaultSize); GTKConnectWidget("response", G_CALLBACK(wxgtk_infobar_response)); GTKConnectWidget("close", G_CALLBACK(wxgtk_infobar_close)); return true; }
static GtkWidget * create_error_message_area (const gchar *primary_text, const gchar *secondary_text, gboolean recoverable) { GtkWidget *message_area; if (recoverable) message_area = gtk_info_bar_new_with_buttons (_("_Retry"), GTK_RESPONSE_OK, NULL); else message_area = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_ERROR); set_message_area_text_and_icon (GTK_INFO_BAR (message_area), GTK_STOCK_DIALOG_ERROR, primary_text, secondary_text); return message_area; }
JNIEXPORT jlong JNICALL Java_org_gnome_gtk_GtkInfoBar_gtk_1info_1bar_1new ( JNIEnv* env, jclass cls ) { GtkWidget* result; jlong _result; // call function result = gtk_info_bar_new(); // translate return value to JNI type _result = (jlong) result; // cleanup return value if (result != NULL) { bindings_java_memory_cleanup((GObject*)result, TRUE); } // and finally return _result; }
GtkWidget * gedit_file_already_open_warning_message_area_new (const gchar *uri) { GtkWidget *message_area; GtkWidget *hbox_content; GtkWidget *image; GtkWidget *vbox; gchar *primary_markup; gchar *secondary_markup; GtkWidget *primary_label; GtkWidget *secondary_label; gchar *primary_text; const gchar *secondary_text; gchar *full_formatted_uri; gchar *uri_for_display; gchar *temp_uri_for_display; full_formatted_uri = gedit_utils_uri_for_display (uri); /* Truncate the URI so it doesn't get insanely wide. Note that even * though the dialog uses wrapped text, if the URI doesn't contain * white space then the text-wrapping code is too stupid to wrap it. */ temp_uri_for_display = gedit_utils_str_middle_truncate (full_formatted_uri, MAX_URI_IN_DIALOG_LENGTH); g_free (full_formatted_uri); uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display); g_free (temp_uri_for_display); #if !GTK_CHECK_VERSION (2, 17, 1) message_area = gedit_message_area_new (); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("Edit Any_way"), GTK_RESPONSE_YES); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("D_on't Edit"), GTK_RESPONSE_CANCEL); #else message_area = gtk_info_bar_new (); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), /* Translators: the access key chosen for this string should be different from other main menu access keys (Open, Edit, View...) */ _("Edit Any_way"), GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), /* Translators: the access key chosen for this string should be different from other main menu access keys (Open, Edit, View...) */ _("D_on't Edit"), GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_WARNING); #endif hbox_content = gtk_hbox_new (FALSE, 8); image = gtk_image_new_from_stock ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0); vbox = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (hbox_content), vbox, TRUE, TRUE, 0); primary_text = g_strdup_printf (_("This file (%s) is already open in another gedit window."), uri_for_display); g_free (uri_for_display); primary_markup = g_strdup_printf ("<b>%s</b>", primary_text); g_free (primary_text); primary_label = gtk_label_new (primary_markup); g_free (primary_markup); gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0); gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (primary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5); GTK_WIDGET_SET_FLAGS (primary_label, GTK_CAN_FOCUS); gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE); secondary_text = _("gedit opened this instance of the file in a non-editable way. " "Do you want to edit it anyway?"); secondary_markup = g_strdup_printf ("<small>%s</small>", secondary_text); secondary_label = gtk_label_new (secondary_markup); g_free (secondary_markup); gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS); gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE); gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5); gtk_widget_show_all (hbox_content); set_contents (message_area, hbox_content); return message_area; }
static GtkWidget * create_infobar (PlumaWindow *window, const gchar *version) { GtkWidget *infobar; gchar *message; #if !GTK_CHECK_VERSION (2, 17, 1) infobar = pluma_message_area_new (); pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (infobar), _("_Download"), GTK_STOCK_SAVE, GTK_RESPONSE_YES); pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (infobar), _("_Ignore Version"), GTK_STOCK_DISCARD, GTK_RESPONSE_NO); pluma_message_area_add_button (PLUMA_MESSAGE_AREA (infobar), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); #else GtkWidget *button; infobar = gtk_info_bar_new (); button = pluma_gtk_button_new_with_stock_icon (_("_Download"), GTK_STOCK_SAVE); gtk_widget_show (button); gtk_info_bar_add_action_widget (GTK_INFO_BAR (infobar), button, GTK_RESPONSE_YES); button = pluma_gtk_button_new_with_stock_icon (_("_Ignore Version"), GTK_STOCK_DISCARD); gtk_widget_show (button); gtk_info_bar_add_action_widget (GTK_INFO_BAR (infobar), button, GTK_RESPONSE_NO); gtk_info_bar_add_button (GTK_INFO_BAR (infobar), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); #endif message = g_strdup_printf ("%s (%s)", _("There is a new version of pluma"), version); set_message_area_text_and_icon (infobar, "gtk-dialog-info", message, _("You can download the new version of pluma" " by clicking on the download button or" " ignore that version and wait for a new one")); g_free (message); g_signal_connect (infobar, "response", G_CALLBACK (on_response_cb), window); return infobar; }
static void current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog) { GSettings *settings; RBSource *source; GtkWidget *label; const char *uri; char **locations; int i; uri = gtk_file_chooser_get_uri (chooser); if (g_strcmp0 (uri, dialog->priv->current_uri) == 0) return; g_free (dialog->priv->current_uri); dialog->priv->current_uri = g_strdup (uri); if (dialog->priv->import_job != NULL) { rhythmdb_import_job_cancel (dialog->priv->import_job); } clear_info_bar (dialog); source = rb_shell_guess_source_for_uri (dialog->priv->shell, uri); if (source != NULL) { if (RB_IS_DEVICE_SOURCE (source)) { char *msg; char *name; GtkWidget *content; rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->entry_type); rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->ignore_type); rhythmdb_commit (dialog->priv->db); dialog->priv->info_bar = gtk_info_bar_new (); g_object_set (dialog->priv->info_bar, "hexpand", TRUE, NULL); g_object_get (source, "name", &name, NULL); /* this isn't a terribly helpful message. */ msg = g_strdup_printf (_("The location you have selected is on the device %s."), name); label = gtk_label_new (msg); g_free (msg); content = gtk_info_bar_get_content_area (GTK_INFO_BAR (dialog->priv->info_bar)); gtk_container_add (GTK_CONTAINER (content), label); msg = g_strdup_printf (_("Show %s"), name); gtk_info_bar_add_button (GTK_INFO_BAR (dialog->priv->info_bar), msg, GTK_RESPONSE_ACCEPT); g_free (msg); g_signal_connect (dialog->priv->info_bar, "response", G_CALLBACK (device_info_bar_response_cb), dialog); gtk_widget_show_all (dialog->priv->info_bar); gtk_container_add (GTK_CONTAINER (dialog->priv->info_bar_container), dialog->priv->info_bar); return; } } /* disable copy if the selected location is already inside the library */ settings = g_settings_new ("org.gnome.rhythmbox.rhythmdb"); locations = g_settings_get_strv (settings, "locations"); gtk_widget_set_sensitive (dialog->priv->copy_check, TRUE); for (i = 0; locations[i] != NULL; i++) { if (g_str_has_prefix (uri, locations[i])) { gtk_widget_set_sensitive (dialog->priv->copy_check, FALSE); break; } } g_strfreev (locations); g_object_unref (settings); if (dialog->priv->import_job != NULL) { /* wait for the previous job to finish up */ rb_debug ("need to wait for previous import job to finish"); g_signal_connect (dialog->priv->import_job, "complete", G_CALLBACK (start_deferred_scan), dialog); } else { start_scanning (dialog); } }
static void empathy_contact_blocking_dialog_init (EmpathyContactBlockingDialog *self) { GtkBuilder *gui; char *filename; GtkWidget *contents; GtkWidget *account_hbox, *blocked_contacts_view, *blocked_contacts_sw, *remove_toolbar; GtkEntryCompletion *completion; TpAccountManager *am; GtkStyleContext *context; TpSimpleClientFactory *factory; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EMPATHY_TYPE_CONTACT_BLOCKING_DIALOG, EmpathyContactBlockingDialogPrivate); gtk_window_set_title (GTK_WINDOW (self), _("Edit Blocked Contacts")); gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); filename = empathy_file_lookup ("empathy-contact-blocking-dialog.ui", "libempathy-gtk"); gui = empathy_builder_get_file (filename, "contents", &contents, "account-hbox", &account_hbox, "add-button", &self->priv->add_button, "add-contact-entry", &self->priv->add_contact_entry, "blocked-contacts", &self->priv->blocked_contacts, "blocked-contacts-sw", &blocked_contacts_sw, "blocked-contacts-view", &blocked_contacts_view, "remove-button", &self->priv->remove_button, "remove-toolbar", &remove_toolbar, NULL); empathy_builder_connect (gui, self, "add-button", "clicked", contact_blocking_dialog_add_contact, "add-contact-entry", "activate", contact_blocking_dialog_add_contact, "remove-button", "clicked", contact_blocking_dialog_remove_contacts, NULL); /* join the remove toolbar to the treeview */ context = gtk_widget_get_style_context (blocked_contacts_sw); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (remove_toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); /* add the contents to the dialog */ gtk_container_add ( GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), contents); gtk_widget_show (contents); /* set up the tree selection */ self->priv->selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (blocked_contacts_view)); gtk_tree_selection_set_mode (self->priv->selection, GTK_SELECTION_MULTIPLE); g_signal_connect (self->priv->selection, "changed", G_CALLBACK (contact_blocking_dialog_view_selection_changed), self); /* build the contact entry */ self->priv->completion_contacts = gtk_list_store_new (N_COMPLETION_COLUMNS, G_TYPE_STRING, /* id */ G_TYPE_STRING, /* text */ TP_TYPE_CONTACT); /* contact */ completion = gtk_entry_completion_new (); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (self->priv->completion_contacts)); gtk_entry_completion_set_text_column (completion, COL_COMPLETION_TEXT); gtk_entry_completion_set_match_func (completion, contact_selector_dialog_match_func, NULL, NULL); g_signal_connect (completion, "match-selected", G_CALLBACK (contact_selector_dialog_match_selected_cb), self); gtk_entry_set_completion (GTK_ENTRY (self->priv->add_contact_entry), completion); g_object_unref (completion); g_object_unref (self->priv->completion_contacts); /* add the account chooser */ self->priv->account_chooser = empathy_account_chooser_new (); contact_blocking_dialog_refilter_account_chooser (self); g_signal_connect (self->priv->account_chooser, "changed", G_CALLBACK (contact_blocking_dialog_account_changed), self); gtk_box_pack_start (GTK_BOX (account_hbox), self->priv->account_chooser, TRUE, TRUE, 0); gtk_widget_show (self->priv->account_chooser); /* add an error warning info bar */ self->priv->info_bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (contents), self->priv->info_bar, FALSE, TRUE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (self->priv->info_bar), GTK_MESSAGE_ERROR); self->priv->info_bar_label = gtk_label_new (""); gtk_container_add (GTK_CONTAINER ( gtk_info_bar_get_content_area (GTK_INFO_BAR (self->priv->info_bar))), self->priv->info_bar_label); gtk_widget_show (self->priv->info_bar_label); /* prepare the account manager */ am = tp_account_manager_dup (); factory = tp_proxy_get_factory (am); tp_simple_client_factory_add_connection_features_varargs (factory, TP_CONNECTION_FEATURE_CONTACT_BLOCKING, NULL); tp_proxy_prepare_async (am, NULL, contact_blocking_dialog_am_prepared, self); g_object_unref (am); g_free (filename); g_object_unref (gui); }
GtkWidget *gtkui_cheats() { // Create the Cheats window if (cheatwindow) { return NULL; } cheatwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (cheatwindow), "Cheat Manager"); GtkWidget *cheatbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(cheatwindow), cheatbox); GtkWidget *scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), scrolledwindow, TRUE, TRUE, 0); gtk_widget_set_size_request(scrolledwindow, 512, 256); treeview = gtk_tree_view_new(); gtk_container_add(GTK_CONTAINER (scrolledwindow), treeview); infobar = gtk_info_bar_new(); infolabel = gtk_widget_new(GTK_TYPE_LABEL,"label", "", NULL); gtk_box_pack_start(GTK_BOX(cheatbox), infobar, TRUE, TRUE, 0); GtkWidget *content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(infobar)); gtk_box_pack_start(GTK_BOX(content_area), infolabel, TRUE, TRUE, 0); GtkWidget *opensavebox = gtk_widget_new(GTK_TYPE_BOX, "halign", GTK_ALIGN_END, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), opensavebox, FALSE, FALSE, 0); GtkWidget *cheatopen = gtk_widget_new( GTK_TYPE_BUTTON, "label", "Open", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(opensavebox), cheatopen, FALSE, FALSE, 0); GtkWidget *cheatclear = gtk_widget_new( GTK_TYPE_BUTTON, "label", "Clear", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(opensavebox), cheatclear, FALSE, FALSE, 0); GtkWidget *cheatremove = gtk_widget_new( GTK_TYPE_BUTTON, "label", "Remove", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(opensavebox), cheatremove, FALSE, FALSE, 0); GtkWidget *descbox = gtk_widget_new( GTK_TYPE_BOX, "halign", GTK_ALIGN_END, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), descbox, FALSE, FALSE, 0); GtkWidget *desclabel = gtk_widget_new( GTK_TYPE_LABEL, "label", "Description:", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-left", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(descbox), desclabel, FALSE, FALSE, 0); descedit = gtk_widget_new( GTK_TYPE_ENTRY, "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(descbox), descedit, TRUE, TRUE, 0); GtkWidget *ggbox = gtk_widget_new( GTK_TYPE_BOX, "halign", GTK_ALIGN_END, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), ggbox, FALSE, FALSE, 0); GtkWidget *gglabel = gtk_widget_new( GTK_TYPE_LABEL, "label", "Game Genie:", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-left", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(ggbox), gglabel, FALSE, FALSE, 0); ggedit = gtk_widget_new( GTK_TYPE_ENTRY, "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(ggbox), ggedit, TRUE, TRUE, 0); GtkWidget *genieadd = gtk_widget_new( GTK_TYPE_BUTTON, "label", "Add", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(ggbox), genieadd, FALSE, FALSE, 0); GtkWidget *parbox = gtk_widget_new( GTK_TYPE_BOX, "halign", GTK_ALIGN_END, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), parbox, FALSE, FALSE, 0); GtkWidget *parlabel = gtk_widget_new( GTK_TYPE_LABEL, "label", "Pro Action Rocky:", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-left", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(parbox), parlabel, FALSE, FALSE, 0); paredit = gtk_widget_new( GTK_TYPE_ENTRY, "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(parbox), paredit, FALSE, FALSE, 0); GtkWidget *paradd = gtk_widget_new( GTK_TYPE_BUTTON, "label", "Add", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(parbox), paradd, FALSE, FALSE, 0); GtkWidget *cheatok = gtk_widget_new( GTK_TYPE_BUTTON, "label", "OK", "halign", GTK_ALIGN_END, "margin-top", 8, "margin-bottom", 8, "margin-right", 8, NULL); gtk_box_pack_start(GTK_BOX(cheatbox), cheatok, FALSE, FALSE, 0); gtk_tree_view_set_fixed_height_mode(GTK_TREE_VIEW(treeview), FALSE); treestore = gtk_tree_store_new(5, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(treestore)); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); GtkCellRenderer *checkbox = gtk_cell_renderer_toggle_new(); GtkTreeViewColumn *column[5]; // create the display columns column[0] = gtk_tree_view_column_new_with_attributes("Enable", checkbox, "active", 0, NULL); column[1] = gtk_tree_view_column_new_with_attributes("Game Genie", renderer, "text", 1, NULL); column[2] = gtk_tree_view_column_new_with_attributes("PAR", renderer, "text", 2, NULL); column[3] = gtk_tree_view_column_new_with_attributes("Raw", renderer, "text", 3, NULL); column[4] = gtk_tree_view_column_new_with_attributes("Description", renderer, "text", 4, NULL); // add the display column and renderer to the tree view gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column[0]); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column[1]); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column[2]); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column[3]); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column[4]); gtkui_cheats_fill_tree(nstpaths.cheatpath); /*g_signal_connect(G_OBJECT(checkbox), "toggled", G_CALLBACK(gtkui_cheats_check), NULL);*/ g_signal_connect(G_OBJECT(treeview), "row-activated", G_CALLBACK(gtkui_cheats_toggle), NULL); g_signal_connect(G_OBJECT(cheatopen), "clicked", G_CALLBACK(gtkui_cheats_load), NULL); g_signal_connect(G_OBJECT(cheatclear), "clicked", G_CALLBACK(gtkui_cheats_clear), NULL); g_signal_connect(G_OBJECT(cheatremove), "clicked", G_CALLBACK(gtkui_cheats_remove), NULL); g_signal_connect(G_OBJECT(genieadd), "clicked", G_CALLBACK(gtkui_cheats_gg_add), NULL); g_signal_connect(G_OBJECT(paradd), "clicked", G_CALLBACK(gtkui_cheats_par_add), NULL); g_signal_connect(G_OBJECT(cheatok), "clicked", G_CALLBACK(gtkui_cheats_ok), NULL); g_signal_connect(G_OBJECT(cheatwindow), "destroy", G_CALLBACK(gtkui_cheats_ok), NULL); gtk_widget_show_all(cheatwindow); gtk_widget_hide(infobar); return cheatwindow; }
static void impl_constructed (GObject *object) { RBPodcastAddDialog *dialog; GtkBuilder *builder; GtkWidget *widget; GtkWidget *paned; GtkTreeViewColumn *column; GtkCellRenderer *renderer; RBEntryView *episodes; RBShellPlayer *shell_player; RhythmDBQuery *query; RhythmDBQueryModel *query_model; const char *episode_strings[3]; RB_CHAIN_GOBJECT_METHOD (rb_podcast_add_dialog_parent_class, constructed, object); dialog = RB_PODCAST_ADD_DIALOG (object); g_object_get (dialog->priv->podcast_mgr, "db", &dialog->priv->db, NULL); builder = rb_builder_load ("podcast-add-dialog.ui", NULL); dialog->priv->info_bar_message = gtk_label_new (""); dialog->priv->info_bar = gtk_info_bar_new (); g_object_set (dialog->priv->info_bar, "spacing", 0, NULL); gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (dialog->priv->info_bar))), dialog->priv->info_bar_message); gtk_widget_set_no_show_all (dialog->priv->info_bar, TRUE); gtk_box_pack_start (GTK_BOX (dialog), dialog->priv->info_bar, FALSE, FALSE, 0); gtk_widget_show (dialog->priv->info_bar_message); dialog->priv->subscribe_button = GTK_WIDGET (gtk_builder_get_object (builder, "subscribe-button")); g_signal_connect_object (dialog->priv->subscribe_button, "clicked", G_CALLBACK (subscribe_clicked_cb), dialog, 0); gtk_widget_set_sensitive (dialog->priv->subscribe_button, FALSE); dialog->priv->feed_view = GTK_WIDGET (gtk_builder_get_object (builder, "feed-view")); g_signal_connect (dialog->priv->feed_view, "row-activated", G_CALLBACK (feed_activated_cb), dialog); g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->priv->feed_view)), "changed", G_CALLBACK (feed_selection_changed_cb), dialog); dialog->priv->search_entry = rb_search_entry_new (FALSE); gtk_widget_set_size_request (GTK_WIDGET (dialog->priv->search_entry), 400, -1); g_object_set (dialog->priv->search_entry,"explicit-mode", TRUE, NULL); g_signal_connect (dialog->priv->search_entry, "search", G_CALLBACK (search_cb), dialog); g_signal_connect (dialog->priv->search_entry, "activate", G_CALLBACK (search_cb), dialog); gtk_container_add (GTK_CONTAINER (gtk_builder_get_object (builder, "search-entry-box")), GTK_WIDGET (dialog->priv->search_entry)); g_signal_connect (gtk_builder_get_object (builder, "close-button"), "clicked", G_CALLBACK (close_clicked_cb), dialog); dialog->priv->feed_model = gtk_list_store_new (7, G_TYPE_STRING, /* name */ G_TYPE_STRING, /* author */ GDK_TYPE_PIXBUF, /* image */ G_TYPE_FILE, /* image file */ G_TYPE_INT, /* episode count */ G_TYPE_POINTER, /* RBPodcastChannel */ G_TYPE_ULONG); /* date */ gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->priv->feed_view), GTK_TREE_MODEL (dialog->priv->feed_model)); column = gtk_tree_view_column_new_with_attributes (_("Title"), gtk_cell_renderer_pixbuf_new (), "pixbuf", FEED_COLUMN_IMAGE, NULL); renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FEED_COLUMN_TITLE, NULL); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->feed_view), column); renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); column = gtk_tree_view_column_new_with_attributes (_("Author"), renderer, "text", FEED_COLUMN_AUTHOR, NULL); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->feed_view), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Episodes"), renderer, NULL); gtk_tree_view_column_set_cell_data_func (column, renderer, episode_count_column_cell_data_func, NULL, NULL); episode_strings[0] = "0000"; episode_strings[1] = _("Episodes"); episode_strings[2] = NULL; rb_set_tree_view_column_fixed_width (dialog->priv->feed_view, column, renderer, episode_strings, 6); gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->feed_view), column); widget = GTK_WIDGET (gtk_builder_get_object (builder, "podcast-add-dialog")); gtk_box_pack_start (GTK_BOX (dialog), widget, TRUE, TRUE, 0); /* set up episode view */ g_object_get (dialog->priv->shell, "shell-player", &shell_player, NULL); episodes = rb_entry_view_new (dialog->priv->db, G_OBJECT (shell_player), TRUE, FALSE); g_object_unref (shell_player); g_signal_connect (episodes, "entry-activated", G_CALLBACK (episode_entry_activated_cb), dialog); /* date column */ column = gtk_tree_view_column_new (); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_clickable (column, TRUE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); { const char *sample_strings[3]; sample_strings[0] = _("Date"); sample_strings[1] = rb_entry_view_get_time_date_column_sample (); sample_strings[2] = NULL; rb_entry_view_set_fixed_column_width (episodes, column, renderer, sample_strings); } gtk_tree_view_column_set_cell_data_func (column, renderer, (GtkTreeCellDataFunc) podcast_post_date_cell_data_func, dialog, NULL); rb_entry_view_append_column_custom (episodes, column, _("Date"), "Date", (GCompareDataFunc) podcast_post_date_sort_func, 0, NULL); rb_entry_view_append_column (episodes, RB_ENTRY_VIEW_COL_TITLE, TRUE); rb_entry_view_append_column (episodes, RB_ENTRY_VIEW_COL_DURATION, TRUE); rb_entry_view_set_sorting_order (RB_ENTRY_VIEW (episodes), "Date", GTK_SORT_DESCENDING); g_signal_connect (episodes, "notify::sort-order", G_CALLBACK (episodes_sort_changed_cb), dialog); query = rhythmdb_query_parse (dialog->priv->db, RHYTHMDB_QUERY_PROP_EQUALS, RHYTHMDB_PROP_TYPE, RHYTHMDB_ENTRY_TYPE_PODCAST_SEARCH, RHYTHMDB_QUERY_END); query_model = rhythmdb_query_model_new_empty (dialog->priv->db); rb_entry_view_set_model (episodes, query_model); rhythmdb_do_full_query_async_parsed (dialog->priv->db, RHYTHMDB_QUERY_RESULTS (query_model), query); rhythmdb_query_free (query); g_object_unref (query_model); paned = GTK_WIDGET (gtk_builder_get_object (builder, "paned")); g_signal_connect (paned, "size-allocate", G_CALLBACK (paned_size_allocate_cb), dialog); gtk_paned_pack2 (GTK_PANED (paned), GTK_WIDGET (episodes), TRUE, FALSE); gtk_widget_show_all (GTK_WIDGET (dialog)); g_object_unref (builder); }
/** * main: **/ int main (int argc, char *argv[]) { GOptionContext *context; guint retval = 0; GError *error = NULL; GMainLoop *loop; GtkWidget *main_window; GtkWidget *widget; UniqueApp *unique_app; guint xid = 0; McmColorimeter *colorimeter = NULL; const GOptionEntry options[] = { { "parent-window", 'p', 0, G_OPTION_ARG_INT, &xid, /* TRANSLATORS: we can make this modal (stay on top of) another window */ _("Set the parent window to make this modal"), NULL }, { NULL} }; /* setup translations */ setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* setup LCMS */ cmsSetLogErrorHandler (mcm_picker_error_cb); context = g_option_context_new (NULL); /* TRANSLATORS: tool that is used to pick colors */ g_option_context_set_summary (context, _("MATE Color Manager Color Picker")); g_option_context_add_group (context, egg_debug_get_option_group ()); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_add_main_entries (context, options, NULL); g_option_context_parse (context, &argc, &argv, NULL); g_option_context_free (context); /* block in a loop */ loop = g_main_loop_new (NULL, FALSE); /* are we already activated? */ unique_app = unique_app_new ("org.mate.ColorManager.Picker", NULL); if (unique_app_is_running (unique_app)) { egg_debug ("You have another instance running. This program will now close"); unique_app_send_message (unique_app, UNIQUE_ACTIVATE, NULL); goto out; } g_signal_connect (unique_app, "message-received", G_CALLBACK (mcm_picker_message_received_cb), NULL); /* get UI */ builder = gtk_builder_new (); retval = gtk_builder_add_from_file (builder, MCM_DATA "/mcm-picker.ui", &error); if (retval == 0) { egg_warning ("failed to load ui: %s", error->message); g_error_free (error); goto out; } main_window = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_picker")); gtk_window_set_icon_name (GTK_WINDOW (main_window), MCM_STOCK_ICON); g_signal_connect (main_window, "delete_event", G_CALLBACK (mcm_picker_delete_event_cb), loop); widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_close")); g_signal_connect (widget, "clicked", G_CALLBACK (mcm_picker_close_cb), loop); widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_help")); g_signal_connect (widget, "clicked", G_CALLBACK (mcm_picker_help_cb), NULL); widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_measure")); g_signal_connect (widget, "clicked", G_CALLBACK (mcm_picker_measure_cb), NULL); widget = GTK_WIDGET (gtk_builder_get_object (builder, "image_preview")); gtk_widget_set_size_request (widget, 200, 200); /* add application specific icons to search path */ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), MCM_DATA G_DIR_SEPARATOR_S "icons"); /* use the color device */ colorimeter = mcm_colorimeter_new (); g_signal_connect (colorimeter, "changed", G_CALLBACK (mcm_picker_colorimeter_changed_cb), NULL); /* set the parent window if it is specified */ if (xid != 0) { egg_debug ("Setting xid %i", xid); mcm_window_set_parent_xid (GTK_WINDOW (main_window), xid); } /* use argyll */ calibrate = MCM_CALIBRATE (mcm_calibrate_argyll_new ()); g_signal_connect (calibrate, "notify::xyz", G_CALLBACK (mcm_picker_xyz_notify_cb), NULL); /* use an info bar if there is no device, or the wrong device */ info_bar_hardware = gtk_info_bar_new (); info_bar_hardware_label = gtk_label_new (NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR(info_bar_hardware), GTK_MESSAGE_INFO); widget = gtk_info_bar_get_content_area (GTK_INFO_BAR(info_bar_hardware)); gtk_container_add (GTK_CONTAINER(widget), info_bar_hardware_label); gtk_widget_show (info_bar_hardware_label); /* add infobar to devices pane */ widget = GTK_WIDGET (gtk_builder_get_object (builder, "vbox1")); gtk_box_pack_start (GTK_BOX(widget), info_bar_hardware, FALSE, FALSE, 0); /* disable some ui if no hardware */ mcm_picker_colorimeter_setup_ui (colorimeter); /* maintain a list of profiles */ profile_store = mcm_profile_store_new (); /* default to AdobeRGB */ profile_filename = "/usr/share/color/icc/Argyll/ClayRGB1998.icm"; /* setup RGB combobox */ widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_colorspace")); mcm_prefs_set_combo_simple_text (widget); mcm_prefs_setup_space_combobox (widget); g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (mcm_prefs_space_combo_changed_cb), NULL); /* setup results expander */ mcm_picker_refresh_results (); /* setup initial preview window */ widget = GTK_WIDGET (gtk_builder_get_object (builder, "image_preview")); gtk_image_set_from_file (GTK_IMAGE (widget), DATADIR "/icons/hicolor/64x64/apps/mate-color-manager.png"); /* wait */ gtk_widget_show (main_window); g_main_loop_run (loop); out: g_object_unref (unique_app); if (profile_store != NULL) g_object_unref (profile_store); if (colorimeter != NULL) g_object_unref (colorimeter); if (calibrate != NULL) g_object_unref (calibrate); if (builder != NULL) g_object_unref (builder); g_main_loop_unref (loop); return retval; }
GtkWidget * do_infobar (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *bar; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Info Bars"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_INFO"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); bar = gtk_info_bar_new_with_buttons (GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_QUESTION"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_ERROR"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_OTHER); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_OTHER"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); frame = gtk_frame_new ("Info bars"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 8); vbox2 = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); gtk_container_add (GTK_CONTAINER (frame), vbox2); /* Standard message dialog */ label = gtk_label_new ("An example of different info bars"); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0); } if (!GTK_WIDGET_VISIBLE (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; }
GtkWidget * gedit_no_backup_saving_error_message_area_new (const gchar *uri, const GError *error) { GtkWidget *message_area; GtkWidget *hbox_content; GtkWidget *image; GtkWidget *vbox; gchar *primary_markup; gchar *secondary_markup; GtkWidget *primary_label; GtkWidget *secondary_label; gchar *primary_text; const gchar *secondary_text; gchar *full_formatted_uri; gchar *uri_for_display; gchar *temp_uri_for_display; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (error != NULL, NULL); g_return_val_if_fail (((error->domain == GEDIT_DOCUMENT_ERROR && error->code == GEDIT_DOCUMENT_ERROR_CANT_CREATE_BACKUP) || (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_CANT_CREATE_BACKUP)), NULL); full_formatted_uri = gedit_utils_uri_for_display (uri); /* Truncate the URI so it doesn't get insanely wide. Note that even * though the dialog uses wrapped text, if the URI doesn't contain * white space then the text-wrapping code is too stupid to wrap it. */ temp_uri_for_display = gedit_utils_str_middle_truncate (full_formatted_uri, MAX_URI_IN_DIALOG_LENGTH); g_free (full_formatted_uri); uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display); g_free (temp_uri_for_display); #if !GTK_CHECK_VERSION (2, 17, 1) message_area = gedit_message_area_new (); gedit_message_area_add_stock_button_with_text (GEDIT_MESSAGE_AREA (message_area), _("S_ave Anyway"), GTK_STOCK_SAVE, GTK_RESPONSE_YES); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("D_on't Save"), GTK_RESPONSE_CANCEL); #else message_area = gtk_info_bar_new (); info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area), _("S_ave Anyway"), GTK_STOCK_SAVE, GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), _("D_on't Save"), GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_WARNING); #endif hbox_content = gtk_hbox_new (FALSE, 8); image = gtk_image_new_from_stock ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0); vbox = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (hbox_content), vbox, TRUE, TRUE, 0); // FIXME: review this messages if (gedit_prefs_manager_get_create_backup_copy ()) primary_text = g_strdup_printf (_("Could not create a backup file while saving %s"), uri_for_display); else primary_text = g_strdup_printf (_("Could not create a temporary backup file while saving %s"), uri_for_display); g_free (uri_for_display); primary_markup = g_strdup_printf ("<b>%s</b>", primary_text); g_free (primary_text); primary_label = gtk_label_new (primary_markup); g_free (primary_markup); gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0); gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (primary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5); GTK_WIDGET_SET_FLAGS (primary_label, GTK_CAN_FOCUS); gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE); secondary_text = _("gedit could not back up the old copy of the file before saving the new one. " "You can ignore this warning and save the file anyway, but if an error " "occurs while saving, you could lose the old copy of the file. Save anyway?"); secondary_markup = g_strdup_printf ("<small>%s</small>", secondary_text); secondary_label = gtk_label_new (secondary_markup); g_free (secondary_markup); gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS); gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE); gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5); gtk_widget_show_all (hbox_content); set_contents (message_area, hbox_content); return message_area; }
GtkWidget * gedit_externally_modified_saving_error_message_area_new ( const gchar *uri, const GError *error) { GtkWidget *message_area; GtkWidget *hbox_content; GtkWidget *image; GtkWidget *vbox; gchar *primary_markup; gchar *secondary_markup; GtkWidget *primary_label; GtkWidget *secondary_label; gchar *primary_text; const gchar *secondary_text; gchar *full_formatted_uri; gchar *uri_for_display; gchar *temp_uri_for_display; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (error != NULL, NULL); g_return_val_if_fail (error->domain == GEDIT_DOCUMENT_ERROR, NULL); g_return_val_if_fail (error->code == GEDIT_DOCUMENT_ERROR_EXTERNALLY_MODIFIED, NULL); full_formatted_uri = gedit_utils_uri_for_display (uri); /* Truncate the URI so it doesn't get insanely wide. Note that even * though the dialog uses wrapped text, if the URI doesn't contain * white space then the text-wrapping code is too stupid to wrap it. */ temp_uri_for_display = gedit_utils_str_middle_truncate (full_formatted_uri, MAX_URI_IN_DIALOG_LENGTH); g_free (full_formatted_uri); uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display); g_free (temp_uri_for_display); #if !GTK_CHECK_VERSION (2, 17, 1) message_area = gedit_message_area_new (); gedit_message_area_add_stock_button_with_text (GEDIT_MESSAGE_AREA (message_area), _("S_ave Anyway"), GTK_STOCK_SAVE, GTK_RESPONSE_YES); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("D_on't Save"), GTK_RESPONSE_CANCEL); #else message_area = gtk_info_bar_new (); info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area), _("S_ave Anyway"), GTK_STOCK_SAVE, GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), _("D_on't Save"), GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_WARNING); #endif hbox_content = gtk_hbox_new (FALSE, 8); image = gtk_image_new_from_stock ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0); vbox = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (hbox_content), vbox, TRUE, TRUE, 0); // FIXME: review this message, it's not clear since for the user the "modification" // could be interpreted as the changes he made in the document. beside "reading" is // not accurate (since last load/save) primary_text = g_strdup_printf (_("The file %s has been modified since reading it."), uri_for_display); g_free (uri_for_display); primary_markup = g_strdup_printf ("<b>%s</b>", primary_text); g_free (primary_text); primary_label = gtk_label_new (primary_markup); g_free (primary_markup); gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0); gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (primary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5); GTK_WIDGET_SET_FLAGS (primary_label, GTK_CAN_FOCUS); gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE); secondary_text = _("If you save it, all the external changes could be lost. Save it anyway?"); secondary_markup = g_strdup_printf ("<small>%s</small>", secondary_text); secondary_label = gtk_label_new (secondary_markup); g_free (secondary_markup); gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS); gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE); gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5); gtk_widget_show_all (hbox_content); set_contents (message_area, hbox_content); return message_area; }
GtkWidget * gedit_externally_modified_message_area_new (const gchar *uri, gboolean document_modified) { gchar *full_formatted_uri; gchar *uri_for_display; gchar *temp_uri_for_display; const gchar *primary_text; const gchar *secondary_text; GtkWidget *message_area; g_return_val_if_fail (uri != NULL, NULL); full_formatted_uri = gedit_utils_uri_for_display (uri); /* Truncate the URI so it doesn't get insanely wide. Note that even * though the dialog uses wrapped text, if the URI doesn't contain * white space then the text-wrapping code is too stupid to wrap it. */ temp_uri_for_display = gedit_utils_str_middle_truncate (full_formatted_uri, MAX_URI_IN_DIALOG_LENGTH); g_free (full_formatted_uri); uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display); g_free (temp_uri_for_display); // FIXME: review this message, it's not clear since for the user the "modification" // could be interpreted as the changes he made in the document. beside "reading" is // not accurate (since last load/save) primary_text = g_strdup_printf (_("The file %s changed on disk."), uri_for_display); g_free (uri_for_display); if (document_modified) secondary_text = _("Do you want to drop your changes and reload the file?"); else secondary_text = _("Do you want to reload the file?"); #if !GTK_CHECK_VERSION (2, 17, 1) message_area = gedit_message_area_new (); gedit_message_area_add_stock_button_with_text (GEDIT_MESSAGE_AREA (message_area), _("_Reload"), GTK_STOCK_REFRESH, GTK_RESPONSE_OK); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); #else message_area = gtk_info_bar_new (); info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area), _("_Reload"), GTK_STOCK_REFRESH, GTK_RESPONSE_OK); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_WARNING); #endif set_message_area_text_and_icon (message_area, "gtk-dialog-warning", primary_text, secondary_text); return message_area; }
static GtkWidget * create_conversion_error_message_area (const gchar *primary_text, const gchar *secondary_text, gboolean edit_anyway) { GtkWidget *message_area; GtkWidget *hbox_content; GtkWidget *image; GtkWidget *vbox; gchar *primary_markup; gchar *secondary_markup; GtkWidget *primary_label; GtkWidget *secondary_label; #if !GTK_CHECK_VERSION (2, 17, 1) message_area = gedit_message_area_new (); gedit_message_area_add_stock_button_with_text (GEDIT_MESSAGE_AREA (message_area), _("_Retry"), GTK_STOCK_REDO, GTK_RESPONSE_OK); if (edit_anyway) { gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("Edit Any_way"), GTK_RESPONSE_YES); gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), _("D_on't Edit"), GTK_RESPONSE_NO); } else { gedit_message_area_add_button (GEDIT_MESSAGE_AREA (message_area), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); } #else message_area = gtk_info_bar_new (); info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area), _("_Retry"), GTK_STOCK_REDO, GTK_RESPONSE_OK); if (edit_anyway) { gtk_info_bar_add_button (GTK_INFO_BAR (message_area), /* Translators: the access key chosen for this string should be different from other main menu access keys (Open, Edit, View...) */ _("Edit Any_way"), GTK_RESPONSE_YES); gtk_info_bar_add_button (GTK_INFO_BAR (message_area), /* Translators: the access key chosen for this string should be different from other main menu access keys (Open, Edit, View...) */ _("D_on't Edit"), GTK_RESPONSE_NO); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_WARNING); } else { gtk_info_bar_add_button (GTK_INFO_BAR (message_area), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area), GTK_MESSAGE_ERROR); } #endif hbox_content = gtk_hbox_new (FALSE, 8); image = gtk_image_new_from_stock ("gtk-dialog-error", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox_content), image, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0); vbox = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (hbox_content), vbox, TRUE, TRUE, 0); primary_markup = g_strdup_printf ("<b>%s</b>", primary_text); primary_label = gtk_label_new (primary_markup); g_free (primary_markup); gtk_box_pack_start (GTK_BOX (vbox), primary_label, TRUE, TRUE, 0); gtk_label_set_use_markup (GTK_LABEL (primary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (primary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5); GTK_WIDGET_SET_FLAGS (primary_label, GTK_CAN_FOCUS); gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE); if (secondary_text != NULL) { secondary_markup = g_strdup_printf ("<small>%s</small>", secondary_text); secondary_label = gtk_label_new (secondary_markup); g_free (secondary_markup); gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (secondary_label, GTK_CAN_FOCUS); gtk_label_set_use_markup (GTK_LABEL (secondary_label), TRUE); gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE); gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE); gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5); } create_combo_box (message_area, vbox); gtk_widget_show_all (hbox_content); set_contents (message_area, hbox_content); return message_area; }