XfceMenu

XfceMenu

Synopsis

#include <libxfce4menu/libxfce4menu.h>

                    XfceMenuPrivate;
                    XfceMenuClass;
                    XfceMenu;
XfceMenu *          xfce_menu_get_root                  (GError **error);
XfceMenu *          xfce_menu_new                       (const gchar *filename,
                                                         GError **error);
const gchar *       xfce_menu_get_filename              (XfceMenu *menu);
void                xfce_menu_set_filename              (XfceMenu *menu,
                                                         const gchar *filename);
const gchar *       xfce_menu_get_name                  (XfceMenu *menu);
void                xfce_menu_set_name                  (XfceMenu *menu,
                                                         const gchar *name);
XfceMenuDirectory * xfce_menu_get_directory             (XfceMenu *menu);
void                xfce_menu_set_directory             (XfceMenu *menu,
                                                         XfceMenuDirectory *directory);
GSList *            xfce_menu_get_directory_dirs        (XfceMenu *menu);
GSList *            xfce_menu_get_legacy_dirs           (XfceMenu *menu);
GSList *            xfce_menu_get_app_dirs              (XfceMenu *menu);
gboolean            xfce_menu_get_only_unallocated      (XfceMenu *menu);
void                xfce_menu_set_only_unallocated      (XfceMenu *menu,
                                                         gboolean only_unallocated);
gboolean            xfce_menu_get_deleted               (XfceMenu *menu);
void                xfce_menu_set_deleted               (XfceMenu *menu,
                                                         gboolean deleted);
GSList *            xfce_menu_get_menus                 (XfceMenu *menu);
void                xfce_menu_add_menu                  (XfceMenu *menu,
                                                         XfceMenu *submenu);
XfceMenu *          xfce_menu_get_menu_with_name        (XfceMenu *menu,
                                                         const gchar *name);
XfceMenu *          xfce_menu_get_parent                (XfceMenu *menu);
XfceMenuItemPool *  xfce_menu_get_item_pool             (XfceMenu *menu);
GSList *            xfce_menu_get_items                 (XfceMenu *menu);
gboolean            xfce_menu_has_layout                (XfceMenu *menu);
GSList *            xfce_menu_get_layout_elements       (XfceMenu *menu);

Object Hierarchy

  GObject
   +----XfceMenu

Implemented Interfaces

XfceMenu implements XfceMenuElement.

Properties

  "deleted"                  gboolean              : Read / Write
  "directory"                XfceMenuDirectory*    : Read / Write
  "filename"                 gchar*                : Read / Write
  "name"                     gchar*                : Read / Write
  "only-unallocated"         gboolean              : Read / Write

Description

XfceMenu is the most important part of libxfce4menu. In almost all use cases the first thing to be created is an XfceMenu based on a filename.

Details

XfceMenuPrivate

typedef struct _XfceMenuPrivate XfceMenuPrivate;


XfceMenuClass

typedef struct _XfceMenuClass XfceMenuClass;


XfceMenu

typedef struct _XfceMenu XfceMenu;


xfce_menu_get_root ()

XfceMenu *          xfce_menu_get_root                  (GError **error);

Loads the system's root menu. This may take some time as it involves parsing and merging a lot of files. So if you call this function from a GUI program it should be done in a way that won't block the user interface (e.g. by using a worker thread). The returned pointer needs to be released using

1
g_object_unref (menu);

when no longer needed.

error :

Return location for errors or NULL.

Returns :

The system root menu. The menu has to be released when no longer needed.

xfce_menu_new ()

XfceMenu *          xfce_menu_new                       (const gchar *filename,
                                                         GError **error);

Parses a file and returns the menu structure found in this file. This may involve parsing and merging of a lot of other files. So if you call this function from a GUI program it should be done in a way that won't block the user interface (e.g. by using a worker thread). The returned pointer needs to be released using

1
g_object_unref (menu);

when it is not used anymore.

filename :

filename containing the menu structure you want to load.

error :

return location for errors or NULL.

Returns :

Menu structure found in filename.

xfce_menu_get_filename ()

const gchar *       xfce_menu_get_filename              (XfceMenu *menu);

Returns the filename from which menu was loaded.

menu :

a XfceMenu.

Returns :

filename from which menu was loaded.

xfce_menu_set_filename ()

void                xfce_menu_set_filename              (XfceMenu *menu,
                                                         const gchar *filename);

Sets the menu filename. It should not be necessary to call this function anywhere - it's only of internal use.

menu :

a XfceMenu.

filename :

new filename of the menu.

xfce_menu_get_name ()

const gchar *       xfce_menu_get_name                  (XfceMenu *menu);

Returns the name of menu. In most cases this will be the contents of the <Menu> element. It may be useful for providing a display name for the menu if it does not have a menu directory.

menu :

a XfceMenu.

