GnomeMDI

Name

GnomeMDI -- 

Synopsis



enum        GnomeMDIMode;
GtkObject*  gnome_mdi_new                   (const gchar *appname,
                                             const gchar *title);
void        gnome_mdi_set_mode              (GnomeMDI *mdi,
                                             GnomeMDIMode mode);
void        gnome_mdi_set_menubar_template  (GnomeMDI *mdi,
                                             GnomeUIInfo *menu_tmpl);
void        gnome_mdi_set_toolbar_template  (GnomeMDI *mdi,
                                             GnomeUIInfo *tbar_tmpl);
void        gnome_mdi_set_child_menu_path   (GnomeMDI *mdi,
                                             const gchar *path);
void        gnome_mdi_set_child_list_path   (GnomeMDI *mdi,
                                             const gchar *path);
gint        gnome_mdi_add_view              (GnomeMDI *mdi,
                                             GnomeMDIChild *child);
gint        gnome_mdi_add_toplevel_view     (GnomeMDI *mdi,
                                             GnomeMDIChild *child);
gint        gnome_mdi_remove_view           (GnomeMDI *mdi,
                                             GtkWidget *view,
                                             gint force);
GtkWidget*  gnome_mdi_get_active_view       (GnomeMDI *mdi);
void        gnome_mdi_set_active_view       (GnomeMDI *mdi,
                                             GtkWidget *view);
gint        gnome_mdi_add_child             (GnomeMDI *mdi,
                                             GnomeMDIChild *child);
gint        gnome_mdi_remove_child          (GnomeMDI *mdi,
                                             GnomeMDIChild *child,
                                             gint force);
gint        gnome_mdi_remove_all            (GnomeMDI *mdi,
                                             gint force);
void        gnome_mdi_open_toplevel         (GnomeMDI *mdi);
void        gnome_mdi_update_child          (GnomeMDI *mdi,
                                             GnomeMDIChild *child);
GnomeMDIChild* gnome_mdi_get_active_child   (GnomeMDI *mdi);
GnomeMDIChild* gnome_mdi_find_child         (GnomeMDI *mdi,
                                             const gchar *name);
GnomeApp*   gnome_mdi_get_active_window     (GnomeMDI *mdi);
void        gnome_mdi_register              (GnomeMDI *mdi,
                                             GtkObject *object);
void        gnome_mdi_unregister            (GnomeMDI *mdi,
                                             GtkObject *object);
GnomeApp*   gnome_mdi_get_app_from_view     (GtkWidget *view);
GnomeMDIChild* gnome_mdi_get_child_from_view
                                            (GtkWidget *view);
GtkWidget*  gnome_mdi_get_view_from_window  (GnomeMDI *mdi,
                                             GnomeApp *app);
GnomeUIInfo* gnome_mdi_get_menubar_info     (GnomeApp *app);
GnomeUIInfo* gnome_mdi_get_toolbar_info     (GnomeApp *app);
GnomeUIInfo* gnome_mdi_get_child_menu_info  (GnomeApp *app);

Object Hierarchy


  GObject
   +----GtkObject
         +----GnomeMDI

Signal Prototypes


"add-child" gboolean    user_function      (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);
"add-view"  gboolean    user_function      (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);
"app-created"
            void        user_function      (GnomeMDI *mdi,
                                            GnomeApp *arg1,
                                            gpointer user_data);
"child-changed"
            void        user_function      (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);
"remove-child"
            gboolean    user_function      (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);
"remove-view"
            gboolean    user_function      (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);
"view-changed"
            void        user_function      (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);

Description

Details

enum GnomeMDIMode

typedef enum {
	GNOME_MDI_NOTEBOOK,
	GNOME_MDI_TOPLEVEL,
	GNOME_MDI_MODAL,
	GNOME_MDI_DEFAULT_MODE = 42
} GnomeMDIMode;


gnome_mdi_new ()

GtkObject*  gnome_mdi_new                   (const gchar *appname,
                                             const gchar *title);

Creates a new MDI object. appname and title are used for MDI's calling gnome_app_new().


gnome_mdi_set_mode ()

void        gnome_mdi_set_mode              (GnomeMDI *mdi,
                                             GnomeMDIMode mode);

Sets the MDI mode to mode. Possible values are GNOME_MDI_TOPLEVEL, GNOME_MDI_NOTEBOOK, GNOME_MDI_MODAL and GNOME_MDI_DEFAULT.


