[gnome-panel] menu: implement GpAction interface



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]