Main Page Widgets Namespaces Book

# Gtk::UIManager Class Reference

Inheritance diagram for Gtk::UIManager:

[legend]
List of all members.

## Public Types

typedef guint | ui_merge_id

## Public Member Functions

void | add_ui (ui_merge_id merge_id, const Glib::ustring& path, const Glib::ustring& name, const Glib::ustring& action, UIManagerItemType type=Gtk::UI_MANAGER_AUTO, bool top=true)
| Adds a UI element to the current contents of self .
ui_merge_id | add_ui_from_file (const Glib::ustring& filename)
| Parses a file containing a UI definition and merges it with the current contents of self .
ui_merge_id | add_ui_from_string (const Glib::ustring& buffer)
| Parses a string containing a UI definition and merges it with the current contents.
void | add_ui_separator (ui_merge_id merge_id, const Glib::ustring& path, const Glib::ustring& name="", UIManagerItemType type=Gtk::UI_MANAGER_AUTO, bool top=true)
| Adds a separator UI element to the current contents.
void | ensure_update ()
| Makes sure that all pending updates to the UI have been completed.
Glib::RefPtr<const AccelGroup> | get_accel_group () const
| Returns the Gtk::AccelGroup associated with self .
Glib::RefPtr<AccelGroup> | get_accel_group ()
| Returns the Gtk::AccelGroup associated with self .
Glib::RefPtr<const Action> | get_action (const Glib::ustring& path) const
| Looks up an action by following a path.
Glib::RefPtr<Action> | get_action (const Glib::ustring& path)
| Looks up an action by following a path.
Glib::ListHandle< Glib::RefPtr< const ActionGroup > > | get_action_groups () const
| Returns the list of action groups associated with self .
Glib::ListHandle< Glib::RefPtr< ActionGroup > > | get_action_groups ()
| Returns the list of action groups associated with self .
bool | get_add_tearoffs () const
| Returns whether menus generated by this Gtk::UIManager will have tearoff menu items.
Glib::SListHandle<const Widget*> | get_toplevels (UIManagerItemType types) const
| Obtains a list of all toplevel widgets of the requested types.
Glib::SListHandle<Widget*> | get_toplevels (UIManagerItemType types)
| Obtains a list of all toplevel widgets of the requested types.
Glib::ustring | get_ui () const
| Creates a UI definition of the merged UI.
const Widget* | get_widget (const Glib::ustring& path) const
| Looks up a widget by following a path.
Widget* | get_widget (const Glib::ustring& path)
| Looks up a widget by following a path.
const GtkUIManager* | gobj () const
| Provides access to the underlying C GObject.
GtkUIManager* | gobj ()
| Provides access to the underlying C GObject.
GtkUIManager* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void | insert_action_group (const Glib::RefPtr<ActionGroup>& action_group, int pos=0)
| Inserts an action group into the list of action groups associated with self .
ui_merge_id | new_merge_id ()
| Returns an unused merge id, suitable for use with gtk_ui_manager_add_ui().
Glib::PropertyProxy_ReadOnly< bool > | property_add_tearoffs () const
| Whether tearoff menu items should be added to menus.
Glib::PropertyProxy<bool> | property_add_tearoffs ()
| Whether tearoff menu items should be added to menus.
Glib::PropertyProxy_ReadOnly< Glib::ustring > | property_ui () const
| An XML string describing the merged UI.
void | remove_action_group (const Glib::RefPtr<ActionGroup>& action_group)
| Removes an action group from the list of action groups associated with self .
void | remove_ui (ui_merge_id merge_id)
| Unmerges the part of self <!-- -->s content identified by merge_id .
void | set_add_tearoffs (bool add_tearoffs=true)
| Sets the "add_tearoffs" property, which controls whether menus generated by this Gtk::UIManager will have tearoff menu items.
Glib::SignalProxy0<void> | signal_actions_changed ()
Glib::SignalProxy1< void, Widget* > | signal_add_widget ()
Glib::SignalProxy2< void, const Glib::RefPtr<Action>&, Widget* > | signal_connect_proxy ()
Glib::SignalProxy2< void, const Glib::RefPtr<Action>&, Widget* > | signal_disconnect_proxy ()
Glib::SignalProxy1< void, const Glib::RefPtr<Action >&> | signal_post_activate ()
Glib::SignalProxy1< void, const Glib::RefPtr<Action >&> | signal_pre_activate ()
virtual | ~UIManager ()

