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 | 272 | |
| 273 | 273 | static void pw3270ApplicationWindow_init(pw3270ApplicationWindow *widget) { |
| 274 | 274 | |
| 275 | + // Get settings | |
| 276 | + g_autoptr(GSettings) settings = pw3270_application_window_settings_new(); | |
| 277 | + | |
| 275 | 278 | // Setup defaults |
| 276 | 279 | widget->state.width = 800; |
| 277 | 280 | widget->state.height = 500; |
| ... | ... | @@ -303,18 +306,86 @@ |
| 303 | 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 | 389 | GList * keypad; |
| 319 | 390 | |
| 320 | 391 | // Add top Keypads |
| ... | ... | @@ -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 | 447 | gtk_widget_show_all(GTK_WIDGET(widget->notebook)); |
| ... | ... | @@ -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 | 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 | 655 | // Setup default position and size | ... | ... |