dlangui/menu.html

336 lines
12 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<link href='https://fonts.googleapis.com/css?family=Chivo:900' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>DlangUI - cross platform GUI library for D programming language - dlangui.widgets.menu</title>
</head>
<body>
<div id="container">
<div class="inner">
<header>
<h1>DlangUI</h1>
<h2>Cross Platform GUI for D programming language</h2>
</header>
<section id="downloads" class="clearfix">
<a href="index.html" id="home" class="button"><span>Home</span></a>
<a href="api.html" id="home" class="button"><span>API Docs</span></a>
<a href="screenshots.html" id="home" class="button"><span>Screenshots</span></a>
<a href="https://github.com/buggins/dlangui/zipball/master" id="download-zip" class="button"><span>Download .zip</span></a>
<!--a href="https://github.com/buggins/dlangui/tarball/master" id="download-tar-gz" class="button"><span>Download .tar.gz</span></a-->
<a href="https://github.com/buggins/dlangui" id="view-on-github" class="button"><span>View on GitHub</span></a>
</section>
<hr>
<section id="main_content">
<h1>dlangui.widgets.menu</h1>
<!-- Generated by Ddoc from src\dlangui\widgets\menu.d -->
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>: <u>dlangui.widgets.widget.WidgetGroup</u>;
</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>: <u>dlangui.widgets.lists.ListWidget</u>;
</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>: <u>dlangui.widgets.menu.MenuWidgetBase</u>;
</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>: <u>dlangui.widgets.menu.MenuWidgetBase</u>;
</big></dt>
<dd>popup menu widget (vertical layout of items)<br><br>
</dd>
</dl>
</section>
<footer>
Dlangui is maintained by <a href="https://github.com/buggins">buggins</a><br>
This page was generated by <a href="http://pages.github.com">GitHub Pages</a>. Tactile theme by <a href="https://twitter.com/jasonlong">Jason Long</a>.
</footer>
</div>
</div>
</body>
</html>