From a64f9b817ae50384862a963fa0d3b10320a3fb1e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 28 Oct 2019 18:39:21 -0300 Subject: [PATCH] Working wiht GMenuBar. --- src/objects/actions/lib3270/action.c | 2 +- src/objects/window/actions.c | 4 ++++ src/objects/window/application.c | 21 +++++++++++++++------ src/objects/window/window.c | 5 +++++ ui/application.xml | 15 +++++++++++++++ 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/objects/actions/lib3270/action.c b/src/objects/actions/lib3270/action.c index 3a97c50..791d204 100644 --- a/src/objects/actions/lib3270/action.c +++ b/src/objects/actions/lib3270/action.c @@ -139,7 +139,7 @@ } static gboolean bg_notify_enabled(GAction *action) { - debug("Action %s was notified (%s)",g_action_get_name(action),g_action_get_enabled(action) ? "Enabled" : "Disabled"); +// debug("Action %s was notified (%s)",g_action_get_name(action),g_action_get_enabled(action) ? "Enabled" : "Disabled"); pw3270_action_notify_enabled(action); return FALSE; } diff --git a/src/objects/window/actions.c b/src/objects/window/actions.c index fa638b3..a1ce3d1 100644 --- a/src/objects/window/actions.c +++ b/src/objects/window/actions.c @@ -45,6 +45,7 @@ g_print("Exiting application\n"); + /* GList *list = gtk_application_get_windows(GTK_APPLICATION(application)); while(list) { @@ -55,6 +56,9 @@ gtk_widget_destroy(window); } + */ + + g_application_quit(G_APPLICATION(application)); } diff --git a/src/objects/window/application.c b/src/objects/window/application.c index c384e02..3464008 100644 --- a/src/objects/window/application.c +++ b/src/objects/window/application.c @@ -131,6 +131,9 @@ #endif // _WIN32 // Get settings + g_autofree gchar * path = g_strconcat("/apps/" PACKAGE_NAME "/", g_get_application_name(),"/",NULL); + debug("path=%s",path); + { #ifdef DEBUG GError * error = NULL; @@ -152,14 +155,11 @@ g_settings_schema_source_unref(source); - g_autofree gchar * path = g_strconcat("/apps/" PACKAGE_NAME "/", g_get_application_name(),"/",NULL); - - debug("path=%s",path); app->settings = g_settings_new_full(schema, NULL, path); #else - #error TODO! + app->settings = g_settings_new_with_path("br.com.bb." PACKAGE_NAME, path); #endif // DEBUG @@ -257,7 +257,9 @@ // Setup application menus // GtkBuilder * builder = gtk_builder_new_from_file("ui/application.xml"); - gtk_application_set_app_menu(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "app-menu"))); + + if(gtk_application_prefers_app_menu(GTK_APPLICATION(application))) + gtk_application_set_app_menu(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "app-menu"))); if(pw3270_application_get_ui_style(application) == PW3270_UI_STYLE_CLASSICAL) gtk_application_set_menubar(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "menubar"))); @@ -270,12 +272,19 @@ GtkWidget * window = pw3270_application_window_new(GTK_APPLICATION(application)); + debug("%s","************************************************"); + debug("Action win.copy is %p",g_action_map_lookup_action(G_ACTION_MAP(window),"win.copy")); + debug("Action app.copy is %p",g_action_map_lookup_action(G_ACTION_MAP(window),"app.copy")); + debug("Action win.copy is %p",g_action_map_lookup_action(G_ACTION_MAP(application),"win.copy")); + debug("Action copy is %p",g_action_map_lookup_action(G_ACTION_MAP(application),"copy")); + debug("%s","************************************************"); + // Create terminal widget pw3270_terminal_new(window); + pw3270_window_set_current_page(window,0); // Present the new window gtk_window_present(GTK_WINDOW(window)); - pw3270_window_set_current_page(window,0); } diff --git a/src/objects/window/window.c b/src/objects/window/window.c index 761df55..c1a7307 100644 --- a/src/objects/window/window.c +++ b/src/objects/window/window.c @@ -148,6 +148,11 @@ } + debug("%s","************************************************"); + debug("Action win.copy is %p",g_action_map_lookup_action(G_ACTION_MAP(widget),"win.copy")); + debug("%s","************************************************"); + + } GtkWidget * pw3270_application_window_new(GtkApplication * application) { diff --git a/ui/application.xml b/ui/application.xml index 0b3a17e..1ab1a57 100644 --- a/ui/application.xml +++ b/ui/application.xml @@ -50,6 +50,20 @@ + _Edit + + + Copy + win.copy + + + + + +