Commit 20603bd17da0bec8e43a9c2a1d7c6ce3bb878333
1 parent
aa81b9a9
Exists in
master
and in
2 other branches
Processing toolbar-position settings.
Showing
1 changed file
with
91 additions
and
70 deletions
Show diff stats
src/objects/window/window.c
@@ -272,6 +272,9 @@ | @@ -272,6 +272,9 @@ | ||
272 | 272 | ||
273 | static void pw3270ApplicationWindow_init(pw3270ApplicationWindow *widget) { | 273 | static void pw3270ApplicationWindow_init(pw3270ApplicationWindow *widget) { |
274 | 274 | ||
275 | + // Get settings | ||
276 | + g_autoptr(GSettings) settings = pw3270_application_window_settings_new(); | ||
277 | + | ||
275 | // Setup defaults | 278 | // Setup defaults |
276 | widget->state.width = 800; | 279 | widget->state.width = 800; |
277 | widget->state.height = 500; | 280 | widget->state.height = 500; |
@@ -303,18 +306,86 @@ | @@ -303,18 +306,86 @@ | ||
303 | gtk_notebook_set_action_widget(widget->notebook,new_tab,GTK_PACK_START); | 306 | gtk_notebook_set_action_widget(widget->notebook,new_tab,GTK_PACK_START); |
304 | } | 307 | } |
305 | 308 | ||
306 | - widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); | 309 | + // Create boxes |
310 | + GtkBox * hBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0)); | ||
311 | + GtkBox * vBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL,0)); | ||
312 | + | ||
313 | + gtk_widget_show(GTK_WIDGET(hBox)); | ||
314 | + gtk_widget_show(GTK_WIDGET(vBox)); | ||
315 | + | ||
316 | + // Create toolbar | ||
317 | + { | ||
318 | + widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); | ||
319 | + | ||
320 | + g_action_map_add_action( | ||
321 | + G_ACTION_MAP(widget), | ||
322 | + G_ACTION(g_property_action_new("toolbar", widget->toolbar, "visible")) | ||
323 | + ); | ||
324 | + | ||
325 | + switch(g_settings_get_int(settings,"toolbar-position")) { | ||
326 | + case 1: | ||
327 | + gtk_orientable_set_orientation(GTK_ORIENTABLE(widget->toolbar),GTK_ORIENTATION_HORIZONTAL); | ||
328 | + gtk_box_pack_end(container,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | ||
329 | + break; | ||
330 | + | ||
331 | + case 2: | ||
332 | + gtk_orientable_set_orientation(GTK_ORIENTABLE(widget->toolbar),GTK_ORIENTATION_VERTICAL); | ||
333 | + gtk_box_pack_end(hBox,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | ||
334 | + break; | ||
335 | + | ||
336 | + case 3: | ||
337 | + gtk_orientable_set_orientation(GTK_ORIENTABLE(widget->toolbar),GTK_ORIENTATION_VERTICAL); | ||
338 | + gtk_box_pack_start(hBox,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | ||
339 | + break; | ||
340 | + | ||
341 | + default: | ||
342 | + gtk_orientable_set_orientation(GTK_ORIENTABLE(widget->toolbar),GTK_ORIENTATION_HORIZONTAL); | ||
343 | + gtk_box_pack_start(container,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | ||
344 | + break; | ||
345 | + | ||
346 | + } | ||
347 | + | ||
348 | + g_settings_bind( | ||
349 | + settings, | ||
350 | + "toolbar-visible", | ||
351 | + widget->toolbar, | ||
352 | + "visible", | ||
353 | + G_SETTINGS_BIND_DEFAULT | ||
354 | + ); | ||
355 | + | ||
356 | + g_settings_bind( | ||
357 | + settings, | ||
358 | + "toolbar-icon-type", | ||
359 | + widget->toolbar, | ||
360 | + "icon-type", | ||
361 | + G_SETTINGS_BIND_DEFAULT | ||
362 | + ); | ||
363 | + | ||
364 | + g_settings_bind( | ||
365 | + settings, | ||
366 | + "toolbar-style", | ||
367 | + widget->toolbar, | ||
368 | + "style", | ||
369 | + G_SETTINGS_BIND_DEFAULT | ||
370 | + ); | ||
307 | 371 | ||
308 | - gtk_box_pack_start(container,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | 372 | + g_settings_bind( |
373 | + settings, | ||
374 | + "toolbar-icon-size", | ||
375 | + widget->toolbar, | ||
376 | + "icon-size", | ||
377 | + G_SETTINGS_BIND_DEFAULT | ||
378 | + ); | ||
379 | + | ||
380 | + } | ||
381 | + | ||
382 | + gtk_box_pack_start(container,GTK_WIDGET(hBox),TRUE,TRUE,0); | ||
309 | 383 | ||
310 | // | 384 | // |
311 | - // Do we have keypads? | 385 | + // Create and pack keypads? |
312 | // | 386 | // |
313 | - GList * keypads = pw3270_application_get_keypad_models(g_application_get_default()); | ||
314 | - if(keypads) { | ||
315 | - | ||
316 | - GtkBox * hBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0)); | ||
317 | - GtkBox * vBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL,0)); | 387 | + { |
388 | + GList * keypads = pw3270_application_get_keypad_models(g_application_get_default()); | ||
318 | GList * keypad; | 389 | GList * keypad; |
319 | 390 | ||
320 | // Add top Keypads | 391 | // Add top Keypads |
@@ -371,15 +442,6 @@ | @@ -371,15 +442,6 @@ | ||
371 | } | 442 | } |
372 | } | 443 | } |
373 | 444 | ||
374 | - // Add it to the container | ||
375 | - gtk_widget_show(GTK_WIDGET(hBox)); | ||
376 | - gtk_widget_show(GTK_WIDGET(vBox)); | ||
377 | - gtk_box_pack_start(container,GTK_WIDGET(hBox),TRUE,TRUE,0); | ||
378 | - | ||
379 | - } else { | ||
380 | - | ||
381 | - gtk_box_pack_start(container,GTK_WIDGET(widget->notebook),TRUE,TRUE,0); | ||
382 | - | ||
383 | } | 445 | } |
384 | 446 | ||
385 | gtk_widget_show_all(GTK_WIDGET(widget->notebook)); | 447 | gtk_widget_show_all(GTK_WIDGET(widget->notebook)); |
@@ -431,22 +493,21 @@ | @@ -431,22 +493,21 @@ | ||
431 | } | 493 | } |
432 | 494 | ||
433 | // | 495 | // |
434 | - // Setup toolbar | 496 | + // Bind properties |
435 | // | 497 | // |
498 | + g_action_map_add_action( | ||
499 | + G_ACTION_MAP(widget), | ||
500 | + G_ACTION(g_property_action_new("menubar", widget, "show-menubar")) | ||
501 | + ); | ||
436 | 502 | ||
437 | - { | ||
438 | - | ||
439 | - g_action_map_add_action( | ||
440 | - G_ACTION_MAP(widget), | ||
441 | - G_ACTION(g_property_action_new("toolbar", widget->toolbar, "visible")) | ||
442 | - ); | ||
443 | - | ||
444 | - g_action_map_add_action( | ||
445 | - G_ACTION_MAP(widget), | ||
446 | - G_ACTION(g_property_action_new("menubar", widget, "show-menubar")) | ||
447 | - ); | 503 | + g_settings_bind( |
504 | + settings, | ||
505 | + "toolbar-action-names", | ||
506 | + widget->toolbar, | ||
507 | + "action-names", | ||
508 | + G_SETTINGS_BIND_DEFAULT | ||
509 | + ); | ||
448 | 510 | ||
449 | - } | ||
450 | 511 | ||
451 | } | 512 | } |
452 | 513 | ||
@@ -589,46 +650,6 @@ | @@ -589,46 +650,6 @@ | ||
589 | G_SETTINGS_BIND_DEFAULT | 650 | G_SETTINGS_BIND_DEFAULT |
590 | ); | 651 | ); |
591 | 652 | ||
592 | - g_settings_bind( | ||
593 | - settings, | ||
594 | - "toolbar-visible", | ||
595 | - window->toolbar, | ||
596 | - "visible", | ||
597 | - G_SETTINGS_BIND_DEFAULT | ||
598 | - ); | ||
599 | - | ||
600 | - g_settings_bind( | ||
601 | - settings, | ||
602 | - "toolbar-icon-type", | ||
603 | - window->toolbar, | ||
604 | - "icon-type", | ||
605 | - G_SETTINGS_BIND_DEFAULT | ||
606 | - ); | ||
607 | - | ||
608 | - g_settings_bind( | ||
609 | - settings, | ||
610 | - "toolbar-action-names", | ||
611 | - window->toolbar, | ||
612 | - "action-names", | ||
613 | - G_SETTINGS_BIND_DEFAULT | ||
614 | - ); | ||
615 | - | ||
616 | - g_settings_bind( | ||
617 | - settings, | ||
618 | - "toolbar-style", | ||
619 | - window->toolbar, | ||
620 | - "style", | ||
621 | - G_SETTINGS_BIND_DEFAULT | ||
622 | - ); | ||
623 | - | ||
624 | - g_settings_bind( | ||
625 | - settings, | ||
626 | - "toolbar-icon-size", | ||
627 | - window->toolbar, | ||
628 | - "icon-size", | ||
629 | - G_SETTINGS_BIND_DEFAULT | ||
630 | - ); | ||
631 | - | ||
632 | } | 653 | } |
633 | 654 | ||
634 | // Setup default position and size | 655 | // Setup default position and size |