String to access property [`dbus-name`][struct@crate::Client#dbus-name] String to access property [`dbus-object`][struct@crate::Client#dbus-object] String to access property [`group-events`][struct@crate::Client#group-events] String to access property [`status`][struct@crate::Client#status] String to access property [`text-direction`][struct@crate::Client#text-direction] String to attach to signal [`event-result`][struct@crate::Client#event-result] String to attach to signal [`icon-theme-dirs-changed`][struct@crate::Client#icon-theme-dirs-changed] String to attach to signal [`item-activate`][struct@crate::Client#item-activate] String to attach to signal [`layout-updated`][struct@crate::Client#layout-updated] String to attach to signal [`new-menuitem`][struct@crate::Client#new-menuitem] String to attach to signal [`root-changed`][struct@crate::Client#root-changed] Used to set the 'type' property on a menu item to create a standard menu item. Used to set the 'type' property on a menu item to create an image menu item. Deprecated as standard menu items now support images as well. Used to set the 'type' property on a menu item to create a separator menu item. Used in `DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY` to have the subitems displayed as a submenu. Used in `DBUSMENU_MENUITEM_PROP_DISPOSITION` to have a menu item displayed in a way that conveys it's giving an alert to the user. Used in `DBUSMENU_MENUITEM_PROP_DISPOSITION` to have a menu item displayed in a way that conveys it's giving additional information to the user. Used in `DBUSMENU_MENUITEM_PROP_DISPOSITION` to have a menu item displayed in the normal manner. Default value. Used in `DBUSMENU_MENUITEM_PROP_DISPOSITION` to have a menu item displayed in a way that conveys it's giving a warning to the user. String for the event identifier when a menu item is clicked on by the user. String for the event identifier when a menu is closed and displayed to the user. Only valid for items that contain submenus. String for the event identifier when a menu is opened and displayed to the user. Only valid for items that contain submenus. Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_STATE` so that the menu's toggle item is undecided. [`Menuitem`][crate::Menuitem] property used to provide a textual description of any information that the icon may convey. The contents of this property are passed through to assistive technologies such as the Orca screen reader. The contents of this property will not be visible in the menu item. If this property is set, Orca will use this property instead of the label property. [`Menuitem`][crate::Menuitem] property that tells how the children of this menuitem should be displayed. Most likely this will be unset or of the value `DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU`. Type: `G_VARIANT_TYPE_STRING` [`Menuitem`][crate::Menuitem] property to tell what type of information that the menu item is displaying to the user. Type: `G_VARIANT_TYPE_STRING` [`Menuitem`][crate::Menuitem] property used to represent whether the menuitem is clickable or not. Type: `G_VARIANT_TYPE_BOOLEAN`. [`Menuitem`][crate::Menuitem] property that is the raw data of a custom icon used in the application. Type: `G_VARIANT_TYPE_VARIANT` It is recommended that this is not set directly but instead the libdbusmenu-gtk library is used with the function `dbusmenu_menuitem_property_set_image()` [`Menuitem`][crate::Menuitem] property that is the name of the icon under the Freedesktop.org icon naming spec. Type: `G_VARIANT_TYPE_STRING` [`Menuitem`][crate::Menuitem] property used for the text on the menu item. [`Menuitem`][crate::Menuitem] property that is the entries that represent a shortcut to activate the menuitem. It is an array of arrays of strings. It is recommended that this is not set directly but instead the libdbusmenu-gtk library is used with the function `dbusmenu_menuitem_property_set_shortcut()` [`Menuitem`][crate::Menuitem] property that says what state a toggle entry should be shown as the menu. Should be either `DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED` `DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED` or `DBUSMENU_MENUITEM_TOGGLE_STATUE_UNKNOWN`. [`Menuitem`][crate::Menuitem] property that says what type of toggle entry should be shown in the menu. Should be either `DBUSMENU_MENUITEM_TOGGLE_CHECK` or `DBUSMENU_MENUITEM_TOGGLE_RADIO`. Type: `G_VARIANT_TYPE_STRING` [`Menuitem`][crate::Menuitem] property used to represent what type of menuitem this object represents. Type: `G_VARIANT_TYPE_STRING`. [`Menuitem`][crate::Menuitem] property used to represent whether the menuitem should be shown or not. Type: `G_VARIANT_TYPE_BOOLEAN`. Used in `DBUSMENU_MENUITEM_PROP_SHORTCUT` to represent the alternate key. Used in `DBUSMENU_MENUITEM_PROP_SHORTCUT` to represent the control key. Used in `DBUSMENU_MENUITEM_PROP_SHORTCUT` to represent the shift key. Used in `DBUSMENU_MENUITEM_PROP_SHORTCUT` to represent the super key. String to attach to signal [`about-to-show`][struct@crate::Server#about-to-show] String to attach to signal [`child-added`][struct@crate::Server#child-added] String to attach to signal [`child-moved`][struct@crate::Server#child-moved] String to attach to signal [`child-removed`][struct@crate::Server#child-removed] String to attach to signal [`event`][struct@crate::Server#event] String to attach to signal [`item-activated`][struct@crate::Server#item-activated] String to attach to signal [`property-changed`][struct@crate::Server#property-changed] String to attach to signal [`realized`][struct@crate::Server#realized] String to attach to signal [`show-to-user`][struct@crate::Server#show-to-user] Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE` to be a standard check mark item. Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE` to be a standard radio item. Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_STATE` so that the menu's toggle item is filled. Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_STATE` so that the menu's toggle item is empty. Used to set `DBUSMENU_MENUITEM_PROP_TOGGLE_STATE` so that the menu's toggle item is undecided. String to access property [`dbus-object`][struct@crate::Server#dbus-object] String to access property [`root-node`][struct@crate::Server#root-node] String to access property [`status`][struct@crate::Server#status] String to access property [`text-direction`][struct@crate::Server#text-direction] String to access property [`version`][struct@crate::Server#version] String to attach to signal [`item-property-updated`][struct@crate::Server#item-property-updated] String to attach to signal [`item-updated`][struct@crate::Server#item-updated] String to attach to signal [`item-activation-requested`][struct@crate::Server#item-activation-requested] String to attach to signal [`layout-updated`][struct@crate::Server#layout-updated] The client for a [`Server`][crate::Server] creating a shared object set of [`Menuitem`][crate::Menuitem] objects. ## Properties #### `dbus-name` Readable | Writeable | Construct Only #### `dbus-object` Readable | Writeable | Construct Only #### `group-events` Readable | Writeable ## Signals #### `event-result` #### `icon-theme-dirs-changed` Signaled when the theme directories are changed by the server. #### `item-activate` Signaled when the server wants to activate an item in order to display the menu. #### `layout-updated` #### `new-menuitem` Signaled when the client creates a new menuitem. This doesn't mean that it's placed anywhere. The parent that it's applied to will signal [`child-added`][struct@crate::Menuitem#child-added] when it gets parented. #### `root-changed` The layout has changed in a way that can not be represented by the individual items changing as the root of this client has changed. # Implements [`ClientExt`][trait@crate::prelude::ClientExt] Signaled when the theme directories are changed by the server. ## `arg1` A `GStrv` of theme directories Signaled when the server wants to activate an item in order to display the menu. ## `arg1` The [`Menuitem`][crate::Menuitem] activated ## `arg2` A timestamp that the event happened at Signaled when the client creates a new menuitem. This doesn't mean that it's placed anywhere. The parent that it's applied to will signal [`child-added`][struct@crate::Menuitem#child-added] when it gets parented. ## `arg1` The new [`Menuitem`][crate::Menuitem] created The layout has changed in a way that can not be represented by the individual items changing as the root of this client has changed. ## `arg1` The new root [`Menuitem`][crate::Menuitem] This is the `GObject` based object that represents a menu item. It gets created the same on both the client and the server side and libdbusmenu-glib does the work of making this object model appear on both sides of DBus. Simple really, though through updates and people coming on and off the bus it can lead to lots of fun complex scenarios. ## Properties #### `id` Readable | Writeable | Construct Only ## Signals #### `about-to-show` Emitted when the submenu for this item is about to be shown #### `child-added` Signaled when the child menuitem has been added to the parent. #### `child-moved` Signaled when the child menuitem has had its location in the list change. #### `child-removed` Signaled when the child menuitem has been requested to be removed from the parent. This signal is called when it has been removed from the list but not yet had `g_object_unref` called on it. #### `event` Emitted when an event is passed through. The event is signalled after handle_event is called. Detailed #### `item-activated` Emitted on the objects on the server side when they are signaled on the client side. #### `property-changed` Emitted everytime a property on a menuitem is either updated or added. #### `realized` Emitted when the initial request for properties is complete on the item. If there is a type handler configured for the "type" parameter that will be executed before this is signaled. #### `show-to-user` Signaled when the application would like the visualization of this menu item shown to the user. This usually requires going over the bus to get it done. # Implements [`MenuitemExt`][trait@crate::prelude::MenuitemExt] This calls the function `func` on this menu item and all of the children of this item. And their children. And their children. And... you get the point. It will get called on the whole tree. ## `func` Function to call on every node in the tree This function is used to send the even that the submenu of this item is about to be shown. Callers to this event should delay showing the menu until their callback is called if possible. ## `cb` Callback to call when the call has returned. ## `cb_data` Data to pass to the callback. Signaled when the child menuitem has been added to the parent. ## `arg1` The [`Menuitem`][crate::Menuitem] which is the child. ## `arg2` The position that the child is being added in. Signaled when the child menuitem has had its location in the list change. ## `arg1` The [`Menuitem`][crate::Menuitem] which is the child. ## `arg2` The position that the child is being moved to. ## `arg3` The position that the child is was in. Signaled when the child menuitem has been requested to be removed from the parent. This signal is called when it has been removed from the list but not yet had `g_object_unref` called on it. ## `arg1` The [`Menuitem`][crate::Menuitem] which was the child. Public instance data for a [`MenuitemProxy`][crate::MenuitemProxy]. ## Properties #### `menu-item` Readable | Writeable | Construct Only

Menuitem

#### `id` Readable | Writeable | Construct Only
# Implements [`MenuitemProxyExt`][trait@crate::prelude::MenuitemProxyExt], [`MenuitemExt`][trait@crate::prelude::MenuitemExt] A server which represents a sharing of a set of `DbusmenuMenuitems` across DBus to a [`Client`][crate::Client]. ## Properties #### `dbus-object` Readable | Writeable | Construct Only #### `root-node` Readable | Writeable #### `version` Readable ## Signals #### `item-activation-requested` This is signaled when a menuitem under this server sends its activate signal. #### `item-property-updated` #### `item-updated` #### `layout-updated` This signal is emitted any time the layout of the menuitems under this server is changed. # Implements [`ServerExt`][trait@crate::prelude::ServerExt]