## Static Public Member Functions

static Glib::RefPtr<UIManager> | create ()

## Protected Member Functions

virtual void | on_actions_changed ()
virtual void | on_add_widget (Widget* widget)
| UIManager ()

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr<Gtk::UIManager> | wrap (GtkUIManager* object, bool take_copy=false)

## Member Typedef Documentation

typedef guint Gtk::UIManager::ui_merge_id

## Constructor & Destructor Documentation

virtual Gtk::UIManager::~UIManager | ( |  | ) | `[virtual]`

Gtk::UIManager::UIManager | ( |  | ) | `[protected]`

## Member Function Documentation

void Gtk::UIManager::add_ui | ( | ui_merge_id | merge_id,
|  | const Glib::ustring& | path,
|  | const Glib::ustring& | name,
|  | const Glib::ustring& | action,
|  | UIManagerItemType | type = `Gtk::UI_MANAGER_AUTO`,
|  | bool | top = `true`
| ) |

Adds a UI element to the current contents of self .

If type is Gtk::UI_MANAGER_AUTO, GTK+ inserts a menuitem, toolitem or separator if such an element can be inserted at the place determined by path . Otherwise type must indicate an element that can be inserted at the place determined by path .

see add_ui_separator().

Since: 2.4

Parameters:

  | merge_id | The merge id for the merged UI, see gtk_ui_manager_new_merge_id().
  | path | A path.
  | name | The name for the added UI element.
  | action | The name of the action to be proxied, if this is not a separator.
  | type | The type of UI element to add.
  | top | If `true`, the UI element is added before its siblings, otherwise it is added after its siblings.

ui_merge_id Gtk::UIManager::add_ui_from_file | ( | const Glib::ustring& | filename | ) |

Parses a file containing a UI definition and merges it with the current contents of self .

Parameters:

  | filename | The name of the file to parse.

Returns:
  The merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.

Since: 2.4.

ui_merge_id Gtk::UIManager::add_ui_from_string | ( | const Glib::ustring& | buffer | ) |

Parses a string containing a UI definition and merges it with the current contents.

An enclosing <ui> element is added if it is missing.

Parameters:

  | buffer | the string to parse

Returns:
  The merge id for the merged UI. The merge id can be used to unmerge the UI with remove_ui(). If an error occurred, the return value is 0.

Exceptions:

  | exception | Since: 2.4

void Gtk::UIManager::add_ui_separator | ( | ui_merge_id | merge_id,
|  | const Glib::ustring& | path,
|  | const Glib::ustring& | name = `""`,
|  | UIManagerItemType | type = `Gtk::UI_MANAGER_AUTO`,
|  | bool | top = `true`
| ) |

Adds a separator UI element to the current contents.

If type is Gtk::UI_MANAGER_AUTO, GTK+ inserts a menuitem, toolitem or separator if such an element can be inserted at the place determined by path . Otherwise type must indicate an element that can be inserted at the place determined by path.

See also:
  add_ui().

Since: 2.4

Parameters:

  | merge_id | The merge id for the merged UI, see gtk_ui_manager_new_merge_id().
  | path | A path.
  | name | The name for the added UI element.
  | type | The type of UI element to add.
  | top | If `true`, the UI element is added before its siblings, otherwise it is added after its siblings.

static Glib::RefPtr<UIManager> Gtk::UIManager::create | ( |  | ) | `[static]`

void Gtk::UIManager::ensure_update | ( |  | ) |

Makes sure that all pending updates to the UI have been completed.

This may occasionally be necessary, since Gtk::UIManager updates the UI in an idle function. A typical example where this function is useful is to enforce that the menubar and toolbar have been added to the main window before showing it:

     gtk_container_add (GTK_CONTAINER (window), vbox);
     g_signal_connect (merge, "add_widget",
     G_CALLBACK (add_widget), vbox);
     gtk_ui_manager_add_ui_from_file (merge, "my-menus");
     gtk_ui_manager_add_ui_from_file (merge, "my-toolbars");
     gtk_ui_manager_ensure_update (merge);
     gtk_widget_show (window);

