dlangui/docs/menu.html

304 lines
9.9 KiB
HTML

<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.menu</title>
</head><body>
<h1>dlangui.widgets.menu</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/menu.d -->
DLANGUI library.
<br><br>
This module contains <u>menu</u> widgets implementation.
<br><br>
MenuItem - <u>menu</u> item properties container - to hold hierarchy of <u>menu</u>.
MainMenu - main <u>menu</u> widget
PopupMenu - popup <u>menu</u> widget
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.popup;
</pre>
<br><br>
<b>License:</b><br>
Boost License 1.0
<br><br>
<b>Authors:</b><br>
Vadim Lopatin, coolreader.org@gmail.com<br><br>
<dl><dt><big><a name="MenuItemType"></a>enum <u>MenuItemType</u>: int;
</big></dt>
<dd>menu item type<br><br>
<dl><dt><big><a name="MenuItemType.Normal"></a><u>Normal</u></big></dt>
<dd>normal menu item<br><br>
</dd>
<dt><big><a name="MenuItemType.Check"></a><u>Check</u></big></dt>
<dd>menu item - checkbox<br><br>
</dd>
<dt><big><a name="MenuItemType.Radio"></a><u>Radio</u></big></dt>
<dd>menu item - radio button<br><br>
</dd>
<dt><big><a name="MenuItemType.Separator"></a><u>Separator</u></big></dt>
<dd>menu separator (horizontal line)<br><br>
</dd>
<dt><big><a name="MenuItemType.Submenu"></a><u>Submenu</u></big></dt>
<dd>submenu - contains child items<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="MenuItemClickHandler"></a>interface <u>MenuItemClickHandler</u>;
</big></dt>
<dd>interface to handle menu item click<br><br>
</dd>
<dt><big><a name="MenuItemActionHandler"></a>interface <u>MenuItemActionHandler</u>;
</big></dt>
<dd>interface to handle menu item action<br><br>
</dd>
<dt><big><a name="MenuItem"></a>class <u>MenuItem</u>;
</big></dt>
<dd>menu item properties<br><br>
<dl><dt><big><a name="MenuItem.onMenuItemClick"></a>Signal!MenuItemClickHandler <u>onMenuItemClick</u>;
</big></dt>
<dd>handle menu item click (parameter is MenuItem)<br><br>
</dd>
<dt><big><a name="MenuItem.onMenuItemAction"></a>Signal!MenuItemActionHandler <u>onMenuItemAction</u>;
</big></dt>
<dd>handle menu item click action (parameter is Action)<br><br>
</dd>
<dt><big><a name="MenuItem.id"></a>@property int <u>id</u>();
</big></dt>
<dd>item action <u>id</u>, 0 if no action<br><br>
</dd>
<dt><big><a name="MenuItem.subitemCount"></a>@property int <u>subitemCount</u>();
</big></dt>
<dd>returns count of submenu items<br><br>
</dd>
<dt><big><a name="MenuItem.subitemIndex"></a>@property int <u>subitemIndex</u>(MenuItem <i>item</i>);
</big></dt>
<dd>returns subitem index for <i>item</i>, -1 if <i>item</i> is not direct subitem of this<br><br>
</dd>
<dt><big><a name="MenuItem.subitem"></a>MenuItem <u>subitem</u>(int <i>index</i>);
</big></dt>
<dd>returns submenu item by <i>index</i><br><br>
</dd>
<dt><big><a name="MenuItem.type"></a>@property MenuItem <u>type</u>(MenuItemType <u>type</u>);
</big></dt>
<dd>set new MenuItemType<br><br>
</dd>
<dt><big><a name="MenuItem.checked"></a>@property bool <u>checked</u>();
</big></dt>
<dd>get check for checkbox or radio button item<br><br>
</dd>
<dt><big><a name="MenuItem.checkRadioButton"></a>protected void <u>checkRadioButton</u>(int <i>index</i>);
</big></dt>
<dd>check radio button with specified <i>index</i>, uncheck other radio buttons in group (group consists of sequence of radio button items; other item type - end of group)<br><br>
</dd>
<dt><big><a name="MenuItem.checked"></a>@property MenuItem <u>checked</u>(bool <i>flg</i>);
</big></dt>
<dd>set check for checkbox or radio button item<br><br>
</dd>
<dt><big><a name="MenuItem.getHotkey"></a>dchar <u>getHotkey</u>();
</big></dt>
<dd>get hotkey character from label (e.g. 'F' for item labeled "&File"), 0 if no hotkey<br><br>
</dd>
<dt><big><a name="MenuItem.findSubitemByHotkey"></a>int <u>findSubitemByHotkey</u>(dchar <i>ch</i>);
</big></dt>
<dd>find subitem by hotkey character, returns subitem index, -1 if not found<br><br>
</dd>
<dt><big><a name="MenuItem.add"></a>MenuItem <u>add</u>(MenuItem <i>subitem</i>);
</big></dt>
<dd>adds submenu item<br><br>
</dd>
<dt><big><a name="MenuItem.add"></a>MenuItem <u>add</u>(Action <i>subitemAction</i>);
</big></dt>
<dd>adds submenu item from action<br><br>
</dd>
<dt><big><a name="MenuItem.acceleratorText"></a>@property dstring <u>acceleratorText</u>();
</big></dt>
<dd>returns text description for first accelerator of action; <b>null</b> if no accelerators<br><br>
</dd>
<dt><big><a name="MenuItem.isSubmenu"></a>@property bool <u>isSubmenu</u>();
</big></dt>
<dd>returns <b>true</b> if item is submenu (contains subitems)<br><br>
</dd>
<dt><big><a name="MenuItem.label"></a>@property UIString <u>label</u>();
</big></dt>
<dd>returns item <u>label</u><br><br>
</dd>
<dt><big><a name="MenuItem.action"></a>const @property const(Action) <u>action</u>();
</big></dt>
<dd>returns item <u>action</u><br><br>
</dd>
<dt><big><a name="MenuItem.action"></a>@property MenuItem <u>action</u>(Action <i>a</i>);
</big></dt>
<dd>sets item <u>action</u><br><br>
</dd>
<dt><big><a name="MenuItem.enabled"></a>@property bool <u>enabled</u>();
</big></dt>
<dd>menu item Enabled flag<br><br>
</dd>
<dt><big><a name="MenuItem.enabled"></a>@property MenuItem <u>enabled</u>(bool <u>enabled</u>);
</big></dt>
<dd>menu item Enabled flag<br><br>
</dd>
<dt><big><a name="MenuItem.onMenuItem"></a>Signal!(void, MenuItem) <u>onMenuItem</u>;
</big></dt>
<dd>handle menu item click<br><br>
</dd>
<dt><big><a name="MenuItem.onBeforeOpeningSubmenu"></a>Signal!(bool, MenuItem) <u>onBeforeOpeningSubmenu</u>;
</big></dt>
<dd>prepare for opening of submenu, return <b>true</b> if opening is allowed<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="MenuItemWidget"></a>class <u>MenuItemWidget</u>: dlangui.widgets.widget.WidgetGroup;
</big></dt>
<dd>widget to draw menu item<br><br>
<dl><dt><big><a name="MenuItemWidget.measure"></a>void <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd>Measure widget according to desired width and height constraints. (Step 1 of two phase layout).<br><br>
</dd>
<dt><big><a name="MenuItemWidget.layout"></a>void <u>layout</u>(Rect <i>rc</i>);
</big></dt>
<dd>Set widget rectangle to specified value and <u>layout</u> widget contents. (Step 2 of two phase <u>layout</u>).<br><br>
</dd>
<dt><big><a name="MenuItemWidget.onDraw"></a>void <u>onDraw</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>Draw widget at its position to buffer<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="MenuWidgetBase"></a>class <u>MenuWidgetBase</u>: dlangui.widgets.lists.ListWidget;
</big></dt>
<dd>base class for menus<br><br>
<dl><dt><big><a name="MenuWidgetBase.onMenuItemClickListener"></a>Signal!MenuItemClickHandler <u>onMenuItemClickListener</u>;
</big></dt>
<dd>menu item click listener<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.onMenuItemActionListener"></a>Signal!MenuItemActionHandler <u>onMenuItemActionListener</u>;
</big></dt>
<dd>menu item action listener<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.measure"></a>void <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd>Measure widget according to desired width and height constraints. (Step 1 of two phase layout).<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.selectionChanged"></a>protected void <u>selectionChanged</u>(int <i>index</i>, int <i>previouslySelectedItem</i> = -1);
</big></dt>
<dd>override to handle change of selection<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.itemClicked"></a>protected void <u>itemClicked</u>(int <i>index</i>);
</big></dt>
<dd>override to handle mouse up on item<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.thisPopup"></a>@property PopupWidget <u>thisPopup</u>();
</big></dt>
<dd>returns popup this menu is located in<br><br>
</dd>
<dt><big><a name="MenuWidgetBase.onKeyEvent"></a>bool <u>onKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>list navigation using keys<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="MainMenu"></a>class <u>MainMenu</u>: dlangui.widgets.menu.MenuWidgetBase;
</big></dt>
<dd>main menu (horizontal)<br><br>
<dl><dt><big><a name="MainMenu.wantsKeyTracking"></a>@property bool <u>wantsKeyTracking</u>();
</big></dt>
<dd>override and return <b>true</b> to track key events even when not focused<br><br>
</dd>
<dt><big><a name="MainMenu.textFlags"></a>@property uint <u>textFlags</u>();
</big></dt>
<dd>get text flags (bit set of TextFlag enum values)<br><br>
</dd>
<dt><big><a name="MainMenu.activated"></a>@property bool <u>activated</u>();
</big></dt>
<dd>return <b>true</b> if main menu is <u>activated</u> (focused or has open submenu)<br><br>
</dd>
<dt><big><a name="MainMenu.activate"></a>void <u>activate</u>();
</big></dt>
<dd>bring focus to main menu, if not yet activated<br><br>
</dd>
<dt><big><a name="MainMenu.deactivate"></a>void <u>deactivate</u>(bool <i>force</i> = false);
</big></dt>
<dd>close and remove focus, if activated<br><br>
</dd>
<dt><big><a name="MainMenu.toggle"></a>bool <u>toggle</u>();
</big></dt>
<dd>activate or deactivate main menu, return <b>true</b> if it has been activated<br><br>
</dd>
<dt><big><a name="MainMenu.handleFocusChange"></a>protected void <u>handleFocusChange</u>(bool <i>focused</i>);
</big></dt>
<dd>override to handle focus changes<br><br>
</dd>
<dt><big><a name="MainMenu.onKeyEvent"></a>bool <u>onKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>list navigation using keys<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="PopupMenu"></a>class <u>PopupMenu</u>: dlangui.widgets.menu.MenuWidgetBase;
</big></dt>
<dd>popup menu widget (vertical layout of items)<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>