Commit b9c4d07f4169a6fb43783fab72ec8879f0d63c12
1 parent
f94303f6
Exists in
master
and in
1 other branch
Using subtitles in the settings dialog.
Showing
4 changed files
with
36 additions
and
5 deletions
Show diff stats
src/dialogs/settings/accelerator.c
| ... | ... | @@ -234,7 +234,7 @@ LIB3270_EXPORT GtkWidget * v3270_accelerator_settings_new() |
| 234 | 234 | { |
| 235 | 235 | V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(GTK_TYPE_V3270_ACCELERATOR_SETTINGS, NULL)); |
| 236 | 236 | |
| 237 | - settings->title = _("Accelerator properties"); | |
| 237 | + settings->title = _("Keyboard accelerators"); | |
| 238 | 238 | settings->label = _("Accelerators"); |
| 239 | 239 | |
| 240 | 240 | return GTK_WIDGET(settings); | ... | ... |
src/dialogs/settings/dialog.c
| ... | ... | @@ -37,7 +37,8 @@ |
| 37 | 37 | |
| 38 | 38 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 39 | 39 | |
| 40 | -static gboolean on_tab_focus(V3270Settings *settings, GdkEvent G_GNUC_UNUSED(*event), GtkWindow *dialog) | |
| 40 | +/* | |
| 41 | +static gboolean on_tab_focus(V3270Settings *settings, GdkEvent G_GNUC_UNUSED(*event), V3270SettingsDialog *dialog) | |
| 41 | 42 | { |
| 42 | 43 | debug("title: %s",settings->title); |
| 43 | 44 | debug("label: %s",settings->label); |
| ... | ... | @@ -47,6 +48,21 @@ static gboolean on_tab_focus(V3270Settings *settings, GdkEvent G_GNUC_UNUSED(*ev |
| 47 | 48 | |
| 48 | 49 | return FALSE; |
| 49 | 50 | } |
| 51 | +*/ | |
| 52 | + | |
| 53 | +void on_switch_page(GtkNotebook *notebook, V3270Settings *settings, guint page_num, V3270SettingsDialog *dialog) | |
| 54 | +{ | |
| 55 | + debug("title: %s",settings->title); | |
| 56 | + debug("label: %s",settings->label); | |
| 57 | + | |
| 58 | + if(dialog->has_subtitle) { | |
| 59 | + GtkWidget * header_bar = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); | |
| 60 | + if(header_bar) { | |
| 61 | + gtk_header_bar_set_subtitle(GTK_HEADER_BAR(header_bar),settings->title); | |
| 62 | + } | |
| 63 | + } | |
| 64 | + | |
| 65 | +} | |
| 50 | 66 | |
| 51 | 67 | static void check_valid(GtkWidget *widget, gboolean *valid) |
| 52 | 68 | { |
| ... | ... | @@ -85,7 +101,7 @@ static void add(GtkContainer *container, GtkWidget *widget) |
| 85 | 101 | { |
| 86 | 102 | g_return_if_fail(GTK_IS_V3270_SETTINGS(widget)); |
| 87 | 103 | |
| 88 | - debug("Added settings dialog %p",widget); | |
| 104 | + debug("*************************** Added settings dialog %p",widget); | |
| 89 | 105 | |
| 90 | 106 | // https://developer.gnome.org/hig/stable/visual-layout.html.en |
| 91 | 107 | gtk_container_set_border_width(GTK_CONTAINER(widget),18); |
| ... | ... | @@ -106,7 +122,7 @@ static void add(GtkContainer *container, GtkWidget *widget) |
| 106 | 122 | label |
| 107 | 123 | ); |
| 108 | 124 | |
| 109 | - g_signal_connect(G_OBJECT(widget), "focus-in-event", G_CALLBACK(on_tab_focus), container); | |
| 125 | +// g_signal_connect(G_OBJECT(widget), "focus-in-event", G_CALLBACK(on_tab_focus), container); | |
| 110 | 126 | g_signal_connect(G_OBJECT(widget), "validity", G_CALLBACK(on_validity), container); |
| 111 | 127 | |
| 112 | 128 | |
| ... | ... | @@ -183,6 +199,9 @@ static void V3270SettingsDialog_init(V3270SettingsDialog *dialog) |
| 183 | 199 | { |
| 184 | 200 | GtkWidget * content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); |
| 185 | 201 | |
| 202 | + // Get use of header bar. | |
| 203 | + g_object_get(gtk_settings_get_default(), "gtk-dialogs-use-header", &dialog->has_subtitle, NULL); | |
| 204 | + | |
| 186 | 205 | // https://developer.gnome.org/hig/stable/visual-layout.html.en |
| 187 | 206 | //gtk_box_set_spacing(GTK_BOX(content_area),18); |
| 188 | 207 | //gtk_container_set_border_width(GTK_CONTAINER(content_area),18); |
| ... | ... | @@ -205,8 +224,10 @@ static void V3270SettingsDialog_init(V3270SettingsDialog *dialog) |
| 205 | 224 | gtk_notebook_set_show_border(dialog->tabs, FALSE); |
| 206 | 225 | g_signal_connect(G_OBJECT(dialog->tabs), "page-added", G_CALLBACK(on_page_changed), dialog); |
| 207 | 226 | g_signal_connect(G_OBJECT(dialog->tabs), "page-removed", G_CALLBACK(on_page_changed), dialog); |
| 227 | + g_signal_connect(G_OBJECT(dialog->tabs), "switch-page", G_CALLBACK(on_switch_page), dialog); | |
| 208 | 228 | gtk_box_pack_start(GTK_BOX(content_area),GTK_WIDGET(dialog->tabs),TRUE,TRUE,0); |
| 209 | 229 | |
| 230 | + | |
| 210 | 231 | } |
| 211 | 232 | |
| 212 | 233 | GtkWidget * v3270_settings_dialog_new() |
| ... | ... | @@ -254,6 +275,12 @@ void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *ter |
| 254 | 275 | ); |
| 255 | 276 | } |
| 256 | 277 | |
| 278 | +void v3270_settings_dialog_set_has_subtitle(GtkWidget *widget, gboolean has_subtitle) | |
| 279 | +{ | |
| 280 | + g_return_if_fail(GTK_IS_V3270_SETTINGS_DIALOG(widget)); | |
| 281 | + GTK_V3270_SETTINGS_DIALOG(widget)->has_subtitle = has_subtitle; | |
| 282 | +} | |
| 283 | + | |
| 257 | 284 | void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget G_GNUC_UNUSED(*terminal)) |
| 258 | 285 | { |
| 259 | 286 | switch(response_id) | ... | ... |
src/dialogs/settings/host.c
| ... | ... | @@ -610,7 +610,7 @@ LIB3270_EXPORT GtkWidget * v3270_host_settings_new() |
| 610 | 610 | { |
| 611 | 611 | V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(GTK_TYPE_V3270HostSelectWidget, NULL)); |
| 612 | 612 | |
| 613 | - settings->title = _("Host properties"); | |
| 613 | + settings->title = _("Host settings"); | |
| 614 | 614 | settings->label = _("Host"); |
| 615 | 615 | |
| 616 | 616 | return GTK_WIDGET(settings); |
| ... | ... | @@ -628,6 +628,8 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) |
| 628 | 628 | GtkWidget * dialog = v3270_settings_dialog_new(); |
| 629 | 629 | GtkWidget * settings = v3270_host_settings_new(); |
| 630 | 630 | |
| 631 | + v3270_settings_dialog_set_has_subtitle(dialog,FALSE); | |
| 632 | + | |
| 631 | 633 | gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings)); |
| 632 | 634 | gtk_container_add(GTK_CONTAINER(dialog), settings); |
| 633 | 635 | ... | ... |
src/include/v3270/settings.h
| ... | ... | @@ -117,6 +117,7 @@ |
| 117 | 117 | GtkDialog parent; |
| 118 | 118 | GtkNotebook * tabs; |
| 119 | 119 | GtkWidget * terminal; |
| 120 | + gboolean has_subtitle; | |
| 120 | 121 | } V3270SettingsDialog; |
| 121 | 122 | |
| 122 | 123 | typedef struct _V3270SettingsDialogClass { |
| ... | ... | @@ -127,6 +128,7 @@ |
| 127 | 128 | |
| 128 | 129 | LIB3270_EXPORT GtkWidget * v3270_settings_dialog_new(); |
| 129 | 130 | LIB3270_EXPORT void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *terminal); |
| 131 | + LIB3270_EXPORT void v3270_settings_dialog_set_has_subtitle(GtkWidget *widget, gboolean has_subtitle); | |
| 130 | 132 | |
| 131 | 133 | /// @brief Process GtkDialog's "response" signal. |
| 132 | 134 | LIB3270_EXPORT void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget *terminal); | ... | ... |