[gnome-panel] menu: implement GpAction interface
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] menu: implement GpAction interface
- Date: Mon, 22 Jan 2018 18:55:53 +0000 (UTC)
commit 881b04ce93b9e5e6b85e8ae4515d2325868b2e39
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Jan 22 20:52:19 2018 +0200
menu: implement GpAction interface
modules/menu/gp-main-menu-applet.c | 19 ++++++++++++++++++-
modules/menu/gp-menu-bar-applet.c | 26 +++++++++++++++++++++++++-
2 files changed, 43 insertions(+), 2 deletions(-)
---
diff --git a/modules/menu/gp-main-menu-applet.c b/modules/menu/gp-main-menu-applet.c
index 8981e75..02d92db 100644
--- a/modules/menu/gp-main-menu-applet.c
+++ b/modules/menu/gp-main-menu-applet.c
@@ -18,6 +18,7 @@
#include "config.h"
#include <glib/gi18n-lib.h>
+#include <libgnome-panel/gp-action.h>
#include "gp-main-menu-applet.h"
#include "gp-menu-utils.h"
@@ -29,7 +30,23 @@ struct _GpMainMenuApplet
GpApplet parent;
};
-G_DEFINE_TYPE (GpMainMenuApplet, gp_main_menu_applet, GP_TYPE_APPLET)
+static void gp_action_interface_init (GpActionInterface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GpMainMenuApplet, gp_main_menu_applet, GP_TYPE_APPLET,
+ G_IMPLEMENT_INTERFACE (GP_TYPE_ACTION, gp_action_interface_init))
+
+static gboolean
+gp_main_menu_applet_main_menu (GpAction *action,
+ guint32 time)
+{
+ return FALSE;
+}
+
+static void
+gp_action_interface_init (GpActionInterface *iface)
+{
+ iface->main_menu = gp_main_menu_applet_main_menu;
+}
static void
edit_menus_cb (GSimpleAction *action,
diff --git a/modules/menu/gp-menu-bar-applet.c b/modules/menu/gp-menu-bar-applet.c
index 04f4636..7d86437 100644
--- a/modules/menu/gp-menu-bar-applet.c
+++ b/modules/menu/gp-menu-bar-applet.c
@@ -18,6 +18,7 @@
#include "config.h"
#include <glib/gi18n-lib.h>
+#include <libgnome-panel/gp-action.h>
#include <libgnome-panel/gp-image-menu-item.h>
#include "gp-menu-bar-applet.h"
@@ -37,7 +38,30 @@ struct _GpMenuBarApplet
GtkWidget *applications_menu;
};
-G_DEFINE_TYPE (GpMenuBarApplet, gp_menu_bar_applet, GP_TYPE_APPLET)
+static void gp_action_interface_init (GpActionInterface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GpMenuBarApplet, gp_menu_bar_applet, GP_TYPE_APPLET,
+ G_IMPLEMENT_INTERFACE (GP_TYPE_ACTION, gp_action_interface_init))
+
+static gboolean
+gp_menu_bar_applet_main_menu (GpAction *action,
+ guint32 time)
+{
+ GpMenuBarApplet *applet;
+
+ applet = GP_MENU_BAR_APPLET (action);
+
+ gtk_menu_shell_select_item (GTK_MENU_SHELL (applet->menu_bar),
+ applet->applications_item);
+
+ return TRUE;
+}
+
+static void
+gp_action_interface_init (GpActionInterface *iface)
+{
+ iface->main_menu = gp_menu_bar_applet_main_menu;
+}
static gboolean
button_press_event_cb (GtkWidget *widget,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]