gnome_mdi_set_menubar_template ()

void        gnome_mdi_set_menubar_template  (GnomeMDI *mdi,
                                             GnomeUIInfo *menu_tmpl);

This function sets the template for menus that appear in each toplevel window to menu_template. For each new toplevel window created by the MDI, this structure is copied, the menus are created with gnome_app_create_menus_with_data() function with mdi as the callback user data. Finally, the pointer to the copy is assigned to the new toplevel window (a GnomeApp widget) and can be obtained by calling &gnome_mdi_get_menubar_info.


gnome_mdi_set_toolbar_template ()

void        gnome_mdi_set_toolbar_template  (GnomeMDI *mdi,
                                             GnomeUIInfo *tbar_tmpl);

This function sets the template for toolbar that appears in each toplevel window to toolbar_template. For each new toplevel window created by the MDI, this structure is copied, the toolbar is created with gnome_app_create_toolbar_with_data() function with mdi as the callback user data. Finally, the pointer to the copy is assigned to the new toplevel window (a GnomeApp widget) and can be retrieved with a call to &gnome_mdi_get_toolbar_info.


gnome_mdi_set_child_menu_path ()

void        gnome_mdi_set_child_menu_path   (GnomeMDI *mdi,
                                             const gchar *path);

Sets the desired position of child-specific menus (which are added to and removed from the main menus as views of different children are activated). See gnome_app_find_menu_pos for details on menu paths.


gnome_mdi_set_child_list_path ()

void        gnome_mdi_set_child_list_path   (GnomeMDI *mdi,
                                             const gchar *path);

Sets the position for insertion of menu items used to activate the MDI children that were added to the MDI. See gnome_app_find_menu_pos for details on menu paths. If the path is not set or set to NULL, these menu items aren't going to be inserted in the MDI menu structure. Note that if you want all menu items to be inserted in their own submenu, you have to create that submenu (and leave it empty, of course).


gnome_mdi_add_view ()

gint        gnome_mdi_add_view              (GnomeMDI *mdi,
                                             GnomeMDIChild *child);

Creates a new view of the child and adds it to the MDI. GnomeMDIChild child has to be added to the MDI with a call to gnome_mdi_add_child before its views are added to the MDI. An "add_view" signal is emitted to the MDI after the view has been created, but before it is shown and added to the MDI, with a pointer to the created view as its parameter. The view is added to the MDI only if the signal handler (if it exists) returns TRUE. If the handler returns FALSE, the created view is destroyed and not added to the MDI.


gnome_mdi_add_toplevel_view ()

gint        gnome_mdi_add_toplevel_view     (GnomeMDI *mdi,
                                             GnomeMDIChild *child);

Creates a new view of the child and adds it to the MDI; it behaves the same way as gnome_mdi_add_view in GNOME_MDI_MODAL and GNOME_MDI_TOPLEVEL modes, but in GNOME_MDI_NOTEBOOK mode, the view is added in a new toplevel window unless the active one has no views in it.


gnome_mdi_remove_view ()

gint        gnome_mdi_remove_view           (GnomeMDI *mdi,
                                             GtkWidget *view,
                                             gint force);

Removes a view from an MDI. A "remove_view" signal is emitted to the MDI before actually removing view. The view is removed only if the signal handler (if it exists and the force is set to FALSE) returns TRUE.


gnome_mdi_get_active_view ()

GtkWidget*  gnome_mdi_get_active_view       (GnomeMDI *mdi);

Returns a pointer to the active view (the one with the focus).


gnome_mdi_set_active_view ()

void        gnome_mdi_set_active_view       (GnomeMDI *mdi,
                                             GtkWidget *view);

Sets the active view to view. It also raises the window containing it and gives it focus.


gnome_mdi_add_child ()

gint        gnome_mdi_add_child             (GnomeMDI *mdi,
                                             GnomeMDIChild *child);

Adds a new child to the MDI. No views are added: this has to be done with a call to gnome_mdi_add_view. First an "add_child" signal is emitted to the MDI with a pointer to the child as its parameter. The child is added to the MDI only if the signal handler (if it exists) returns TRUE. If the handler returns FALSE, the child is not added to the MDI.


gnome_mdi_remove_child ()

