[gnome-panel] menu: pass GpApplet object to GpMenu
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] menu: pass GpApplet object to GpMenu
- Date: Sun, 28 Jan 2018 22:19:40 +0000 (UTC)
commit 6d341b7e05902ed70662b19955a62d79410d68a9
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Jan 22 23:21:53 2018 +0200
menu: pass GpApplet object to GpMenu
modules/menu/gp-menu-bar-applet.c | 2 +-
modules/menu/gp-menu.c | 43 +++++++++++++++++++-----------------
modules/menu/gp-menu.h | 5 ++-
3 files changed, 27 insertions(+), 23 deletions(-)
---
diff --git a/modules/menu/gp-menu-bar-applet.c b/modules/menu/gp-menu-bar-applet.c
index 7d86437..aab1f49 100644
--- a/modules/menu/gp-menu-bar-applet.c
+++ b/modules/menu/gp-menu-bar-applet.c
@@ -103,7 +103,7 @@ append_applications_item (GpMenuBarApplet *applet)
menu = get_applications_menu ();
- applet->applications_menu = gp_menu_new_from_name (menu);
+ applet->applications_menu = gp_menu_new (GP_APPLET (applet), menu);
g_free (menu);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (applet->applications_item),
diff --git a/modules/menu/gp-menu.c b/modules/menu/gp-menu.c
index 6677170..70fb404 100644
--- a/modules/menu/gp-menu.c
+++ b/modules/menu/gp-menu.c
@@ -29,7 +29,7 @@ struct _GpMenu
GtkMenu parent;
gchar *name;
- gboolean enable_tooltips;
+ GpApplet *applet;
GMenuTree *tree;
@@ -41,7 +41,7 @@ enum
PROP_0,
PROP_NAME,
- PROP_ENABLE_TOOLTIPS,
+ PROP_APPLET,
LAST_PROP
};
@@ -143,7 +143,7 @@ append_entry (GtkMenuShell *shell,
{
gtk_widget_set_tooltip_text (item, description);
- g_object_bind_property (menu, "enable-tooltips",
+ g_object_bind_property (menu->applet, "enable-tooltips",
item, "has-tooltip",
G_BINDING_DEFAULT |
G_BINDING_SYNC_CREATE);
@@ -291,6 +291,8 @@ gp_menu_dispose (GObject *object)
menu = GP_MENU (object);
+ menu->applet = NULL;
+
g_clear_object (&menu->tree);
if (menu->load_id != 0)
@@ -320,18 +322,14 @@ gp_menu_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GpMenu *menu;
-
- menu = GP_MENU (object);
-
switch (property_id)
{
case PROP_NAME:
- g_value_set_string (value, menu->name);
+ g_assert_not_reached ();
break;
- case PROP_ENABLE_TOOLTIPS:
- g_value_set_boolean (value, menu->enable_tooltips);
+ case PROP_APPLET:
+ g_assert_not_reached ();
break;
default:
@@ -357,8 +355,9 @@ gp_menu_set_property (GObject *object,
menu->name = g_value_dup_string (value);
break;
- case PROP_ENABLE_TOOLTIPS:
- menu->enable_tooltips = g_value_get_boolean (value);
+ case PROP_APPLET:
+ g_assert (menu->applet == NULL);
+ menu->applet = g_value_get_object (value);
break;
default:
@@ -373,14 +372,14 @@ install_properties (GObjectClass *object_class)
menu_properties[PROP_NAME] =
g_param_spec_string ("name", "Name", "Name",
NULL,
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE |
G_PARAM_STATIC_STRINGS);
- menu_properties[PROP_ENABLE_TOOLTIPS] =
- g_param_spec_boolean ("enable-tooltips", "Enable Tooltips", "Enable Tooltips",
- TRUE,
- G_PARAM_CONSTRUCT | G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
+ menu_properties[PROP_APPLET] =
+ g_param_spec_object ("applet", "Applet", "Applet",
+ GP_TYPE_APPLET,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE |
+ G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, LAST_PROP, menu_properties);
}
@@ -407,7 +406,11 @@ gp_menu_init (GpMenu *menu)
}
GtkWidget *
-gp_menu_new_from_name (const gchar *name)
+gp_menu_new (GpApplet *applet,
+ const gchar *name)
{
- return g_object_new (GP_TYPE_MENU, "name", name, NULL);
+ return g_object_new (GP_TYPE_MENU,
+ "applet", applet,
+ "name", name,
+ NULL);
}
diff --git a/modules/menu/gp-menu.h b/modules/menu/gp-menu.h
index 4603d75..8f468b6 100644
--- a/modules/menu/gp-menu.h
+++ b/modules/menu/gp-menu.h
@@ -18,14 +18,15 @@
#ifndef GP_MENU_H
#define GP_MENU_H
-#include <gtk/gtk.h>
+#include <libgnome-panel/gp-applet.h>
G_BEGIN_DECLS
#define GP_TYPE_MENU (gp_menu_get_type ())
G_DECLARE_FINAL_TYPE (GpMenu, gp_menu, GP, MENU, GtkMenu)
-GtkWidget *gp_menu_new_from_name (const gchar *name);
+GtkWidget *gp_menu_new (GpApplet *applet,
+ const gchar *name);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]