ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #02688
[Branch ~dbusmenu-team/dbusmenu/trunk] Rev 177: Adding an about-to-show signal to the menuitem
Merge authors:
Chris Coulson (chrisccoulson)
Related merge proposals:
https://code.launchpad.net/~chrisccoulson/dbusmenu/ffox-fixes/+merge/43810
proposed by: David Barth (dbarth)
review: Approve - Ted Gould (ted)
review: Needs Information - Karl Lattimer (karl-qdh)
------------------------------------------------------------
revno: 177 [merge]
committer: Ted Gould <ted@xxxxxxxx>
branch nick: trunk
timestamp: Thu 2011-01-06 23:25:02 -0600
message:
Adding an about-to-show signal to the menuitem
modified:
libdbusmenu-glib/menuitem.c
libdbusmenu-glib/menuitem.h
libdbusmenu-glib/server.c
libdbusmenu-gtk/menuitem.h
--
lp:dbusmenu
https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
To unsubscribe from this branch go to https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk/+edit-subscription
=== modified file 'libdbusmenu-glib/menuitem.c'
--- libdbusmenu-glib/menuitem.c 2011-01-06 02:53:27 +0000
+++ libdbusmenu-glib/menuitem.c 2011-01-07 05:25:02 +0000
@@ -70,6 +70,7 @@
CHILD_MOVED,
REALIZED,
SHOW_TO_USER,
+ ABOUT_TO_SHOW,
LAST_SIGNAL
};
@@ -229,6 +230,21 @@
g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT, G_TYPE_NONE);
+ /**
+ DbusmenuMenuitem::about-to-show:
+ @arg0: The #DbusmenuMenuitem object.
+
+ Emitted when the submenu for this item
+ is about to be shown
+ */
+ signals[ABOUT_TO_SHOW] = g_signal_new(DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW,
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(DbusmenuMenuitemClass, about_to_show),
+ NULL, NULL,
+ _dbusmenu_menuitem_marshal_VOID__VOID,
+ G_TYPE_BOOLEAN, 0, G_TYPE_NONE);
+
g_object_class_install_property (object_class, PROP_ID,
g_param_spec_int(PROP_ID_S, "ID for the menu item",
"This is a unique indentifier for the menu item.",
@@ -398,7 +414,8 @@
if (dbusmenu_menuitem_get_children(mi) == NULL) {
g_warning("About to Show called on an item wihtout submenus. We're ignoring it.");
} else {
- g_signal_emit(G_OBJECT(mi), signals[ITEM_ACTIVATED], 0, 0 /* timestamp */, TRUE);
+ gboolean dummy;
+ g_signal_emit(G_OBJECT(mi), signals[ABOUT_TO_SHOW], 0, &dummy);
}
if (cb != NULL) {
=== modified file 'libdbusmenu-glib/menuitem.h'
--- libdbusmenu-glib/menuitem.h 2010-11-18 02:50:45 +0000
+++ libdbusmenu-glib/menuitem.h 2011-01-07 05:25:02 +0000
@@ -50,6 +50,7 @@
#define DBUSMENU_MENUITEM_SIGNAL_REALIZED "realized"
#define DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID (g_signal_lookup(DBUSMENU_MENUITEM_SIGNAL_REALIZED, DBUSMENU_TYPE_MENUITEM))
#define DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER "show-to-user"
+#define DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW "about-to-show"
#define DBUSMENU_MENUITEM_PROP_TYPE "type"
#define DBUSMENU_MENUITEM_PROP_VISIBLE "visible"
@@ -127,6 +128,7 @@
* @child_removed: Slot for #DbusmenuMenuitem::child-removed.
* @child_moved: Slot for #DbusmenuMenuitem::child-moved.
* @realized: Slot for #DbusmenuMenuitem::realized.
+ * @about_to_show: Slot for #DbusmenuMenuitem::about-to-show.
* @buildxml: Virtual function that appends the strings required to represent this menu item in the menu XML file.
* @handle_event: This function is to override how events are handled by subclasses. Look at #dbusmenu_menuitem_handle_event for lots of good information.
* @send_about_to_show: Virtual function that notifies server that the client is about to show a menu.
@@ -158,6 +160,7 @@
void (*send_about_to_show) (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gpointer user_data), gpointer cb_data);
void (*show_to_user) (DbusmenuMenuitem * mi, guint timestamp, gpointer cb_data);
+ gboolean (*about_to_show) (void);
/*< Private >*/
void (*reserved1) (void);
=== modified file 'libdbusmenu-glib/server.c'
--- libdbusmenu-glib/server.c 2010-11-29 21:19:52 +0000
+++ libdbusmenu-glib/server.c 2010-12-13 13:45:05 +0000
@@ -1079,6 +1079,8 @@
return;
}
+ dbusmenu_menuitem_send_about_to_show(mi, NULL, NULL);
+
/* GTK+ does not support about-to-show concept for now */
g_dbus_method_invocation_return_value(invocation,
g_variant_new("(b)", FALSE));
=== modified file 'libdbusmenu-gtk/menuitem.h'
--- libdbusmenu-gtk/menuitem.h 2010-06-14 15:58:21 +0000
+++ libdbusmenu-gtk/menuitem.h 2010-12-13 13:40:01 +0000
@@ -35,6 +35,8 @@
#include <gdk/gdk.h>
#include <gtk/gtk.h>
+G_BEGIN_DECLS
+
gboolean dbusmenu_menuitem_property_set_image (DbusmenuMenuitem * menuitem, const gchar * property, const GdkPixbuf * data);
GdkPixbuf * dbusmenu_menuitem_property_get_image (DbusmenuMenuitem * menuitem, const gchar * property);
@@ -43,4 +45,6 @@
gboolean dbusmenu_menuitem_property_set_shortcut_menuitem (DbusmenuMenuitem * menuitem, const GtkMenuItem * gmi);
void dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem, guint * key, GdkModifierType * modifiers);
+G_END_DECLS
+
#endif