gint        gnome_mdi_remove_child          (GnomeMDI *mdi,
                                             GnomeMDIChild *child,
                                             gint force);

Removes a child and all of its views from the MDI. A "remove_child" signal is emitted to the MDI with child as its parameter before actually removing the child. The child is removed only if the signal handler (if it exists and the force is set to FALSE) returns TRUE.


gnome_mdi_remove_all ()

gint        gnome_mdi_remove_all            (GnomeMDI *mdi,
                                             gint force);

Removes all children and all views from the MDI. A "remove_child" signal is emitted to the MDI for each child before actually trying to remove any. If signal handlers for all children (if they exist and the force is set to FALSE) return TRUE, all children and their views are removed and none otherwise.


gnome_mdi_open_toplevel ()

void        gnome_mdi_open_toplevel         (GnomeMDI *mdi);

Opens a new toplevel window (unless in GNOME_MDI_MODAL mode and a toplevel window is already open). This is usually used only for opening the initial window on startup (just before calling gtkmain()) if no windows were open because a session was restored or children were added because of command line args).


gnome_mdi_update_child ()

void        gnome_mdi_update_child          (GnomeMDI *mdi,
                                             GnomeMDIChild *child);

Updates all notebook labels of child's views and their window titles after its name changes. It is not required if gnome_mdi_child_set_name() is used for setting the child's name.


gnome_mdi_get_active_child ()

GnomeMDIChild* gnome_mdi_get_active_child   (GnomeMDI *mdi);

Returns a pointer to the active GnomeMDIChild object.


gnome_mdi_find_child ()

GnomeMDIChild* gnome_mdi_find_child         (GnomeMDI *mdi,
                                             const gchar *name);

Finds a child named name.


gnome_mdi_get_active_window ()

GnomeApp*   gnome_mdi_get_active_window     (GnomeMDI *mdi);

Returns a pointer to the toplevel window containing the active view.


gnome_mdi_register ()

void        gnome_mdi_register              (GnomeMDI *mdi,
                                             GtkObject *object);

Registers GtkObject object with MDI. This is mostly intended for applications that open other windows besides those opened by the MDI and want to continue to run even when no MDI windows exist (an example of this would be GIMP's window with tools, if the pictures were MDI children). As long as there is an object registered with the MDI, the MDI will not destroy itself when the last of its windows is closed. If no objects are registered, closing the last MDI window results in MDI being destroyed.


gnome_mdi_unregister ()

void        gnome_mdi_unregister            (GnomeMDI *mdi,
                                             GtkObject *object);

Removes GtkObject object from the list of registered objects.


gnome_mdi_get_app_from_view ()

GnomeApp*   gnome_mdi_get_app_from_view     (GtkWidget *view);

Returns the toplevel window for this view.


gnome_mdi_get_child_from_view ()

GnomeMDIChild* gnome_mdi_get_child_from_view
                                            (GtkWidget *view);

Returns a child that view is a view of.


gnome_mdi_get_view_from_window ()

GtkWidget*  gnome_mdi_get_view_from_window  (GnomeMDI *mdi,
                                             GnomeApp *app);

Returns the pointer to the view in the MDI toplevel window app. If the mode is set to GNOME_MDI_NOTEBOOK, the view in the current page is returned.


gnome_mdi_get_menubar_info ()

GnomeUIInfo* gnome_mdi_get_menubar_info     (GnomeApp *app);


gnome_mdi_get_toolbar_info ()

GnomeUIInfo* gnome_mdi_get_toolbar_info     (GnomeApp *app);


gnome_mdi_get_child_menu_info ()

GnomeUIInfo* gnome_mdi_get_child_menu_info  (GnomeApp *app);

Signals

The "add-child" signal

gboolean    user_function                  (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);


The "add-view" signal

gboolean    user_function                  (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);


The "app-created" signal

void        user_function                  (GnomeMDI *mdi,
                                            GnomeApp *arg1,
                                            gpointer user_data);


The "child-changed" signal

void        user_function                  (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);


The "remove-child" signal

gboolean    user_function                  (GnomeMDI *mdi,
                                            GnomeMDIChild *arg1,
                                            gpointer user_data);


The "remove-view" signal

gboolean    user_function                  (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);


The "view-changed" signal

void        user_function                  (GnomeMDI *mdi,
                                            GtkWidget *widget,
                                            gpointer user_data);