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 |