## garcon-menu-node

garcon-menu-node

## Synopsis

    enum                GarconMenuLayoutMergeType;
    enum                GarconMenuMergeFileType;
                        GarconMenuNode;
                        GarconMenuNodeClass;
    union               GarconMenuNodeData;
    enum                GarconMenuNodeType;
    GarconMenuNode *    garcon_menu_node_copy               (GarconMenuNode *node);
    GarconMenuNode *    garcon_menu_node_create             (GarconMenuNodeType node_type,
                                                             gpointer first_value,
                                                             ...);
    const gchar *       garcon_menu_node_get_merge_file_filename
                                                            (GarconMenuNode *node);
    GarconMenuMergeFileType garcon_menu_node_get_merge_file_type
                                                            (GarconMenuNode *node);
    GarconMenuNodeType  garcon_menu_node_get_node_type      (GarconMenuNode *node);
    const gchar *       garcon_menu_node_get_string         (GarconMenuNode *node);
    GarconMenuNode *    garcon_menu_node_new                (GarconMenuNodeType node_type);
    void                garcon_menu_node_set_merge_file_filename
                                                            (GarconMenuNode *node,
                                                             const gchar *filename);
    void                garcon_menu_node_set_merge_file_type
                                                            (GarconMenuNode *node,
                                                             GarconMenuMergeFileType type);
    void                garcon_menu_node_set_string         (GarconMenuNode *node,
                                                             const gchar *value);
    gint                garcon_menu_node_tree_compare       (GNode *tree,
                                                             GNode *other_tree);
    GNode *             garcon_menu_node_tree_copy          (GNode *tree);
    void                garcon_menu_node_tree_free          (GNode *tree);
    void                garcon_menu_node_tree_free_data     (GNode *tree);
    gboolean            garcon_menu_node_tree_get_boolean_child
                                                            (GNode *tree,
                                                             GarconMenuNodeType type);
    GNode *             garcon_menu_node_tree_get_child_node
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);
    GList *             garcon_menu_node_tree_get_child_nodes
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);
    GarconMenuLayoutMergeType garcon_menu_node_tree_get_layout_merge_type
                                                            (GNode *tree);
    const gchar *       garcon_menu_node_tree_get_merge_file_filename
                                                            (GNode *tree);
    GarconMenuMergeFileType garcon_menu_node_tree_get_merge_file_type
                                                            (GNode *tree);
    GarconMenuNodeType  garcon_menu_node_tree_get_node_type (GNode *tree);
    const gchar *       garcon_menu_node_tree_get_string    (GNode *tree);
    const gchar *       garcon_menu_node_tree_get_string_child
                                                            (GNode *tree,
                                                             GarconMenuNodeType type);
    GList *             garcon_menu_node_tree_get_string_children
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);
    gboolean            garcon_menu_node_tree_rule_matches  (GNode *tree,
                                                             GarconMenuItem *item);
    void                garcon_menu_node_tree_set_merge_file_filename
                                                            (GNode *tree,
                                                             const gchar *filename);
    void                garcon_menu_node_tree_set_string    (GNode *tree,
                                                             const gchar *value);

## Object Hierarchy

      GObject
       +----GarconMenuNode

## Properties

      "node-type"                GarconMenuNodeType    : Read / Write

## Description

## Details

### enum GarconMenuLayoutMergeType

    typedef enum {
      GARCON_MENU_LAYOUT_MERGE_MENUS,
      GARCON_MENU_LAYOUT_MERGE_FILES,
      GARCON_MENU_LAYOUT_MERGE_ALL,
    } GarconMenuLayoutMergeType;

### enum GarconMenuMergeFileType

    typedef enum {
      GARCON_MENU_MERGE_FILE_PATH,
      GARCON_MENU_MERGE_FILE_PARENT,
    } GarconMenuMergeFileType;

### GarconMenuNode

    typedef struct _GarconMenuNode GarconMenuNode;

### GarconMenuNodeClass

    typedef struct _GarconMenuNodeClass GarconMenuNodeClass;

### union GarconMenuNodeData

### enum GarconMenuNodeType

    typedef enum {
      GARCON_MENU_NODE_TYPE_INVALID,
      GARCON_MENU_NODE_TYPE_MENU,
      GARCON_MENU_NODE_TYPE_NAME,
      GARCON_MENU_NODE_TYPE_DIRECTORY,
      GARCON_MENU_NODE_TYPE_DIRECTORY_DIR,
      GARCON_MENU_NODE_TYPE_DEFAULT_DIRECTORY_DIRS,
      GARCON_MENU_NODE_TYPE_APP_DIR,
      GARCON_MENU_NODE_TYPE_DEFAULT_APP_DIRS,
      GARCON_MENU_NODE_TYPE_ONLY_UNALLOCATED,
      GARCON_MENU_NODE_TYPE_NOT_ONLY_UNALLOCATED,
      GARCON_MENU_NODE_TYPE_DELETED,
      GARCON_MENU_NODE_TYPE_NOT_DELETED,
      GARCON_MENU_NODE_TYPE_INCLUDE,
      GARCON_MENU_NODE_TYPE_EXCLUDE,
      GARCON_MENU_NODE_TYPE_ALL,
      GARCON_MENU_NODE_TYPE_FILENAME,
      GARCON_MENU_NODE_TYPE_CATEGORY,
      GARCON_MENU_NODE_TYPE_OR,
      GARCON_MENU_NODE_TYPE_AND,
      GARCON_MENU_NODE_TYPE_NOT,
      GARCON_MENU_NODE_TYPE_MOVE,
      GARCON_MENU_NODE_TYPE_OLD,
      GARCON_MENU_NODE_TYPE_NEW,
      GARCON_MENU_NODE_TYPE_DEFAULT_LAYOUT,
      GARCON_MENU_NODE_TYPE_LAYOUT,
      GARCON_MENU_NODE_TYPE_MENUNAME,
      GARCON_MENU_NODE_TYPE_SEPARATOR,
      GARCON_MENU_NODE_TYPE_MERGE,
      GARCON_MENU_NODE_TYPE_MERGE_FILE,
      GARCON_MENU_NODE_TYPE_MERGE_DIR,
      GARCON_MENU_NODE_TYPE_DEFAULT_MERGE_DIRS,
    } GarconMenuNodeType;

