## RBDisplayPageGroup RBDisplayPageGroup — Display page grouping |

## Synopsis

    enum                RBDisplayPageGroupCategory;
    struct              RBDisplayPageGroup;
    struct              RBDisplayPageGroupClass;
    #define             RB_DISPLAY_PAGE_GROUP_LIBRARY
    #define             RB_DISPLAY_PAGE_GROUP_PLAYLISTS
    #define             RB_DISPLAY_PAGE_GROUP_DEVICES
    #define             RB_DISPLAY_PAGE_GROUP_SHARED
    #define             RB_DISPLAY_PAGE_GROUP_STORES
    #define             RB_DISPLAY_PAGE_GROUP_TOOLS
    void                rb_display_page_group_add_core_groups
                                                            (GObject *shell,
                                                             RBDisplayPageModel *page_model);
    RBDisplayPageGroup * rb_display_page_group_get_by_id    (const char *id);
    RBDisplayPageGroup * rb_display_page_group_new          (GObject *shell,
                                                             const char *id,
                                                             const char *name,
                                                             RBDisplayPageGroupCategory category);
    void                rb_display_page_group_loaded        (RBDisplayPageGroup *group);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----GtkHBox
                                     +----RBDisplayPage
                                           +----RBDisplayPageGroup

## Implemented Interfaces

RBDisplayPageGroup implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "category"                 RBDisplayPageGroupType  : Read / Write / Construct Only
      "id"                       gchar*                : Read / Write / Construct Only
      "loaded"                   gboolean              : Read

## Description

Page groups define sections of the display page tree. A page group consists of an internal name, a display name, and a category. The internal name can be used to locate a registered page group. The category is used to sort the page groups.

While RBDisplayPageGroup is a subclass of RBDisplayPage, by default page groups are never selectable so they have no content.

## Details

### enum RBDisplayPageGroupCategory

    typedef enum {
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_FIXED = 0,
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_REMOVABLE,
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_PERSISTENT,
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_TRANSIENT,
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_TOOLS,
    	RB_DISPLAY_PAGE_GROUP_CATEGORY_LAST
    } RBDisplayPageGroupCategory;

`RB_DISPLAY_PAGE_GROUP_CATEGORY_FIXED` |
`RB_DISPLAY_PAGE_GROUP_CATEGORY_REMOVABLE` |
`RB_DISPLAY_PAGE_GROUP_CATEGORY_PERSISTENT` |
`RB_DISPLAY_PAGE_GROUP_CATEGORY_TRANSIENT` |
`RB_DISPLAY_PAGE_GROUP_CATEGORY_TOOLS` |
`RB_DISPLAY_PAGE_GROUP_CATEGORY_LAST` |

### struct RBDisplayPageGroup

    struct RBDisplayPageGroup;

### struct RBDisplayPageGroupClass

    struct RBDisplayPageGroupClass {
    	RBDisplayPageClass parent_class;
    };

### RB_DISPLAY_PAGE_GROUP_LIBRARY

    #define RB_DISPLAY_PAGE_GROUP_LIBRARY           (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("library")))

### RB_DISPLAY_PAGE_GROUP_PLAYLISTS

    #define RB_DISPLAY_PAGE_GROUP_PLAYLISTS         (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("playlists")))

### RB_DISPLAY_PAGE_GROUP_DEVICES

    #define RB_DISPLAY_PAGE_GROUP_DEVICES           (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("devices")))

### RB_DISPLAY_PAGE_GROUP_SHARED

    #define RB_DISPLAY_PAGE_GROUP_SHARED            (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("shared")))

### RB_DISPLAY_PAGE_GROUP_STORES

    #define RB_DISPLAY_PAGE_GROUP_STORES            (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("stores")))

### RB_DISPLAY_PAGE_GROUP_TOOLS

    #define RB_DISPLAY_PAGE_GROUP_TOOLS             (RB_DISPLAY_PAGE (rb_display_page_group_get_by_id ("tools")))

### rb_display_page_group_add_core_groups ()

    void                rb_display_page_group_add_core_groups
                                                            (GObject *shell,
                                                             RBDisplayPageModel *page_model);

Registers core page groups.

`shell` : | the RBShell
`page_model` : | the RBDisplayPageModel

### rb_display_page_group_get_by_id ()

    RBDisplayPageGroup * rb_display_page_group_get_by_id    (const char *id);

Locates a page group by name. If the page group has not been registered yet, returns NULL instead.

`id` : | name of page group to find
Returns : | existing page group, or NULL. [transfer none]

### rb_display_page_group_new ()

    RBDisplayPageGroup * rb_display_page_group_new          (GObject *shell,
                                                             const char *id,
                                                             const char *name,
                                                             RBDisplayPageGroupCategory category);

Creates a new page group object. The group will be registered before it is returned.

`shell` : | the RBShell
`id` : | name of the page group (untranslated, used in code)
`name` : | display name of the page group (translated)
`category` : | category for the page group
Returns : | new page group

### rb_display_page_group_loaded ()

    void                rb_display_page_group_loaded        (RBDisplayPageGroup *group);

Called when the page group is fully loaded, that is, all initial pages have been added.

`group` : | a RBDisplayPageGroup

## Property Details

### The `"category"` property

      "category"                 RBDisplayPageGroupType  : Read / Write / Construct Only

Page group category that the group falls into

Default value: RB_DISPLAY_PAGE_GROUP_CATEGORY_FIXED

### The `"id"` property

      "id"                       gchar*                : Read / Write / Construct Only

Internal (untranslated) name for the page group

Default value: NULL

### The `"loaded"` property

      "loaded"                   gboolean              : Read

Whether the group is loaded.

Default value: FALSE