Returns :

name of menu.

xfce_menu_set_name ()

void                xfce_menu_set_name                  (XfceMenu *menu,
                                                         const gchar *name);

Sets the name of menu. This might come in handy if you want to replace certain menu names with your own names. However, in most cases this function won't be useful.

menu :

a XfceMenu

name :

new name of the menu.

xfce_menu_get_directory ()

XfceMenuDirectory * xfce_menu_get_directory             (XfceMenu *menu);

Returns the XfceMenuDirectory of menu or NULL. The menu directory may contain a lot of useful information about the menu, like display name, desktop environments it should show up in etc.

menu :

a XfceMenu.

Returns :

XfceMenuDirectory of menu or NULL.

xfce_menu_set_directory ()

void                xfce_menu_set_directory             (XfceMenu *menu,
                                                         XfceMenuDirectory *directory);

Replaces the XfceMenuDirectory of menu with directory. This may be useful if menu has no directory or if you want to define your own directory for menus. Usually, there's no need to call this function.

menu :

a XfceMenu.

directory :

a XfceMenuDirectory.

xfce_menu_get_directory_dirs ()

GSList *            xfce_menu_get_directory_dirs        (XfceMenu *menu);

Returns a list with all directory dirs of menu. Collects directory dirs from menu up to the root menu so that the root menu directory dirs come first.

menu :

a XfceMenu

Returns :

List with all relevant directory dirs of menu.

xfce_menu_get_legacy_dirs ()

GSList *            xfce_menu_get_legacy_dirs           (XfceMenu *menu);

menu :

Returns :


xfce_menu_get_app_dirs ()

GSList *            xfce_menu_get_app_dirs              (XfceMenu *menu);

menu :

Returns :


xfce_menu_get_only_unallocated ()

gboolean            xfce_menu_get_only_unallocated      (XfceMenu *menu);

Returns whether menu only contains XfceMenuItems which are not already included in other menus.

menu :

a XfceMenu.

Returns :

Whether the menu contains only items not used already included in other menus.

xfce_menu_set_only_unallocated ()

void                xfce_menu_set_only_unallocated      (XfceMenu *menu,
                                                         gboolean only_unallocated);

Since all items are resolved directly after parsing the menu file, this won't be useful other than internally.

menu :

a XfceMenu.

only_unallocated :

Whether to include only unused XfceMenuItems

xfce_menu_get_deleted ()

gboolean            xfce_menu_get_deleted               (XfceMenu *menu);

menu :

Returns :


xfce_menu_set_deleted ()

void                xfce_menu_set_deleted               (XfceMenu *menu,
                                                         gboolean deleted);

menu :

deleted :


xfce_menu_get_menus ()

GSList *            xfce_menu_get_menus                 (XfceMenu *menu);

menu :

Returns :


xfce_menu_add_menu ()

void                xfce_menu_add_menu                  (XfceMenu *menu,
                                                         XfceMenu *submenu);

menu :

submenu :


xfce_menu_get_menu_with_name ()

XfceMenu *          xfce_menu_get_menu_with_name        (XfceMenu *menu,
                                                         const gchar *name);

menu :

name :

Returns :


xfce_menu_get_parent ()

XfceMenu *          xfce_menu_get_parent                (XfceMenu *menu);

menu :

Returns :


xfce_menu_get_item_pool ()

XfceMenuItemPool *  xfce_menu_get_item_pool             (XfceMenu *menu);

menu :

Returns :


xfce_menu_get_items ()

GSList *            xfce_menu_get_items                 (XfceMenu *menu);

Convenience wrapper around xfce_menu_get_item_pool(), which simply returns the XfceMenuItems contained within the associated item pool as singly linked list.

The caller is responsible to free the returned list using

1
g_slist_free (list);

when no longer needed.

menu :

a XfceMenu.

Returns :

the list of XfceMenuItems within this menu.

xfce_menu_has_layout ()

gboolean            xfce_menu_has_layout                (XfceMenu *menu);

menu :

Returns :


xfce_menu_get_layout_elements ()

GSList *            xfce_menu_get_layout_elements       (XfceMenu *menu);

menu :

Returns :

Property Details

The "deleted" property

  "deleted"                  gboolean              : Read / Write

Whether this menu should be ignored.

Default value: FALSE


The "directory" property

  "directory"                XfceMenuDirectory*    : Read / Write

The directory entry associated with this menu.


The "filename" property

  "filename"                 gchar*                : Read / Write

The filename of an XfceMenu object. Whenever this is redefined, the menu is reloaded.

Default value: NULL


The "name" property

  "name"                     gchar*                : Read / Write

The name of the menu.

Default value: NULL


The "only-unallocated" property

  "only-unallocated"         gboolean              : Read / Write

Whether this menu should only contain desktop entries not used by other menus.

Default value: FALSE