<!-- ##### SECTION Title ##### --> GnomeMDI <!-- ##### SECTION Short_Description ##### --> GNOME Multiple Document Interface <!-- ##### SECTION Long_Description ##### --> <para> The <type>GnomeMDI</type> object lets the application manage a number of documents and displays their views in a configurable fashion. </para> <para> Once an instance of <type>GnomeMDI</type> has been created, you can add documents to it using gnome_mdi_add_child() and add views of these documents with gnome_mdi_add_view() routine. GnomeMDI also provides means to create global menus and toolbar that apply for each document and for merging document-specific menus with the global ones. MDI automatically creates a menu containing a list of all open documents. The global menus and toolbar can be created using a template GnomeUIInfo structure or with a handler for app_created signal which allows for customization of all <type>GnomeApp</type> widgets that <type>GnomeMDI</type> creates. </para> <para> The views are displayed in one of three modes that can be set using gnome_mdi_set_mode() function: <itemizedlist> <listitem><para> %GNOME_MDI_NOTEBOOK mode displays each view in a notebook page. The user can create any number of notebooks, each within its toplevel <type>GnomeApp</type> and drag pages from one to another, thus distributing the views between them in any desired manner. </para></listitem> <listitem><para> %GNOME_MDI_TOPLEVEL mode displays each view in its own toplevel window. </para></listitem> <listitem><para> %GNOME_MDI_MODAL mode displays only a single view of a document. </para></listitem> <listitem><para> %GNOME_MDI_DEFAULT uses the mode that can be configured on a per-user basis via the GNOME control center. </para></listitem> </itemizedlist> </para> <para> <type>GnomeMDI</type> can automatically save and restore its state and the state of its children and layout, which is particularly useful to simplify implementation of session managment. </para> <!-- ##### SECTION See_Also ##### --> <para> #GnomeApp, #GnomeMDIChild, #GnomeMDIGenericChild, #GnomeMDISession </para> <!-- ##### STRUCT GnomeMDI ##### --> <para> </para> <!-- ##### ENUM GnomeMDIMode ##### --> <para> </para> <!-- ##### FUNCTION gnome_mdi_new ##### --> <para> </para> @appname: @title: @Returns: <!-- ##### FUNCTION gnome_mdi_set_mode ##### --> <para> </para> @mdi: @mode: <!-- ##### FUNCTION gnome_mdi_set_menubar_template ##### --> <para> </para> @mdi: @menu_tmpl: <!-- ##### FUNCTION gnome_mdi_set_toolbar_template ##### --> <para> </para> @mdi: @tbar_tmpl: <!-- ##### FUNCTION gnome_mdi_set_child_menu_path ##### --> <para> </para> @mdi: @path: <!-- ##### FUNCTION gnome_mdi_set_child_list_path ##### --> <para> </para> @mdi: @path: <!-- ##### FUNCTION gnome_mdi_add_view ##### --> <para> </para> @mdi: @child: @Returns: <!-- ##### FUNCTION gnome_mdi_add_toplevel_view ##### --> <para> </para> @mdi: @child: @Returns: <!-- ##### FUNCTION gnome_mdi_remove_view ##### --> <para> </para> @mdi: @view: @force: @Returns: <!-- ##### FUNCTION gnome_mdi_get_active_view ##### --> <para> </para> @mdi: @Returns: <!-- ##### FUNCTION gnome_mdi_set_active_view ##### --> <para> </para> @mdi: @view: <!-- ##### FUNCTION gnome_mdi_add_child ##### --> <para> </para> @mdi: @child: @Returns: <!-- ##### FUNCTION gnome_mdi_remove_child ##### --> <para> </para> @mdi: @child: @force: @Returns: <!-- ##### FUNCTION gnome_mdi_remove_all ##### --> <para> </para> @mdi: @force: @Returns: <!-- ##### FUNCTION gnome_mdi_open_toplevel ##### --> <para> </para> @mdi: <!-- ##### FUNCTION gnome_mdi_update_child ##### --> <para> </para> @mdi: @child: <!-- ##### FUNCTION gnome_mdi_get_active_child ##### --> <para> </para> @mdi: @Returns: <!-- ##### FUNCTION gnome_mdi_find_child ##### --> <para> </para> @mdi: @name: @Returns: <!-- ##### FUNCTION gnome_mdi_get_active_window ##### --> <para> </para> @mdi: @Returns: <!-- ##### FUNCTION gnome_mdi_register ##### --> <para> </para> @mdi: @object: <!-- ##### FUNCTION gnome_mdi_unregister ##### --> <para> </para> @mdi: @object: <!-- ##### FUNCTION gnome_mdi_get_app_from_view ##### --> <para> </para> @view: @Returns: <!-- ##### FUNCTION gnome_mdi_get_child_from_view ##### --> <para> </para> @view: @Returns: <!-- ##### FUNCTION gnome_mdi_get_view_from_window ##### --> <para> </para> @mdi: @app: @Returns: <!-- ##### FUNCTION gnome_mdi_get_menubar_info ##### --> <para> </para> @app: @Returns: <!-- ##### FUNCTION gnome_mdi_get_toolbar_info ##### --> <para> </para> @app: @Returns: <!-- ##### FUNCTION gnome_mdi_get_child_menu_info ##### --> <para> </para> @app: @Returns: <!-- ##### SIGNAL GnomeMDI::add-child ##### --> <para> Emitted before actually adding a child. If the handler returns %TRUE, the child is added, otherwise, nothing happens. </para> @mdi: the object which received the signal. @arg1: child to be added @Returns: boolean, to indicate if the child is to be added <!-- ##### SIGNAL GnomeMDI::remove-child ##### --> <para> Emitted before actually removing a child. If the handler returns %TRUE, the child is remove, otherwise, nothing happens. </para> @mdi: the object which received the signal. @arg1: child to be remove @Returns: boolean, to indicate if the child is to be removed <!-- ##### SIGNAL GnomeMDI::add-view ##### --> <para> Emitted before actually adding a view. If the handler returns %TRUE, the view is added, otherwise, nothing happens. </para> @mdi: the object which received the signal. @widget: view to be added @Returns: boolean, to indicate if the view is to be added <!-- ##### SIGNAL GnomeMDI::remove-view ##### --> <para> Emitted before actually removing a view. If the handler returns %TRUE, the view is remove, otherwise, nothing happens. </para> @mdi: the object which received the signal. @widget: the view to be removed @Returns: boolean, to indicate if the view is to be removed <!-- ##### SIGNAL GnomeMDI::child-changed ##### --> <para> Emitted each time when active child is changed with the second argument pointing to the old child. mdi->active_view and mdi->active_child already hold the new values </para> @mdi: the object which received the signal. @arg1: the old child <!-- ##### SIGNAL GnomeMDI::view-changed ##### --> <para> Emitted whenever a view is changed, regardless of it being the view of the same child as the old view or not. the second argument points to the old view, mdi->active_view and mdi->active_child hold the new values. If the child has also been changed, this signal is emitted after the #child_changed signal. </para> @mdi: the object which received the signal. @widget: the old view <!-- ##### SIGNAL GnomeMDI::app-created ##### --> <para> Emitted with each newly created #GnomeApp to allow the MDI user to customize it (add a statusbar, toolbars or menubar if the method with #GnomeUIInfo templates is not sufficient, etc.). No contents may be set since #GnomeMDI uses them for storing either a view of a child or a notebook. </para> @mdi: the object which received the signal. @arg1: the #GnomeApp being created <!-- Local variables: mode: sgml sgml-parent-document: ("../gnomeui-docs.sgml" "book" "sect1" "") End: -->