Gnome User Interface Library Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# GnomeMDIGenericChild

## Name

GnomeMDIGenericChild -- A generic GnomeMDI child

## Synopsis

    #include <gnome.h>

    struct      GnomeMDIGenericChild;
    GnomeMDIGenericChild* gnome_mdi_generic_child_new
                                                (gchar *name);
    void        gnome_mdi_generic_child_set_view_creator
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildViewCreator func,
                                                 gpointer data);
    void        gnome_mdi_generic_child_set_view_creator_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildViewCreator func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);
    void        gnome_mdi_generic_child_set_menu_creator
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildMenuCreator func,
                                                 gpointer data);
    void        gnome_mdi_generic_child_set_menu_creator_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildMenuCreator func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);
    void        gnome_mdi_generic_child_set_config_func
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildConfigFunc func,
                                                 gpointer data);
    void        gnome_mdi_generic_child_set_config_func_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildConfigFunc func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);
    void        gnome_mdi_generic_child_set_label_func
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildLabelFunc func,
                                                 gpointer data);
    void        gnome_mdi_generic_child_set_label_func_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildLabelFunc func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);

## Object Hierarchy

      GtkObject
       +----GnomeMDIChild
             +----GnomeMDIGenericChild

## Description

GnomeMDIGenericChild is a subclass of GnomeMDIChild that allows for defining of GnomeMDIChild's virtual functions on a per-instance rather than on per-class basis. Thus the programmer does not have to subclass GnomeMDIChild but can use GnomeMDIGenericChild class directly.

Only the view creating function is mandatory. It has to be set with gnome_mdi_generic_child_set_view_creator() or gnome_mdi_generic_child_set_view_creator_full(). A simple default implementation of notebook label creation is provided by GnomeMDIChild class. The other two functions are optional.

## Details

### struct GnomeMDIGenericChild

    struct GnomeMDIGenericChild;

### gnome_mdi_generic_child_new ()

    GnomeMDIGenericChild* gnome_mdi_generic_child_new
                                                (gchar *name);

Creates a new mdi child, which has the ability to set view creators, etc on an instance basis (rather than on a class basis like &GnomeMDIChild).

After creation, you will need to set, at a minimum, the view creator function.

`name` : | the name of this MDI child.
Returns : | A newly created &GnomeMDIGenericChild object.

### gnome_mdi_generic_child_set_view_creator ()

    void        gnome_mdi_generic_child_set_view_creator
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildViewCreator func,
                                                 gpointer data);

This function sets the function that is used to create new views for this particular mdi child object. The function should return a newly created widget (the view).

A &GnomeMDIGenericChild must have a view creator.

`child` : | the mdi child object
`func` : | a function used to create views
`data` : | optional user data.

### gnome_mdi_generic_child_set_view_creator_full ()

    void        gnome_mdi_generic_child_set_view_creator_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildViewCreator func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);

Similar to gnome_mdi_generic_child_set_view_creator(), except that it gives more control to the programmer. If `marshal` is not `NULL`, then it will be called instead of `func`.

The &GtkArg array passed to `marshal` will be of length 2. The first element will be `child`, and the second is the return value (a pointer to a &GtkWidget).

`child` : | the mdi child object
`func` : | a function to create views (not used if `marshal` != `NULL`)
`marshal` : | a callback marshaller
`data` : | optional user data
`notify` : | a function used to free the user data.

### gnome_mdi_generic_child_set_menu_creator ()

    void        gnome_mdi_generic_child_set_menu_creator
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildMenuCreator func,
                                                 gpointer data);

Sets the function used to create child specific menus. The function should return a &GList of the menus created.

A &GnomeMDIGenericChild doesn't require a menu creator.

`child` : | the mdi child object
`func` : | a function to create a list of child specific menus
`data` : | optional user data

### gnome_mdi_generic_child_set_menu_creator_full ()

    void        gnome_mdi_generic_child_set_menu_creator_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildMenuCreator func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);

This function is similar to gnome_mdi_generic_child_set_menu_creator(), but gives extra flexibility to the programmer, in the form of a a destroy notify for the user data, and a callback marshaller.

The &GtkArg array passed to `marshal` is of length 3. The first element will be `child`, the second will be a view of `child`, and the third is the return value (a pointer to the returned GList).

`child` : | the mdi child object
`func` : | a menu creator function (not used if `marshal` != `NULL`)
`marshal` : | a callback marshaller
`data` : | optional user data
`notify` : | a destroy notify for the data

### gnome_mdi_generic_child_set_config_func ()

    void        gnome_mdi_generic_child_set_config_func
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildConfigFunc func,
                                                 gpointer data);

Sets the function used to get the config key used for session saves.

A &GnomeMDIGenericChild doesn't require a config func.

`child` : | the mdi child object
`func` : | a function to set the config key for session saves
`data` : | optional user data

### gnome_mdi_generic_child_set_config_func_full ()

    void        gnome_mdi_generic_child_set_config_func_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildConfigFunc func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);

A function similar to gnome_mdi_generic_child_set_config_func(), except it gives more control to the programmer.

The &GtkArg array passed to `marshal` is of length 2. The first element is `child`, and the second is the return value (a pointer to a string).

`child` : | the mdi child object
`func` : | a function (not used if `marshal` != `NULL`)
`marshal` : | a callback marshaller
`data` : | optional user data
`notify` : | a destroy notify for the user data

### gnome_mdi_generic_child_set_label_func ()

    void        gnome_mdi_generic_child_set_label_func
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildLabelFunc func,
                                                 gpointer data);

Sets the function used to set (or modify) the label for `child`. The first argument to `func` is `child`. If a label exists, it will be passed to `func` as the second argument, otherwise, `NULL` is passed. The function should return the modified label.

A &GnomeMDIGenericChild doesn't require a label function.

`child` : | a mdi child object
`func` : | a function
`data` : | optional user data

### gnome_mdi_generic_child_set_label_func_full ()

    void        gnome_mdi_generic_child_set_label_func_full
                                                (GnomeMDIGenericChild *child,
                                                 GnomeMDIChildLabelFunc func,
                                                 GtkCallbackMarshal marshal,
                                                 gpointer data,
                                                 GtkDestroyNotify notify);

Similar to gnome_mdi_generic_child_set_label_func(), except it gives more flexibility to the programmer.

The &GtkArg array passed to `marshal` is of length 3. The first argument is `child`, the second is the old widget (or `NULL`), and the third is the return value (a pointer to a &GtkWidget).

`child` : | the mdi child object
`func` : | a function (not used if `marshal` != `NULL`)
`marshal` : | a callback marshaller
`data` : | optional user data
`notify` : | a destroy notify for the data

<<< Previous Page | Home | Up | Next Page >>>
GnomeMDIChild | GnomeMDI