--- a/src/glibre-application.c Mon Sep 20 22:05:43 2021 -0500
+++ b/src/glibre-application.c Mon Sep 20 22:46:39 2021 -0500
@@ -19,6 +19,7 @@
#include "glibre-application.h"
+#include "glibre-about-window.h" struct _GlibreApplication {
@@ -27,6 +28,30 @@
G_DEFINE_TYPE(GlibreApplication, glibre_application, GTK_TYPE_APPLICATION)
/******************************************************************************
+ *****************************************************************************/ +glibre_application_about(GSimpleAction *action, GVariant *parameter, + GtkWidget *about = glibre_about_window_new(); + gtk_window_present(GTK_WINDOW(about)); +glibre_application_quit(GSimpleAction *action, GVariant *parameter, + g_application_quit(G_APPLICATION(data)); +static GActionEntry app_entries[] = { + { "about", glibre_application_about, NULL, NULL, NULL }, + { "quit", glibre_application_quit, NULL, NULL, NULL } +/****************************************************************************** * GApplication Implementation
*****************************************************************************/
@@ -43,7 +68,9 @@
* GObject Impelementation
*****************************************************************************/
-glibre_application_init(GlibreApplication *application) {
+glibre_application_init(GlibreApplication *app) { + g_action_map_add_action_entries(G_ACTION_MAP(app), app_entries, + G_N_ELEMENTS (app_entries), app); --- a/src/glibre.c Mon Sep 20 22:05:43 2021 -0500
+++ b/src/glibre.c Mon Sep 20 22:46:39 2021 -0500
@@ -21,8 +21,6 @@
-#include "glibre-about-window.h"
@@ -603,18 +601,6 @@
-glibre_quit_cb(GtkMenuItem *w, gpointer d) {
-glibre_about_cb(GtkMenuItem *w, gpointer d) {
- GtkWidget *about = glibre_about_window_new();
- gtk_widget_show_all(about);
glibre_clear_cb(GtkMenuItem *w, gpointer d) {
glibre_set_entry_text(window.regex_entry, "");
glibre_set_entry_text(window.data_entry, "");
@@ -645,10 +631,6 @@
-glibre_view_edit_cb(GtkMenuItem *w, gpointer d) {
glibre_entry_changed_cb(GtkTextBuffer *buffer, gpointer d) {
@@ -708,9 +690,8 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
- item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, ag);
- g_signal_connect(item, "activate",
- G_CALLBACK(glibre_quit_cb), NULL);
+ item = gtk_menu_item_new_with_mnemonic("_Quit"); + gtk_actionable_set_action_name(GTK_ACTIONABLE(item), "app.quit"); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
@@ -720,19 +701,8 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
- item = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, ag);
- g_signal_connect(item, "activate", G_CALLBACK(glibre_clear_cb), NULL);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- item = gtk_menu_item_new_with_mnemonic("_View");
- gtk_menu_shell_append(GTK_MENU_SHELL(menubar), item);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
- item = gtk_image_menu_item_new_from_stock(GTK_STOCK_EDIT, ag);
- g_signal_connect(item, "activate", G_CALLBACK(glibre_view_edit_cb), NULL);
+ item = gtk_menu_item_new_with_mnemonic("_Clear"); + gtk_actionable_set_action_name(GTK_ACTIONABLE(item), "win.clear"); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
@@ -743,7 +713,7 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, ag);
- g_signal_connect(item, "activate", G_CALLBACK(glibre_about_cb), NULL);
+ gtk_actionable_set_action_name(GTK_ACTIONABLE(item), "app.about"); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
/**************************************************************************