Add documentation

Document GtkModelButton and GtkPopoverMenu.
This commit is contained in:
Matthias Clasen
2014-10-26 19:04:28 -04:00
parent 228e51b319
commit 6e001acbf9
6 changed files with 299 additions and 23 deletions

View File

@ -22,6 +22,82 @@
#include "gtkintl.h"
/**
* SECTION:gtkpopovermenu
* @Short_description: Popovers to use as menus
* @Title: GtkPopoverMenu
*
* GtkPopoverMenu is a subclass of #GtkPopover that treats its
* childen like menus and allows switching between them. It is
* meant to be used primarily together with #GtkModelButton, but
* any widget can be used, such as #GtkSpinButton or #GtkScale.
* In this respect, GtkPopoverMenu is more flexible than popovers
* that are created from a #GMenuModel with gtk_popover_new_from_model().
*
* To add a child as a submenu, set the #GtkPopoverMenu:submenu
* child property to the name of the submenu. To let the user open
* this submenu, add a #GtkModelButton whose #GtkModelButton:menu-name
* property is set to the name you've given to the submenu.
*
* By convention, the first child of a submenu should be a #GtkModelButton
* to switch back to the parent menu. Such a button should use the
* #GtkModelButton:inverted and #GtkModelButton:centered properties
* to achieve a title-like appearance and place the submenu indicator
* at the opposite side. To switch back to the main menu, use "main"
* as the menu name.
*
* # Example
*
* |[
* <object class="GtkPopoverMenu">
* <child>
* <object class="GtkBox">
* <property name="visible">True</property>
* <property name="margin">10</property>
* <child>
* <object class="GtkModelButton">
* <property name="visible">True</property>
* <property name="action-name">win.frob</property>
* <property name="text" translatable="yes">Frob</property>
* </object>
* </child>
* <child>
* <object class="GtkModelButton">
* <property name="visible">True</property>
* <property name="menu-name">more</property>
* <property name="text" translatable="yes">More</property>
* </object>
* </child>
* </object>
* </child>
* <child>
* <object class="GtkBox">
* <property name="visible">True</property>
* <property name="margin">10</property>
* <child>
* <object class="GtkModelButton">
* <property name="visible">True</property>
* <property name="action-name">win.foo</property>
* <property name="text" translatable="yes">Foo</property>
* </object>
* </child>
* <child>
* <object class="GtkModelButton">
* <property name="visible">True</property>
* <property name="action-name">win.bar</property>
* <property name="text" translatable="yes">Bar</property>
* </object>
* </child>
* </object>
* <packing>
* <property name="submenu">more</property>
* </packing>
* </child>
* </object>
* ]|
*
*/
struct _GtkPopoverMenu
{
GtkPopover parent_instance;
@ -183,6 +259,15 @@ gtk_popover_menu_class_init (GtkPopoverMenuClass *klass)
container_class->set_child_property = gtk_popover_menu_set_child_property;
container_class->get_child_property = gtk_popover_menu_get_child_property;
/**
* GtkPopoverMenu:submenu:
*
* The submenu child property specifies the name of the submenu
* If it is %NULL or "main", the child is used as the main menu,
* which is shown initially when the popover is mapped.
*
* Since: 3.16
*/
gtk_container_class_install_child_property (container_class,
CHILD_PROP_SUBMENU,
g_param_spec_string ("submenu",
@ -192,6 +277,15 @@ gtk_popover_menu_class_init (GtkPopoverMenuClass *klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
/**
* gtk_popover_menu_new:
*
* Creates a new popover menu.
*
* Returns: a new #GtkPopoverMenu
*
* Since: 3.16
*/
GtkWidget *
gtk_popover_menu_new (void)
{