Since: 2.4

Glib::RefPtr<const AccelGroup> Gtk::UIManager::get_accel_group | ( |  | ) | const

Returns the Gtk::AccelGroup associated with self .

Returns:
  The Gtk::AccelGroup.

Since: 2.4.

Glib::RefPtr<AccelGroup> Gtk::UIManager::get_accel_group | ( |  | ) |

Returns the Gtk::AccelGroup associated with self .

Returns:
  The Gtk::AccelGroup.

Since: 2.4.

Glib::RefPtr<const Action> Gtk::UIManager::get_action | ( | const Glib::ustring& | path | ) | const

Looks up an action by following a path.

See gtk_ui_manager_get_widget() for more information about paths.

Parameters:

  | path | A path.

Returns:
  The action whose proxy widget is found by following the path, or `0` if no widget was found.

Since: 2.4.

Glib::RefPtr<Action> Gtk::UIManager::get_action | ( | const Glib::ustring& | path | ) |

Looks up an action by following a path.

See gtk_ui_manager_get_widget() for more information about paths.

Parameters:

  | path | A path.

Returns:
  The action whose proxy widget is found by following the path, or `0` if no widget was found.

Since: 2.4.

Glib::ListHandle<Glib::RefPtr<const ActionGroup>> Gtk::UIManager::get_action_groups | ( |  | ) | const

Returns the list of action groups associated with self .

Returns:
  A G::List of action groups. The list is owned by GTK+ and should not be modified.

Since: 2.4.

Glib::ListHandle<Glib::RefPtr<ActionGroup>> Gtk::UIManager::get_action_groups | ( |  | ) |

Returns the list of action groups associated with self .

Returns:
  A G::List of action groups. The list is owned by GTK+ and should not be modified.

Since: 2.4.

bool Gtk::UIManager::get_add_tearoffs | ( |  | ) | const

Returns whether menus generated by this Gtk::UIManager will have tearoff menu items.

Returns:
  Whether tearoff menu items are added

Since: 2.4.

Glib::SListHandle<const Widget*> Gtk::UIManager::get_toplevels | ( | UIManagerItemType | types | ) | const

Obtains a list of all toplevel widgets of the requested types.

Parameters:

  | types | Specifies the types of toplevel widgets to include. Allowed types are Gtk::UI_MANAGER_MENUBAR, Gtk::UI_MANAGER_TOOLBAR and Gtk::UI_MANAGER_POPUP.

Returns:
  A newly-allocated of all toplevel widgets of the requested types.

Since: 2.4.

Glib::SListHandle<Widget*> Gtk::UIManager::get_toplevels | ( | UIManagerItemType | types | ) |

Obtains a list of all toplevel widgets of the requested types.

Parameters:

  | types | Specifies the types of toplevel widgets to include. Allowed types are Gtk::UI_MANAGER_MENUBAR, Gtk::UI_MANAGER_TOOLBAR and Gtk::UI_MANAGER_POPUP.

Returns:
  A newly-allocated of all toplevel widgets of the requested types.

Since: 2.4.

Glib::ustring Gtk::UIManager::get_ui | ( |  | ) | const

Creates a UI definition of the merged UI.

Returns:
  A newly allocated string containing an XML representation of the merged UI.

Since: 2.4.

const Widget* Gtk::UIManager::get_widget | ( | const Glib::ustring& | path | ) | const

Looks up a widget by following a path.

The path consists of the names specified in the XML description of the UI. separated by '/'. Elements which don't have a name or action attribute in the XML (e.g. <popup>) can be addressed by their XML element name (e.g. "popup"). The root element ("/ui") can be omitted in the path.

Note that the widget found by following a path that ends in a <menu> element is the menuitem to which the menu is attached, not the menu itself.

Parameters:

  | path | A path.

Returns:
  The widget found by following the path, or `0` if no widget was found.

Since: 2.4.

Widget* Gtk::UIManager::get_widget | ( | const Glib::ustring& | path | ) |

Looks up a widget by following a path.

