[Xfce4-commits] [apps/xfdashboard] 01/01: Remove "enabled" property from interface XfdashboardPopupMenuItem and implement functions at actors (implementing this interface) to get/set enable state.

noreply at xfce.org noreply at xfce.org
Tue Jan 17 09:51:10 CET 2017


This is an automated email from the git hooks/post-receive script.

nomad pushed a commit to branch master
in repository apps/xfdashboard.

commit 14d5fc2abe6217afca76fac3a365989af91eac57
Author: Stephan Haller <nomad at froevel.de>
Date:   Tue Jan 17 09:49:58 2017 +0100

    Remove "enabled" property from interface XfdashboardPopupMenuItem and implement functions at actors (implementing this interface) to get/set enable state.
---
 libxfdashboard/popup-menu-item-button.c    | 36 ++++++++++++++++++++++++++
 libxfdashboard/popup-menu-item-separator.c | 32 ++++++++++++++++++++---
 libxfdashboard/popup-menu-item.c           | 41 ------------------------------
 3 files changed, 65 insertions(+), 44 deletions(-)

diff --git a/libxfdashboard/popup-menu-item-button.c b/libxfdashboard/popup-menu-item-button.c
index 73b29f6..31a4af5 100644
--- a/libxfdashboard/popup-menu-item-button.c
+++ b/libxfdashboard/popup-menu-item-button.c
@@ -50,6 +50,7 @@ struct _XfdashboardPopupMenuItemButtonPrivate
 {
 	/* Instance related */
 	ClutterAction				*clickAction;
+	gboolean					enabled;
 };
 
 /* IMPLEMENTATION: Private variables and methods */
@@ -71,11 +72,43 @@ static void _xfdashboard_popup_menu_item_button_clicked(XfdashboardClickAction *
 
 /* IMPLEMENTATION: Interface XfdashboardPopupMenuItem */
 
+/* Get enable state of this pop-up menu item */
+static gboolean _xfdashboard_popup_menu_item_button_popup_menu_item_get_enabled(XfdashboardPopupMenuItem *inMenuItem)
+{
+	XfdashboardPopupMenuItemButton			*self;
+	XfdashboardPopupMenuItemButtonPrivate	*priv;
+
+	g_return_val_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM_BUTTON(inMenuItem), FALSE);
+
+	self=XFDASHBOARD_POPUP_MENU_ITEM_BUTTON(inMenuItem);
+	priv=self->priv;
+
+	/* Return enabled state */
+	return(priv->enabled);
+}
+
+/* Set enable state of this pop-up menu item */
+static void _xfdashboard_popup_menu_item_button_popup_menu_item_set_enabled(XfdashboardPopupMenuItem *inMenuItem, gboolean inEnabled)
+{
+	XfdashboardPopupMenuItemButton			*self;
+	XfdashboardPopupMenuItemButtonPrivate	*priv;
+
+	g_return_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM_BUTTON(inMenuItem));
+
+	self=XFDASHBOARD_POPUP_MENU_ITEM_BUTTON(inMenuItem);
+	priv=self->priv;
+
+	/* Set enabled state */
+	priv->enabled=inEnabled;
+}
+
 /* Interface initialization
  * Set up default functions
  */
 void _xfdashboard_popup_menu_item_button_popup_menu_item_iface_init(XfdashboardPopupMenuItemInterface *iface)
 {
+	iface->get_enabled=_xfdashboard_popup_menu_item_button_popup_menu_item_get_enabled;
+	iface->set_enabled=_xfdashboard_popup_menu_item_button_popup_menu_item_set_enabled;
 }
 
 /* IMPLEMENTATION: GObject */
