From 6c3ea5c13b2e368ad2c9a714ca968c8a1b8c3e8e Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 25 Oct 2010 23:29:20 +0000 Subject: [PATCH] Using a GtkDialog for preferences --- po/de.po | 50 +++++++++++++++++------------------ po/es.po | 16 +++++------ po/fr.po | 20 +++++++------- po/it.po | 16 +++++------ src/callbacks.c | 70 ++++++++++++++++++++++++------------------------- src/editor.c | 2 +- 6 files changed, 86 insertions(+), 88 deletions(-) diff --git a/po/de.po b/po/de.po index 444a73d..b2989b9 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Editor 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-10-03 23:25+0200\n" +"POT-Creation-Date: 2010-10-26 01:10+0200\n" "PO-Revision-Date: 2010-04-07 22:05+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: German\n" @@ -18,43 +18,43 @@ msgstr "" #: ../src/callbacks.c:81 msgid "Text editor preferences" -msgstr "" +msgstr "Text Editor Einstellungen" -#: ../src/callbacks.c:90 +#: ../src/callbacks.c:98 msgid "Font:" msgstr "" -#: ../src/callbacks.c:260 +#: ../src/callbacks.c:276 msgid "About Editor" -msgstr "" +msgstr "Info zu Editor" -#: ../src/callbacks.c:271 +#: ../src/callbacks.c:287 msgid "C_redits" -msgstr "" +msgstr "_Mitwirkende" -#: ../src/callbacks.c:275 +#: ../src/callbacks.c:291 msgid "_License" -msgstr "" +msgstr "_Lizenz" -#: ../src/callbacks.c:325 +#: ../src/callbacks.c:341 msgid "Credits" -msgstr "" +msgstr "Mitwirkende" -#: ../src/callbacks.c:348 +#: ../src/callbacks.c:364 msgid "Written by" -msgstr "" +msgstr "Programm von" -#: ../src/callbacks.c:377 +#: ../src/callbacks.c:393 msgid "License" -msgstr "" +msgstr "Lizenz" #: ../src/editor.c:51 msgid "_New" -msgstr "" +msgstr "_Neu" #: ../src/editor.c:53 msgid "_Open" -msgstr "" +msgstr "_Offnen" #: ../src/editor.c:56 msgid "_Save" @@ -66,7 +66,7 @@ msgstr "" #: ../src/editor.c:61 msgid "_Close" -msgstr "" +msgstr "_Schliessen" #: ../src/editor.c:68 msgid "_Undo" @@ -102,15 +102,15 @@ msgstr "" #: ../src/editor.c:88 msgid "_Preferences" -msgstr "" +msgstr "_Einstellungen" #: ../src/editor.c:96 ../src/editor.c:98 msgid "_About" -msgstr "" +msgstr "_Info" #: ../src/editor.c:105 msgid "_File" -msgstr "" +msgstr "_Datei" #: ../src/editor.c:106 msgid "_Edit" @@ -150,12 +150,12 @@ msgstr "" #: ../src/editor.c:248 ../src/editor.c:253 msgid "Error" -msgstr "" +msgstr "Fehler" #: ../src/editor.c:280 ../src/editor.c:289 ../src/editor.c:399 #: ../src/editor.c:413 ../src/editor.c:543 ../src/editor.c:548 msgid "Warning" -msgstr "" +msgstr "Achtung" #: ../src/editor.c:284 msgid "" @@ -169,7 +169,7 @@ msgstr "" #: ../src/editor.c:326 msgid "Text:" -msgstr "" +msgstr "Text:" #: ../src/editor.c:333 msgid "Case-sensitive" @@ -195,7 +195,7 @@ msgstr "" #: ../src/editor.c:469 msgid "Open file..." -msgstr "" +msgstr "Offnen..." #: ../src/editor.c:519 msgid "Partial write" diff --git a/po/es.po b/po/es.po index 92f9551..4d41151 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Editor 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-10-03 23:25+0200\n" +"POT-Creation-Date: 2010-10-26 01:10+0200\n" "PO-Revision-Date: 2010-04-07 22:07+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Spanish\n" @@ -20,31 +20,31 @@ msgstr "" msgid "Text editor preferences" msgstr "" -#: ../src/callbacks.c:90 +#: ../src/callbacks.c:98 msgid "Font:" msgstr "" -#: ../src/callbacks.c:260 +#: ../src/callbacks.c:276 msgid "About Editor" msgstr "" -#: ../src/callbacks.c:271 +#: ../src/callbacks.c:287 msgid "C_redits" msgstr "" -#: ../src/callbacks.c:275 +#: ../src/callbacks.c:291 msgid "_License" msgstr "" -#: ../src/callbacks.c:325 +#: ../src/callbacks.c:341 msgid "Credits" msgstr "" -#: ../src/callbacks.c:348 +#: ../src/callbacks.c:364 msgid "Written by" msgstr "" -#: ../src/callbacks.c:377 +#: ../src/callbacks.c:393 msgid "License" msgstr "" diff --git a/po/fr.po b/po/fr.po index 5d5e909..c209f51 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Editor 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-10-03 23:25+0200\n" +"POT-Creation-Date: 2010-10-26 01:10+0200\n" "PO-Revision-Date: 2010-04-11 12:32+0200\n" "Last-Translator: Calimero \n" "Language-Team: French\n" @@ -20,31 +20,31 @@ msgstr "" msgid "Text editor preferences" msgstr "Préférences de l'éditeur de texte" -#: ../src/callbacks.c:90 +#: ../src/callbacks.c:98 msgid "Font:" msgstr "Police :" -#: ../src/callbacks.c:260 +#: ../src/callbacks.c:276 msgid "About Editor" msgstr "À propos d'Editor" -#: ../src/callbacks.c:271 +#: ../src/callbacks.c:287 msgid "C_redits" msgstr "C_rédits" -#: ../src/callbacks.c:275 +#: ../src/callbacks.c:291 msgid "_License" msgstr "_Licence" -#: ../src/callbacks.c:325 +#: ../src/callbacks.c:341 msgid "Credits" msgstr "Crédits" -#: ../src/callbacks.c:348 +#: ../src/callbacks.c:364 msgid "Written by" msgstr "Écrit par" -#: ../src/callbacks.c:377 +#: ../src/callbacks.c:393 msgid "License" msgstr "Licence" @@ -90,11 +90,11 @@ msgstr "C_oller" #: ../src/editor.c:76 msgid "_Select all" -msgstr "" +msgstr "Sélectionner _tout" #: ../src/editor.c:83 msgid "_Unselect all" -msgstr "" +msgstr "Tout _désélectionner" #: ../src/editor.c:85 msgid "_Find" diff --git a/po/it.po b/po/it.po index 57b86a3..a4e1b4c 100644 --- a/po/it.po +++ b/po/it.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Editor 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-10-03 23:25+0200\n" +"POT-Creation-Date: 2010-10-26 01:10+0200\n" "PO-Revision-Date: 2010-04-09 16:43+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Italian\n" @@ -21,31 +21,31 @@ msgstr "" msgid "Text editor preferences" msgstr "" -#: ../src/callbacks.c:90 +#: ../src/callbacks.c:98 msgid "Font:" msgstr "" -#: ../src/callbacks.c:260 +#: ../src/callbacks.c:276 msgid "About Editor" msgstr "" -#: ../src/callbacks.c:271 +#: ../src/callbacks.c:287 msgid "C_redits" msgstr "" -#: ../src/callbacks.c:275 +#: ../src/callbacks.c:291 msgid "_License" msgstr "" -#: ../src/callbacks.c:325 +#: ../src/callbacks.c:341 msgid "Credits" msgstr "" -#: ../src/callbacks.c:348 +#: ../src/callbacks.c:364 msgid "Written by" msgstr "" -#: ../src/callbacks.c:377 +#: ../src/callbacks.c:393 msgid "License" msgstr "" diff --git a/src/callbacks.c b/src/callbacks.c index 2bbc894..1b77f92 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -55,8 +55,10 @@ void on_edit_find(gpointer data) /* on_edit_preferences */ static void _preferences_set(Editor * editor); -static void _preferences_on_cancel(gpointer data); static gboolean _preferences_on_closex(gpointer data); +static void _preferences_on_response(GtkWidget * widget, gint response, + gpointer data); +static void _preferences_on_cancel(gpointer data); static void _preferences_on_ok(gpointer data); void on_edit_preferences(gpointer data) @@ -75,15 +77,21 @@ void on_edit_preferences(gpointer data) } desc = pango_font_description_new(); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); - editor->pr_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_resizable(GTK_WINDOW(editor->pr_window), FALSE); - gtk_window_set_title(GTK_WINDOW(editor->pr_window), - _("Text editor preferences")); - gtk_window_set_transient_for(GTK_WINDOW(editor->pr_window), GTK_WINDOW( - editor->window)); + editor->pr_window = gtk_dialog_new_with_buttons( + _("Text editor preferences"), + GTK_WINDOW(editor->window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect_swapped(G_OBJECT(editor->pr_window), "delete-event", G_CALLBACK(_preferences_on_closex), editor); - vbox = gtk_vbox_new(FALSE, 0); + g_signal_connect(G_OBJECT(editor->pr_window), "response", + G_CALLBACK(_preferences_on_response), editor); +#if GTK_CHECK_VERSION(2, 14, 0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(editor->pr_window)); +#else + vbox = GTK_DIALOG(editor->pr_window)->vbox; +#endif hbox = gtk_hbox_new(FALSE, 0); group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); /* font */ @@ -95,26 +103,6 @@ void on_edit_preferences(gpointer data) gtk_size_group_add_widget(group, editor->pr_font); gtk_box_pack_start(GTK_BOX(hbox), editor->pr_font, TRUE, TRUE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); - /* dialog */ - hbox = gtk_hbox_new(FALSE, 0); - group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - widget = gtk_button_new_from_stock(GTK_STOCK_OK); - gtk_size_group_add_widget(group, widget); - g_signal_connect_swapped(G_OBJECT(widget), "clicked", G_CALLBACK( - _preferences_on_ok), editor); - gtk_box_pack_end(GTK_BOX(hbox), widget, FALSE, TRUE, 4); - widget = gtk_button_new_from_stock(GTK_STOCK_CANCEL); - gtk_size_group_add_widget(group, widget); - g_signal_connect_swapped(G_OBJECT(widget), "clicked", G_CALLBACK( - _preferences_on_cancel), editor); - gtk_box_pack_end(GTK_BOX(hbox), widget, FALSE, TRUE, 0); - gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); - /* separator */ - hbox = gtk_hbox_new(FALSE, 0); - widget = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 4); - gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); - gtk_container_add(GTK_CONTAINER(editor->pr_window), vbox); _preferences_set(editor); gtk_widget_show_all(editor->pr_window); } @@ -125,14 +113,6 @@ static void _preferences_set(Editor * editor) editor->font); } -static void _preferences_on_cancel(gpointer data) -{ - Editor * editor = data; - - gtk_widget_hide(editor->pr_window); - _preferences_set(editor); -} - static gboolean _preferences_on_closex(gpointer data) { Editor * editor = data; @@ -141,6 +121,24 @@ static gboolean _preferences_on_closex(gpointer data) return TRUE; } +static void _preferences_on_response(GtkWidget * widget, gint response, + gpointer data) +{ + gtk_widget_hide(widget); + if(response == GTK_RESPONSE_OK) + _preferences_on_ok(data); + else if(response == GTK_RESPONSE_CANCEL) + _preferences_on_cancel(data); +} + +static void _preferences_on_cancel(gpointer data) +{ + Editor * editor = data; + + gtk_widget_hide(editor->pr_window); + _preferences_set(editor); +} + static void _preferences_on_ok(gpointer data) { Editor * editor = data; diff --git a/src/editor.c b/src/editor.c index d4c1a2e..0c6b584 100644 --- a/src/editor.c +++ b/src/editor.c @@ -73,7 +73,7 @@ static DesktopMenu _editor_menu_edit[] = { N_("_Copy"), NULL, GTK_STOCK_COPY, 0, 0 }, /* FIXME implement */ { N_("_Paste"), NULL, GTK_STOCK_PASTE, 0, 0 }, /* FIXME implement */ { "", NULL, NULL, 0, 0 }, - { N_("_Select all"), G_CALLBACK(on_edit_select_all), + { N_("Select _all"), G_CALLBACK(on_edit_select_all), #if GTK_CHECK_VERSION(2, 10, 0) GTK_STOCK_SELECT_ALL, #else