The path consists of the names specified in the XML description of the UI. separated by '/'. Elements which don't have a name or action attribute in the XML (e.g. <popup>) can be addressed by their XML element name (e.g. "popup"). The root element ("/ui") can be omitted in the path.

Note that the widget found by following a path that ends in a <menu> element is the menuitem to which the menu is attached, not the menu itself.

Parameters:

  | path | A path.

Returns:
  The widget found by following the path, or `0` if no widget was found.

Since: 2.4.

const GtkUIManager* Gtk::UIManager::gobj | ( |  | ) | const`[inline]`

| Provides access to the underlying C GObject. Reimplemented from Glib::ObjectBase.

GtkUIManager* Gtk::UIManager::gobj | ( |  | ) | `[inline]`

| Provides access to the underlying C GObject. Reimplemented from Glib::ObjectBase.

GtkUIManager* Gtk::UIManager::gobj_copy | ( |  | ) |

| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

void Gtk::UIManager::insert_action_group | ( | const Glib::RefPtr<ActionGroup>& | action_group,
|  | int | pos = `0`
| ) |

Inserts an action group into the list of action groups associated with self .

Actions in earlier groups hide actions with the same name in later groups.

Since: 2.4

Parameters:

  | action_group | The action group to be inserted.
  | pos | The position at which the group will be inserted.

ui_merge_id Gtk::UIManager::new_merge_id | ( |  | ) |

Returns an unused merge id, suitable for use with gtk_ui_manager_add_ui().

Returns:
  An unused merge id.

Since: 2.4.

virtual void Gtk::UIManager::on_actions_changed | ( |  | ) | `[protected, virtual]`

virtual void Gtk::UIManager::on_add_widget | ( | Widget* | widget | ) | `[protected, virtual]`

Glib::PropertyProxy_ReadOnly<bool> Gtk::UIManager::property_add_tearoffs | ( |  | ) | const

Whether tearoff menu items should be added to menus.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<bool> Gtk::UIManager::property_add_tearoffs | ( |  | ) |

Whether tearoff menu items should be added to menus.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<Glib::ustring> Gtk::UIManager::property_ui | ( |  | ) | const

An XML string describing the merged UI.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

void Gtk::UIManager::remove_action_group | ( | const Glib::RefPtr<ActionGroup>& | action_group | ) |

Removes an action group from the list of action groups associated with self .

Since: 2.4

Parameters:

  | action_group | The action group to be removed.

void Gtk::UIManager::remove_ui | ( | ui_merge_id | merge_id | ) |

Unmerges the part of self <!-- -->s content identified by merge_id .

Since: 2.4

Parameters:

  | merge_id | A merge id as returned by gtk_ui_manager_add_ui_from_string().

void Gtk::UIManager::set_add_tearoffs | ( | bool | add_tearoffs = `true` | ) |

Sets the "add_tearoffs" property, which controls whether menus generated by this Gtk::UIManager will have tearoff menu items.

Note that this only affects regular menus. Generated popup menus never have tearoff menu items.

Since: 2.4

Parameters:

  | add_tearoffs | Whether tearoff menu items are added.

Glib::SignalProxy0<void> Gtk::UIManager::signal_actions_changed | ( |  | ) |

Glib::SignalProxy1<void,Widget*> Gtk::UIManager::signal_add_widget | ( |  | ) |

Glib::SignalProxy2<void,const Glib::RefPtr<Action>&,Widget*> Gtk::UIManager::signal_connect_proxy | ( |  | ) |

Glib::SignalProxy2<void,const Glib::RefPtr<Action>&,Widget*> Gtk::UIManager::signal_disconnect_proxy | ( |  | ) |

Glib::SignalProxy1<void,const Glib::RefPtr<Action>&> Gtk::UIManager::signal_post_activate | ( |  | ) |

Glib::SignalProxy1<void,const Glib::RefPtr<Action>&> Gtk::UIManager::signal_pre_activate | ( |  | ) |

## Friends And Related Function Documentation

Glib::RefPtr<Gtk::UIManager> wrap | ( | GtkUIManager* | object,
|  | bool | take_copy = `false`
| ) | `[related]`

Parameters:

  | object | The C instance
  | take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- uimanager.h