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,7 +234,7 @@ LIB3270_EXPORT GtkWidget * v3270_accelerator_settings_new() | ||
234 | { | 234 | { |
235 | V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(GTK_TYPE_V3270_ACCELERATOR_SETTINGS, NULL)); | 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 | settings->label = _("Accelerators"); | 238 | settings->label = _("Accelerators"); |
239 | 239 | ||
240 | return GTK_WIDGET(settings); | 240 | return GTK_WIDGET(settings); |
src/dialogs/settings/dialog.c
@@ -37,7 +37,8 @@ | @@ -37,7 +37,8 @@ | ||
37 | 37 | ||
38 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 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 | debug("title: %s",settings->title); | 43 | debug("title: %s",settings->title); |
43 | debug("label: %s",settings->label); | 44 | debug("label: %s",settings->label); |
@@ -47,6 +48,21 @@ static gboolean on_tab_focus(V3270Settings *settings, GdkEvent G_GNUC_UNUSED(*ev | @@ -47,6 +48,21 @@ static gboolean on_tab_focus(V3270Settings *settings, GdkEvent G_GNUC_UNUSED(*ev | ||
47 | 48 | ||
48 | return FALSE; | 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 | static void check_valid(GtkWidget *widget, gboolean *valid) | 67 | static void check_valid(GtkWidget *widget, gboolean *valid) |
52 | { | 68 | { |
@@ -85,7 +101,7 @@ static void add(GtkContainer *container, GtkWidget *widget) | @@ -85,7 +101,7 @@ static void add(GtkContainer *container, GtkWidget *widget) | ||
85 | { | 101 | { |
86 | g_return_if_fail(GTK_IS_V3270_SETTINGS(widget)); | 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 | // https://developer.gnome.org/hig/stable/visual-layout.html.en | 106 | // https://developer.gnome.org/hig/stable/visual-layout.html.en |
91 | gtk_container_set_border_width(GTK_CONTAINER(widget),18); | 107 | gtk_container_set_border_width(GTK_CONTAINER(widget),18); |
@@ -106,7 +122,7 @@ static void add(GtkContainer *container, GtkWidget *widget) | @@ -106,7 +122,7 @@ static void add(GtkContainer *container, GtkWidget *widget) | ||
106 | label | 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 | g_signal_connect(G_OBJECT(widget), "validity", G_CALLBACK(on_validity), container); | 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,6 +199,9 @@ static void V3270SettingsDialog_init(V3270SettingsDialog *dialog) | ||
183 | { | 199 | { |
184 | GtkWidget * content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); | 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 | // https://developer.gnome.org/hig/stable/visual-layout.html.en | 205 | // https://developer.gnome.org/hig/stable/visual-layout.html.en |
187 | //gtk_box_set_spacing(GTK_BOX(content_area),18); | 206 | //gtk_box_set_spacing(GTK_BOX(content_area),18); |
188 | //gtk_container_set_border_width(GTK_CONTAINER(content_area),18); | 207 | //gtk_container_set_border_width(GTK_CONTAINER(content_area),18); |
@@ -205,8 +224,10 @@ static void V3270SettingsDialog_init(V3270SettingsDialog *dialog) | @@ -205,8 +224,10 @@ static void V3270SettingsDialog_init(V3270SettingsDialog *dialog) | ||
205 | gtk_notebook_set_show_border(dialog->tabs, FALSE); | 224 | gtk_notebook_set_show_border(dialog->tabs, FALSE); |
206 | g_signal_connect(G_OBJECT(dialog->tabs), "page-added", G_CALLBACK(on_page_changed), dialog); | 225 | g_signal_connect(G_OBJECT(dialog->tabs), "page-added", G_CALLBACK(on_page_changed), dialog); |
207 | g_signal_connect(G_OBJECT(dialog->tabs), "page-removed", G_CALLBACK(on_page_changed), dialog); | 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 | gtk_box_pack_start(GTK_BOX(content_area),GTK_WIDGET(dialog->tabs),TRUE,TRUE,0); | 228 | gtk_box_pack_start(GTK_BOX(content_area),GTK_WIDGET(dialog->tabs),TRUE,TRUE,0); |
209 | 229 | ||
230 | + | ||
210 | } | 231 | } |
211 | 232 | ||
212 | GtkWidget * v3270_settings_dialog_new() | 233 | GtkWidget * v3270_settings_dialog_new() |
@@ -254,6 +275,12 @@ void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *ter | @@ -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 | void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget G_GNUC_UNUSED(*terminal)) | 284 | void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget G_GNUC_UNUSED(*terminal)) |
258 | { | 285 | { |
259 | switch(response_id) | 286 | switch(response_id) |
src/dialogs/settings/host.c
@@ -610,7 +610,7 @@ LIB3270_EXPORT GtkWidget * v3270_host_settings_new() | @@ -610,7 +610,7 @@ LIB3270_EXPORT GtkWidget * v3270_host_settings_new() | ||
610 | { | 610 | { |
611 | V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(GTK_TYPE_V3270HostSelectWidget, NULL)); | 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 | settings->label = _("Host"); | 614 | settings->label = _("Host"); |
615 | 615 | ||
616 | return GTK_WIDGET(settings); | 616 | return GTK_WIDGET(settings); |
@@ -628,6 +628,8 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | @@ -628,6 +628,8 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | ||
628 | GtkWidget * dialog = v3270_settings_dialog_new(); | 628 | GtkWidget * dialog = v3270_settings_dialog_new(); |
629 | GtkWidget * settings = v3270_host_settings_new(); | 629 | GtkWidget * settings = v3270_host_settings_new(); |
630 | 630 | ||
631 | + v3270_settings_dialog_set_has_subtitle(dialog,FALSE); | ||
632 | + | ||
631 | gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings)); | 633 | gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings)); |
632 | gtk_container_add(GTK_CONTAINER(dialog), settings); | 634 | gtk_container_add(GTK_CONTAINER(dialog), settings); |
633 | 635 |
src/include/v3270/settings.h
@@ -117,6 +117,7 @@ | @@ -117,6 +117,7 @@ | ||
117 | GtkDialog parent; | 117 | GtkDialog parent; |
118 | GtkNotebook * tabs; | 118 | GtkNotebook * tabs; |
119 | GtkWidget * terminal; | 119 | GtkWidget * terminal; |
120 | + gboolean has_subtitle; | ||
120 | } V3270SettingsDialog; | 121 | } V3270SettingsDialog; |
121 | 122 | ||
122 | typedef struct _V3270SettingsDialogClass { | 123 | typedef struct _V3270SettingsDialogClass { |
@@ -127,6 +128,7 @@ | @@ -127,6 +128,7 @@ | ||
127 | 128 | ||
128 | LIB3270_EXPORT GtkWidget * v3270_settings_dialog_new(); | 129 | LIB3270_EXPORT GtkWidget * v3270_settings_dialog_new(); |
129 | LIB3270_EXPORT void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *terminal); | 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 | /// @brief Process GtkDialog's "response" signal. | 133 | /// @brief Process GtkDialog's "response" signal. |
132 | LIB3270_EXPORT void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget *terminal); | 134 | LIB3270_EXPORT void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget *terminal); |