@@ -99,6 +132,9 @@ static void xfdashboard_popup_menu_item_button_init(XfdashboardPopupMenuItemButt
 
 	priv=self->priv=XFDASHBOARD_BUTTON_GET_PRIVATE(self);
 
+	/* Set up default values */
+	priv->enabled=TRUE;
+
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
 
diff --git a/libxfdashboard/popup-menu-item-separator.c b/libxfdashboard/popup-menu-item-separator.c
index d84eb07..26ff949 100644
--- a/libxfdashboard/popup-menu-item-separator.c
+++ b/libxfdashboard/popup-menu-item-separator.c
@@ -150,11 +150,37 @@ static gboolean _xfdashboard_popup_menu_item_separator_on_draw_line_canvas(Xfdas
 
 /* IMPLEMENTATION: Interface XfdashboardPopupMenuItem */
 
+/* Get enable state of this pop-up menu item */
+static gboolean _xfdashboard_popup_menu_item_separator_popup_menu_item_get_enabled(XfdashboardPopupMenuItem *inMenuItem)
+{
+	g_return_val_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM_SEPARATOR(inMenuItem), FALSE);
+
+	/* Pop-up menu item separators are always disabled so return FALSE */
+	return(FALSE);
+}
+
+/* Set enable state of this pop-up menu item */
+static void _xfdashboard_popup_menu_item_separator_popup_menu_item_set_enabled(XfdashboardPopupMenuItem *inMenuItem, gboolean inEnabled)
+{
+	g_return_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM_SEPARATOR(inMenuItem));
+
+	/* Pop-up menu item separators are always disabled so warn if someone tries
+	 * to enabled it, otherwise ignore silently and do nothing.
+	 */
+	if(inEnabled)
+	{
+		g_warning(_("Object of type %s is always disabled and cannot be enabled."),
+					G_OBJECT_TYPE_NAME(inMenuItem));
+	}
+}
+
 /* Interface initialization
  * Set up default functions
  */
 void _xfdashboard_popup_menu_item_separator_popup_menu_item_iface_init(XfdashboardPopupMenuItemInterface *iface)
 {
+	iface->get_enabled=_xfdashboard_popup_menu_item_separator_popup_menu_item_get_enabled;
+	iface->set_enabled=_xfdashboard_popup_menu_item_separator_popup_menu_item_set_enabled;
 }
 
 /* IMPLEMENTATION: ClutterActor */
@@ -326,9 +352,9 @@ static void _xfdashboard_popup_menu_item_separator_get_property(GObject *inObjec
  */
 static void xfdashboard_popup_menu_item_separator_class_init(XfdashboardPopupMenuItemSeparatorClass *klass)
 {
-	XfdashboardActorClass	*actorClass=XFDASHBOARD_ACTOR_CLASS(klass);
-	ClutterActorClass		*clutterActorClass=CLUTTER_ACTOR_CLASS(klass);
-	GObjectClass			*gobjectClass=G_OBJECT_CLASS(klass);
+	XfdashboardActorClass				*actorClass=XFDASHBOARD_ACTOR_CLASS(klass);
+	ClutterActorClass					*clutterActorClass=CLUTTER_ACTOR_CLASS(klass);
+	GObjectClass						*gobjectClass=G_OBJECT_CLASS(klass);
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_popup_menu_item_separator_dispose;
diff --git a/libxfdashboard/popup-menu-item.c b/libxfdashboard/popup-menu-item.c
index 4e5b2e1..c6a8f87 100644
--- a/libxfdashboard/popup-menu-item.c
+++ b/libxfdashboard/popup-menu-item.c
@@ -54,27 +54,6 @@ static guint XfdashboardPopupMenuItemSignals[SIGNAL_LAST]={ 0, };
 				G_OBJECT_TYPE_NAME(self), \
 				vfunc);
 
-/* Default implementation of virtual function "get_enabled" */
-static gboolean _xfdashboard_popup_menu_item_real_get_enabled(XfdashboardPopupMenuItem *self)
-{
-	gboolean			enabled;
-
-	g_return_val_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM(self), FALSE);
-
-	/* By default (if not overidden) retrieve state from property "enabled" */
-	g_object_get(self, "enabled", &enabled, NULL);
-
-	return(enabled);
-}
-
-/* Default implementation of virtual function "set_enabled" */
-static void _xfdashboard_popup_menu_item_real_set_enabled(XfdashboardPopupMenuItem *self, gboolean inEnabled)
-{
-	g_return_if_fail(XFDASHBOARD_IS_POPUP_MENU_ITEM(self));
-
-	/* By default (if not overidden) set property "enabled" to requested state */
-	g_object_set(self, "enabled", inEnabled, NULL);
-}
 
 /* IMPLEMENTATION: GObject */
 
@@ -86,29 +65,9 @@ void xfdashboard_popup_menu_item_default_init(XfdashboardPopupMenuItemInterface
 	static gboolean		initialized=FALSE;
 	GParamSpec			*property;
 
-	/* The following virtual functions should be overriden if default
-	 * implementation does not fit.
-	 */
-	iface->get_enabled=_xfdashboard_popup_menu_item_real_get_enabled;
-	iface->set_enabled=_xfdashboard_popup_menu_item_real_set_enabled;
-
 	/* Define properties, signals and actions */
 	if(!initialized)
 	{
-		/* Define properties */
-		/**
-		 * XfdashboardPopupMenuItem:enabled:
-		 *
-		 * A flag indicating if this pop-up menu item is enabled or disabled.
-		 * It is set to %TRUE if enabled and it is set %FALSE if disabled.
-		 */
-		property=g_param_spec_boolean("enabled",
-										_("Enabled"),
-										_("Whether this pop-up menu item is enabled"),
-										TRUE,
-										G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
-		g_object_interface_install_property(iface, property);
-
 		/* Define signals */
 		/**
 		 * XfdashboardPopupMenuItem::activated:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list