diff --git a/ChangeLog b/ChangeLog index 4881e38a4b08ac1852b239514b539b34f349823b..c5867b7d1e2ab13ab814819ad261dcc1b61bc331 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2009-05-04 Travis Watkins <amaranth@ubuntu.com> + + * docs/reference/libxfce4menu-sections.txt, + libxfce4menu/xfce-menu-directory.{c,h}, + libxfce4menu/xfce-menu-element.{c,h}, + libxfce4menu/xfce-menu-item.{c,h}, + libxfce4menu/xfce-menu-separator.c, + libxfce4menu/xfce-menu.c: Add xfce_menu_element_get_no_display() and + xfce_menu_element_get_visible_in_environment() to the + XfceMenuElement interface. Implement this in XfceMenu, + XfceMenuDirectory, XfceMenuItem and XfceMenuSeparator. + 2009-05-03 Travis Watkins <amaranth@ubuntu.com> * docs/reference/libxfce4menu-sections.txt, libxfce4menu/xfce-menu.c, diff --git a/docs/reference/libxfce4menu-sections.txt b/docs/reference/libxfce4menu-sections.txt index c7c616e29babb181d3e3df059bba89987048430e..7c0af6a0e8280bb8ccdef16ae064fb593af8e2d4 100644 --- a/docs/reference/libxfce4menu-sections.txt +++ b/docs/reference/libxfce4menu-sections.txt @@ -34,7 +34,7 @@ xfce_menu_directory_set_icon xfce_menu_directory_get_no_display xfce_menu_directory_set_no_display xfce_menu_directory_get_hidden -xfce_menu_directory_show_in_environment +xfce_menu_directory_get_show_in_environment xfce_menu_directory_get_visible xfce_menu_directory_equal <SUBSECTION Standard> @@ -189,6 +189,8 @@ xfce_menu_element_get_name xfce_menu_element_get_comment xfce_menu_element_get_icon_name xfce_menu_element_get_visible +xfce_menu_element_get_show_in_environment +xfce_menu_element_get_no_display <SUBSECTION Standard> XFCE_MENU_ELEMENT XFCE_IS_MENU_ELEMENT @@ -230,7 +232,7 @@ xfce_menu_item_set_supports_startup_notification xfce_menu_item_get_categories xfce_menu_item_set_categories xfce_menu_item_has_category -xfce_menu_item_show_in_environment +xfce_menu_item_get_show_in_environment xfce_menu_item_only_show_in_environment xfce_menu_item_ref xfce_menu_item_unref diff --git a/libxfce4menu/xfce-menu-directory.c b/libxfce4menu/xfce-menu-directory.c index 450b4ec93448ab32dbad6f83a7e8a985cb869f65..6fe2c1eed086dcdb7579b4474eb6f1830458ad71 100644 --- a/libxfce4menu/xfce-menu-directory.c +++ b/libxfce4menu/xfce-menu-directory.c @@ -570,7 +570,7 @@ xfce_menu_directory_get_hidden (XfceMenuDirectory *directory) gboolean -xfce_menu_directory_show_in_environment (XfceMenuDirectory *directory) +xfce_menu_directory_get_show_in_environment (XfceMenuDirectory *directory) { const gchar *env; gboolean show = TRUE; @@ -628,7 +628,7 @@ xfce_menu_directory_get_visible (XfceMenuDirectory *directory) { g_return_val_if_fail (XFCE_IS_MENU_DIRECTORY (directory), FALSE); - if (!xfce_menu_directory_show_in_environment (directory)) + if (!xfce_menu_directory_get_show_in_environment (directory)) return FALSE; else if (xfce_menu_directory_get_hidden (directory)) return FALSE; diff --git a/libxfce4menu/xfce-menu-directory.h b/libxfce4menu/xfce-menu-directory.h index 7bc71e2e3350794e422f83bcac010cb14f00b47a..8279c3d052dfae183a9d2a70c22e165da2673676 100644 --- a/libxfce4menu/xfce-menu-directory.h +++ b/libxfce4menu/xfce-menu-directory.h @@ -42,26 +42,26 @@ typedef struct _XfceMenuDirectory XfceMenuDirectory; #define XFCE_IS_MENU_DIRECTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_TYPE_MENU_DIRECTORY)) #define XFCE_MENU_DIRECTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_TYPE_MENU_DIRECTORY, XfceMenuDirectoryClass)) -GType xfce_menu_directory_get_type (void) G_GNUC_CONST; +GType xfce_menu_directory_get_type (void) G_GNUC_CONST; -GFile *xfce_menu_directory_get_file (XfceMenuDirectory *directory); -const gchar *xfce_menu_directory_get_name (XfceMenuDirectory *directory); -void xfce_menu_directory_set_name (XfceMenuDirectory *directory, - const gchar *name); -const gchar *xfce_menu_directory_get_comment (XfceMenuDirectory *directory); -void xfce_menu_directory_set_comment (XfceMenuDirectory *directory, - const gchar *comment); -const gchar *xfce_menu_directory_get_icon (XfceMenuDirectory *directory); -void xfce_menu_directory_set_icon (XfceMenuDirectory *directory, - const gchar *icon); -gboolean xfce_menu_directory_get_no_display (XfceMenuDirectory *directory); -void xfce_menu_directory_set_no_display (XfceMenuDirectory *directory, - gboolean no_display); -gboolean xfce_menu_directory_get_hidden (XfceMenuDirectory *directory); -gboolean xfce_menu_directory_show_in_environment (XfceMenuDirectory *directory); -gboolean xfce_menu_directory_get_visible (XfceMenuDirectory *directory); -gboolean xfce_menu_directory_equal (XfceMenuDirectory *directory, - XfceMenuDirectory *other); +GFile *xfce_menu_directory_get_file (XfceMenuDirectory *directory); +const gchar *xfce_menu_directory_get_name (XfceMenuDirectory *directory); +void xfce_menu_directory_set_name (XfceMenuDirectory *directory, + const gchar *name); +const gchar *xfce_menu_directory_get_comment (XfceMenuDirectory *directory); +void xfce_menu_directory_set_comment (XfceMenuDirectory *directory, + const gchar *comment); +const gchar *xfce_menu_directory_get_icon (XfceMenuDirectory *directory); +void xfce_menu_directory_set_icon (XfceMenuDirectory *directory, + const gchar *icon); +gboolean xfce_menu_directory_get_no_display (XfceMenuDirectory *directory); +void xfce_menu_directory_set_no_display (XfceMenuDirectory *directory, + gboolean no_display); +gboolean xfce_menu_directory_get_hidden (XfceMenuDirectory *directory); +gboolean xfce_menu_directory_get_show_in_environment (XfceMenuDirectory *directory); +gboolean xfce_menu_directory_get_visible (XfceMenuDirectory *directory); +gboolean xfce_menu_directory_equal (XfceMenuDirectory *directory, + XfceMenuDirectory *other); #if defined(LIBXFCE4MENU_COMPILATION) void _xfce_menu_directory_init (void) G_GNUC_INTERNAL; diff --git a/libxfce4menu/xfce-menu-element.c b/libxfce4menu/xfce-menu-element.c index a7c76598c600bba0c865d54c337d42c12257eb5f..a504a2801919aa75197a50a2c436316bc467fa47 100644 --- a/libxfce4menu/xfce-menu-element.c +++ b/libxfce4menu/xfce-menu-element.c @@ -87,27 +87,36 @@ xfce_menu_element_get_comment (XfceMenuElement *element) const gchar* -xfce_menu_element_get_comment (XfceMenuElement *element) +xfce_menu_element_get_icon_name (XfceMenuElement *element) { g_return_val_if_fail (XFCE_IS_MENU_ELEMENT (element), NULL); - return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_comment) (element); + return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_icon_name) (element); } -const gchar* -xfce_menu_element_get_icon_name (XfceMenuElement *element) +gboolean +xfce_menu_element_get_visible (XfceMenuElement *element) { - g_return_val_if_fail (XFCE_IS_MENU_ELEMENT (element), NULL); - return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_icon_name) (element); + g_return_val_if_fail (XFCE_IS_MENU_ELEMENT (element), FALSE); + return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_visible) (element); } gboolean -xfce_menu_element_get_visible (XfceMenuElement *element) +xfce_menu_element_get_show_in_environment (XfceMenuElement *element) { g_return_val_if_fail (XFCE_IS_MENU_ELEMENT (element), FALSE); - return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_visible) (element); + return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_show_in_environment) (element); +} + + + +gboolean +xfce_menu_element_get_no_display (XfceMenuElement *element) +{ + g_return_val_if_fail (XFCE_IS_MENU_ELEMENT (element), FALSE); + return (*XFCE_MENU_ELEMENT_GET_IFACE (element)->get_no_display) (element); } diff --git a/libxfce4menu/xfce-menu-element.h b/libxfce4menu/xfce-menu-element.h index 03c72835907a0d3851be4a38e2b8ba42124c5c52..f653c289bd20ec10b31715d015b8b342fd0d2496 100644 --- a/libxfce4menu/xfce-menu-element.h +++ b/libxfce4menu/xfce-menu-element.h @@ -44,18 +44,22 @@ struct _XfceMenuElementIface GTypeInterface __parent__; /* Virtual methods */ - const gchar *(*get_name) (XfceMenuElement *element); - const gchar *(*get_comment) (XfceMenuElement *element); - const gchar *(*get_icon_name) (XfceMenuElement *element); - gboolean (*get_visible) (XfceMenuElement *element); + const gchar *(*get_name) (XfceMenuElement *element); + const gchar *(*get_comment) (XfceMenuElement *element); + const gchar *(*get_icon_name) (XfceMenuElement *element); + gboolean (*get_visible) (XfceMenuElement *element); + gboolean (*get_show_in_environment) (XfceMenuElement *element); + gboolean (*get_no_display) (XfceMenuElement *element); }; GType xfce_menu_element_get_type (void) G_GNUC_CONST; -const gchar *xfce_menu_element_get_name (XfceMenuElement *element); -const gchar *xfce_menu_element_get_comment (XfceMenuElement *element); -const gchar *xfce_menu_element_get_icon_name (XfceMenuElement *element); -gboolean xfce_menu_element_get_visible (XfceMenuElement *element); +const gchar *xfce_menu_element_get_name (XfceMenuElement *element); +const gchar *xfce_menu_element_get_comment (XfceMenuElement *element); +const gchar *xfce_menu_element_get_icon_name (XfceMenuElement *element); +gboolean xfce_menu_element_get_visible (XfceMenuElement *element); +gboolean xfce_menu_element_get_show_in_environment (XfceMenuElement *element); +gboolean xfce_menu_element_get_no_display (XfceMenuElement *element); G_END_DECLS diff --git a/libxfce4menu/xfce-menu-item.c b/libxfce4menu/xfce-menu-item.c index 5adfeb0186ab87ead228f9e417352aec9139e088..9e67adf3a61674e1bb7ba744d25f72bc594ead53 100644 --- a/libxfce4menu/xfce-menu-item.c +++ b/libxfce4menu/xfce-menu-item.c @@ -67,11 +67,13 @@ static void xfce_menu_item_set_property (GObject guint prop_id, const GValue *value, GParamSpec *pspec); -static const gchar *xfce_menu_item_get_element_name (XfceMenuElement *element); -static const gchar *xfce_menu_item_get_element_comment (XfceMenuElement *element); -static const gchar *xfce_menu_item_get_element_icon_name (XfceMenuElement *element); -static gboolean xfce_menu_item_get_element_visible (XfceMenuElement *element); +static const gchar *xfce_menu_item_get_element_name (XfceMenuElement *element); +static const gchar *xfce_menu_item_get_element_comment (XfceMenuElement *element); +static const gchar *xfce_menu_item_get_element_icon_name (XfceMenuElement *element); +static gboolean xfce_menu_item_get_element_visible (XfceMenuElement *element); +static gboolean xfce_menu_item_get_element_show_in_environment (XfceMenuElement *element); +static gboolean xfce_menu_item_get_element_no_display (XfceMenuElement *element); struct _XfceMenuItemClass @@ -366,6 +368,8 @@ xfce_menu_item_element_init (XfceMenuElementIface *iface) iface->get_comment = xfce_menu_item_get_element_comment; iface->get_icon_name = xfce_menu_item_get_element_icon_name; iface->get_visible = xfce_menu_item_get_element_visible; + iface->get_show_in_environment = xfce_menu_item_get_element_show_in_environment; + iface->get_no_display = xfce_menu_item_get_element_no_display; } @@ -1099,7 +1103,7 @@ xfce_menu_item_has_category (XfceMenuItem *item, gboolean -xfce_menu_item_show_in_environment (XfceMenuItem *item) +xfce_menu_item_get_show_in_environment (XfceMenuItem *item) { const gchar *env; gboolean show = TRUE; @@ -1274,7 +1278,7 @@ xfce_menu_item_get_element_visible (XfceMenuElement *element) item = XFCE_MENU_ITEM (element); - if (!xfce_menu_item_show_in_environment (item)) + if (!xfce_menu_item_get_show_in_environment (item)) return FALSE; else if (xfce_menu_item_get_no_display (item)) return FALSE; @@ -1284,3 +1288,21 @@ xfce_menu_item_get_element_visible (XfceMenuElement *element) return TRUE; } + + +gboolean +xfce_menu_item_get_element_show_in_environment (XfceMenuElement *element) +{ + g_return_val_if_fail (XFCE_IS_MENU_ITEM (element), FALSE); + return xfce_menu_item_get_show_in_environment (XFCE_MENU_ITEM (element)); +} + + + +gboolean +xfce_menu_item_get_element_no_display (XfceMenuElement *element) +{ + g_return_val_if_fail (XFCE_IS_MENU_ITEM (element), FALSE); + return xfce_menu_item_get_no_display (XFCE_MENU_ITEM (element)); +} + diff --git a/libxfce4menu/xfce-menu-item.h b/libxfce4menu/xfce-menu-item.h index 1d56b218ed15406c3b9d3c997ecbaaad4aaf9904..d39c9943865fb6253189937e9666331f7de7f3a2 100644 --- a/libxfce4menu/xfce-menu-item.h +++ b/libxfce4menu/xfce-menu-item.h @@ -88,7 +88,7 @@ void xfce_menu_item_set_categories (XfceMenuItem *it GList *categories); gboolean xfce_menu_item_has_category (XfceMenuItem *item, const gchar *category); -gboolean xfce_menu_item_show_in_environment (XfceMenuItem *item); +gboolean xfce_menu_item_get_show_in_environment (XfceMenuItem *item); gboolean xfce_menu_item_only_show_in_environment (XfceMenuItem *item); void xfce_menu_item_ref (XfceMenuItem *item); void xfce_menu_item_unref (XfceMenuItem *item); diff --git a/libxfce4menu/xfce-menu-separator.c b/libxfce4menu/xfce-menu-separator.c index 3471cdbcfb6edd2e4252641e5c2744a39550f193..3e9dfcf794107a9aa83eed6349217ee68961f5f9 100644 --- a/libxfce4menu/xfce-menu-separator.c +++ b/libxfce4menu/xfce-menu-separator.c @@ -32,11 +32,13 @@ static void xfce_menu_separator_class_init (XfceMenuSeparator static void xfce_menu_separator_element_init (XfceMenuElementIface *iface); static void xfce_menu_separator_init (XfceMenuSeparator *separator); static void xfce_menu_separator_finalize (GObject *object); -static const gchar *xfce_menu_separator_get_element_name (XfceMenuElement *element); -static const gchar *xfce_menu_separator_get_element_comment (XfceMenuElement *element); -static const gchar *xfce_menu_separator_get_element_icon_name (XfceMenuElement *element); -static gboolean xfce_menu_separator_get_element_visible (XfceMenuElement *element); +static const gchar *xfce_menu_separator_get_element_name (XfceMenuElement *element); +static const gchar *xfce_menu_separator_get_element_comment (XfceMenuElement *element); +static const gchar *xfce_menu_separator_get_element_icon_name (XfceMenuElement *element); +static gboolean xfce_menu_separator_get_element_visible (XfceMenuElement *element); +static gboolean xfce_menu_separator_get_element_show_in_environment (XfceMenuElement *element); +static gboolean xfce_menu_separator_get_element_no_display (XfceMenuElement *element); static XfceMenuSeparator *_xfce_menu_separator = NULL; @@ -138,6 +140,8 @@ xfce_menu_separator_element_init (XfceMenuElementIface *iface) iface->get_comment = xfce_menu_separator_get_element_comment; iface->get_icon_name = xfce_menu_separator_get_element_icon_name; iface->get_visible = xfce_menu_separator_get_element_visible; + iface->get_show_in_environment = xfce_menu_separator_get_element_show_in_environment; + iface->get_no_display = xfce_menu_separator_get_element_no_display; } @@ -195,3 +199,19 @@ xfce_menu_separator_get_element_visible (XfceMenuElement *element) return TRUE; } + + +static gboolean +xfce_menu_separator_get_element_show_in_environment (XfceMenuElement *element) +{ + return TRUE; +} + + + +static gboolean +xfce_menu_separator_get_element_no_display (XfceMenuElement *element) +{ + return FALSE; +} + diff --git a/libxfce4menu/xfce-menu.c b/libxfce4menu/xfce-menu.c index 154cfa21ccf61a470452f4a56fa3e02f542d64a3..61a890d7f838ae02db744d59af75474ec71a4e14 100644 --- a/libxfce4menu/xfce-menu.c +++ b/libxfce4menu/xfce-menu.c @@ -135,6 +135,8 @@ static const gchar *xfce_menu_get_element_name (Xfce static const gchar *xfce_menu_get_element_comment (XfceMenuElement *element); static const gchar *xfce_menu_get_element_icon_name (XfceMenuElement *element); static gboolean xfce_menu_get_element_visible (XfceMenuElement *element); +static gboolean xfce_menu_get_element_show_in_environment (XfceMenuElement *element); +static gboolean xfce_menu_get_element_no_display (XfceMenuElement *element); static void xfce_menu_monitor_start (XfceMenu *menu); static void xfce_menu_monitor_stop (XfceMenu *menu); @@ -271,6 +273,8 @@ xfce_menu_element_init (XfceMenuElementIface *iface) iface->get_comment = xfce_menu_get_element_comment; iface->get_icon_name = xfce_menu_get_element_icon_name; iface->get_visible = xfce_menu_get_element_visible; + iface->get_show_in_environment = xfce_menu_get_element_show_in_environment; + iface->get_no_display = xfce_menu_get_element_no_display; } @@ -408,7 +412,7 @@ xfce_menu_new (const gchar *filename) XfceMenu *menu; GFile *file; - g_return_val_if_fail (file != NULL, NULL); + g_return_val_if_fail (filename != NULL, NULL); /* Create new menu */ file = g_file_new_for_unknown_input (filename, NULL); @@ -1501,6 +1505,40 @@ xfce_menu_get_element_visible (XfceMenuElement *element) +static gboolean +xfce_menu_get_element_show_in_environment (XfceMenuElement *element) +{ + XfceMenu *menu; + + g_return_val_if_fail (XFCE_IS_MENU (element), FALSE); + + menu = XFCE_MENU (element); + + if (menu->priv->directory == NULL) + return FALSE; + else + return xfce_menu_directory_get_show_in_environment (menu->priv->directory); +} + + + +static gboolean +xfce_menu_get_element_no_display (XfceMenuElement *element) +{ + XfceMenu *menu; + + g_return_val_if_fail (XFCE_IS_MENU (element), FALSE); + + menu = XFCE_MENU (element); + + if (menu->priv->directory == NULL) + return FALSE; + else + return xfce_menu_directory_get_no_display (menu->priv->directory); +} + + + static void item_monitor_start (const gchar *desktop_id, XfceMenuItem *item,