### garcon_menu_node_copy ()

    GarconMenuNode *    garcon_menu_node_copy               (GarconMenuNode *node);

### garcon_menu_node_create ()

    GarconMenuNode *    garcon_menu_node_create             (GarconMenuNodeType node_type,
                                                             gpointer first_value,
                                                             ...);

### garcon_menu_node_get_merge_file_filename ()

    const gchar *       garcon_menu_node_get_merge_file_filename
                                                            (GarconMenuNode *node);

### garcon_menu_node_get_merge_file_type ()

    GarconMenuMergeFileType garcon_menu_node_get_merge_file_type
                                                            (GarconMenuNode *node);

### garcon_menu_node_get_node_type ()

    GarconMenuNodeType  garcon_menu_node_get_node_type      (GarconMenuNode *node);

### garcon_menu_node_get_string ()

    const gchar *       garcon_menu_node_get_string         (GarconMenuNode *node);

### garcon_menu_node_new ()

    GarconMenuNode *    garcon_menu_node_new                (GarconMenuNodeType node_type);

### garcon_menu_node_set_merge_file_filename ()

    void                garcon_menu_node_set_merge_file_filename
                                                            (GarconMenuNode *node,
                                                             const gchar *filename);

### garcon_menu_node_set_merge_file_type ()

    void                garcon_menu_node_set_merge_file_type
                                                            (GarconMenuNode *node,
                                                             GarconMenuMergeFileType type);

### garcon_menu_node_set_string ()

    void                garcon_menu_node_set_string         (GarconMenuNode *node,
                                                             const gchar *value);

### garcon_menu_node_tree_compare ()

    gint                garcon_menu_node_tree_compare       (GNode *tree,
                                                             GNode *other_tree);

### garcon_menu_node_tree_copy ()

    GNode *             garcon_menu_node_tree_copy          (GNode *tree);

### garcon_menu_node_tree_free ()

    void                garcon_menu_node_tree_free          (GNode *tree);

### garcon_menu_node_tree_free_data ()

    void                garcon_menu_node_tree_free_data     (GNode *tree);

### garcon_menu_node_tree_get_boolean_child ()

    gboolean            garcon_menu_node_tree_get_boolean_child
                                                            (GNode *tree,
                                                             GarconMenuNodeType type);

### garcon_menu_node_tree_get_child_node ()

    GNode *             garcon_menu_node_tree_get_child_node
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);

### garcon_menu_node_tree_get_child_nodes ()

    GList *             garcon_menu_node_tree_get_child_nodes
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);

### garcon_menu_node_tree_get_layout_merge_type ()

    GarconMenuLayoutMergeType garcon_menu_node_tree_get_layout_merge_type
                                                            (GNode *tree);

### garcon_menu_node_tree_get_merge_file_filename ()

    const gchar *       garcon_menu_node_tree_get_merge_file_filename
                                                            (GNode *tree);

### garcon_menu_node_tree_get_merge_file_type ()

    GarconMenuMergeFileType garcon_menu_node_tree_get_merge_file_type
                                                            (GNode *tree);

### garcon_menu_node_tree_get_node_type ()

    GarconMenuNodeType  garcon_menu_node_tree_get_node_type (GNode *tree);

### garcon_menu_node_tree_get_string ()

    const gchar *       garcon_menu_node_tree_get_string    (GNode *tree);

### garcon_menu_node_tree_get_string_child ()

    const gchar *       garcon_menu_node_tree_get_string_child
                                                            (GNode *tree,
                                                             GarconMenuNodeType type);

### garcon_menu_node_tree_get_string_children ()

    GList *             garcon_menu_node_tree_get_string_children
                                                            (GNode *tree,
                                                             GarconMenuNodeType type,
                                                             gboolean reverse);

### garcon_menu_node_tree_rule_matches ()

    gboolean            garcon_menu_node_tree_rule_matches  (GNode *tree,
                                                             GarconMenuItem *item);

### garcon_menu_node_tree_set_merge_file_filename ()

    void                garcon_menu_node_tree_set_merge_file_filename
                                                            (GNode *tree,
                                                             const gchar *filename);

### garcon_menu_node_tree_set_string ()

    void                garcon_menu_node_tree_set_string    (GNode *tree,
                                                             const gchar *value);

## Property Details

### The `"node-type"` property

      "node-type"                GarconMenuNodeType    : Read / Write

node-type.

Default value: GARCON_MENU_NODE_TYPE_MENU