## Application Application — the rhythmbox subclass of GtkApplication |

## Functions

GApplication * | rb_application_new ()
int | rb_application_run ()
void | rb_application_link_shared_menus ()
void | rb_application_add_shared_menu ()
GMenuModel * | rb_application_get_shared_menu ()
GMenuModel * | rb_application_get_plugin_menu ()
void | rb_application_add_plugin_menu_item ()
void | rb_application_remove_plugin_menu_item ()

## Properties

RBShell * | shell | Read

## Types and Values

struct | RBApplication
struct | RBApplicationClass

## Object Hierarchy

        GObject
        ╰── GApplication
            ╰── GtkApplication
                ╰── RBApplication

## Implemented Interfaces

RBApplication implements GActionGroup and GActionMap.

## Description

RBApplication contains some interactions with the desktop environment, such as the app menu and processing of files specified on the command line.

## Functions

### rb_application_new ()

    GApplication *
    rb_application_new (void);

Creates the application instance.

#### Returns

application instance

### rb_application_run ()

    int
    rb_application_run (RBApplication *app,
                        int argc,
                        char **argv);

Runs the application

#### Parameters

app | the application instance |
argc | arg count |
argv | arg values |

#### Returns

exit code

### rb_application_link_shared_menus ()

    void
    rb_application_link_shared_menus (RBApplication *app,
                                      GMenu *menu);

Processes shared menu links in the given menu. Menu links take the form of items with "rb-menu-link" or "rb-plugin-menu-link" and "rb-menu-link-type" attributes. "rb-menu-link" specifies the name of a shared menu to link in, "rb-plugin-menu-link" specifies the name of a plugin menu to link in, "rb-menu-link-type" specifies the link type, either "section" or "submenu". A link item must have "rb-menu-link-type" and one of "rb-menu-link" or "rb-plugin-menu-link".

#### Parameters

app | the RBApplication |
menu | a GMenu to process |

### rb_application_add_shared_menu ()

    void
    rb_application_add_shared_menu (RBApplication *app,
                                    const char *name,
                                    GMenuModel *menu);

Adds a menu model to the set of shared menus available for linking into other menus.

#### Parameters

app | the application instance |
name | a name for the menu |
menu | GMenuModel instance |

### rb_application_get_shared_menu ()

    GMenuModel *
    rb_application_get_shared_menu (RBApplication *app,
                                    const char *name);

Returns a shared menu instance added with `rb_application_add_shared_menu`

#### Parameters

app | the application instance |
name | name of menu to return |

#### Returns

menu model instance, or NULL if not found.

[transfer none]

### rb_application_get_plugin_menu ()

    GMenuModel *
    rb_application_get_plugin_menu (RBApplication *app,
                                    const char *menu);

Returns a plugin menu instance. Plugin menus are like shared menus except they are created empty on first access, and they consist solely of entries added through `rb_application_add_plugin_item` .

#### Parameters

app | the application instance |
menu | name of plugin menu to return |

#### Returns

plugin menu instance.

[transfer none]

### rb_application_add_plugin_menu_item ()

    void
    rb_application_add_plugin_menu_item (RBApplication *app,
                                         const char *menu,
                                         const char *id,
                                         GMenuItem *item);

Adds an item to a plugin menu. The id can be used to remove the item.

#### Parameters

app | the application instance |
menu | name of the menu to add to |
id | id of the item to add (used to remove it, must be unique within the menu) |
item | menu item to add |

### rb_application_remove_plugin_menu_item ()

    void
    rb_application_remove_plugin_menu_item
                                   (RBApplication *app,
                                    const char *menu,
                                    const char *id);

## Types and Values

### struct RBApplication

    struct RBApplication;

### struct RBApplicationClass

    struct RBApplicationClass {
    	GtkApplicationClass parent_class;
    };

## Property Details

### The `“shell”` property

      “shell”                    RBShell *

RBShell instance.

Flags: Read