Updating branch refs/heads/master to 587ad35c6dd88779bac6f76ab0e6b34859e2de3b (commit) from ee9b6537576b6403d9e9ca49315399c94af30085 (commit)
commit 587ad35c6dd88779bac6f76ab0e6b34859e2de3b Author: Nick Schermer <n...@xfce.org> Date: Sat Aug 29 19:01:14 2009 +0200 Add changed signal to GarconMenuItem. garcon/garcon-menu-item.c | 41 +++++++++++++++++++++++++++++------------ garcon/garcon-menu-item.h | 24 +++++++++++++++++++++--- 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/garcon/garcon-menu-item.c b/garcon/garcon-menu-item.c index 04914d3..85436c8 100644 --- a/garcon/garcon-menu-item.c +++ b/garcon/garcon-menu-item.c @@ -60,6 +60,13 @@ enum PROP_PATH, }; +/* Signal identifiers */ +enum +{ + CHANGED, + LAST_SIGNAL, +}; + static void garcon_menu_item_element_init (GarconMenuElementIface *iface); @@ -80,10 +87,10 @@ static gboolean garcon_menu_item_get_element_show_in_environment (GarconMenu static gboolean garcon_menu_item_get_element_no_display (GarconMenuElement *element); -struct _GarconMenuItemClass -{ - GObjectClass __parent__; -}; + +static guint item_signals[LAST_SIGNAL]; + + struct _GarconMenuItemPrivate { @@ -141,14 +148,6 @@ struct _GarconMenuItemPrivate guint num_allocated; }; -struct _GarconMenuItem -{ - GObject __parent__; - - /* < private > */ - GarconMenuItemPrivate *priv; -}; - G_DEFINE_TYPE_WITH_CODE (GarconMenuItem, garcon_menu_item, G_TYPE_OBJECT, @@ -357,6 +356,21 @@ garcon_menu_item_class_init (GarconMenuItemClass *klass) NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GarconMenuItem::changed: + * @item : a #GarconMenuItem. + * + * Emitted when #GarconMenuItem has been reloaded. + **/ + item_signals[CHANGED] = + g_signal_new (g_intern_static_string ("changed"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GarconMenuItemClass, changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } @@ -902,6 +916,9 @@ garcon_menu_item_reload_from_file (GarconMenuItem *item, /* Flush property notifications */ g_object_thaw_notify (G_OBJECT (item)); + /* Emit signal to everybody knows we reloaded the file */ + g_signal_emit (G_OBJECT (item), item_signals[CHANGED], 0); + g_key_file_free (rc); return TRUE; diff --git a/garcon/garcon-menu-item.h b/garcon/garcon-menu-item.h index 48b975d..8a59774 100644 --- a/garcon/garcon-menu-item.h +++ b/garcon/garcon-menu-item.h @@ -32,6 +32,10 @@ G_BEGIN_DECLS +typedef struct _GarconMenuItemPrivate GarconMenuItemPrivate; +typedef struct _GarconMenuItemClass GarconMenuItemClass; +typedef struct _GarconMenuItem GarconMenuItem; + #define GARCON_TYPE_MENU_ITEM (garcon_menu_item_get_type()) #define GARCON_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GARCON_TYPE_MENU_ITEM, GarconMenuItem)) #define GARCON_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GARCON_TYPE_MENU_ITEM, GarconMenuItemClass)) @@ -39,9 +43,23 @@ G_BEGIN_DECLS #define GARCON_IS_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GARCON_TYPE_MENU_ITEM)) #define GARCON_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GARCON_TYPE_MENU_ITEM, GarconMenuItemClass)) -typedef struct _GarconMenuItemPrivate GarconMenuItemPrivate; -typedef struct _GarconMenuItemClass GarconMenuItemClass; -typedef struct _GarconMenuItem GarconMenuItem; +struct _GarconMenuItemClass +{ + GObjectClass __parent__; + + /* signals */ + void (*changed) (GarconMenuItem *item); +}; + +struct _GarconMenuItem +{ + GObject __parent__; + + /* < private > */ + GarconMenuItemPrivate *priv; +}; + + GType garcon_menu_item_get_type (void) G_GNUC_CONST; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits