BrowserPage: GdaBrowser hacking manual

## BrowserPage BrowserPage — A "page" within a BrowserPerspective widget |

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | BROWSER_PAGE()
#define | IS_BROWSER_PAGE()
#define | BROWSER_PAGE_GET_CLASS()
GType | browser_page_get_type ()
GtkActionGroup * | browser_page_get_actions_group ()
const gchar * | browser_page_get_actions_ui ()
BrowserPerspective * | browser_page_get_perspective ()
GtkWidget * | browser_page_get_tab_label ()

## Types and Values

#define | BROWSER_PAGE_TYPE
| BrowserPageIface

## Description

Some widgets packed within a BrowserPerspective can implement the BrowserPage interface to specify their specific actions and menu and toolbar customizations. When they are packed in a notebook, they can also request some specific tab labels.

## Functions

### BROWSER_PAGE()

    #define BROWSER_PAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, BROWSER_PAGE_TYPE, BrowserPage))

### IS_BROWSER_PAGE()

    #define IS_BROWSER_PAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, BROWSER_PAGE_TYPE))

### BROWSER_PAGE_GET_CLASS()

    #define BROWSER_PAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BROWSER_PAGE_TYPE, BrowserPageIface))

### browser_page_get_type ()

    GType
    browser_page_get_type (void);

### browser_page_get_actions_group ()

    GtkActionGroup *
    browser_page_get_actions_group (BrowserPage *page);

Get the GtkActionGroup from a `page` to represent its specific actions.

#### Parameters

page | an object implementing the BrowserPage interface |

#### Returns

a new GtkActionGroup

### browser_page_get_actions_ui ()

    const gchar *
    browser_page_get_actions_ui (BrowserPage *page);

Get the UI definition from `page` to represent how its specific actions (obtained using `browser_page_get_actions_group()`) are to be integrated in a BrowserWindow's menu and toolbar.

#### Parameters

page | an object implementing the BrowserPage interface |

#### Returns

a read-only string

### browser_page_get_perspective ()

    BrowserPerspective *
    browser_page_get_perspective (BrowserPage *page);

Finds the BrowserPerspective in which `page` is. Note that the BrowserPerspective may have changed since a previous call as users are allowed to do some drag and drop between browser's windows which contain different BrowserPerspective objects.

#### Parameters

page | an object implementing the BrowserPage interface |

#### Returns

the BrowserPerspective

### browser_page_get_tab_label ()

    GtkWidget *
    browser_page_get_tab_label (BrowserPage *page,
                                GtkWidget **out_close_button);

Get a new widget to be packed in a notebook's tab label.

If `out_close_button` is not `NULL`, then the implementation may decide to add a button to close the tab; if `out_close_button` is `NULL`, then it should not add any close button.

#### Parameters

page | an object implementing the BrowserPage interface |
out_close_button | a place holder to hold a pointer to a close button |

#### Returns

a new GtkWidget, or `NULL`

## Types and Values

### BROWSER_PAGE_TYPE

    #define BROWSER_PAGE_TYPE            (browser_page_get_type())

### BrowserPageIface

    typedef struct {
    	GTypeInterface           g_iface;

    	/* virtual table */
    	GtkActionGroup      *(* i_get_actions_group) (BrowserPage *page);
    	const gchar         *(* i_get_actions_ui) (BrowserPage *page);
    	GtkWidget           *(* i_get_tab_label) (BrowserPage *page, GtkWidget **out_close_button);
    } BrowserPageIface;