move documentation to gh-pages http://buggins.github.io/dlangui/

This commit is contained in:
Vadim Lopatin 2014-05-22 12:12:41 +04:00
parent df957283c5
commit 37786af705
26 changed files with 0 additions and 5013 deletions

View File

@ -1,58 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.all</title>
</head><body>
<h1>dlangui.all</h1>
<!-- Generated by Ddoc from src/dlangui/all.d -->
DLANGUI library.
<br><br>
This module is just to simplify import of most useful DLANGUI modules.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=green>// helloworld
</font><font color=blue>import</font> dlangui.<u>all</u>;
<font color=green>// required in one of modules
</font><font color=blue>mixin</font> APP_ENTRY_POINT;
<font color=green>/// entry point for dlangui based application
</font><font color=blue>extern</font> (C) <font color=blue>int</font> UIAppMain(string[] args) {
<font color=green>// resource directory search paths
</font> string[] resourceDirs = [
appendPath(exePath, <font color=red>"../../../res/"</font>), <font color=green>// for Visual D and DUB builds
</font> appendPath(exePath, <font color=red>"../../../../res/"</font>), <font color=green>// for Mono-D builds
</font> appendPath(exePath, <font color=red>"res/"</font>) <font color=green>// when res dir is located at the same directory as executable
</font> ];
<font color=green>// setup resource directories - will use only existing directories
</font> drawableCache.setResourcePaths(resourceDirs);
<font color=green>// setup i18n - look for i18n directory inside one of passed directories
</font> i18n.findTranslationsDir(resourceDirs);
<font color=green>// select translation file - for english language
</font> i18n.load(<font color=red>"en.ini"</font>); <font color=green>//"ru.ini", "en.ini"
</font>
<font color=green>// create window
</font> Window window = Platform.instance.createWindow(<font color=red>"My Window"</font>, <font color=blue>null</font>);
<font color=green>// create some widget to show in window
</font> window.mainWidget = (<font color=blue>new</font> Button()).text(<font color=red>"Hello world"d</font>);
<font color=green>// show window
</font> window.show();
<font color=green>// run message loop
</font> <font color=blue>return</font> Platform.instance.enterMessageLoop();
}
</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>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,154 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.collections</title>
</head><body>
<h1>dlangui.core.collections</h1>
<!-- Generated by Ddoc from src/dlangui/core/collections.d -->
DLANGUI library.
<br><br>
This module implements array based collection.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>collections</u>;
<font color=green>// add
</font>Collection!Widget widgets;
widgets ~= <font color=blue>new</font> Widget(<font color=red>"id1"</font>);
widgets ~= <font color=blue>new</font> Widget(<font color=red>"id2"</font>);
Widget w3 = <font color=blue>new</font> Widget(<font color=red>"id3"</font>);
widgets ~= w3;
<font color=green>// remove by index
</font>widgets.remove(1);
<font color=green>// foreach
</font><font color=blue>foreach</font>(w; widgets)
writeln(<font color=red>"widget: "</font>, w.id);
<font color=green>// remove by value
</font>widgets -= w3;
writeln(widgets[0].id);
</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="Collection"></a>struct <u>Collection</u>(T, bool ownItems = false);
</big></dt>
<dd>array based collection of items
retains item order when during add/remove operations<br><br>
<dl><dt><big><a name="empty"></a>bool <u>empty</u>();
</big></dt>
<dd>returns <b>true</b> if there are no items in collection<br><br>
</dd>
<dt><big><a name="length"></a>size_t <u>length</u>();
</big></dt>
<dd>returns number of items in collection<br><br>
</dd>
<dt><big><a name="size"></a>size_t <u>size</u>();
</big></dt>
<dd>returns currently allocated capacity (may be more than length)<br><br>
</dd>
<dt><big><a name="size"></a>void <u>size</u>(size_t <i>newSize</i>);
</big></dt>
<dd>change capacity (e.g. to reserve big space to avoid multiple reallocations)<br><br>
</dd>
<dt><big><a name="length"></a>void <u>length</u>(size_t <i>newSize</i>);
</big></dt>
<dd>returns number of items in collection<br><br>
</dd>
<dt><big><a name="opIndex"></a>T <u>opIndex</u>(size_t <i>index</i>);
</big></dt>
<dd>access item by <i>index</i><br><br>
</dd>
<dt><big><a name="add"></a>void <u>add</u>(T <i>item</i>, size_t <i>index</i> = size_t.max);
</big></dt>
<dd>insert new <i>item</i> in specified position<br><br>
</dd>
<dt><big><a name="addAll"></a>void <u>addAll</u>(ref Collection!(T, ownItems) <i>v</i>);
</big></dt>
<dd>add all items from other collection<br><br>
</dd>
<dt><big><a name="opOpAssign"></a>Collection <u>opOpAssign</u>(string op)(T <i>item</i>);
</big></dt>
<dd>support for appending (~=, +=) and removing by value (-=)<br><br>
</dd>
<dt><big><a name="indexOf"></a>size_t <u>indexOf</u>(T <i>item</i>);
</big></dt>
<dd>returns index of first occurence of <i>item</i>, size_t.max if not found<br><br>
</dd>
<dt><big><a name="remove"></a>T <u>remove</u>(size_t <i>index</i>);
</big></dt>
<dd><u>remove</u> single item, returning removed item<br><br>
</dd>
<dt><big><a name="removeValue"></a>bool <u>removeValue</u>(T <i>value</i>);
</big></dt>
<dd>remove single item by <i>value</i> - if present in collection, returning <b>true</b> if item was found and removed<br><br>
</dd>
<dt><big><a name="opApply"></a>int <u>opApply</u>(int delegate(ref T param) <i>op</i>);
</big></dt>
<dd>support of foreach with reference<br><br>
</dd>
<dt><big><a name="clear"></a>void <u>clear</u>();
</big></dt>
<dd>remove all items<br><br>
</dd>
<dt><big><a name="popFront"></a>T <u>popFront</u>();
</big></dt>
<dd>remove first item<br><br>
</dd>
<dt><big><a name="pushFront"></a>void <u>pushFront</u>(T <i>item</i>);
</big></dt>
<dd>insert <i>item</i> at beginning of collection<br><br>
</dd>
<dt><big><a name="popBack"></a>T <u>popBack</u>();
</big></dt>
<dd>remove last item<br><br>
</dd>
<dt><big><a name="pushBack"></a>void <u>pushBack</u>(T <i>item</i>);
</big></dt>
<dd>insert <i>item</i> at end of collection<br><br>
</dd>
<dt><big><a name="front"></a>T <u>front</u>();
</big></dt>
<dd>peek first item<br><br>
</dd>
<dt><big><a name="back"></a>T <u>back</u>();
</big></dt>
<dd>peek last item<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,215 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.controls</title>
</head><body>
<h1>dlangui.widgets.controls</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/controls.d -->
DLANGUI library.
<br><br>
This module contains simple <u>controls</u> widgets implementation.
<br><br>
TextWidget
<br><br>
ImageWidget
<br><br>
Button
<br><br>
ImageButton
<br><br>
ScrollBar
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>controls</u>;
</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="VSpacer"></a>class <u>VSpacer</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>vertical spacer to fill empty space in vertical layouts<br><br>
</dd>
<dt><big><a name="HSpacer"></a>class <u>HSpacer</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>horizontal spacer to fill empty space in horizontal layouts<br><br>
</dd>
<dt><big><a name="TextWidget"></a>class <u>TextWidget</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>static text widget<br><br>
<dl><dt><big><a name="TextWidget.text"></a>@property dstring <u>text</u>();
</big></dt>
<dd>get widget <u>text</u><br><br>
</dd>
<dt><big><a name="TextWidget.text"></a>@property Widget <u>text</u>(dstring <i>s</i>);
</big></dt>
<dd>set <u>text</u> to show<br><br>
</dd>
<dt><big><a name="TextWidget.text"></a>@property Widget <u>text</u>(UIString <i>s</i>);
</big></dt>
<dd>set <u>text</u> to show<br><br>
</dd>
<dt><big><a name="TextWidget.textResource"></a>@property Widget <u>textResource</u>(string <i>s</i>);
</big></dt>
<dd>set text resource ID to show<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ImageWidget"></a>class <u>ImageWidget</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>static image widget<br><br>
<dl><dt><big><a name="ImageWidget.drawableId"></a>@property string <u>drawableId</u>();
</big></dt>
<dd>get drawable image id<br><br>
</dd>
<dt><big><a name="ImageWidget.drawableId"></a>@property ImageWidget <u>drawableId</u>(string <i>id</i>);
</big></dt>
<dd>set drawable image <i>id</i><br><br>
</dd>
<dt><big><a name="ImageWidget.drawable"></a>@property ref DrawableRef <u>drawable</u>();
</big></dt>
<dd>get <u>drawable</u><br><br>
</dd>
<dt><big><a name="ImageWidget.drawable"></a>@property ImageWidget <u>drawable</u>(DrawableRef <i>img</i>);
</big></dt>
<dd>set custom <u>drawable</u> (not one from resources)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ImageButton"></a>class <u>ImageButton</u>: dlangui.widgets.controls.ImageWidget;
</big></dt>
<dd>button with image only<br><br>
</dd>
<dt><big><a name="ImageTextButton"></a>class <u>ImageTextButton</u>: dlangui.widgets.layouts.HorizontalLayout;
</big></dt>
<dd>button with image and text<br><br>
</dd>
<dt><big><a name="CheckBox"></a>class <u>CheckBox</u>: dlangui.widgets.controls.ImageTextButton;
</big></dt>
<dd>checkbox<br><br>
</dd>
<dt><big><a name="RadioButton"></a>class <u>RadioButton</u>: dlangui.widgets.controls.ImageTextButton;
</big></dt>
<dd>radio button<br><br>
</dd>
<dt><big><a name="Button"></a>class <u>Button</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>Text only button<br><br>
</dd>
<dt><big><a name="OnScrollHandler"></a>interface <u>OnScrollHandler</u>;
</big></dt>
<dd>scroll event handler interface<br><br>
<dl><dt><big><a name="OnScrollHandler.onScrollEvent"></a>abstract bool <u>onScrollEvent</u>(AbstractSlider <i>source</i>, ScrollEvent <i>event</i>);
</big></dt>
<dd>handle scroll <i>event</i><br><br>
</dd>
</dl>
</dd>
<dt><big><a name="AbstractSlider"></a>class <u>AbstractSlider</u>: dlangui.widgets.widget.WidgetGroup;
</big></dt>
<dd>base class for widgets like scrollbars and sliders<br><br>
<dl><dt><big><a name="AbstractSlider.onScrollEventListener"></a>Signal!OnScrollHandler <u>onScrollEventListener</u>;
</big></dt>
<dd>scroll event listeners<br><br>
</dd>
<dt><big><a name="AbstractSlider.position"></a>const @property int <u>position</u>();
</big></dt>
<dd>returns slider <u>position</u><br><br>
</dd>
<dt><big><a name="AbstractSlider.position"></a>@property AbstractSlider <u>position</u>(int <i>newPosition</i>);
</big></dt>
<dd>sets new slider <u>position</u><br><br>
</dd>
<dt><big><a name="AbstractSlider.minValue"></a>const @property int <u>minValue</u>();
</big></dt>
<dd>returns slider range min value<br><br>
</dd>
<dt><big><a name="AbstractSlider.maxValue"></a>const @property int <u>maxValue</u>();
</big></dt>
<dd>returns slider range max value<br><br>
</dd>
<dt><big><a name="AbstractSlider.pageSize"></a>const @property int <u>pageSize</u>();
</big></dt>
<dd>page size (visible area size)<br><br>
</dd>
<dt><big><a name="AbstractSlider.pageSize"></a>@property AbstractSlider <u>pageSize</u>(int <i>size</i>);
</big></dt>
<dd>set page <i>size</i> (visible area <i>size</i>)<br><br>
</dd>
<dt><big><a name="AbstractSlider.setRange"></a>AbstractSlider <u>setRange</u>(int <i>min</i>, int <i>max</i>);
</big></dt>
<dd>set new range (<i>min</i> and <i>max</i> values for slider)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ScrollBar"></a>class <u>ScrollBar</u>: dlangui.widgets.controls.AbstractSlider, dlangui.widgets.widget.OnClickHandler;
</big></dt>
<dd>scroll bar - either vertical or horizontal<br><br>
<dl><dt><big><a name="ScrollBar.orientation"></a>@property Orientation <u>orientation</u>();
</big></dt>
<dd>returns scrollbar <u>orientation</u> (Vertical, Horizontal)<br><br>
</dd>
<dt><big><a name="ScrollBar.orientation"></a>@property ScrollBar <u>orientation</u>(Orientation <i>value</i>);
</big></dt>
<dd>sets scrollbar <u>orientation</u><br><br>
</dd>
<dt><big><a name="ScrollBar.onMouseEvent"></a>bool <u>onMouseEvent</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>handle mouse wheel events<br><br>
</dd>
<dt><big><a name="ScrollBar.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>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,223 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.drawbuf</title>
</head><body>
<h1>dlangui.graphics.drawbuf</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/drawbuf.d -->
DLANGUI library.
<br><br>
This module contains drawing buffer implementation.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>drawbuf</u>;
</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="blendARGB"></a>uint <u>blendARGB</u>(uint <i>dst</i>, uint <i>src</i>, uint <i>alpha</i>);
</big></dt>
<dd>blend two RGB pixels using <i>alpha</i><br><br>
</dd>
<dt><big><a name="blendAlpha"></a>uint <u>blendAlpha</u>(uint <i>a1</i>, uint <i>a2</i>);
</big></dt>
<dd>blend two alpha values 0..255 (255 is fully transparent, 0 is opaque)<br><br>
</dd>
<dt><big><a name="blendGray"></a>ubyte <u>blendGray</u>(ubyte <i>dst</i>, ubyte <i>src</i>, uint <i>alpha</i>);
</big></dt>
<dd>blend two RGB pixels using <i>alpha</i><br><br>
</dd>
<dt><big><a name="isFullyTransparentColor"></a>pure nothrow bool <u>isFullyTransparentColor</u>(uint <i>color</i>);
</big></dt>
<dd>returns <b>true</b> if <i>color</i> is #FFxxxxxx (<i>color</i> alpha is 255)<br><br>
</dd>
<dt><big><a name="NinePatch"></a>struct <u>NinePatch</u>;
</big></dt>
<dd>9-patch image scaling information (see Android documentation).
<br><br>
<dl><dt><big><a name="NinePatch.frame"></a>Rect <u>frame</u>;
</big></dt>
<dd><u>frame</u> (non-scalable) part size for left, top, right, bottom edges.<br><br>
</dd>
<dt><big><a name="NinePatch.padding"></a>Rect <u>padding</u>;
</big></dt>
<dd><u>padding</u> (distance to content area) for left, top, right, bottom edges.<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="DrawBuf"></a>abstract class <u>DrawBuf</u>: dlangui.core.types.RefCountedObject;
</big></dt>
<dd>drawing buffer - image container which allows to perform some drawing operations<br><br>
<dl><dt><big><a name="DrawBuf.alpha"></a>@property uint <u>alpha</u>();
</big></dt>
<dd>get current <u>alpha</u> setting (to be applied to all drawing operations)<br><br>
</dd>
<dt><big><a name="DrawBuf.alpha"></a>@property void <u>alpha</u>(uint <u>alpha</u>);
</big></dt>
<dd>set new <u>alpha</u> setting (to be applied to all drawing operations)<br><br>
</dd>
<dt><big><a name="DrawBuf.addAlpha"></a>void <u>addAlpha</u>(uint <i>alpha</i>);
</big></dt>
<dd>apply additional transparency to current drawbuf <i>alpha</i> value<br><br>
</dd>
<dt><big><a name="DrawBuf.applyAlpha"></a>uint <u>applyAlpha</u>(uint <i>argb</i>);
</big></dt>
<dd>applies current drawbuf alpha to <i>argb</i> color value<br><br>
</dd>
<dt><big><a name="DrawBuf.id"></a>@property uint <u>id</u>();
</big></dt>
<dd>unique ID of drawbug instance, for using with hardware accelerated rendering for caching<br><br>
</dd>
<dt><big><a name="DrawBuf.ninePatch"></a>const @property const(NinePatch)* <u>ninePatch</u>();
</big></dt>
<dd>get nine patch information pointer, <b>null</b> if this is not a nine patch image buffer<br><br>
</dd>
<dt><big><a name="DrawBuf.ninePatch"></a>@property void <u>ninePatch</u>(NinePatch* <u>ninePatch</u>);
</big></dt>
<dd>set nine patch information pointer, <b>null</b> if this is not a nine patch image buffer<br><br>
</dd>
<dt><big><a name="DrawBuf.hasNinePatch"></a>@property bool <u>hasNinePatch</u>();
</big></dt>
<dd>check whether there is nine-patch information available for drawing buffer<br><br>
</dd>
<dt><big><a name="DrawBuf.detectNinePatch"></a>bool <u>detectNinePatch</u>();
</big></dt>
<dd>override to detect nine patch using image 1-pixel border; returns <b>true</b> if 9-patch markup is found in image.<br><br>
</dd>
<dt><big><a name="DrawBuf.width"></a>@property int <u>width</u>();
</big></dt>
<dd>returns current <u>width</u><br><br>
</dd>
<dt><big><a name="DrawBuf.height"></a>@property int <u>height</u>();
</big></dt>
<dd>returns current <u>height</u><br><br>
</dd>
<dt><big><a name="DrawBuf.clipRect"></a>@property ref Rect <u>clipRect</u>();
</big></dt>
<dd>returns clipping rectangle, when <u>clipRect</u>.isEmpty == <b>true</b> -- means no clipping.<br><br>
</dd>
<dt><big><a name="DrawBuf.clipOrFullRect"></a>@property Rect <u>clipOrFullRect</u>();
</big></dt>
<dd>returns clipping rectangle, or (0,0,dx,dy) when no clipping.<br><br>
</dd>
<dt><big><a name="DrawBuf.clipRect"></a>@property void <u>clipRect</u>(ref const Rect <i>rect</i>);
</big></dt>
<dd>sets new clipping rectangle, when <u>clipRect</u>.isEmpty == <b>true</b> -- means no clipping.<br><br>
</dd>
<dt><big><a name="DrawBuf.intersectClipRect"></a>@property void <u>intersectClipRect</u>(ref const Rect <i>rect</i>);
</big></dt>
<dd>sets new clipping rectangle, when clipRect.isEmpty == <b>true</b> -- means no clipping.<br><br>
</dd>
<dt><big><a name="DrawBuf.applyClipping"></a>bool <u>applyClipping</u>(ref Rect <i>rc</i>);
</big></dt>
<dd>apply clipRect and buffer bounds clipping to rectangle<br><br>
</dd>
<dt><big><a name="DrawBuf.applyClipping"></a>bool <u>applyClipping</u>(ref Rect <i>rc</i>, ref Rect <i>rc2</i>);
</big></dt>
<dd>apply clipRect and buffer bounds clipping to rectangle; if clippinup applied to first rectangle, reduce second rectangle bounds proportionally.<br><br>
</dd>
<dt><big><a name="DrawBuf.beforeDrawing"></a>void <u>beforeDrawing</u>();
</big></dt>
<dd>reserved for hardware-accelerated drawing - begins drawing batch<br><br>
</dd>
<dt><big><a name="DrawBuf.afterDrawing"></a>void <u>afterDrawing</u>();
</big></dt>
<dd>reserved for hardware-accelerated drawing - ends drawing batch<br><br>
</dd>
<dt><big><a name="DrawBuf.bpp"></a>@property int <u>bpp</u>();
</big></dt>
<dd>returns buffer bits per pixel<br><br>
</dd>
<dt><big><a name="DrawBuf.resize"></a>abstract void <u>resize</u>(int <i>width</i>, int <i>height</i>);
</big></dt>
<dd><u>resize</u> buffer<br><br>
</dd>
<dt><big><a name="DrawBuf.fill"></a>abstract void <u>fill</u>(uint <i>color</i>);
</big></dt>
<dd><u>fill</u> the whole buffer with solid <i>color</i> (no clipping applied)<br><br>
</dd>
<dt><big><a name="DrawBuf.fillRect"></a>abstract void <u>fillRect</u>(Rect <i>rc</i>, uint <i>color</i>);
</big></dt>
<dd>fill rectangle with solid <i>color</i> (clipping is applied)<br><br>
</dd>
<dt><big><a name="DrawBuf.drawGlyph"></a>abstract void <u>drawGlyph</u>(int <i>x</i>, int <i>y</i>, Glyph* <i>glyph</i>, uint <i>color</i>);
</big></dt>
<dd>draw 8bit alpha image - usually font <i>glyph</i> using specified <i>color</i> (clipping is applied)<br><br>
</dd>
<dt><big><a name="DrawBuf.drawFragment"></a>abstract void <u>drawFragment</u>(int <i>x</i>, int <i>y</i>, DrawBuf <i>src</i>, Rect <i>srcrect</i>);
</big></dt>
<dd>draw source buffer rectangle contents to destination buffer<br><br>
</dd>
<dt><big><a name="DrawBuf.drawRescaled"></a>abstract void <u>drawRescaled</u>(Rect <i>dstrect</i>, DrawBuf <i>src</i>, Rect <i>srcrect</i>);
</big></dt>
<dd>draw source buffer rectangle contents to destination buffer rectangle applying rescaling<br><br>
</dd>
<dt><big><a name="DrawBuf.drawImage"></a>void <u>drawImage</u>(int <i>x</i>, int <i>y</i>, DrawBuf <i>src</i>);
</big></dt>
<dd>draw unscaled image at specified coordinates<br><br>
</dd>
<dt><big><a name="DrawBuf.drawFrame"></a>void <u>drawFrame</u>(Rect <i>rc</i>, uint <i>frameColor</i>, Rect <i>frameSideWidths</i>, uint <i>innerAreaColor</i> = 4294967295u);
</big></dt>
<dd>draws rectangle frame of specified color and widths (per side), and optinally fills inner area<br><br>
</dd>
<dt><big><a name="DrawBuf.transformColors"></a>DrawBuf <u>transformColors</u>(ref ColorTransform <i>transform</i>);
</big></dt>
<dd>create drawbuf with copy of current buffer with changed colors (returns this if not supported)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ClipRectSaver"></a>struct <u>ClipRectSaver</u>;
</big></dt>
<dd>RAII setting/restoring of clip rectangle<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,752 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.editors</title>
</head><body>
<h1>dlangui.widgets.editors</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/editors.d -->
DLANGUI library.
<br><br>
This module contains implementation of <u>editors</u>.
<br><br>
<br><br>
EditLine - single line editor.
<br><br>
EditBox - multiline editor
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>editors</u>;
</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="EditorActions"></a>enum <u>EditorActions</u>: int;
</big></dt>
<dd>Editor action codes<br><br>
<dl><dt><big><a name="EditorActions.Left"></a><u>Left</u></big></dt>
<dd>move cursor one char left<br><br>
</dd>
<dt><big><a name="EditorActions.SelectLeft"></a><u>SelectLeft</u></big></dt>
<dd>move cursor one char left with selection<br><br>
</dd>
<dt><big><a name="EditorActions.Right"></a><u>Right</u></big></dt>
<dd>move cursor one char right<br><br>
</dd>
<dt><big><a name="EditorActions.SelectRight"></a><u>SelectRight</u></big></dt>
<dd>move cursor one char right with selection<br><br>
</dd>
<dt><big><a name="EditorActions.Up"></a><u>Up</u></big></dt>
<dd>move cursor one line up<br><br>
</dd>
<dt><big><a name="EditorActions.SelectUp"></a><u>SelectUp</u></big></dt>
<dd>move cursor one line up with selection<br><br>
</dd>
<dt><big><a name="EditorActions.Down"></a><u>Down</u></big></dt>
<dd>move cursor one line down<br><br>
</dd>
<dt><big><a name="EditorActions.SelectDown"></a><u>SelectDown</u></big></dt>
<dd>move cursor one line down with selection<br><br>
</dd>
<dt><big><a name="EditorActions.WordLeft"></a><u>WordLeft</u></big></dt>
<dd>move cursor one word left<br><br>
</dd>
<dt><big><a name="EditorActions.SelectWordLeft"></a><u>SelectWordLeft</u></big></dt>
<dd>move cursor one word left with selection<br><br>
</dd>
<dt><big><a name="EditorActions.WordRight"></a><u>WordRight</u></big></dt>
<dd>move cursor one word right<br><br>
</dd>
<dt><big><a name="EditorActions.SelectWordRight"></a><u>SelectWordRight</u></big></dt>
<dd>move cursor one word right with selection<br><br>
</dd>
<dt><big><a name="EditorActions.PageUp"></a><u>PageUp</u></big></dt>
<dd>move cursor one page up<br><br>
</dd>
<dt><big><a name="EditorActions.SelectPageUp"></a><u>SelectPageUp</u></big></dt>
<dd>move cursor one page up with selection<br><br>
</dd>
<dt><big><a name="EditorActions.PageDown"></a><u>PageDown</u></big></dt>
<dd>move cursor one page down<br><br>
</dd>
<dt><big><a name="EditorActions.SelectPageDown"></a><u>SelectPageDown</u></big></dt>
<dd>move cursor one page down with selection<br><br>
</dd>
<dt><big><a name="EditorActions.PageBegin"></a><u>PageBegin</u></big></dt>
<dd>move cursor to the beginning of page<br><br>
</dd>
<dt><big><a name="EditorActions.SelectPageBegin"></a><u>SelectPageBegin</u></big></dt>
<dd>move cursor to the beginning of page with selection<br><br>
</dd>
<dt><big><a name="EditorActions.PageEnd"></a><u>PageEnd</u></big></dt>
<dd>move cursor to the end of page<br><br>
</dd>
<dt><big><a name="EditorActions.SelectPageEnd"></a><u>SelectPageEnd</u></big></dt>
<dd>move cursor to the end of page with selection<br><br>
</dd>
<dt><big><a name="EditorActions.LineBegin"></a><u>LineBegin</u></big></dt>
<dd>move cursor to the beginning of line<br><br>
</dd>
<dt><big><a name="EditorActions.SelectLineBegin"></a><u>SelectLineBegin</u></big></dt>
<dd>move cursor to the beginning of line with selection<br><br>
</dd>
<dt><big><a name="EditorActions.LineEnd"></a><u>LineEnd</u></big></dt>
<dd>move cursor to the end of line<br><br>
</dd>
<dt><big><a name="EditorActions.SelectLineEnd"></a><u>SelectLineEnd</u></big></dt>
<dd>move cursor to the end of line with selection<br><br>
</dd>
<dt><big><a name="EditorActions.DocumentBegin"></a><u>DocumentBegin</u></big></dt>
<dd>move cursor to the beginning of document<br><br>
</dd>
<dt><big><a name="EditorActions.SelectDocumentBegin"></a><u>SelectDocumentBegin</u></big></dt>
<dd>move cursor to the beginning of document with selection<br><br>
</dd>
<dt><big><a name="EditorActions.DocumentEnd"></a><u>DocumentEnd</u></big></dt>
<dd>move cursor to the end of document<br><br>
</dd>
<dt><big><a name="EditorActions.SelectDocumentEnd"></a><u>SelectDocumentEnd</u></big></dt>
<dd>move cursor to the end of document with selection<br><br>
</dd>
<dt><big><a name="EditorActions.DelPrevChar"></a><u>DelPrevChar</u></big></dt>
<dd>delete char before cursor (backspace)<br><br>
</dd>
<dt><big><a name="EditorActions.DelNextChar"></a><u>DelNextChar</u></big></dt>
<dd>delete char after cursor (del key)<br><br>
</dd>
<dt><big><a name="EditorActions.DelPrevWord"></a><u>DelPrevWord</u></big></dt>
<dd>delete word before cursor (ctrl + backspace)<br><br>
</dd>
<dt><big><a name="EditorActions.DelNextWord"></a><u>DelNextWord</u></big></dt>
<dd>delete char after cursor (ctrl + del key)<br><br>
</dd>
<dt><big><a name="EditorActions.InsertNewLine"></a><u>InsertNewLine</u></big></dt>
<dd>insert new line (Enter)<br><br>
</dd>
<dt><big><a name="EditorActions.PrependNewLine"></a><u>PrependNewLine</u></big></dt>
<dd>insert new line after current position (Ctrl+Enter)<br><br>
</dd>
<dt><big><a name="EditorActions.ToggleReplaceMode"></a><u>ToggleReplaceMode</u></big></dt>
<dd>Turn On/Off replace mode<br><br>
</dd>
<dt><big><a name="EditorActions.Copy"></a><u>Copy</u></big></dt>
<dd><u>Copy</u> selection to clipboard<br><br>
</dd>
<dt><big><a name="EditorActions.Cut"></a><u>Cut</u></big></dt>
<dd><u>Cut</u> selection to clipboard<br><br>
</dd>
<dt><big><a name="EditorActions.Paste"></a><u>Paste</u></big></dt>
<dd><u>Paste</u> selection from clipboard<br><br>
</dd>
<dt><big><a name="EditorActions.Undo"></a><u>Undo</u></big></dt>
<dd><u>Undo</u> last change<br><br>
</dd>
<dt><big><a name="EditorActions.Redo"></a><u>Redo</u></big></dt>
<dd><u>Redo</u> last undoed change<br><br>
</dd>
<dt><big><a name="EditorActions.Tab"></a><u>Tab</u></big></dt>
<dd><u>Tab</u> (e.g., <u>Tab</u> key to insert tab character or indent text)<br><br>
</dd>
<dt><big><a name="EditorActions.BackTab"></a><u>BackTab</u></big></dt>
<dd>Tab (unindent text, or remove whitespace before cursor, usually Shift+Tab)<br><br>
</dd>
<dt><big><a name="EditorActions.SelectAll"></a><u>SelectAll</u></big></dt>
<dd>Select whole content (usually, Ctrl+A)<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollLineUp"></a><u>ScrollLineUp</u></big></dt>
<dd>Scroll one line up (not changing cursor)<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollLineDown"></a><u>ScrollLineDown</u></big></dt>
<dd>Scroll one line down (not changing cursor)<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollPageUp"></a><u>ScrollPageUp</u></big></dt>
<dd>Scroll one page up (not changing cursor)<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollPageDown"></a><u>ScrollPageDown</u></big></dt>
<dd>Scroll one page down (not changing cursor)<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollLeft"></a><u>ScrollLeft</u></big></dt>
<dd>Scroll window left<br><br>
</dd>
<dt><big><a name="EditorActions.ScrollRight"></a><u>ScrollRight</u></big></dt>
<dd>Scroll window right<br><br>
</dd>
<dt><big><a name="EditorActions.ZoomIn"></a><u>ZoomIn</u></big></dt>
<dd>Zoom in editor font<br><br>
</dd>
<dt><big><a name="EditorActions.ZoomOut"></a><u>ZoomOut</u></big></dt>
<dd>Zoom out editor font<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="splitDString"></a>dstring[] <u>splitDString</u>(dstring <i>source</i>, dchar <i>delimiter</i> = EOL);
</big></dt>
<dd>split dstring by delimiters<br><br>
</dd>
<dt><big><a name="concatDStrings"></a>dstring <u>concatDStrings</u>(dstring[] <i>lines</i>, dstring <i>delimiter</i> = SYSTEM_DEFAULT_EOL);
</big></dt>
<dd>concat strings from array using <i>delimiter</i><br><br>
</dd>
<dt><big><a name="replaceEolsWithSpaces"></a>dstring <u>replaceEolsWithSpaces</u>(dstring <i>source</i>);
</big></dt>
<dd>replace end of lines with spaces<br><br>
</dd>
<dt><big><a name="TextPosition"></a>struct <u>TextPosition</u>;
</big></dt>
<dd>text content position<br><br>
<dl><dt><big><a name="TextPosition.line"></a>int <u>line</u>;
</big></dt>
<dd><u>line</u> number, zero based<br><br>
</dd>
<dt><big><a name="TextPosition.pos"></a>int <u>pos</u>;
</big></dt>
<dd>character position in line (0 == before first character)<br><br>
</dd>
<dt><big><a name="TextPosition.opCmp"></a>const int <u>opCmp</u>(ref const TextPosition <i>v</i>);
</big></dt>
<dd>compares two positions<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="TextRange"></a>struct <u>TextRange</u>;
</big></dt>
<dd>text content range<br><br>
<dl><dt><big><a name="TextRange.empty"></a>const @property bool <u>empty</u>();
</big></dt>
<dd>returns <b>true</b> if range is <u>empty</u><br><br>
</dd>
<dt><big><a name="TextRange.singleLine"></a>const @property bool <u>singleLine</u>();
</big></dt>
<dd>returns <b>true</b> if start and end located at the same line<br><br>
</dd>
<dt><big><a name="TextRange.lines"></a>const @property int <u>lines</u>();
</big></dt>
<dd>returns count of <u>lines</u> in range<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditAction"></a>enum <u>EditAction</u>: int;
</big></dt>
<dd>action performed with editable contents<br><br>
<dl><dt><big><a name="EditAction.Replace"></a><u>Replace</u></big></dt>
<dd>insert content into specified position (range.start)
delete content in range
replace range content with new content<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditOperation"></a>class <u>EditOperation</u>;
</big></dt>
<dd>edit operation details for EditableContent<br><br>
<dl><dt><big><a name="EditOperation.action"></a>@property EditAction <u>action</u>();
</big></dt>
<dd><u>action</u> performed<br><br>
</dd>
<dt><big><a name="EditOperation.range"></a>@property ref TextRange <u>range</u>();
</big></dt>
<dd>source <u>range</u> to replace with new content<br><br>
</dd>
<dt><big><a name="EditOperation.newRange"></a>@property ref TextRange <u>newRange</u>();
</big></dt>
<dd>new range after operation applied<br><br>
</dd>
<dt><big><a name="EditOperation._content"></a>protected dstring[] <u>_content</u>;
</big></dt>
<dd>new content for range (if required for this action)<br><br>
</dd>
<dt><big><a name="EditOperation._oldContent"></a>protected dstring[] <u>_oldContent</u>;
</big></dt>
<dd>old content for range<br><br>
</dd>
<dt><big><a name="EditOperation.merge"></a>bool <u>merge</u>(EditOperation <i>op</i>);
</big></dt>
<dd>try to <u>merge</u> two operations (simple entering of characters in the same line), return <b>true</b> if succeded<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="UndoBuffer"></a>class <u>UndoBuffer</u>;
</big></dt>
<dd>Undo/Redo buffer<br><br>
<dl><dt><big><a name="UndoBuffer.hasUndo"></a>@property bool <u>hasUndo</u>();
</big></dt>
<dd>returns <b>true</b> if buffer contains any undo items<br><br>
</dd>
<dt><big><a name="UndoBuffer.hasRedo"></a>@property bool <u>hasRedo</u>();
</big></dt>
<dd>returns <b>true</b> if buffer contains any redo items<br><br>
</dd>
<dt><big><a name="UndoBuffer.saveForUndo"></a>void <u>saveForUndo</u>(EditOperation <i>op</i>);
</big></dt>
<dd>adds undo operation<br><br>
</dd>
<dt><big><a name="UndoBuffer.undo"></a>EditOperation <u>undo</u>();
</big></dt>
<dd>returns operation to be undone (put it to redo), <b>null</b> if no <u>undo</u> ops available<br><br>
</dd>
<dt><big><a name="UndoBuffer.redo"></a>EditOperation <u>redo</u>();
</big></dt>
<dd>returns operation to be redone (put it to undo), <b>null</b> if no undo ops available<br><br>
</dd>
<dt><big><a name="UndoBuffer.clear"></a>void <u>clear</u>();
</big></dt>
<dd>clears both undo and redo buffers<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditableContentListener"></a>interface <u>EditableContentListener</u>;
</big></dt>
<dd>Editable Content change listener<br><br>
</dd>
<dt><big><a name="EditableContent"></a>class <u>EditableContent</u>;
</big></dt>
<dd>editable plain text (singleline/multiline)<br><br>
<dl><dt><big><a name="EditableContent.contentChangeListeners"></a>Signal!EditableContentListener <u>contentChangeListeners</u>;
</big></dt>
<dd>listeners for edit operations<br><br>
</dd>
<dt><big><a name="EditableContent.multiline"></a>@property bool <u>multiline</u>();
</big></dt>
<dd>returns <b>true</b> if miltyline content is supported<br><br>
</dd>
<dt><big><a name="EditableContent.text"></a>@property dstring <u>text</u>();
</big></dt>
<dd>returns all lines concatenated delimited by '\n'<br><br>
</dd>
<dt><big><a name="EditableContent.text"></a>@property EditableContent <u>text</u>(dstring <i>newContent</i>);
</big></dt>
<dd>replace whole <u>text</u> with another content<br><br>
</dd>
<dt><big><a name="EditableContent.length"></a>@property int <u>length</u>();
</big></dt>
<dd>returns line text<br><br>
</dd>
<dt><big><a name="EditableContent.line"></a>dstring <u>line</u>(int <i>index</i>);
</big></dt>
<dd>returns <u>line</u> text by <i>index</i>, "" if <i>index</i> is out of bounds<br><br>
</dd>
<dt><big><a name="EditableContent.lineEnd"></a>TextPosition <u>lineEnd</u>(int <i>lineIndex</i>);
</big></dt>
<dd>returns text position for end of line <i>lineIndex</i><br><br>
</dd>
<dt><big><a name="EditableContent.firstNonSpace"></a>TextPosition <u>firstNonSpace</u>(int <i>lineIndex</i>);
</big></dt>
<dd>returns position before first non-space character of line, returns 0 position if no non-space chars<br><br>
</dd>
<dt><big><a name="EditableContent.lastNonSpace"></a>TextPosition <u>lastNonSpace</u>(int <i>lineIndex</i>);
</big></dt>
<dd>returns position after last non-space character of line, returns 0 position if no non-space chars on line<br><br>
</dd>
<dt><big><a name="EditableContent.lineLength"></a>int <u>lineLength</u>(int <i>lineIndex</i>);
</big></dt>
<dd>returns text position for end of line <i>lineIndex</i><br><br>
</dd>
<dt><big><a name="EditableContent.maxLineLength"></a>int <u>maxLineLength</u>();
</big></dt>
<dd>returns maximum length of line<br><br>
</dd>
<dt><big><a name="EditableContent.rangeText"></a>dstring[] <u>rangeText</u>(TextRange <i>range</i>);
</big></dt>
<dd>return text for specified <i>range</i><br><br>
</dd>
<dt><big><a name="EditableContent.correctPosition"></a>void <u>correctPosition</u>(ref TextPosition <i>position</i>);
</big></dt>
<dd>when <i>position</i> is out of content bounds, fix it to nearest valid <i>position</i><br><br>
</dd>
<dt><big><a name="EditableContent.correctRange"></a>void <u>correctRange</u>(ref TextRange <i>range</i>);
</big></dt>
<dd>when <i>range</i> positions is out of content bounds, fix it to nearest valid position<br><br>
</dd>
<dt><big><a name="EditableContent.removeLines"></a>protected void <u>removeLines</u>(int <i>start</i>, int <i>removedCount</i>);
</big></dt>
<dd>removes <i>removedCount</i> lines starting from <i>start</i><br><br>
</dd>
<dt><big><a name="EditableContent.insertLines"></a>protected void <u>insertLines</u>(int <i>start</i>, int <i>count</i>);
</big></dt>
<dd>inserts <i>count</i> empty lines at specified position<br><br>
</dd>
<dt><big><a name="EditableContent.replaceRange"></a>protected void <u>replaceRange</u>(TextRange <i>before</i>, TextRange <i>after</i>, dstring[] <i>newContent</i>);
</big></dt>
<dd>inserts or removes lines, removes text in range<br><br>
</dd>
<dt><big><a name="EditableContent.moveByWord"></a>TextPosition <u>moveByWord</u>(TextPosition <i>p</i>, int <i>direction</i>, bool <i>camelCasePartsAsWords</i>);
</big></dt>
<dd>change text position to nearest word bound (<i>direction</i> &lt; 0 - back, &gt; 0 - forward)<br><br>
</dd>
<dt><big><a name="EditableContent.performOperation"></a>bool <u>performOperation</u>(EditOperation <i>op</i>, Object <i>source</i>);
</big></dt>
<dd>edit content<br><br>
</dd>
<dt><big><a name="EditableContent.hasUndo"></a>@property bool <u>hasUndo</u>();
</big></dt>
<dd>return <b>true</b> if there is at least one operation in undo buffer<br><br>
</dd>
<dt><big><a name="EditableContent.hasRedo"></a>@property bool <u>hasRedo</u>();
</big></dt>
<dd>return <b>true</b> if there is at least one operation in redo buffer<br><br>
</dd>
<dt><big><a name="EditableContent.undo"></a>bool <u>undo</u>();
</big></dt>
<dd>undoes last change<br><br>
</dd>
<dt><big><a name="EditableContent.redo"></a>bool <u>redo</u>();
</big></dt>
<dd>redoes last undone change<br><br>
</dd>
<dt><big><a name="EditableContent.clearUndo"></a>void <u>clearUndo</u>();
</big></dt>
<dd>clear undo/redp history<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditWidgetBase"></a>abstract class <u>EditWidgetBase</u>: dlangui.widgets.widget.WidgetGroup, dlangui.widgets.editors.EditableContentListener, dlangui.widgets.menu.MenuItemActionHandler;
</big></dt>
<dd>base for all editor widgets<br><br>
<dl><dt><big><a name="EditWidgetBase.onMenuItemAction"></a>bool <u>onMenuItemAction</u>(const Action <i>action</i>);
</big></dt>
<dd><br><br>
</dd>
<dt><big><a name="EditWidgetBase.canShowPopupMenu"></a>bool <u>canShowPopupMenu</u>(int <i>x</i>, int <i>y</i>);
</big></dt>
<dd>returns <b>true</b> if widget can show popup (e.g. by mouse right click at point <i>x</i>,<i>y</i>)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.isActionEnabled"></a>bool <u>isActionEnabled</u>(const Action <i>action</i>);
</big></dt>
<dd>override to change popup menu items state<br><br>
</dd>
<dt><big><a name="EditWidgetBase.showPopupMenu"></a>void <u>showPopupMenu</u>(int <i>x</i>, int <i>y</i>);
</big></dt>
<dd>shows popup at (<i>x</i>,<i>y</i>)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.getCursorType"></a>uint <u>getCursorType</u>(int <i>x</i>, int <i>y</i>);
</big></dt>
<dd>returns mouse cursor type for widget<br><br>
</dd>
<dt><big><a name="EditWidgetBase.wantTabs"></a>@property bool <u>wantTabs</u>();
</big></dt>
<dd>when <b>true</b>, Tab / Shift+Tab presses are processed internally in widget (e.g. insert tab character) instead of focus change navigation.<br><br>
</dd>
<dt><big><a name="EditWidgetBase.wantTabs"></a>@property EditWidgetBase <u>wantTabs</u>(bool <u>wantTabs</u>);
</big></dt>
<dd>sets tab size (in number of spaces)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.readOnly"></a>@property bool <u>readOnly</u>();
</big></dt>
<dd>readonly flag (when <b>true</b>, user cannot change content of editor)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.readOnly"></a>@property EditWidgetBase <u>readOnly</u>(bool <u>readOnly</u>);
</big></dt>
<dd>sets readonly flag<br><br>
</dd>
<dt><big><a name="EditWidgetBase.replaceMode"></a>@property bool <u>replaceMode</u>();
</big></dt>
<dd>replace mode flag (when <b>true</b>, entered character replaces character under cursor)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.replaceMode"></a>@property EditWidgetBase <u>replaceMode</u>(bool <u>replaceMode</u>);
</big></dt>
<dd>sets replace mode flag<br><br>
</dd>
<dt><big><a name="EditWidgetBase.useSpacesForTabs"></a>@property bool <u>useSpacesForTabs</u>();
</big></dt>
<dd>when <b>true</b>, spaces will be inserted instead of tabs<br><br>
</dd>
<dt><big><a name="EditWidgetBase.useSpacesForTabs"></a>@property EditWidgetBase <u>useSpacesForTabs</u>(bool <u>useSpacesForTabs</u>);
</big></dt>
<dd>set new Tab key behavior flag: when <b>true</b>, spaces will be inserted instead of tabs<br><br>
</dd>
<dt><big><a name="EditWidgetBase.tabSize"></a>@property int <u>tabSize</u>();
</big></dt>
<dd>returns tab size (in number of spaces)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.tabSize"></a>@property EditWidgetBase <u>tabSize</u>(int <i>newTabSize</i>);
</big></dt>
<dd>sets tab size (in number of spaces)<br><br>
</dd>
<dt><big><a name="EditWidgetBase.content"></a>@property EditableContent <u>content</u>();
</big></dt>
<dd>editor <u>content</u> object<br><br>
</dd>
<dt><big><a name="EditWidgetBase._ownContent"></a>protected bool <u>_ownContent</u>;
</big></dt>
<dd>when ownContent is <b>false</b>, content should not be destroyed in editor destructor<br><br>
</dd>
<dt><big><a name="EditWidgetBase.content"></a>@property EditWidgetBase <u>content</u>(EditableContent <u>content</u>);
</big></dt>
<dd>set <u>content</u> object<br><br>
</dd>
<dt><big><a name="EditWidgetBase.text"></a>@property dstring <u>text</u>();
</big></dt>
<dd>get widget <u>text</u><br><br>
</dd>
<dt><big><a name="EditWidgetBase.text"></a>@property Widget <u>text</u>(dstring <i>s</i>);
</big></dt>
<dd>set <u>text</u><br><br>
</dd>
<dt><big><a name="EditWidgetBase.text"></a>@property Widget <u>text</u>(UIString <i>s</i>);
</big></dt>
<dd>set <u>text</u><br><br>
</dd>
<dt><big><a name="EditWidgetBase.caretRect"></a>protected Rect <u>caretRect</u>();
</big></dt>
<dd>returns cursor rectangle<br><br>
</dd>
<dt><big><a name="EditWidgetBase.drawCaret"></a>protected void <u>drawCaret</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>draws caret<br><br>
</dd>
<dt><big><a name="EditWidgetBase.updateScrollbars"></a>protected void <u>updateScrollbars</u>();
</big></dt>
<dd>override to update scrollbars - if necessary<br><br>
</dd>
<dt><big><a name="EditWidgetBase.correctCaretPos"></a>protected void <u>correctCaretPos</u>();
</big></dt>
<dd>when cursor position or selection is out of content bounds, fix it to nearest valid position<br><br>
</dd>
<dt><big><a name="EditWidgetBase.spacesForTab"></a>protected dstring <u>spacesForTab</u>(int <i>currentPos</i>);
</big></dt>
<dd>generate string of spaces, to reach next tab position<br><br>
</dd>
<dt><big><a name="EditWidgetBase.wholeLinesSelected"></a>protected bool <u>wholeLinesSelected</u>();
</big></dt>
<dd>returns <b>true</b> if one or more lines selected fully<br><br>
</dd>
<dt><big><a name="EditWidgetBase.indentLine"></a>protected dstring <u>indentLine</u>(dstring <i>src</i>, bool <i>back</i>);
</big></dt>
<dd>change line indent<br><br>
</dd>
<dt><big><a name="EditWidgetBase.indentRange"></a>protected void <u>indentRange</u>(bool <i>back</i>);
</big></dt>
<dd>indent / unindent range<br><br>
</dd>
<dt><big><a name="EditWidgetBase.findKeyAction"></a>protected Action <u>findKeyAction</u>(uint <i>keyCode</i>, uint <i>flags</i>);
</big></dt>
<dd>map key to action<br><br>
</dd>
<dt><big><a name="EditWidgetBase.onKeyEvent"></a>bool <u>onKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>handle keys<br><br>
</dd>
<dt><big><a name="EditWidgetBase.onMouseEvent"></a>bool <u>onMouseEvent</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>process mouse <i>event</i>; return <b>true</b> if <i>event</i> is processed by widget.<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditLine"></a>class <u>EditLine</u>: dlangui.widgets.editors.EditWidgetBase;
</big></dt>
<dd>single line editor<br><br>
<dl><dt><big><a name="EditLine.measure"></a>void <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd><u>measure</u><br><br>
</dd>
<dt><big><a name="EditLine.onKeyEvent"></a>bool <u>onKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>handle keys<br><br>
</dd>
<dt><big><a name="EditLine.onMouseEvent"></a>bool <u>onMouseEvent</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>process mouse <i>event</i>; return <b>true</b> if <i>event</i> is processed by widget.<br><br>
</dd>
<dt><big><a name="EditLine.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="EditLine.drawLineBackground"></a>protected void <u>drawLineBackground</u>(DrawBuf <i>buf</i>, Rect <i>lineRect</i>, Rect <i>visibleRect</i>);
</big></dt>
<dd>override to custom highlight of line background<br><br>
</dd>
<dt><big><a name="EditLine.onDraw"></a>void <u>onDraw</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>draw content<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="EditBox"></a>class <u>EditBox</u>: dlangui.widgets.editors.EditWidgetBase, dlangui.widgets.controls.OnScrollHandler;
</big></dt>
<dd>single line editor<br><br>
<dl><dt><big><a name="EditBox.onScrollEvent"></a>bool <u>onScrollEvent</u>(AbstractSlider <i>source</i>, ScrollEvent <i>event</i>);
</big></dt>
<dd>handle scroll <i>event</i><br><br>
</dd>
<dt><big><a name="EditBox.measure"></a>void <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd><u>measure</u><br><br>
</dd>
<dt><big><a name="EditBox.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="EditBox.drawLineBackground"></a>protected void <u>drawLineBackground</u>(DrawBuf <i>buf</i>, int <i>lineIndex</i>, Rect <i>lineRect</i>, Rect <i>visibleRect</i>);
</big></dt>
<dd>override to custom highlight of line background<br><br>
</dd>
<dt><big><a name="EditBox.onDraw"></a>void <u>onDraw</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>draw content<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,154 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.events</title>
</head><body>
<h1>dlangui.core.events</h1>
<!-- Generated by Ddoc from src/dlangui/core/events.d -->
DLANGUI library.
<br><br>
This module contains dlangui event types declarations.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>events</u>;
</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="Action"></a>class <u>Action</u>;
</big></dt>
<dd>UI action<br><br>
<dl><dt><big><a name="Action.this"></a> this(int <i>id</i>, uint <i>keyCode</i>, uint <i>keyFlags</i> = 0);
</big></dt>
<dd>action with accelerator, w/o label<br><br>
</dd>
<dt><big><a name="Action.this"></a> this(int <i>id</i>, dstring <i>label</i>, string <i>iconResourceId</i> = null, uint <i>keyCode</i> = 0, uint <i>keyFlags</i> = 0);
</big></dt>
<dd>action with <i>label</i>, icon, and accelerator<br><br>
</dd>
<dt><big><a name="Action.accelerators"></a>@property Accelerator[] <u>accelerators</u>();
</big></dt>
<dd>returs array of <u>accelerators</u><br><br>
</dd>
<dt><big><a name="Action.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="Action.checkAccelerator"></a>bool <u>checkAccelerator</u>(uint <i>keyCode</i>, uint <i>keyFlags</i>);
</big></dt>
<dd>returns <b>true</b> if accelerator matches provided key code and flags<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ButtonDetails"></a>struct <u>ButtonDetails</u>;
</big></dt>
<dd>mouse button state details<br><br>
<dl><dt><big><a name="ButtonDetails._downTs"></a>long <u>_downTs</u>;
</big></dt>
<dd>Clock.currStdTime() for down event of this button (0 if button is up).<br><br>
</dd>
<dt><big><a name="ButtonDetails._upTs"></a>long <u>_upTs</u>;
</big></dt>
<dd>Clock.currStdTime() for up event of this button (0 if button is still down).<br><br>
</dd>
<dt><big><a name="ButtonDetails._downX"></a>short <u>_downX</u>;
</big></dt>
<dd>x coordinates of down event<br><br>
</dd>
<dt><big><a name="ButtonDetails._downY"></a>short <u>_downY</u>;
</big></dt>
<dd>y coordinates of down event<br><br>
</dd>
<dt><big><a name="ButtonDetails._downFlags"></a>ushort <u>_downFlags</u>;
</big></dt>
<dd>mouse button flags when down event occured<br><br>
</dd>
<dt><big><a name="ButtonDetails.down"></a>void <u>down</u>(short <i>x</i>, short <i>y</i>, ushort <i>flags</i>);
</big></dt>
<dd>update for button <u>down</u><br><br>
</dd>
<dt><big><a name="ButtonDetails.up"></a>void <u>up</u>(short <i>x</i>, short <i>y</i>, ushort <i>flags</i>);
</big></dt>
<dd>update for button <u>up</u><br><br>
</dd>
<dt><big><a name="ButtonDetails.downDuration"></a>@property int <u>downDuration</u>();
</big></dt>
<dd>returns button down state duration in hnsecs (1/10000 of second).<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="KeyEvent"></a>class <u>KeyEvent</u>;
</big></dt>
<dd>keyboard event<br><br>
<dl><dt><big><a name="KeyEvent.action"></a>@property KeyAction <u>action</u>();
</big></dt>
<dd>key <u>action</u> (KeyDown, KeyUp, Text, Repeat)<br><br>
</dd>
<dt><big><a name="KeyEvent.keyCode"></a>@property uint <u>keyCode</u>();
</big></dt>
<dd>key code<br><br>
</dd>
<dt><big><a name="KeyEvent.flags"></a>@property uint <u>flags</u>();
</big></dt>
<dd><u>flags</u> (shift, ctrl, alt...)<br><br>
</dd>
<dt><big><a name="KeyEvent.text"></a>@property dstring <u>text</u>();
</big></dt>
<dd>entered <u>text</u>, for Text action<br><br>
</dd>
<dt><big><a name="KeyEvent.this"></a> this(KeyAction <i>action</i>, uint <i>keyCode</i>, uint <i>flags</i>, dstring <i>text</i> = null);
</big></dt>
<dd>create key event<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ScrollEvent"></a>class <u>ScrollEvent</u>;
</big></dt>
<dd>slider/scrollbar event<br><br>
<dl><dt><big><a name="ScrollEvent.position"></a>@property void <u>position</u>(int <i>newPosition</i>);
</big></dt>
<dd>change <u>position</u> in event handler to update slider <u>position</u><br><br>
</dd>
<dt><big><a name="ScrollEvent.defaultUpdatePosition"></a>int <u>defaultUpdatePosition</u>();
</big></dt>
<dd>default update position for actions like PageUp/PageDown, LineUp/LineDown<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,364 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.fonts</title>
</head><body>
<h1>dlangui.graphics.fonts</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/fonts.d -->
DLANGUI library.
<br><br>
This module contains base <u>fonts</u> access interface and common implementation.
<br><br>
Font - base class for <u>fonts</u>.
<br><br>
FontManager - base class for font managers - provides access to available <u>fonts</u>.
<br><br>
<br><br>
Actual implementation is:
<br><br>
dlangui.graphics.ftfonts - FreeType based font manager.
<br><br>
dlangui.platforms.windows.w32fonts - Win32 API based font manager.
<br><br>
<br><br>
To enable OpenGL support, build with version(USE_OPENGL);
<br><br>
<b>See Also:</b><br>
dlangui.graphics.drawbuf, DrawBuf, drawbuf, drawbuf.html
<br><br>
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>fonts</u>;
<font color=green>// find suitable font of size 25, normal, preferrable Arial, or, if not available, any SansSerif font
</font>FontRef font = FontManager.instance.getFont(25, FontWeight.Normal, <font color=blue>false</font>, FontFamily.SansSerif, <font color=red>"Arial"</font>);
dstring sampleText = <font color=red>"Sample text to draw"d</font>;
<font color=green>// measure text string width and height (one line)
</font>Point sz = font.textSize(sampleText);
<font color=green>// draw red text at center of DrawBuf buf
</font>font.drawText(buf, buf.width / 2 - sz.x/2, buf.height / 2 - sz.y / 2, sampleText, 0xFF0000);
</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="FontFamily"></a>enum <u>FontFamily</u>: ubyte;
</big></dt>
<dd>font families enum<br><br>
<dl><dt><big><a name="FontFamily.Unspecified"></a><u>Unspecified</u></big></dt>
<dd>Unknown / not set / does not matter<br><br>
</dd>
<dt><big><a name="FontFamily.SansSerif"></a><u>SansSerif</u></big></dt>
<dd>Sans Serif font, e.g. Arial<br><br>
</dd>
<dt><big><a name="FontFamily.Serif"></a><u>Serif</u></big></dt>
<dd><u>Serif</u> font, e.g. Times New Roman<br><br>
</dd>
<dt><big><a name="FontFamily.Fantasy"></a><u>Fantasy</u></big></dt>
<dd><u>Fantasy</u> font<br><br>
</dd>
<dt><big><a name="FontFamily.Cursive"></a><u>Cursive</u></big></dt>
<dd><u>Cursive</u> font<br><br>
</dd>
<dt><big><a name="FontFamily.MonoSpace"></a><u>MonoSpace</u></big></dt>
<dd>Monospace font (fixed pitch font), e.g. Courier New<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="FontWeight"></a>enum <u>FontWeight</u>: int;
</big></dt>
<dd>font weight constants (0..1000)<br><br>
<dl><dt><big><a name="FontWeight.Normal"></a><u>Normal</u></big></dt>
<dd>normal font weight<br><br>
</dd>
<dt><big><a name="FontWeight.Bold"></a><u>Bold</u></big></dt>
<dd>bold font<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="glyphDestroyCallback"></a>@property void function(uint id) <u>glyphDestroyCallback</u>();
</big></dt>
<dd>get glyph destroy callback (to cleanup OpenGL caches)
<br><br>
Used for resource management. Usually you don't have to call it manually.<br><br>
</dd>
<dt><big><a name="glyphDestroyCallback"></a>@property void <u>glyphDestroyCallback</u>(void function(uint id) <i>callback</i>);
</big></dt>
<dd>Set glyph destroy <i>callback</i> (to cleanup OpenGL caches)
This <i>callback</i> is used to tell OpenGL glyph cache that glyph is not more used - to let OpenGL glyph cache delete texture if all glyphs in it are no longer used.
<br><br>
Used for resource management. Usually you don't have to call it manually.<br><br>
</dd>
<dt><big><a name="nextGlyphId"></a>uint <u>nextGlyphId</u>();
</big></dt>
<dd>ID generator for glyphs
<br><br>
Generates next glyph ID. Unique IDs are being used to control OpenGL glyph cache items lifetime.
<br><br>
Used for resource management. Usually you don't have to call it manually.<br><br>
</dd>
<dt><big><a name="MAX_WIDTH_UNSPECIFIED"></a>immutable int <u>MAX_WIDTH_UNSPECIFIED</u>;
</big></dt>
<dd>constant for measureText maxWidth paramenter - to tell that all characters of text string should be measured.<br><br>
</dd>
<dt><big><a name="Font"></a>abstract class <u>Font</u>: dlangui.core.types.RefCountedObject;
</big></dt>
<dd>Instance of font with specific size, weight, face, etc.
<br><br>
Allows to measure text string and draw it on DrawBuf
<br><br>
Use FontManager.instance.getFont() to retrieve font instance.<br><br>
<dl><dt><big><a name="Font.size"></a>abstract @property int <u>size</u>();
</big></dt>
<dd>returns font <u>size</u> (as requested from font engine)<br><br>
</dd>
<dt><big><a name="Font.height"></a>abstract @property int <u>height</u>();
</big></dt>
<dd>returns actual font <u>height</u> including interline space<br><br>
</dd>
<dt><big><a name="Font.weight"></a>abstract @property int <u>weight</u>();
</big></dt>
<dd>returns font <u>weight</u><br><br>
</dd>
<dt><big><a name="Font.baseline"></a>abstract @property int <u>baseline</u>();
</big></dt>
<dd>returns <u>baseline</u> offset<br><br>
</dd>
<dt><big><a name="Font.italic"></a>abstract @property bool <u>italic</u>();
</big></dt>
<dd>returns <b>true</b> if font is <u>italic</u><br><br>
</dd>
<dt><big><a name="Font.face"></a>abstract @property string <u>face</u>();
</big></dt>
<dd>returns font <u>face</u> name<br><br>
</dd>
<dt><big><a name="Font.family"></a>abstract @property FontFamily <u>family</u>();
</big></dt>
<dd>returns font <u>family</u><br><br>
</dd>
<dt><big><a name="Font.isNull"></a>abstract @property bool <u>isNull</u>();
</big></dt>
<dd>returns <b>true</b> if font object is not yet initialized / loaded<br><br>
</dd>
<dt><big><a name="Font.isFixed"></a>@property bool <u>isFixed</u>();
</big></dt>
<dd>returns <b>true</b> if font has fixed pitch (all characters have equal width)<br><br>
</dd>
<dt><big><a name="Font.spaceWidth"></a>@property int <u>spaceWidth</u>();
</big></dt>
<dd>returns <b>true</b> if font is fixed<br><br>
</dd>
<dt><big><a name="Font.charWidth"></a>int <u>charWidth</u>(dchar <i>ch</i>);
</big></dt>
<dd>returns character width<br><br>
</dd>
<dt><big><a name="Font.measureText"></a>int <u>measureText</u>(const dchar[] <i>text</i>, ref int[] <i>widths</i>, int <i>maxWidth</i> = MAX_WIDTH_UNSPECIFIED, int <i>tabSize</i> = 4, int <i>tabOffset</i> = 0, uint <i>textFlags</i> = 0);
</big></dt>
<dd>Measure <i>text</i> string, return accumulated <i>widths</i>[] (distance to end of n-th character), returns number of measured chars.
<br><br>
Supports Tab character processing and processing of menu item labels like '&File'.
<br><br>
<b>Params:</b><br>
<table><tr><td>dchar[] <i>text</i></td>
<td><i>text</i> string to measure</td></tr>
<tr><td>int[] <i>widths</i></td>
<td>output buffer to put measured <i>widths</i> (<i>widths</i>[i] will be set to cumulative <i>widths</i> <i>text</i>[0..i])</td></tr>
<tr><td>int <i>maxWidth</i></td>
<td>maximum width to measure - measure is stopping if max width is reached (pass MAX_WIDTH_UNSPECIFIED to measure all characters)</td></tr>
<tr><td>int <i>tabSize</i></td>
<td>tabulation size, in number of spaces</td></tr>
<tr><td>int <i>tabOffset</i></td>
<td>when string is drawn not from left position, use to move tab stops left/right</td></tr>
<tr><td>uint <i>textFlags</i></td>
<td>TextFlag bit set - to control underline, hotkey label processing, etc...</td></tr>
</table><br>
<b>Returns:</b><br>
number of characters measured (may be less than <i>text</i>.length if <i>maxWidth</i> is reached)<br><br>
</dd>
<dt><big><a name="Font.textSize"></a>Point <u>textSize</u>(const dchar[] <i>text</i>, int <i>maxWidth</i> = MAX_WIDTH_UNSPECIFIED, int <i>tabSize</i> = 4, int <i>tabOffset</i> = 0, uint <i>textFlags</i> = 0);
</big></dt>
<dd>Measure <i>text</i> string as single line, returns width and height
<br><br>
<b>Params:</b><br>
<table><tr><td>dchar[] <i>text</i></td>
<td><i>text</i> string to measure</td></tr>
<tr><td>int <i>maxWidth</i></td>
<td>maximum width - measure is stopping if max width is reached</td></tr>
<tr><td>int <i>tabSize</i></td>
<td>tabulation size, in number of spaces</td></tr>
<tr><td>int <i>tabOffset</i></td>
<td>when string is drawn not from left position, use to move tab stops left/right</td></tr>
<tr><td>uint <i>textFlags</i></td>
<td>TextFlag bit set - to control underline, hotkey label processing, etc...</td></tr>
</table><br>
</dd>
<dt><big><a name="Font.drawText"></a>void <u>drawText</u>(DrawBuf <i>buf</i>, int <i>x</i>, int <i>y</i>, const dchar[] <i>text</i>, uint <i>color</i>, int <i>tabSize</i> = 4, int <i>tabOffset</i> = 0, uint <i>textFlags</i> = 0);
</big></dt>
<dd>Draw <i>text</i> string to buffer.
<br><br>
<b>Params:</b><br>
<table><tr><td>DrawBuf <i>buf</i></td>
<td>graphics buffer to draw <i>text</i> to</td></tr>
<tr><td>int <i>x</i></td>
<td><i>x</i> coordinate to draw first character at</td></tr>
<tr><td>int <i>y</i></td>
<td><i>y</i> coordinate to draw first character at</td></tr>
<tr><td>dchar[] <i>text</i></td>
<td><i>text</i> string to draw</td></tr>
<tr><td>uint <i>color</i></td>
<td><i>color</i> for drawing of glyphs</td></tr>
<tr><td>int <i>tabSize</i></td>
<td>tabulation size, in number of spaces</td></tr>
<tr><td>int <i>tabOffset</i></td>
<td>when string is drawn not from left position, use to move tab stops left/right</td></tr>
<tr><td>uint <i>textFlags</i></td>
<td>set of TextFlag bit fields</td></tr>
</table><br>
</dd>
<dt><big><a name="Font.getCharGlyph"></a>abstract Glyph* <u>getCharGlyph</u>(dchar <i>ch</i>, bool <i>withImage</i> = true);
</big></dt>
<dd>get character glyph information<br><br>
</dd>
<dt><big><a name="Font.checkpoint"></a>abstract void <u>checkpoint</u>();
</big></dt>
<dd>clear usage flags for all entries<br><br>
</dd>
<dt><big><a name="Font.cleanup"></a>abstract void <u>cleanup</u>();
</big></dt>
<dd>removes entries not used after last call of checkpoint() or <u>cleanup</u>()<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="FontList"></a>struct <u>FontList</u>;
</big></dt>
<dd>font instance collection - utility class, for font manager implementations<br><br>
</dd>
<dt><big><a name="FontManager"></a>abstract class <u>FontManager</u>;
</big></dt>
<dd>Access points to fonts.<br><br>
<dl><dt><big><a name="FontManager.instance"></a>static @property void <u>instance</u>(FontManager <i>manager</i>);
</big></dt>
<dd>sets new font <i>manager</i> singleton <u>instance</u><br><br>
</dd>
<dt><big><a name="FontManager.instance"></a>static @property FontManager <u>instance</u>();
</big></dt>
<dd>returns font manager singleton <u>instance</u><br><br>
</dd>
<dt><big><a name="FontManager.getFont"></a>abstract ref FontRef <u>getFont</u>(int <i>size</i>, int <i>weight</i>, bool <i>italic</i>, FontFamily <i>family</i>, string <i>face</i>);
</big></dt>
<dd>get font instance best matched specified parameters<br><br>
</dd>
<dt><big><a name="FontManager.checkpoint"></a>abstract void <u>checkpoint</u>();
</big></dt>
<dd>clear usage flags for all entries -- for cleanup of unused fonts<br><br>
</dd>
<dt><big><a name="FontManager.cleanup"></a>abstract void <u>cleanup</u>();
</big></dt>
<dd>removes entries not used after last call of checkpoint() or <u>cleanup</u>()<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="GlyphCache"></a>struct <u>GlyphCache</u>;
</big></dt>
<dd>Glyph image cache
<br><br>
Recently used glyphs are marked with glyph.lastUsage = 1
<br><br>
checkpoint() call clears usage marks
<br><br>
cleanup() removes all items not accessed since last checkpoint()<br><br>
<dl><dt><big><a name="GlyphCache.find"></a>Glyph* <u>find</u>(dchar <i>ch</i>);
</big></dt>
<dd>try to <u>find</u> glyph for character in cache, returns <b>null</b> if not found<br><br>
</dd>
<dt><big><a name="GlyphCache.put"></a>Glyph* <u>put</u>(dchar <i>ch</i>, Glyph* <i>glyph</i>);
</big></dt>
<dd><u>put</u> character <i>glyph</i> to cache<br><br>
</dd>
<dt><big><a name="GlyphCache.cleanup"></a>void <u>cleanup</u>();
</big></dt>
<dd>removes entries not used after last call of checkpoint() or <u>cleanup</u>()<br><br>
</dd>
<dt><big><a name="GlyphCache.checkpoint"></a>void <u>checkpoint</u>();
</big></dt>
<dd>clear usage flags for all entries<br><br>
</dd>
<dt><big><a name="GlyphCache.clear"></a>void <u>clear</u>();
</big></dt>
<dd>removes all entries (when built with USE_OPENGL version, notify OpenGL cache about removed glyphs)<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,90 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.ftfonts</title>
</head><body>
<h1>dlangui.graphics.ftfonts</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/ftfonts.d -->
DLANGUI library.
<br><br>
This file contains FontManager implementation based on FreeType library.
<br><br>
<br><br>
<br><br>
<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="FreeTypeFont"></a>class <u>FreeTypeFont</u>: dlangui.graphics.fonts.Font;
</big></dt>
<dd>Font implementation based on Win32 API system fonts.<br><br>
<dl><dt><big><a name="FreeTypeFont.this"></a> this(FontFileItem <i>item</i>, int <i>size</i>);
</big></dt>
<dd>need to call create() after construction to initialize font<br><br>
</dd>
<dt><big><a name="FreeTypeFont.clear"></a>void <u>clear</u>();
</big></dt>
<dd>cleanup resources<br><br>
</dd>
<dt><big><a name="FreeTypeFont.findGlyph"></a>bool <u>findGlyph</u>(dchar <i>code</i>, dchar <i>def_char</i>, ref FT_UInt <i>index</i>, ref FreeTypeFontFile <i>file</i>);
</big></dt>
<dd>find glyph <i>index</i> for character<br><br>
</dd>
<dt><big><a name="FreeTypeFont.create"></a>bool <u>create</u>();
</big></dt>
<dd>load font files<br><br>
</dd>
<dt><big><a name="FreeTypeFont.checkpoint"></a>void <u>checkpoint</u>();
</big></dt>
<dd>clear usage flags for all entries<br><br>
</dd>
<dt><big><a name="FreeTypeFont.cleanup"></a>void <u>cleanup</u>();
</big></dt>
<dd>removes entries not used after last call of checkpoint() or <u>cleanup</u>()<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="FreeTypeFontManager"></a>class <u>FreeTypeFontManager</u>: dlangui.graphics.fonts.FontManager;
</big></dt>
<dd>FreeType based font manager.<br><br>
<dl><dt><big><a name="FreeTypeFontManager.getFont"></a>ref FontRef <u>getFont</u>(int <i>size</i>, int <i>weight</i>, bool <i>italic</i>, FontFamily <i>family</i>, string <i>face</i>);
</big></dt>
<dd>get font instance with specified parameters<br><br>
</dd>
<dt><big><a name="FreeTypeFontManager.checkpoint"></a>void <u>checkpoint</u>();
</big></dt>
<dd>clear usage flags for all entries<br><br>
</dd>
<dt><big><a name="FreeTypeFontManager.cleanup"></a>void <u>cleanup</u>();
</big></dt>
<dd>removes entries not used after last call of checkpoint() or <u>cleanup</u>()<br><br>
</dd>
<dt><big><a name="FreeTypeFontManager.registerFont"></a>bool <u>registerFont</u>(string <i>filename</i>, FontFamily <i>family</i> = FontFamily.SansSerif, string <i>face</i> = null, bool <i>italic</i> = false, int <i>weight</i> = 0);
</big></dt>
<dd>register freetype font by <i>filename</i> - optinally font properties can be passed if known (e.g. from libfontconfig).<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,133 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.gldrawbuf</title>
</head><body>
<h1>dlangui.graphics.gldrawbuf</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/gldrawbuf.d -->
DLANGUI library.
<br><br>
This module contains opengl based drawing buffer implementation.
<br><br>
To enable OpenGL support, build with version(USE_OPENGL);
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>gldrawbuf</u>;
</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="GLDrawBuf"></a>class <u>GLDrawBuf</u>: dlangui.graphics.drawbuf.DrawBuf;
</big></dt>
<dd>drawing buffer - image container which allows to perform some drawing operations<br><br>
<dl><dt><big><a name="GLDrawBuf.scene"></a>@property Scene <u>scene</u>();
</big></dt>
<dd>get current <u>scene</u> (exists only between beforeDrawing() and afterDrawing() calls)<br><br>
</dd>
<dt><big><a name="GLDrawBuf.width"></a>@property int <u>width</u>();
</big></dt>
<dd>returns current <u>width</u><br><br>
</dd>
<dt><big><a name="GLDrawBuf.height"></a>@property int <u>height</u>();
</big></dt>
<dd>returns current <u>height</u><br><br>
</dd>
<dt><big><a name="GLDrawBuf.beforeDrawing"></a>void <u>beforeDrawing</u>();
</big></dt>
<dd>reserved for hardware-accelerated drawing - begins drawing batch<br><br>
</dd>
<dt><big><a name="GLDrawBuf.afterDrawing"></a>void <u>afterDrawing</u>();
</big></dt>
<dd>reserved for hardware-accelerated drawing - ends drawing batch<br><br>
</dd>
<dt><big><a name="GLDrawBuf.resize"></a>void <u>resize</u>(int <i>width</i>, int <i>height</i>);
</big></dt>
<dd><u>resize</u> buffer<br><br>
</dd>
<dt><big><a name="GLDrawBuf.fill"></a>void <u>fill</u>(uint <i>color</i>);
</big></dt>
<dd><u>fill</u> the whole buffer with solid <i>color</i> (no clipping applied)<br><br>
</dd>
<dt><big><a name="GLDrawBuf.fillRect"></a>void <u>fillRect</u>(Rect <i>rc</i>, uint <i>color</i>);
</big></dt>
<dd>fill rectangle with solid <i>color</i> (clipping is applied)<br><br>
</dd>
<dt><big><a name="GLDrawBuf.drawGlyph"></a>void <u>drawGlyph</u>(int <i>x</i>, int <i>y</i>, Glyph* <i>glyph</i>, uint <i>color</i>);
</big></dt>
<dd>draw 8bit alpha image - usually font <i>glyph</i> using specified <i>color</i> (clipping is applied)<br><br>
</dd>
<dt><big><a name="GLDrawBuf.drawFragment"></a>void <u>drawFragment</u>(int <i>x</i>, int <i>y</i>, DrawBuf <i>src</i>, Rect <i>srcrect</i>);
</big></dt>
<dd>draw source buffer rectangle contents to destination buffer<br><br>
</dd>
<dt><big><a name="GLDrawBuf.drawRescaled"></a>void <u>drawRescaled</u>(Rect <i>dstrect</i>, DrawBuf <i>src</i>, Rect <i>srcrect</i>);
</big></dt>
<dd>draw source buffer rectangle contents to destination buffer rectangle applying rescaling<br><br>
</dd>
<dt><big><a name="GLDrawBuf.clear"></a>void <u>clear</u>();
</big></dt>
<dd>cleanup resources<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="SceneItem"></a>abstract class <u>SceneItem</u>;
</big></dt>
<dd>base class for all drawing scene items.<br><br>
</dd>
<dt><big><a name="Scene"></a>class <u>Scene</u>;
</big></dt>
<dd>Drawing scene (operations sheduled for drawing)<br><br>
<dl><dt><big><a name="Scene.add"></a>void <u>add</u>(SceneItem <i>item</i>);
</big></dt>
<dd><u>add</u> new scene <i>item</i> to scene<br><br>
</dd>
<dt><big><a name="Scene.draw"></a>void <u>draw</u>();
</big></dt>
<dd>draws all scene items and removes them from list<br><br>
</dd>
<dt><big><a name="Scene.reset"></a>void <u>reset</u>();
</big></dt>
<dd>resets scene for new drawing - deletes all items<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="onObjectDestroyedCallback"></a>void <u>onObjectDestroyedCallback</u>(uint <i>pobject</i>);
</big></dt>
<dd>object deletion listener callback function type<br><br>
</dd>
<dt><big><a name="onGlyphDestroyedCallback"></a>void <u>onGlyphDestroyedCallback</u>(uint <i>pobject</i>);
</big></dt>
<dd>object deletion listener callback function type<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,51 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.glsupport</title>
</head><body>
<h1>dlangui.graphics.glsupport</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/glsupport.d -->
DLANGUI library.
<br><br>
This module contains OpenGL access layer.
<br><br>
To enable OpenGL support, build with version(USE_OPENGL);
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>glsupport</u>;
</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="genTexture"></a>uint <u>genTexture</u>();
</big></dt>
<dd>generate new texture ID<br><br>
</dd>
<dt><big><a name="deleteTexture"></a>void <u>deleteTexture</u>(ref uint <i>textureId</i>);
</big></dt>
<dd>delete OpenGL texture<br><br>
</dd>
<dt><big><a name="flushGL"></a>void <u>flushGL</u>();
</big></dt>
<dd>call glFlush<br><br>
</dd>
<dt><big><a name="createFramebuffer"></a>bool <u>createFramebuffer</u>(ref uint <i>textureId</i>, ref uint <i>framebufferId</i>, int <i>dx</i>, int <i>dy</i>);
</big></dt>
<dd>returns texture ID for buffer, 0 if failed<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,122 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.i18n</title>
</head><body>
<h1>dlangui.core.i18n</h1>
<!-- Generated by Ddoc from src/dlangui/core/i18n.d -->
DLANGUI library.
<br><br>
This module contains internationalization support implementation.
<br><br>
Translation files contain of simple key=value pair lines.
<br><br>
STRING_RESOURCE_ID=Translation text.
<br><br>
Supports fallback to another translation file (e.g. default language).
<br><br>
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>i18n</u>;
<font color=green>// use global i18n object to get translation for string ID
</font>dstring translated = <u>i18n</u>.get(<font color=red>"STR_FILE_OPEN"</font>);
<font color=green>// UIString type can hold either string resource id or dstring raw value.
</font>UIString text;
<font color=green>// assign resource id as string
</font>text = <font color=red>"ID_FILE_EXIT"</font>;
<font color=green>// or assign raw value as dstring
</font>text = <font color=red>"some text"d</font>;
<font color=green>// i18n.get() will automatically be invoked when getting UIString value (e.g. using alias this).
</font>dstring translated = text;
</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="UIString"></a>struct <u>UIString</u>;
</big></dt>
<dd>container for UI string - either raw value or string resource ID<br><br>
<dl><dt><big><a name="UIString.this"></a> this(string <i>id</i>);
</big></dt>
<dd>create string with i18n resource <i>id</i><br><br>
</dd>
<dt><big><a name="UIString.this"></a> this(dstring <i>value</i>);
</big></dt>
<dd>create string with raw <i>value</i><br><br>
</dd>
<dt><big><a name="UIString.value"></a>const @property dstring <u>value</u>();
</big></dt>
<dd>get <u>value</u> (either raw or translated by id)<br><br>
</dd>
<dt><big><a name="UIString.value"></a>@property void <u>value</u>(dstring <i>newValue</i>);
</big></dt>
<dd>set raw <u>value</u><br><br>
</dd>
<dt><big><a name="UIString.opAssign"></a>ref UIString <u>opAssign</u>(dstring <i>rawValue</i>);
</big></dt>
<dd>assign raw value<br><br>
</dd>
<dt><big><a name="UIString.opAssign"></a>ref UIString <u>opAssign</u>(string <i>ID</i>);
</big></dt>
<dd>assign <i>ID</i><br><br>
</dd>
</dl>
</dd>
<dt><big><a name="UIStringList"></a>class <u>UIStringList</u>;
</big></dt>
<dd>UI string translator<br><br>
<dl><dt><big><a name="UIStringList.clear"></a>void <u>clear</u>();
</big></dt>
<dd>remove all items<br><br>
</dd>
<dt><big><a name="UIStringList.set"></a>void <u>set</u>(string <i>id</i>, dstring <i>value</i>);
</big></dt>
<dd><u>set</u> item <i>value</i><br><br>
</dd>
<dt><big><a name="UIStringList.get"></a>const dstring <u>get</u>(string <i>id</i>);
</big></dt>
<dd><u>get</u> item value, <b>null</b> if translation is not found for <i>id</i><br><br>
</dd>
<dt><big><a name="UIStringList.load"></a>bool <u>load</u>(std.<i>stream</i>.InputStream <i>stream</i>);
</big></dt>
<dd><u>load</u> strings from <i>stream</i><br><br>
</dd>
<dt><big><a name="UIStringList.load"></a>bool <u>load</u>(string <i>filename</i>);
</big></dt>
<dd><u>load</u> strings from file (utf8, id=value lines)<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,44 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.images</title>
</head><body>
<h1>dlangui.graphics.images</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/images.d -->
DLANGUI library.
<br><br>
This module contains image loading functions.
<br><br>
Currently uses FreeImage.
<br><br>
Usage of libpng is not feasible under linux due to conflicts of library and binding versions.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>images</u>;
</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="loadImage"></a>ColorDrawBuf <u>loadImage</u>(string <i>filename</i>);
</big></dt>
<dd>load and decode image from file to ColorDrawBuf, returns <b>null</b> if loading or decoding is failed<br><br>
</dd>
<dt><big><a name="loadImage"></a>ColorDrawBuf <u>loadImage</u>(InputStream <i>stream</i>);
</big></dt>
<dd>load and decode image from <i>stream</i> to ColorDrawBuf, returns <b>null</b> if loading or decoding is failed<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,124 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.layouts</title>
</head><body>
<h1>dlangui.widgets.layouts</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/layouts.d -->
DLANGUI library.
<br><br>
This module contains common <u>layouts</u> implementations.
<br><br>
Layouts are similar to the same in Android.
<br><br>
LinearLayout - either VerticalLayout or HorizontalLayout.
VerticalLayout - just LinearLayout with orientation=Orientation.Vertical
HorizontalLayout - just LinearLayout with orientation=Orientation.Vertical
FrameLayout - children occupy the same place, usually one one is visible at a time
TableLayout - children aligned into rows and columns
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>layouts</u>;
</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="LayoutItem"></a>struct <u>LayoutItem</u>;
</big></dt>
<dd>helper for layouts<br><br>
<dl><dt><big><a name="LayoutItem.set"></a>void <u>set</u>(Widget <i>widget</i>, Orientation <i>orientation</i>);
</big></dt>
<dd>sets item for <i>widget</i><br><br>
</dd>
<dt><big><a name="LayoutItem.measure"></a>void <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd>set item and <u>measure</u> it<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="LayoutItems"></a>class <u>LayoutItems</u>;
</big></dt>
<dd>helper class for layouts<br><br>
<dl><dt><big><a name="LayoutItems.measure"></a>Point <u>measure</u>(int <i>parentWidth</i>, int <i>parentHeight</i>);
</big></dt>
<dd>fill widget layout list with Visible or Invisible items, <u>measure</u> them<br><br>
</dd>
<dt><big><a name="LayoutItems.setWidgets"></a>void <u>setWidgets</u>(ref WidgetList <i>widgets</i>);
</big></dt>
<dd>fill widget layout list with Visible or Invisible items, measure them<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="FrameLayout"></a>class <u>FrameLayout</u>: dlangui.widgets.widget.WidgetGroup;
</big></dt>
<dd>place all children into same place (usually, only one child should be visible at a time)<br><br>
<dl><dt><big><a name="FrameLayout.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="FrameLayout.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="FrameLayout.onDraw"></a>void <u>onDraw</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>Draw widget at its position to buffer<br><br>
</dd>
<dt><big><a name="FrameLayout.showChild"></a>bool <u>showChild</u>(string <i>ID</i>, Visibility <i>otherChildrenVisibility</i> = Visibility.Invisible, bool <i>updateFocus</i> = false);
</big></dt>
<dd>make one of children (with specified <i>ID</i>) visible, for the rest, set visibility to <i>otherChildrenVisibility</i><br><br>
</dd>
</dl>
</dd>
<dt><big><a name="TableLayout"></a>class <u>TableLayout</u>: dlangui.widgets.widget.WidgetGroup;
</big></dt>
<dd>layout children as table with rows and columns<br><br>
<dl><dt><big><a name="TableLayout.colCount"></a>@property int <u>colCount</u>();
</big></dt>
<dd>number of columns<br><br>
</dd>
<dt><big><a name="TableLayout.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="TableLayout.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="TableLayout.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>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,62 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.linestream</title>
</head><body>
<h1>dlangui.core.linestream</h1>
<!-- Generated by Ddoc from src/dlangui/core/linestream.d -->
DLANGUI library.
<br><br>
This module contains text file reader implementation.
<br><br>
Support utf8, utf16, utf32 be and le encodings, and line endings - according to D language source file specification.
<br><br>
Low resource consuming. Doesn't flood with GC allocations. Dup line if you want to store it somewhere.
<br><br>
Tracks line number.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>linestream</u>;
<font color=blue>import</font> std.stdio;
<font color=blue>import</font> std.conv;
<font color=blue>import</font> std.utf;
string fname = <font color=red>"somefile.d"</font>;
writeln(<font color=red>"opening file"</font>);
std.stream.File f = <font color=blue>new</font> std.stream.File(fname);
<font color=blue>scope</font>(exit) { f.close(); }
<font color=blue>try</font> {
LineStream lines = LineStream.create(f, fname);
<font color=blue>for</font> (;;) {
<font color=blue>dchar</font>[] s = lines.readLine();
<font color=blue>if</font> (s <font color=blue>is</font> <font color=blue>null</font>)
<font color=blue>break</font>;
writeln(<font color=red>"line "</font> ~ to!string(lines.line()) ~ <font color=red>":"</font> ~ toUTF8(s));
}
<font color=blue>if</font> (lines.errorCode != 0) {
writeln(<font color=red>"Error "</font>, lines.errorCode, <font color=red>" "</font>, lines.errorMessage, <font color=red>" -- at line "</font>, lines.errorLine, <font color=red>" position "</font>, lines.errorPos);
} <font color=blue>else</font> {
writeln(<font color=red>"EOF reached"</font>);
}
} <font color=blue>catch</font> (Exception e) {
writeln(<font color=red>"Exception "</font> ~ e.toString);
}
</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>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,279 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.lists</title>
</head><body>
<h1>dlangui.widgets.lists</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/lists.d -->
DLANGUI library.
<br><br>
This module contains list widgets implementation.
<br><br>
Similar to <u>lists</u> implementation in Android UI API.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>lists</u>;
</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="ListAdapter"></a>interface <u>ListAdapter</u>;
</big></dt>
<dd>list widget adapter provides items for list widgets<br><br>
<dl><dt><big><a name="ListAdapter.itemCount"></a>abstract @property int <u>itemCount</u>();
</big></dt>
<dd>returns number of widgets in list<br><br>
</dd>
<dt><big><a name="ListAdapter.itemWidget"></a>abstract Widget <u>itemWidget</u>(int <i>index</i>);
</big></dt>
<dd>return list item widget by item <i>index</i><br><br>
</dd>
<dt><big><a name="ListAdapter.itemState"></a>abstract uint <u>itemState</u>(int <i>index</i>);
</big></dt>
<dd>return list item's state flags<br><br>
</dd>
<dt><big><a name="ListAdapter.setItemState"></a>abstract uint <u>setItemState</u>(int <i>index</i>, uint <i>flags</i>);
</big></dt>
<dd>set one or more list item's state <i>flags</i>, returns updated state<br><br>
</dd>
<dt><big><a name="ListAdapter.resetItemState"></a>abstract uint <u>resetItemState</u>(int <i>index</i>, uint <i>flags</i>);
</big></dt>
<dd>reset one or more list item's state <i>flags</i>, returns updated state<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="WidgetListAdapter"></a>class <u>WidgetListAdapter</u>: dlangui.widgets.lists.ListAdapter;
</big></dt>
<dd>List adapter for simple list of widget instances<br><br>
<dl><dt><big><a name="WidgetListAdapter.widgets"></a>@property ref WidgetList <u>widgets</u>();
</big></dt>
<dd>list of <u>widgets</u> to display<br><br>
</dd>
<dt><big><a name="WidgetListAdapter.itemCount"></a>@property int <u>itemCount</u>();
</big></dt>
<dd>returns number of widgets in list<br><br>
</dd>
<dt><big><a name="WidgetListAdapter.itemWidget"></a>Widget <u>itemWidget</u>(int <i>index</i>);
</big></dt>
<dd>return list item widget by item <i>index</i><br><br>
</dd>
<dt><big><a name="WidgetListAdapter.itemState"></a>uint <u>itemState</u>(int <i>index</i>);
</big></dt>
<dd>return list item's state flags<br><br>
</dd>
<dt><big><a name="WidgetListAdapter.setItemState"></a>uint <u>setItemState</u>(int <i>index</i>, uint <i>flags</i>);
</big></dt>
<dd>set one or more list item's state <i>flags</i>, returns updated state<br><br>
</dd>
<dt><big><a name="WidgetListAdapter.resetItemState"></a>uint <u>resetItemState</u>(int <i>index</i>, uint <i>flags</i>);
</big></dt>
<dd>reset one or more list item's state <i>flags</i>, returns updated state<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ListWidget"></a>class <u>ListWidget</u>: dlangui.widgets.widget.WidgetGroup, dlangui.widgets.controls.OnScrollHandler;
</big></dt>
<dd>List<br><br>
<dl><dt><big><a name="ListWidget.orientation"></a>@property Orientation <u>orientation</u>();
</big></dt>
<dd>returns linear layout <u>orientation</u> (Vertical, Horizontal)<br><br>
</dd>
<dt><big><a name="ListWidget.orientation"></a>@property ListWidget <u>orientation</u>(Orientation <i>value</i>);
</big></dt>
<dd>sets linear layout <u>orientation</u><br><br>
</dd>
<dt><big><a name="ListWidget._firstVisibleItem"></a>protected int <u>_firstVisibleItem</u>;
</big></dt>
<dd>first visible item index<br><br>
</dd>
<dt><big><a name="ListWidget._scrollPosition"></a>protected int <u>_scrollPosition</u>;
</big></dt>
<dd>scroll position - offset of scroll area<br><br>
</dd>
<dt><big><a name="ListWidget._maxScrollPosition"></a>protected int <u>_maxScrollPosition</u>;
</big></dt>
<dd>maximum scroll position<br><br>
</dd>
<dt><big><a name="ListWidget._clientRc"></a>protected Rect <u>_clientRc</u>;
</big></dt>
<dd>client area rectangle (counting padding, margins, and scrollbar)<br><br>
</dd>
<dt><big><a name="ListWidget._totalSize"></a>protected int <u>_totalSize</u>;
</big></dt>
<dd>total height of all items for Vertical orientation, or width for Horizontal<br><br>
</dd>
<dt><big><a name="ListWidget._hoverItemIndex"></a>protected int <u>_hoverItemIndex</u>;
</big></dt>
<dd>item with Hover state, -1 if no such item<br><br>
</dd>
<dt><big><a name="ListWidget._selectedItemIndex"></a>protected int <u>_selectedItemIndex</u>;
</big></dt>
<dd>item with Selected state, -1 if no such item<br><br>
</dd>
<dt><big><a name="ListWidget._selectOnHover"></a>protected bool <u>_selectOnHover</u>;
</big></dt>
<dd>when <b>true</b>, mouse hover selects underlying item<br><br>
</dd>
<dt><big><a name="ListWidget.selectOnHover"></a>@property bool <u>selectOnHover</u>();
</big></dt>
<dd>when <b>true</b>, mouse hover selects underlying item<br><br>
</dd>
<dt><big><a name="ListWidget.selectOnHover"></a>@property ListWidget <u>selectOnHover</u>(bool <i>select</i>);
</big></dt>
<dd>when <b>true</b>, mouse hover selects underlying item<br><br>
</dd>
<dt><big><a name="ListWidget._clickOnButtonDown"></a>protected bool <u>_clickOnButtonDown</u>;
</big></dt>
<dd>if <b>true</b>, generate itemClicked on mouse down instead mouse up event<br><br>
</dd>
<dt><big><a name="ListWidget.itemRectNoScroll"></a>Rect <u>itemRectNoScroll</u>(int <i>index</i>);
</big></dt>
<dd>returns rectangle for item (not scrolled, first item starts at 0,0)<br><br>
</dd>
<dt><big><a name="ListWidget.itemRect"></a>Rect <u>itemRect</u>(int <i>index</i>);
</big></dt>
<dd>returns rectangle for item (scrolled)<br><br>
</dd>
<dt><big><a name="ListWidget.itemByPosition"></a>int <u>itemByPosition</u>(int <i>pos</i>);
</big></dt>
<dd>returns item index by 0-based offset from top/left of list content<br><br>
</dd>
<dt><big><a name="ListWidget._ownAdapter"></a>protected bool <u>_ownAdapter</u>;
</big></dt>
<dd>when <b>true</b>, need to destroy adapter on list destroy<br><br>
</dd>
<dt><big><a name="ListWidget.adapter"></a>@property ListAdapter <u>adapter</u>();
</big></dt>
<dd>get <u>adapter</u><br><br>
</dd>
<dt><big><a name="ListWidget.adapter"></a>@property ListWidget <u>adapter</u>(ListAdapter <u>adapter</u>);
</big></dt>
<dd>set <u>adapter</u><br><br>
</dd>
<dt><big><a name="ListWidget.ownAdapter"></a>@property ListWidget <u>ownAdapter</u>(ListAdapter <i>adapter</i>);
</big></dt>
<dd>set <i>adapter</i>, which will be owned by list (destroy will be called for <i>adapter</i> on widget destroy)<br><br>
</dd>
<dt><big><a name="ListWidget.itemCount"></a>@property int <u>itemCount</u>();
</big></dt>
<dd>returns number of widgets in list<br><br>
</dd>
<dt><big><a name="ListWidget.itemWidget"></a>Widget <u>itemWidget</u>(int <i>index</i>);
</big></dt>
<dd>return list item widget by item <i>index</i><br><br>
</dd>
<dt><big><a name="ListWidget.itemEnabled"></a>bool <u>itemEnabled</u>(int <i>index</i>);
</big></dt>
<dd>returns <b>true</b> if item with corresponding <i>index</i> is enabled<br><br>
</dd>
<dt><big><a name="ListWidget.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="ListWidget.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="ListWidget.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="ListWidget.makeSelectionVisible"></a>void <u>makeSelectionVisible</u>();
</big></dt>
<dd>ensure selected item is visible (scroll if necessary)<br><br>
</dd>
<dt><big><a name="ListWidget.makeItemVisible"></a>void <u>makeItemVisible</u>(int <i>itemIndex</i>);
</big></dt>
<dd>ensure item is visible<br><br>
</dd>
<dt><big><a name="ListWidget.moveSelection"></a>bool <u>moveSelection</u>(int <i>direction</i>, bool <i>wrapAround</i> = true);
</big></dt>
<dd>move selection<br><br>
</dd>
<dt><big><a name="ListWidget.onScrollEvent"></a>bool <u>onScrollEvent</u>(AbstractSlider <i>source</i>, ScrollEvent <i>event</i>);
</big></dt>
<dd>handle scroll <i>event</i><br><br>
</dd>
<dt><big><a name="ListWidget.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="ListWidget.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="ListWidget.onDraw"></a>void <u>onDraw</u>(DrawBuf <i>buf</i>);
</big></dt>
<dd>Draw widget at its position to buffer<br><br>
</dd>
<dt><big><a name="ListWidget.onKeyEvent"></a>bool <u>onKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>list navigation using keys<br><br>
</dd>
<dt><big><a name="ListWidget.onMouseEvent"></a>bool <u>onMouseEvent</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>process mouse <i>event</i>; return <b>true</b> if <i>event</i> is processed by widget.<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,40 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.logger</title>
</head><body>
<h1>dlangui.core.logger</h1>
<!-- Generated by Ddoc from src/dlangui/core/logger.d -->
DLANGUI library.
<br><br>
This module contains <u>logger</u> implementation.
<br><br>
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>logger</u>;
<font color=green>// use stderror for logging
</font>setStderrLogger();
<font color=green>// set log level
</font>setLogLevel(LogLeve.Debug);
<font color=green>// log debug message
</font>Log.d(<font color=red>"mouse clicked at "</font>, x, <font color=red>","</font>, y);
<font color=green>// log error message
</font>Log.d(<font color=red>"exception while reading file"</font>, e);
</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>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,303 +0,0 @@
<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>

View File

@ -1,252 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.platforms.common.platform</title>
</head><body>
<h1>dlangui.platforms.common.platform</h1>
<!-- Generated by Ddoc from src/dlangui/platforms/common/platform.d -->
DLANGUI library.
<br><br>
This module contains common Plaform definitions.
<br><br>
Platform is abstraction layer for application.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.platforms.common.<u>platform</u>;
</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="WindowFlag"></a>enum <u>WindowFlag</u>: uint;
</big></dt>
<dd>window creation flags<br><br>
<dl><dt><big><a name="WindowFlag.Resizable"></a><u>Resizable</u></big></dt>
<dd>window can be resized<br><br>
</dd>
<dt><big><a name="WindowFlag.Fullscreen"></a><u>Fullscreen</u></big></dt>
<dd>window should be shown in fullscreen mode<br><br>
</dd>
<dt><big><a name="WindowFlag.Modal"></a><u>Modal</u></big></dt>
<dd>modal window - grabs input focus<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Window"></a>abstract class <u>Window</u>;
</big></dt>
<dd><u>Window</u> abstraction layer. Widgets can be shown only inside window.
<br><br>
<dl><dt><big><a name="Window.windowCaption"></a>abstract @property dstring <u>windowCaption</u>();
</big></dt>
<dd>returns window caption<br><br>
</dd>
<dt><big><a name="Window.windowCaption"></a>abstract @property void <u>windowCaption</u>(dstring <i>caption</i>);
</big></dt>
<dd>sets window <i>caption</i><br><br>
</dd>
<dt><big><a name="Window.requestLayout"></a>void <u>requestLayout</u>();
</big></dt>
<dd>requests layout for main widget and popups<br><br>
</dd>
<dt><big><a name="Window.showPopup"></a>PopupWidget <u>showPopup</u>(Widget <i>content</i>, Widget <i>anchor</i> = null, uint <i>alignment</i> = PopupAlign.Center, int <i>x</i> = 0, int <i>y</i> = 0);
</big></dt>
<dd>show new popup<br><br>
</dd>
<dt><big><a name="Window.removePopup"></a>bool <u>removePopup</u>(PopupWidget <i>popup</i>);
</big></dt>
<dd>remove <i>popup</i><br><br>
</dd>
<dt><big><a name="Window.isChild"></a>bool <u>isChild</u>(Widget <i>w</i>);
</big></dt>
<dd>returns <b>true</b> if widget is child of either main widget or one of popups<br><br>
</dd>
<dt><big><a name="Window.scheduleAnimation"></a>void <u>scheduleAnimation</u>();
</big></dt>
<dd>after drawing, call to schedule redraw if animation is active<br><br>
</dd>
<dt><big><a name="Window.focusedWidget"></a>@property Widget <u>focusedWidget</u>();
</big></dt>
<dd>returns current focused widget<br><br>
</dd>
<dt><big><a name="Window.setFocus"></a>Widget <u>setFocus</u>(Widget <i>newFocus</i>);
</big></dt>
<dd>change focus to widget<br><br>
</dd>
<dt><big><a name="Window.dispatchKeyEvent"></a>bool <u>dispatchKeyEvent</u>(KeyEvent <i>event</i>);
</big></dt>
<dd>dispatch keyboard <i>event</i><br><br>
</dd>
<dt><big><a name="Window._mouseTrackingWidgets"></a>protected Widget[] <u>_mouseTrackingWidgets</u>;
</big></dt>
<dd>widget which tracks Move events<br><br>
</dd>
<dt><big><a name="Window._mouseCaptureWidget"></a>protected Widget <u>_mouseCaptureWidget</u>;
</big></dt>
<dd>widget which tracks all events after processed ButtonDown<br><br>
</dd>
<dt><big><a name="Window._mouseCaptureFocusedOutTrackMovements"></a>protected bool <u>_mouseCaptureFocusedOutTrackMovements</u>;
</big></dt>
<dd>does current capture widget want to receive move events even if pointer left it<br><br>
</dd>
<dt><big><a name="Window.dispatchMouseEvent"></a>bool <u>dispatchMouseEvent</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>dispatch mouse <i>event</i> to window content widgets<br><br>
</dd>
<dt><big><a name="Window.checkUpdateNeeded"></a>protected void <u>checkUpdateNeeded</u>(Widget <i>root</i>, ref bool <i>needDraw</i>, ref bool <i>needLayout</i>, ref bool <i>animationActive</i>);
</big></dt>
<dd>checks content widgets for necessary redraw and/or layout<br><br>
</dd>
<dt><big><a name="Window.setCursorType"></a>protected void <u>setCursorType</u>(uint <i>cursorType</i>);
</big></dt>
<dd>sets cursor type for window<br><br>
</dd>
<dt><big><a name="Window.checkUpdateNeeded"></a>bool <u>checkUpdateNeeded</u>(ref bool <i>needDraw</i>, ref bool <i>needLayout</i>, ref bool <i>animationActive</i>);
</big></dt>
<dd>checks content widgets for necessary redraw and/or layout<br><br>
</dd>
<dt><big><a name="Window.update"></a>void <u>update</u>(bool <i>force</i> = false);
</big></dt>
<dd>requests <u>update</u> for window (unless <i>force</i> is <b>true</b>, <u>update</u> will be performed only if layout, redraw or animation is required).<br><br>
</dd>
<dt><big><a name="Window.invalidate"></a>abstract void <u>invalidate</u>();
</big></dt>
<dd>request window redraw<br><br>
</dd>
<dt><big><a name="Window.close"></a>abstract void <u>close</u>();
</big></dt>
<dd><u>close</u> window<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Platform"></a>abstract class <u>Platform</u>;
</big></dt>
<dd><u>Platform</u> abstraction layer.
<br><br>
Represents application.<br><br>
<dl><dt><big><a name="Platform.createWindow"></a>abstract Window <u>createWindow</u>(dstring <i>windowCaption</i>, Window <i>parent</i>, uint <i>flags</i> = WindowFlag.Resizable);
</big></dt>
<dd>create window
<br><br>
<b>Args:</b><br>
<i>windowCaption</i> = window caption text
<i>parent</i> = <i>parent</i> Window, or <b>null</b> if no <i>parent</i>
<i>flags</i> = WindowFlag bit set, combination of Resizable, Modal, Fullscreen
<br><br>
Window w/o Resizable nor Fullscreen will be created with size based on measurement of its content widget<br><br>
</dd>
<dt><big><a name="Platform.closeWindow"></a>abstract void <u>closeWindow</u>(Window <i>w</i>);
</big></dt>
<dd>close window
<br><br>
Closes window earlier created with createWindow()<br><br>
</dd>
<dt><big><a name="Platform.enterMessageLoop"></a>abstract int <u>enterMessageLoop</u>();
</big></dt>
<dd>Starts application message loop.
<br><br>
When returned from this method, application is shutting down.<br><br>
</dd>
<dt><big><a name="Platform.getClipboardText"></a>abstract dstring <u>getClipboardText</u>(bool <i>mouseBuffer</i> = false);
</big></dt>
<dd>retrieves text from clipboard (when <i>mouseBuffer</i> == <b>true</b>, use mouse selection clipboard - under linux)<br><br>
</dd>
<dt><big><a name="Platform.setClipboardText"></a>abstract void <u>setClipboardText</u>(dstring <i>text</i>, bool <i>mouseBuffer</i> = false);
</big></dt>
<dd>sets <i>text</i> to clipboard (when <i>mouseBuffer</i> == <b>true</b>, use mouse selection clipboard - under linux)<br><br>
</dd>
<dt><big><a name="Platform.requestLayout"></a>abstract void <u>requestLayout</u>();
</big></dt>
<dd>calls request layout for all windows<br><br>
</dd>
<dt><big><a name="Platform.uiLanguage"></a>@property string <u>uiLanguage</u>();
</big></dt>
<dd>returns currently selected UI language code<br><br>
</dd>
<dt><big><a name="Platform.uiLanguage"></a>@property Platform <u>uiLanguage</u>(string <i>langCode</i>);
</big></dt>
<dd>set UI language (e.g. "en", "fr", "ru") - will relayout content of all windows if language has been changed<br><br>
</dd>
<dt><big><a name="Platform.uiTheme"></a>@property Platform <u>uiTheme</u>(string <i>themeResourceId</i>);
</big></dt>
<dd>sets application UI theme - will relayout content of all windows if theme has been changed<br><br>
</dd>
<dt><big><a name="Platform.resourceDirs"></a>@property string[] <u>resourceDirs</u>();
</big></dt>
<dd>returns list of resource directories<br><br>
</dd>
<dt><big><a name="Platform.resourceDirs"></a>@property Platform <u>resourceDirs</u>(string[] <i>dirs</i>);
</big></dt>
<dd>set list of directories to load resources from<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="platform"></a>@property Platform <u>platform</u>();
</big></dt>
<dd>get current <u>platform</u> object instance<br><br>
</dd>
<dt><big><a name="openglEnabled"></a>@property bool <u>openglEnabled</u>();
</big></dt>
<dd>check if hardware acceleration is enabled<br><br>
</dd>
<dt><big><a name="setOpenglEnabled"></a>void <u>setOpenglEnabled</u>();
</big></dt>
<dd>call on app initialization if OpenGL support is detected<br><br>
</dd>
<dt><big><a name="APP_ENTRY_POINT"></a>template <u>APP_ENTRY_POINT</u>()</big></dt>
<dd>put "mixin <u>APP_ENTRY_POINT</u>;" to main module of your dlangui based app<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,132 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.popup</title>
</head><body>
<h1>dlangui.widgets.popup</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/popup.d -->
DLANGUI library.
<br><br>
This module contains <u>popup</u> widgets implementation.
<br><br>
Popups appear above other widgets inside window.
<br><br>
Useful for <u>popup</u> menus, notification popups, etc.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>popup</u>;
</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="PopupAlign"></a>enum <u>PopupAlign</u>: uint;
</big></dt>
<dd>popup alignment option flags<br><br>
<dl><dt><big><a name="PopupAlign.Center"></a><u>Center</u></big></dt>
<dd>center popup around anchor widget center<br><br>
</dd>
<dt><big><a name="PopupAlign.Below"></a><u>Below</u></big></dt>
<dd>place popup below anchor widget close to lower bound<br><br>
</dd>
<dt><big><a name="PopupAlign.Right"></a><u>Right</u></big></dt>
<dd>place popup below anchor widget close to right bound (when no space enough, align near left bound)<br><br>
</dd>
<dt><big><a name="PopupAlign.Point"></a><u>Point</u></big></dt>
<dd>align to specified point<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="PopupFlags"></a>enum <u>PopupFlags</u>: uint;
</big></dt>
<dd>popup behavior flags - for PopupWidget.flags property<br><br>
<dl><dt><big><a name="PopupFlags.CloseOnClickOutside"></a><u>CloseOnClickOutside</u></big></dt>
<dd>close popup when mouse button clicked outside of its bounds<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="PopupWidget"></a>class <u>PopupWidget</u>: dlangui.widgets.layouts.LinearLayout;
</big></dt>
<dd>popup widget container<br><br>
<dl><dt><big><a name="PopupWidget.onPopupCloseListener"></a>@property void delegate(PopupWidget popup) <u>onPopupCloseListener</u>();
</big></dt>
<dd>popup close listener (called right before closing)<br><br>
</dd>
<dt><big><a name="PopupWidget.onPopupCloseListener"></a>@property PopupWidget <u>onPopupCloseListener</u>(void delegate(PopupWidget popup) <i>listener</i>);
</big></dt>
<dd>set popup close <i>listener</i> (to call right before closing)<br><br>
</dd>
<dt><big><a name="PopupWidget.flags"></a>@property uint <u>flags</u>();
</big></dt>
<dd>returns popup behavior <u>flags</u> (combination of PopupFlags)<br><br>
</dd>
<dt><big><a name="PopupWidget.flags"></a>@property PopupWidget <u>flags</u>(uint <u>flags</u>);
</big></dt>
<dd>set popup behavior <u>flags</u> (combination of PopupFlags)<br><br>
</dd>
<dt><big><a name="PopupWidget.anchor"></a>@property ref PopupAnchor <u>anchor</u>();
</big></dt>
<dd>access to popup <u>anchor</u><br><br>
</dd>
<dt><big><a name="PopupWidget.modal"></a>bool <u>modal</u>();
</big></dt>
<dd>returns <b>true</b> if popup is <u>modal</u><br><br>
</dd>
<dt><big><a name="PopupWidget.modal"></a>PopupWidget <u>modal</u>(bool <u>modal</u>);
</big></dt>
<dd>set modality flag<br><br>
</dd>
<dt><big><a name="PopupWidget.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="PopupWidget.close"></a>void <u>close</u>();
</big></dt>
<dd><u>close</u> and destroy popup<br><br>
</dd>
<dt><big><a name="PopupWidget.onClose"></a>void <u>onClose</u>();
</big></dt>
<dd>just call on close listener<br><br>
</dd>
<dt><big><a name="PopupWidget.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="PopupWidget.onMouseEventOutside"></a>bool <u>onMouseEventOutside</u>(MouseEvent <i>event</i>);
</big></dt>
<dd>called for mouse activity outside shown popup bounds<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,127 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.graphics.resources</title>
</head><body>
<h1>dlangui.graphics.resources</h1>
<!-- Generated by Ddoc from src/dlangui/graphics/resources.d -->
DLANGUI library.
<br><br>
This module contains resource management and drawables implementation.
<br><br>
imageCache is RAM cache of decoded images (as DrawBuf).
<br><br>
drawableCache is cache of Drawables.
<br><br>
Supports nine-patch PNG images in .9.png files (like in Android).
<br><br>
Supports state drawables using XML files similar to ones in Android.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.graphics.<u>resources</u>;
</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="FrameDrawable"></a>class <u>FrameDrawable</u>: dlangui.graphics.resources.Drawable;
</big></dt>
<dd>solid borders (may be of different width) and, optionally, solid inner area<br><br>
</dd>
<dt><big><a name="decodeHexColor"></a>static uint <u>decodeHexColor</u>(string <i>s</i>);
</big></dt>
<dd>decode color string #AARRGGBB, e.g. #5599AA<br><br>
</dd>
<dt><big><a name="decodeDimension"></a>static uint <u>decodeDimension</u>(string <i>s</i>);
</big></dt>
<dd>decode size string, e.g. 1px or 2 or 3pt<br><br>
</dd>
<dt><big><a name="createColorDrawable"></a>static Drawable <u>createColorDrawable</u>(string <i>s</i>);
</big></dt>
<dd>decode solid color / gradient / frame drawable from string like #AARRGGBB, e.g. #5599AA
<br><br>
<b>SolidFillDrawable:</b><br>
#AARRGGBB - e.g. #8090A0 or #80ffffff
<br><br>
<b>FrameDrawable:</b><br>
#frameColor,frameWidth[,#middleColor]
or #frameColor,leftBorderWidth,topBorderWidth,rightBorderWidth,bottomBorderWidth[,#middleColor]
e.g. #000000,2,#C0FFFFFF - black frame of width 2 with 75% transparent white middle
e.g. #0000FF,2,3,4,5,#FFFFFF - blue frame with left,top,right,bottom borders of width 2,3,4,5 and white inner area<br><br>
</dd>
<dt><big><a name="extractStateFlags"></a>void <u>extractStateFlags</u>(ref string[string] <i>attr</i>, ref uint <i>stateMask</i>, ref uint <i>stateValue</i>);
</big></dt>
<dd>converts XML attribute name to State (see http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)<br><br>
</dd>
<dt><big><a name="StateDrawable"></a>class <u>StateDrawable</u>: dlangui.graphics.resources.Drawable;
</big></dt>
<dd>Drawable which is drawn depending on state (see http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)<br><br>
<dl><dt><big><a name="StateDrawable.parseList4"></a>bool <u>parseList4</u>(T)(string <i>value</i>, ref T[4] <i>items</i>);
</big></dt>
<dd>parse 4 comma delimited integers<br><br>
</dd>
<dt><big><a name="StateDrawable.load"></a>bool <u>load</u>(string <i>filename</i>);
</big></dt>
<dd><u>load</u> from XML file<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="ImageCache"></a>class <u>ImageCache</u>;
</big></dt>
<dd>decoded raster images cache (png, jpeg) -- access by filenames<br><br>
<dl><dt><big><a name="ImageCache.get"></a>ref DrawBufRef <u>get</u>(string <i>filename</i>);
</big></dt>
<dd><u>get</u> and cache image<br><br>
</dd>
<dt><big><a name="ImageCache.get"></a>ref DrawBufRef <u>get</u>(string <i>filename</i>, ref ColorTransform <i>transform</i>);
</big></dt>
<dd><u>get</u> and cache color transformed image<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="imageCache"></a>@property ImageCache <u>imageCache</u>();
</big></dt>
<dd>image cache singleton<br><br>
</dd>
<dt><big><a name="imageCache"></a>@property void <u>imageCache</u>(ImageCache <i>cache</i>);
</big></dt>
<dd>image <i>cache</i> singleton<br><br>
</dd>
<dt><big><a name="drawableCache"></a>@property DrawableCache <u>drawableCache</u>();
</big></dt>
<dd>drawable cache singleton<br><br>
</dd>
<dt><big><a name="drawableCache"></a>@property void <u>drawableCache</u>(DrawableCache <i>cache</i>);
</big></dt>
<dd>drawable <i>cache</i> singleton<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,29 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>src.dlangui.platforms.sdl.sdlapp</title>
</head><body>
<h1>src.dlangui.platforms.sdl.sdlapp</h1>
<!-- Generated by Ddoc from src/dlangui/platforms/sdl/sdlapp.d -->
DLANGUI library.
<br><br>
This module contains implementation of SDL2 based backend for dlang library.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.platforms.sdl.<u>sdlapp</u>;
</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>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,236 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.signals</title>
</head><body>
<h1>dlangui.core.signals</h1>
<!-- Generated by Ddoc from src/dlangui/core/signals.d -->
DLANGUI library.
<br><br>
This module contains definition of <u>signals</u> / listeners.
<br><br>
Similar to std.<u>signals</u>.
<br><br>
Unlike std.<u>signals</u>, supports any types of delegates, and as well interfaces with single method.
<br><br>
Unlike std.<u>signals</u>, can support return types for slots.
<br><br>
<b>Caution:</b><br>
unlike std.<u>signals</u>, does not disconnect signal from slots belonging to destroyed objects.
<br><br>
Listener here stand for holder of single delegate (slot).
Signal is the same but supports multiple slots.
<br><br>
Can be declared either using list of result value and argument types, or by interface name with single method.
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>signals</u>;
<font color=blue>interface</font> SomeInterface {
<font color=blue>bool</font> someMethod(string s, <font color=blue>int</font> n);
}
<font color=blue>class</font> Foo : SomeInterface {
<font color=blue>override</font> <font color=blue>bool</font> someMethod(string s, <font color=blue>int</font> n) {
writeln(<font color=red>"someMethod called "</font>, s, <font color=red>", "</font>, n);
<font color=blue>return</font> n &gt; 10; <font color=green>// can return value
</font> }
}
<font color=green>// Listener! can hold arbitrary number of connected slots
</font>
<font color=green>// declare using list of return value and parameter types
</font>Listener!(<font color=blue>bool</font>, string, n) signal1;
Foo f = <font color=blue>new</font> Foo();
<font color=green>// when signal is defined as type list, you can use delegate
</font>signal1 = <font color=blue>bool</font> <font color=blue>delegate</font>(string s, <font color=blue>int</font> n) { writeln(<font color=red>"inside delegate - "</font>, s, n); <font color=blue>return</font> <font color=blue>false</font>; }
<font color=green>// or method reference
</font>signal1 = &amp;f.someMethod;
<font color=green>// declare using interface with single method
</font>Listener!SomeInterface signal2;
<font color=green>// you still can use any delegate
</font>signal2 = <font color=blue>bool</font> <font color=blue>delegate</font>(string s, <font color=blue>int</font> n) { writeln(<font color=red>"inside delegate - "</font>, s, n); <font color=blue>return</font> <font color=blue>false</font>; }
<font color=green>// but for class method which overrides interface method, you can use simple syntax
</font>signal2 = f; <font color=green>// it will automatically take &amp;f.someMethod
</font>
<font color=green>// call listener(s) either by opcall or explicit emit
</font>signal1(<font color=red>"text"</font>, 1);
signal1.emit(<font color=red>"text"</font>, 2);
signal2.emit(<font color=red>"text"</font>, 3);
<font color=green>// check if any slit is connected
</font><font color=blue>if</font> (signal1.assigned)
writeln(<font color=red>"has listeners"</font>);
<font color=green>// Signal! can hold arbitrary number of connected slots
</font>
<font color=green>// declare using list of return value and parameter types
</font>Signal!(<font color=blue>bool</font>, string, n) signal3;
<font color=green>// add listeners via connect call
</font>signal3.connect(<font color=blue>bool</font> <font color=blue>delegate</font>(string, <font color=blue>int</font>) { <font color=blue>return</font> <font color=blue>false</font>; });
<font color=green>// or via ~= operator
</font>signal3 ~= <font color=blue>bool</font> <font color=blue>delegate</font>(string, <font color=blue>int</font>) { <font color=blue>return</font> <font color=blue>false</font>; };
<font color=green>// declare using interface with single method
</font>Signal!SomeInterface signal4;
<font color=green>// you can connect several slots to signal
</font>signal4 ~= f;
signal4 ~= <font color=blue>bool</font> <font color=blue>delegate</font>(string, <font color=blue>int</font>) { <font color=blue>return</font> <font color=blue>true</font>; }
<font color=green>// calling of listeners of Signal! is similar to Listener!
</font><font color=green>// using opCall
</font><font color=blue>bool</font> res = signal4(<font color=red>"blah"</font>, 5);
<font color=green>// call listeners using emit
</font><font color=blue>bool</font> res = signal4.emit(<font color=red>"blah"</font>, 5);
<font color=green>// you can disconnect individual slots
</font><font color=green>// using disconnect()
</font>signal4.disconnect(f);
<font color=green>// or -= operator
</font>signal4 -= f;
</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="Listener"></a>struct <u>Listener</u>(T1) if (is(T1 == interface) &amp;&amp; __traits(allMembers, T1).length == 1);
</big></dt>
<dd>Single listener; parameter is interface with single method<br><br>
<dl><dt><big><a name="assigned"></a>bool <u>assigned</u>();
</big></dt>
<dd>returns <b>true</b> if listener is <u>assigned</u><br><br>
</dd>
<dt><big><a name="opAssign"></a>void <u>opAssign</u>(slot_t <i>listenerDelegate</i>);
</big></dt>
<dd>assign delegate<br><br>
</dd>
<dt><big><a name="opAssign"></a>void <u>opAssign</u>(T1 <i>listenerObject</i>);
</big></dt>
<dd>assign object implementing interface<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Listener"></a>struct <u>Listener</u>(RETURN_T, T1...);
</big></dt>
<dd>Single listener; implicitly specified return and parameter types<br><br>
<dl><dt><big><a name="assigned"></a>bool <u>assigned</u>();
</big></dt>
<dd>returns <b>true</b> if listener is <u>assigned</u><br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Signal"></a>struct <u>Signal</u>(T1) if (is(T1 == interface) &amp;&amp; __traits(allMembers, T1).length == 1);
</big></dt>
<dd>Multiple listeners; implicitly specified return and parameter types<br><br>
<dl><dt><big><a name="assigned"></a>bool <u>assigned</u>();
</big></dt>
<dd>returns <b>true</b> if listener is <u>assigned</u><br><br>
</dd>
<dt><big><a name="opAssign"></a>void <u>opAssign</u>(slot_t <i>listener</i>);
</big></dt>
<dd>replace all previously assigned listeners with new one (if <b>null</b> passed, remove all listeners)<br><br>
</dd>
<dt><big><a name="opAssign"></a>void <u>opAssign</u>(T1 <i>listener</i>);
</big></dt>
<dd>replace all previously assigned listeners with new one (if <b>null</b> passed, remove all listeners)<br><br>
</dd>
<dt><big><a name="opCall"></a>return_t <u>opCall</u>(params_t <i>params</i>);
</big></dt>
<dd>call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero<br><br>
</dd>
<dt><big><a name="emit"></a>return_t <u>emit</u>(params_t <i>params</i>);
</big></dt>
<dd>call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero<br><br>
</dd>
<dt><big><a name="connect"></a>void <u>connect</u>(slot_t <i>listener</i>);
</big></dt>
<dd>add <i>listener</i><br><br>
</dd>
<dt><big><a name="disconnect"></a>void <u>disconnect</u>(slot_t <i>listener</i>);
</big></dt>
<dd>remove <i>listener</i><br><br>
</dd>
<dt><big><a name="connect"></a>void <u>connect</u>(T1 <i>listener</i>);
</big></dt>
<dd>add <i>listener</i> - as interface member<br><br>
</dd>
<dt><big><a name="disconnect"></a>void <u>disconnect</u>(T1 <i>listener</i>);
</big></dt>
<dd>add <i>listener</i> - as interface member<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Signal"></a>struct <u>Signal</u>(RETURN_T, T1...);
</big></dt>
<dd>Multiple listeners; implicitly specified return and parameter types<br><br>
<dl><dt><big><a name="assigned"></a>bool <u>assigned</u>();
</big></dt>
<dd>returns <b>true</b> if listener is <u>assigned</u><br><br>
</dd>
<dt><big><a name="opAssign"></a>void <u>opAssign</u>(slot_t <i>listener</i>);
</big></dt>
<dd>replace all previously assigned listeners with new one (if <b>null</b> passed, remove all listeners)<br><br>
</dd>
<dt><big><a name="opCall"></a>RETURN_T <u>opCall</u>(T1 <i>params</i>);
</big></dt>
<dd>call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero<br><br>
</dd>
<dt><big><a name="emit"></a>RETURN_T <u>emit</u>(T1 <i>params</i>);
</big></dt>
<dd>call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero<br><br>
</dd>
<dt><big><a name="connect"></a>void <u>connect</u>(slot_t <i>listener</i>);
</big></dt>
<dd>add <i>listener</i><br><br>
</dd>
<dt><big><a name="disconnect"></a>void <u>disconnect</u>(slot_t <i>listener</i>);
</big></dt>
<dd>remove <i>listener</i><br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,476 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.styles</title>
</head><body>
<h1>dlangui.widgets.styles</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/styles.d -->
DLANGUI library.
<br><br>
This module contains declaration of themes and <u>styles</u> implementation.
<br><br>
Style - style container
Theme - parent for all <u>styles</u>
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>styles</u>;
</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="COLOR_TRANSPARENT"></a>immutable uint <u>COLOR_TRANSPARENT</u>;
</big></dt>
<dd>transparent color constant<br><br>
</dd>
<dt><big><a name="FONT_SIZE_UNSPECIFIED"></a>immutable ushort <u>FONT_SIZE_UNSPECIFIED</u>;
</big></dt>
<dd>unspecified font size constant - to take parent style property value<br><br>
</dd>
<dt><big><a name="FONT_WEIGHT_UNSPECIFIED"></a>immutable ushort <u>FONT_WEIGHT_UNSPECIFIED</u>;
</big></dt>
<dd>unspecified font weight constant - to take parent style property value<br><br>
</dd>
<dt><big><a name="FONT_STYLE_UNSPECIFIED"></a>immutable ubyte <u>FONT_STYLE_UNSPECIFIED</u>;
</big></dt>
<dd>unspecified font style constant - to take parent style property value<br><br>
</dd>
<dt><big><a name="FONT_STYLE_NORMAL"></a>immutable ubyte <u>FONT_STYLE_NORMAL</u>;
</big></dt>
<dd>normal font style constant<br><br>
</dd>
<dt><big><a name="FONT_STYLE_ITALIC"></a>immutable ubyte <u>FONT_STYLE_ITALIC</u>;
</big></dt>
<dd>italic font style constant<br><br>
</dd>
<dt><big><a name="SIZE_UNSPECIFIED"></a>immutable int <u>SIZE_UNSPECIFIED</u>;
</big></dt>
<dd>use as widget.layout() param to avoid applying of parent size<br><br>
</dd>
<dt><big><a name="TEXT_FLAGS_UNSPECIFIED"></a>immutable uint <u>TEXT_FLAGS_UNSPECIFIED</u>;
</big></dt>
<dd>use text flags from parent style<br><br>
</dd>
<dt><big><a name="TEXT_FLAGS_USE_PARENT"></a>immutable uint <u>TEXT_FLAGS_USE_PARENT</u>;
</big></dt>
<dd>use text flags from parent widget<br><br>
</dd>
<dt><big><a name="FILL_PARENT"></a>immutable int <u>FILL_PARENT</u>;
</big></dt>
<dd>layout option, to occupy all available place<br><br>
</dd>
<dt><big><a name="WRAP_CONTENT"></a>immutable int <u>WRAP_CONTENT</u>;
</big></dt>
<dd>layout option, for size based on content<br><br>
</dd>
<dt><big><a name="WEIGHT_UNSPECIFIED"></a>immutable int <u>WEIGHT_UNSPECIFIED</u>;
</big></dt>
<dd>to take layout weight from parent<br><br>
</dd>
<dt><big><a name="Align"></a>enum <u>Align</u>: ubyte;
</big></dt>
<dd><u>Align</u> option bit constants<br><br>
<dl><dt><big><a name="Align.Unspecified"></a><u>Unspecified</u></big></dt>
<dd>alignment is not specified<br><br>
</dd>
<dt><big><a name="Align.Left"></a><u>Left</u></big></dt>
<dd>horizontally align to the left of box<br><br>
</dd>
<dt><big><a name="Align.Right"></a><u>Right</u></big></dt>
<dd>horizontally align to the right of box<br><br>
</dd>
<dt><big><a name="Align.HCenter"></a><u>HCenter</u></big></dt>
<dd>horizontally align to the center of box<br><br>
</dd>
<dt><big><a name="Align.Top"></a><u>Top</u></big></dt>
<dd>vertically align to the top of box<br><br>
</dd>
<dt><big><a name="Align.Bottom"></a><u>Bottom</u></big></dt>
<dd>vertically align to the bottom of box<br><br>
</dd>
<dt><big><a name="Align.VCenter"></a><u>VCenter</u></big></dt>
<dd>vertically align to the center of box<br><br>
</dd>
<dt><big><a name="Align.Center"></a><u>Center</u></big></dt>
<dd>align to the center of box (VCenter | HCenter)<br><br>
</dd>
<dt><big><a name="Align.TopLeft"></a><u>TopLeft</u></big></dt>
<dd>align to the top left corner of box (Left | Top)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="TextFlag"></a>enum <u>TextFlag</u>: uint;
</big></dt>
<dd>text drawing flag bits<br><br>
<dl><dt><big><a name="TextFlag.HotKeys"></a><u>HotKeys</u></big></dt>
<dd>text contains hot key prefixed with &amp; char (e.g. "&File")<br><br>
</dd>
<dt><big><a name="TextFlag.UnderlineHotKeys"></a><u>UnderlineHotKeys</u></big></dt>
<dd>underline hot key when drawing<br><br>
</dd>
<dt><big><a name="TextFlag.UnderlineHotKeysWhenAltPressed"></a><u>UnderlineHotKeysWhenAltPressed</u></big></dt>
<dd>underline hot key when drawing<br><br>
</dd>
<dt><big><a name="TextFlag.Underline"></a><u>Underline</u></big></dt>
<dd>underline text when drawing<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="DrawableAttribute"></a>class <u>DrawableAttribute</u>;
</big></dt>
<dd>custom drawable attribute container for styles<br><br>
</dd>
<dt><big><a name="Style"></a>class <u>Style</u>;
</big></dt>
<dd>style properties<br><br>
<dl><dt><big><a name="Style.parentStyle"></a>const @property const(Style) <u>parentStyle</u>();
</big></dt>
<dd>access to parent style for this style<br><br>
</dd>
<dt><big><a name="Style.parentStyle"></a>@property Style <u>parentStyle</u>();
</big></dt>
<dd>access to parent style for this style<br><br>
</dd>
<dt><big><a name="Style.customDrawable"></a>@property ref DrawableRef <u>customDrawable</u>(string <i>id</i>);
</big></dt>
<dd>get custom drawable attribute<br><br>
</dd>
<dt><big><a name="Style.customDrawableId"></a>const @property string <u>customDrawableId</u>(string <i>id</i>);
</big></dt>
<dd>get custom drawable attribute<br><br>
</dd>
<dt><big><a name="Style.setCustomDrawable"></a>Style <u>setCustomDrawable</u>(string <i>id</i>, string <i>resourceId</i>);
</big></dt>
<dd>sets custom drawable attribute for style<br><br>
</dd>
<dt><big><a name="Style.fontFamily"></a>const @property FontFamily <u>fontFamily</u>();
</big></dt>
<dd>font size<br><br>
</dd>
<dt><big><a name="Style.fontFace"></a>const @property string <u>fontFace</u>();
</big></dt>
<dd>font size<br><br>
</dd>
<dt><big><a name="Style.fontItalic"></a>const @property bool <u>fontItalic</u>();
</big></dt>
<dd>font style - italic<br><br>
</dd>
<dt><big><a name="Style.fontWeight"></a>const @property ushort <u>fontWeight</u>();
</big></dt>
<dd>font weight<br><br>
</dd>
<dt><big><a name="Style.fontSize"></a>const @property ushort <u>fontSize</u>();
</big></dt>
<dd>font size<br><br>
</dd>
<dt><big><a name="Style.padding"></a>const @property ref const(Rect) <u>padding</u>();
</big></dt>
<dd><u>padding</u><br><br>
</dd>
<dt><big><a name="Style.margins"></a>const @property ref const(Rect) <u>margins</u>();
</big></dt>
<dd><u>margins</u><br><br>
</dd>
<dt><big><a name="Style.alpha"></a>const @property uint <u>alpha</u>();
</big></dt>
<dd><u>alpha</u> (0=opaque .. 255=transparent)<br><br>
</dd>
<dt><big><a name="Style.textColor"></a>const @property uint <u>textColor</u>();
</big></dt>
<dd>text color<br><br>
</dd>
<dt><big><a name="Style.textFlags"></a>const @property uint <u>textFlags</u>();
</big></dt>
<dd>text flags<br><br>
</dd>
<dt><big><a name="Style.backgroundColor"></a>const @property uint <u>backgroundColor</u>();
</big></dt>
<dd>background color<br><br>
</dd>
<dt><big><a name="Style.backgroundImageId"></a>const @property string <u>backgroundImageId</u>();
</big></dt>
<dd>font size<br><br>
</dd>
<dt><big><a name="Style.minWidth"></a>const @property uint <u>minWidth</u>();
</big></dt>
<dd>minimal width constraint, 0 if limit is not set<br><br>
</dd>
<dt><big><a name="Style.maxWidth"></a>const @property uint <u>maxWidth</u>();
</big></dt>
<dd>max width constraint, returns SIZE_UNSPECIFIED if limit is not set<br><br>
</dd>
<dt><big><a name="Style.minHeight"></a>const @property uint <u>minHeight</u>();
</big></dt>
<dd>minimal height constraint, 0 if limit is not set<br><br>
</dd>
<dt><big><a name="Style.maxHeight"></a>const @property uint <u>maxHeight</u>();
</big></dt>
<dd>max height constraint, SIZE_UNSPECIFIED if limit is not set<br><br>
</dd>
<dt><big><a name="Style.minWidth"></a>@property Style <u>minWidth</u>(int <i>value</i>);
</big></dt>
<dd>set min width constraint<br><br>
</dd>
<dt><big><a name="Style.maxWidth"></a>@property Style <u>maxWidth</u>(int <i>value</i>);
</big></dt>
<dd>set max width constraint<br><br>
</dd>
<dt><big><a name="Style.minHeight"></a>@property Style <u>minHeight</u>(int <i>value</i>);
</big></dt>
<dd>set min height constraint<br><br>
</dd>
<dt><big><a name="Style.maxHeight"></a>@property Style <u>maxHeight</u>(int <i>value</i>);
</big></dt>
<dd>set max height constraint<br><br>
</dd>
<dt><big><a name="Style.layoutWidth"></a>const @property uint <u>layoutWidth</u>();
</big></dt>
<dd>layout width parameter<br><br>
</dd>
<dt><big><a name="Style.layoutHeight"></a>const @property uint <u>layoutHeight</u>();
</big></dt>
<dd>layout height parameter<br><br>
</dd>
<dt><big><a name="Style.layoutWeight"></a>const @property uint <u>layoutWeight</u>();
</big></dt>
<dd>layout weight parameter<br><br>
</dd>
<dt><big><a name="Style.layoutHeight"></a>@property Style <u>layoutHeight</u>(int <i>value</i>);
</big></dt>
<dd>set layout height<br><br>
</dd>
<dt><big><a name="Style.layoutWidth"></a>@property Style <u>layoutWidth</u>(int <i>value</i>);
</big></dt>
<dd>set layout width<br><br>
</dd>
<dt><big><a name="Style.layoutWeight"></a>@property Style <u>layoutWeight</u>(int <i>value</i>);
</big></dt>
<dd>set layout weight<br><br>
</dd>
<dt><big><a name="Style.alignment"></a>const @property ubyte <u>alignment</u>();
</big></dt>
<dd>get full <u>alignment</u> (both vertical and horizontal)<br><br>
</dd>
<dt><big><a name="Style.valign"></a>const @property ubyte <u>valign</u>();
</big></dt>
<dd>vertical alignment: Top / VCenter / Bottom<br><br>
</dd>
<dt><big><a name="Style.halign"></a>const @property ubyte <u>halign</u>();
</big></dt>
<dd>horizontal alignment: Left / HCenter / Right<br><br>
</dd>
<dt><big><a name="Style.alignment"></a>@property Style <u>alignment</u>(ubyte <i>value</i>);
</big></dt>
<dd>set <u>alignment</u><br><br>
</dd>
<dt><big><a name="Style.createSubstyle"></a>Style <u>createSubstyle</u>(string <i>id</i>);
</big></dt>
<dd>create named substyle of this style<br><br>
</dd>
<dt><big><a name="Style.createState"></a>Style <u>createState</u>(uint <i>stateMask</i> = 0, uint <i>stateValue</i> = 0);
</big></dt>
<dd>create state substyle for this style<br><br>
</dd>
<dt><big><a name="Style.forState"></a>const const(Style) <u>forState</u>(uint <i>state</i>);
</big></dt>
<dd>find substyle based on widget <i>state</i> (e.g. focused, pressed, ...)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="Theme"></a>class <u>Theme</u>: dlangui.widgets.styles.Style;
</big></dt>
<dd><u>Theme</u> - root for style hierarhy.<br><br>
<dl><dt><big><a name="Theme.modifyStyle"></a>Style <u>modifyStyle</u>(string <i>id</i>);
</big></dt>
<dd>create wrapper style which will have currentTheme.get(<i>id</i>) as parent instead of fixed parent - to modify some base style properties in widget<br><br>
</dd>
<dt><big><a name="Theme.backgroundImageId"></a>const @property string <u>backgroundImageId</u>();
</big></dt>
<dd>font size<br><br>
</dd>
<dt><big><a name="Theme.minWidth"></a>const @property uint <u>minWidth</u>();
</big></dt>
<dd>minimal width constraint, 0 if limit is not set<br><br>
</dd>
<dt><big><a name="Theme.maxWidth"></a>const @property uint <u>maxWidth</u>();
</big></dt>
<dd>max width constraint, returns SIZE_UNSPECIFIED if limit is not set<br><br>
</dd>
<dt><big><a name="Theme.minHeight"></a>const @property uint <u>minHeight</u>();
</big></dt>
<dd>minimal height constraint, 0 if limit is not set<br><br>
</dd>
<dt><big><a name="Theme.maxHeight"></a>const @property uint <u>maxHeight</u>();
</big></dt>
<dd>max height constraint, SIZE_UNSPECIFIED if limit is not set<br><br>
</dd>
<dt><big><a name="Theme.createSubstyle"></a>Style <u>createSubstyle</u>(string <i>id</i>);
</big></dt>
<dd>create new named style or get existing<br><br>
</dd>
<dt><big><a name="Theme.get"></a>@property Style <u>get</u>(string <i>id</i>);
</big></dt>
<dd>find style by <i>id</i>, returns theme if not style with specified ID is not found<br><br>
</dd>
<dt><big><a name="Theme.forState"></a>const const(Style) <u>forState</u>(uint <i>state</i>);
</big></dt>
<dd>find substyle based on widget <i>state</i> (e.g. focused, pressed, ...)<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="currentTheme"></a>@property Theme <u>currentTheme</u>();
</big></dt>
<dd>current theme accessor<br><br>
</dd>
<dt><big><a name="currentTheme"></a>@property void <u>currentTheme</u>(Theme <i>theme</i>);
</big></dt>
<dd>set new current <i>theme</i><br><br>
</dd>
<dt><big><a name="decodeRect"></a>Rect <u>decodeRect</u>(string <i>s</i>);
</big></dt>
<dd>decode comma delimited dimension list or single value - and put to Rect<br><br>
</dd>
<dt><big><a name="decodeAlignment"></a>ubyte <u>decodeAlignment</u>(string <i>s</i>);
</big></dt>
<dd>parses string like "Left|VCenter" to bit set of Align flags<br><br>
</dd>
<dt><big><a name="decodeTextFlags"></a>uint <u>decodeTextFlags</u>(string <i>s</i>);
</big></dt>
<dd>parses string like "HotKeys|UnderlineHotKeysWhenAltPressed" to bit set of TextFlag flags<br><br>
</dd>
<dt><big><a name="decodeFontFamily"></a>FontFamily <u>decodeFontFamily</u>(string <i>s</i>);
</big></dt>
<dd>decode FontFamily item name to value<br><br>
</dd>
<dt><big><a name="decodeLayoutDimension"></a>int <u>decodeLayoutDimension</u>(string <i>s</i>);
</big></dt>
<dd>decode layout dimension (FILL_PARENT, WRAP_CONTENT, or just size)<br><br>
</dd>
<dt><big><a name="loadStyleAttributes"></a>bool <u>loadStyleAttributes</u>(Style <i>style</i>, Element <i>elem</i>, bool <i>allowStates</i>);
</big></dt>
<dd>load <i>style</i> attributes from XML element<br><br>
</dd>
<dt><big><a name="loadTheme"></a>bool <u>loadTheme</u>(Theme <i>theme</i>, Element <i>doc</i>, int <i>level</i> = 0);
</big></dt>
<dd>load <i>theme</i> from XML document
<br><br>
<b>Sample:</b><br>
<pre class="d_code">&lt;?xml <font color=blue>version</font>=<font color=red>"1.0"</font> encoding=<font color=red>"utf-8"</font>?&gt;
&lt;<i>theme</i> id=<font color=red>"theme_custom"</font> parent=<font color=red>"theme_default"</font>&gt;
&lt;style id=<font color=red>"BUTTON"</font>
backgroundImageId=<font color=red>"btn_default_small"</font>
&gt;
&lt;/style&gt;
&lt;/<i>theme</i>&gt;
</pre>
<br><br>
</dd>
<dt><big><a name="loadTheme"></a>bool <u>loadTheme</u>(Theme <i>theme</i>, string <i>resourceId</i>, int <i>level</i> = 0);
</big></dt>
<dd>load <i>theme</i> from file<br><br>
</dd>
<dt><big><a name="loadTheme"></a>Theme <u>loadTheme</u>(string <i>resourceId</i>);
</big></dt>
<dd>load theme from XML file (<b>null</b> if failed)<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,235 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.tabs</title>
</head><body>
<h1>dlangui.widgets.tabs</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/tabs.d -->
DLANGUI library.
<br><br>
This module contains declaration of tabbed view controls.
<br><br>
TabItemWidget - single tab header in tab control
TabWidget
TabHost
TabControl
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>tabs</u>;
</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="TabItem"></a>class <u>TabItem</u>;
</big></dt>
<dd>tab item metadata<br><br>
</dd>
<dt><big><a name="TabItemWidget"></a>class <u>TabItemWidget</u>: dlangui.widgets.layouts.HorizontalLayout;
</big></dt>
<dd>tab item widget - to show tab header<br><br>
</dd>
<dt><big><a name="TabItemList"></a>class <u>TabItemList</u>;
</big></dt>
<dd>tab item list helper class<br><br>
<dl><dt><big><a name="TabItemList.get"></a>TabItem <u>get</u>(int <i>index</i>);
</big></dt>
<dd><u>get</u> item by <i>index</i><br><br>
</dd>
<dt><big><a name="TabItemList.get"></a>TabItem <u>get</u>(string <i>id</i>);
</big></dt>
<dd><u>get</u> item by <i>id</i><br><br>
</dd>
<dt><big><a name="TabItemList.add"></a>TabItemList <u>add</u>(TabItem <i>item</i>);
</big></dt>
<dd>append new <i>item</i><br><br>
</dd>
<dt><big><a name="TabItemList.insert"></a>TabItemList <u>insert</u>(TabItem <i>item</i>, int <i>index</i>);
</big></dt>
<dd><u>insert</u> new <i>item</i> to specified position<br><br>
</dd>
<dt><big><a name="TabItemList.remove"></a>TabItem <u>remove</u>(int <i>index</i>);
</big></dt>
<dd><u>remove</u> item by <i>index</i><br><br>
</dd>
<dt><big><a name="TabItemList.indexById"></a>int <u>indexById</u>(string <i>id</i>);
</big></dt>
<dd>find tab index by <i>id</i><br><br>
</dd>
</dl>
</dd>
<dt><big><a name="TabControl"></a>class <u>TabControl</u>: dlangui.widgets.widget.WidgetGroup;
</big></dt>
<dd>tab header - tab labels, with optional More button<br><br>
<dl><dt><big><a name="TabControl.onTabChangedListener"></a>Signal!TabHandler <u>onTabChangedListener</u>;
</big></dt>
<dd>signal of tab change (e.g. by clicking on tab header)<br><br>
</dd>
<dt><big><a name="TabControl.tabCount"></a>const @property int <u>tabCount</u>();
</big></dt>
<dd>returns tab count<br><br>
</dd>
<dt><big><a name="TabControl.tab"></a>TabItem <u>tab</u>(int <i>index</i>);
</big></dt>
<dd>returns <u>tab</u> item by id (<b>null</b> if <i>index</i> out of range)<br><br>
</dd>
<dt><big><a name="TabControl.tab"></a>TabItem <u>tab</u>(string <i>id</i>);
</big></dt>
<dd>returns <u>tab</u> item by <i>id</i> (<b>null</b> if not found)<br><br>
</dd>
<dt><big><a name="TabControl.tabIndex"></a>int <u>tabIndex</u>(string <i>id</i>);
</big></dt>
<dd>get tab index by tab <i>id</i> (-1 if not found)<br><br>
</dd>
<dt><big><a name="TabControl.removeTab"></a>TabControl <u>removeTab</u>(string <i>id</i>);
</big></dt>
<dd>remove tab<br><br>
</dd>
<dt><big><a name="TabControl.addTab"></a>TabControl <u>addTab</u>(TabItem <i>item</i>, int <i>index</i> = -1, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab<br><br>
</dd>
<dt><big><a name="TabControl.addTab"></a>TabControl <u>addTab</u>(string <i>id</i>, dstring <i>label</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by <i>id</i> and <i>label</i> string<br><br>
</dd>
<dt><big><a name="TabControl.addTab"></a>TabControl <u>addTab</u>(string <i>id</i>, string <i>labelResourceId</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by <i>id</i> and label string resource <i>id</i><br><br>
</dd>
<dt><big><a name="TabControl.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="TabControl.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="TabControl.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="TabHost"></a>class <u>TabHost</u>: dlangui.widgets.layouts.FrameLayout, dlangui.widgets.tabs.TabHandler;
</big></dt>
<dd>container for widgets controlled by TabControl<br><br>
<dl><dt><big><a name="TabHost.tabControl"></a>@property TabControl <u>tabControl</u>();
</big></dt>
<dd>get currently set control widget<br><br>
</dd>
<dt><big><a name="TabHost.tabControl"></a>@property TabHost <u>tabControl</u>(TabControl <i>newWidget</i>);
</big></dt>
<dd>set new control widget<br><br>
</dd>
<dt><big><a name="TabHost.onTabChangedListener"></a>Signal!TabHandler <u>onTabChangedListener</u>;
</big></dt>
<dd>signal of tab change (e.g. by clicking on tab header)<br><br>
</dd>
<dt><big><a name="TabHost.removeTab"></a>TabHost <u>removeTab</u>(string <i>id</i>);
</big></dt>
<dd>remove tab<br><br>
</dd>
<dt><big><a name="TabHost.addTab"></a>TabHost <u>addTab</u>(Widget <i>widget</i>, dstring <i>label</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by id and <i>label</i> string<br><br>
</dd>
<dt><big><a name="TabHost.addTab"></a>TabHost <u>addTab</u>(Widget <i>widget</i>, string <i>labelResourceId</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by id and label string resource id<br><br>
</dd>
<dt><big><a name="TabHost.selectTab"></a>void <u>selectTab</u>(string <i>ID</i>);
</big></dt>
<dd>select tab<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="TabWidget"></a>class <u>TabWidget</u>: dlangui.widgets.layouts.VerticalLayout, dlangui.widgets.tabs.TabHandler;
</big></dt>
<dd>compound widget - contains from TabControl widget (tabs header) and TabHost (content pages)<br><br>
<dl><dt><big><a name="TabWidget.onTabChangedListener"></a>Signal!TabHandler <u>onTabChangedListener</u>;
</big></dt>
<dd>signal of tab change (e.g. by clicking on tab header)<br><br>
</dd>
<dt><big><a name="TabWidget.addTab"></a>TabWidget <u>addTab</u>(Widget <i>widget</i>, string <i>labelResourceId</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by id and label string resource id<br><br>
</dd>
<dt><big><a name="TabWidget.addTab"></a>TabWidget <u>addTab</u>(Widget <i>widget</i>, dstring <i>label</i>, string <i>iconId</i> = null, bool <i>enableCloseButton</i> = false);
</big></dt>
<dd>add new tab by id and <i>label</i> (raw value)<br><br>
</dd>
<dt><big><a name="TabWidget.removeTab"></a>TabWidget <u>removeTab</u>(string <i>id</i>);
</big></dt>
<dd>remove tab by <i>id</i><br><br>
</dd>
<dt><big><a name="TabWidget.selectTab"></a>void <u>selectTab</u>(string <i>ID</i>);
</big></dt>
<dd>select tab<br><br>
</dd>
<dt><big><a name="TabWidget.tab"></a>TabItem <u>tab</u>(int <i>index</i>);
</big></dt>
<dd>returns <u>tab</u> item by id (<b>null</b> if <i>index</i> out of range)<br><br>
</dd>
<dt><big><a name="TabWidget.tab"></a>TabItem <u>tab</u>(string <i>id</i>);
</big></dt>
<dd>returns <u>tab</u> item by <i>id</i> (<b>null</b> if not found)<br><br>
</dd>
<dt><big><a name="TabWidget.tabIndex"></a>int <u>tabIndex</u>(string <i>id</i>);
</big></dt>
<dd>get tab index by tab <i>id</i> (-1 if not found)<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,147 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.core.types</title>
</head><body>
<h1>dlangui.core.types</h1>
<!-- Generated by Ddoc from src/dlangui/core/types.d -->
DLANGUI library.
<br><br>
This module declares basic data <u>types</u> for usage in dlangui library.
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.core.<u>types</u>;
<font color=green>// points
</font>Point p(5, 10);
<font color=green>// rectangles
</font>Rect r(5, 13, 120, 200);
writeln(r);
<font color=green>// reference counted objects, useful for RAII / resource management.
</font><font color=blue>class</font> Foo : RefCountedObject {
<font color=blue>int</font>[] resource;
~<font color=blue>this</font>() {
writeln(<font color=red>"freeing Foo resources"</font>);
}
}
{
Ref!Foo ref1;
{
Ref!Foo fooRef = <font color=blue>new</font> RefCountedObject();
ref1 = fooRef;
}
<font color=green>// RAII: will destroy object when no more references
</font>}
</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="Glyph"></a>struct <u>Glyph</u>;
</big></dt>
<dd>character glyph<br><br>
<dl><dt><big><a name="Glyph.id"></a>uint <u>id</u>;
</big></dt>
<dd>&lt; 0: unique <u>id</u> of glyph (for drawing in hardware accelerated scenes)<br><br>
</dd>
<dt><big><a name="Glyph.blackBoxX"></a>ubyte <u>blackBoxX</u>;
</big></dt>
<dd>&lt; 4: width of glyph black box<br><br>
</dd>
<dt><big><a name="Glyph.blackBoxY"></a>ubyte <u>blackBoxY</u>;
</big></dt>
<dd>&lt; 5: height of glyph black box<br><br>
</dd>
<dt><big><a name="Glyph.originX"></a>byte <u>originX</u>;
</big></dt>
<dd>&lt; 6: X origin for glyph<br><br>
</dd>
<dt><big><a name="Glyph.originY"></a>byte <u>originY</u>;
</big></dt>
<dd>&lt; 7: Y origin for glyph<br><br>
</dd>
<dt><big><a name="Glyph.width"></a>ubyte <u>width</u>;
</big></dt>
<dd>&lt; 8: full <u>width</u> of glyph<br><br>
</dd>
<dt><big><a name="Glyph.lastUsage"></a>ubyte <u>lastUsage</u>;
</big></dt>
<dd>&lt; 9: usage flag, to handle cleanup of unused glyphs<br><br>
</dd>
<dt><big><a name="Glyph.glyph"></a>ubyte[] <u>glyph</u>;
</big></dt>
<dd>&lt; 12: <u>glyph</u> data, arbitrary size<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="RefCountedObject"></a>class <u>RefCountedObject</u>;
</big></dt>
<dd>base class for reference counted objects, maintains reference counter inplace.<br><br>
</dd>
<dt><big><a name="State"></a>enum <u>State</u>: uint;
</big></dt>
<dd>widget state flags - bits<br><br>
<dl><dt><big><a name="State.Normal"></a><u>Normal</u></big></dt>
<dd>state not specified / normal<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="dcharToUpper"></a>dchar <u>dcharToUpper</u>(dchar <i>ch</i>);
</big></dt>
<dd>uppercase unicode character<br><br>
</dd>
<dt><big><a name="isPathDelimiter"></a>bool <u>isPathDelimiter</u>(char <i>ch</i>);
</big></dt>
<dd>returns <b>true</b> if char <i>ch</i> is / or \ slash<br><br>
</dd>
<dt><big><a name="exePath"></a>@property string <u>exePath</u>();
</big></dt>
<dd>returns current executable path only, including last path delimiter<br><br>
</dd>
<dt><big><a name="convertPathDelimiters"></a>char[] <u>convertPathDelimiters</u>(char[] <i>buf</i>);
</big></dt>
<dd>converts path delimiters to standard for platform inplace in buffer(e.g. / to \ on windows, \ to / on posix), returns <i>buf</i><br><br>
</dd>
<dt><big><a name="convertPathDelimiters"></a>string <u>convertPathDelimiters</u>(string <i>src</i>);
</big></dt>
<dd>converts path delimiters to standard for platform (e.g. / to \ on windows, \ to / on posix)<br><br>
</dd>
<dt><big><a name="appendPath"></a>string <u>appendPath</u>(string[] <i>pathItems</i>...);
</big></dt>
<dd>appends file path parts with proper delimiters e.g. <u>appendPath</u>("/home/user", ".myapp", "config") =&gt; "/home/user/.myapp/config"<br><br>
</dd>
<dt><big><a name="appendPath"></a>char[] <u>appendPath</u>(char[] <i>buf</i>, string[] <i>pathItems</i>...);
</big></dt>
<dd>appends file path parts with proper delimiters (as well converts delimiters inside path to system) to buffer e.g. <u>appendPath</u>("/home/user", ".myapp", "config") =&gt; "/home/user/.myapp/config"<br><br>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>

View File

@ -1,211 +0,0 @@
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>dlangui.widgets.widget</title>
</head><body>
<h1>dlangui.widgets.widget</h1>
<!-- Generated by Ddoc from src/dlangui/widgets/widget.d -->
DLANGUI library.
<br><br>
This module contains declaration of Widget class - base class for all widgets.
<br><br>
Widgets are styleable. Use styleId property to set style to use from current Theme.
<br><br>
When any of styleable attributes is being overriden, <u>widget</u>'s own copy of style is being created to hold modified attributes (defaults to parent style).
<br><br>
Two phase layout model (like in Android UI) is used - measure() call is followed by layout() is used to measure and layout <u>widget</u> and its children.abstract
<br><br>
Method onDraw will be called to draw <u>widget</u> on some surface. Widget.onDraw() draws <u>widget</u> background (if any).
<br><br>
<br><br>
<b>Synopsis:</b><br>
<pre class="d_code"><font color=blue>import</font> dlangui.widgets.<u>widget</u>;
<font color=green>// access attributes as properties
</font><font color=blue>auto</font> w = <font color=blue>new</font> Widget(<font color=red>"id1"</font>);
w.backgroundColor = 0xFFFF00;
w.layoutWidth = FILL_PARENT;
w.layoutHeight = FILL_PARENT;
w.padding(Rect(10,10,10,10));
<font color=green>// same, but using chained method call
</font><font color=blue>auto</font> w = <font color=blue>new</font> Widget(<font color=red>"id1"</font>).backgroundColor(0xFFFF00).layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT).padding(Rect(10,10,10,10));
</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="Visibility"></a>enum <u>Visibility</u>: ubyte;
</big></dt>
<dd><u>Visibility</u> (see Android View <u>Visibility</u>)<br><br>
<dl><dt><big><a name="Visibility.Visible"></a><u>Visible</u></big></dt>
<dd><u>Visible</u> on screen (default)<br><br>
</dd>
<dt><big><a name="Visibility.Invisible"></a><u>Invisible</u></big></dt>
<dd>Not visible, but occupies a space in layout<br><br>
</dd>
<dt><big><a name="Visibility.Gone"></a><u>Gone</u></big></dt>
<dd>Completely hidden, as not has been added<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="OnClickHandler"></a>interface <u>OnClickHandler</u>;
</big></dt>
<dd>interface - slot for onClick<br><br>
</dd>
<dt><big><a name="OnCheckHandler"></a>interface <u>OnCheckHandler</u>;
</big></dt>
<dd>interface - slot for onCheckChanged<br><br>
</dd>
<dt><big><a name="OnFocusHandler"></a>interface <u>OnFocusHandler</u>;
</big></dt>
<dd>interface - slot for onFocusChanged<br><br>
</dd>
<dt><big><a name="FocusMovement"></a>enum <u>FocusMovement</u>: int;
</big></dt>
<dd>focus movement options<br><br>
<dl><dt><big><a name="FocusMovement.None"></a><u>None</u></big></dt>
<dd>no focus movement<br><br>
</dd>
<dt><big><a name="FocusMovement.Next"></a><u>Next</u></big></dt>
<dd>next focusable (Tab)<br><br>
</dd>
<dt><big><a name="FocusMovement.Previous"></a><u>Previous</u></big></dt>
<dd>previous focusable (Shift+Tab)<br><br>
</dd>
<dt><big><a name="FocusMovement.Up"></a><u>Up</u></big></dt>
<dd>move to nearest above<br><br>
</dd>
<dt><big><a name="FocusMovement.Down"></a><u>Down</u></big></dt>
<dd>move to nearest below<br><br>
</dd>
<dt><big><a name="FocusMovement.Left"></a><u>Left</u></big></dt>
<dd>move to nearest at left<br><br>
</dd>
<dt><big><a name="FocusMovement.Right"></a><u>Right</u></big></dt>
<dd>move to nearest at right<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="CursorType"></a>enum <u>CursorType</u>: int;
</big></dt>
<dd>standard mouse cursor types<br><br>
<dl><dt><big><a name="CursorType.Parent"></a><u>Parent</u></big></dt>
<dd>use parent's cursor<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="WidgetList"></a>struct <u>WidgetList</u>;
</big></dt>
<dd>widget list holder<br><br>
<dl><dt><big><a name="WidgetList.count"></a>const @property int <u>count</u>();
</big></dt>
<dd>returns <u>count</u> of items<br><br>
</dd>
<dt><big><a name="WidgetList.get"></a>Widget <u>get</u>(int <i>index</i>);
</big></dt>
<dd><u>get</u> item by <i>index</i><br><br>
</dd>
<dt><big><a name="WidgetList.add"></a>Widget <u>add</u>(Widget <i>item</i>);
</big></dt>
<dd><u>add</u> <i>item</i> to list<br><br>
</dd>
<dt><big><a name="WidgetList.insert"></a>Widget <u>insert</u>(Widget <i>item</i>, int <i>index</i> = -1);
</big></dt>
<dd>add <i>item</i> to list<br><br>
</dd>
<dt><big><a name="WidgetList.indexOf"></a>int <u>indexOf</u>(Widget <i>item</i>);
</big></dt>
<dd>find child index for <i>item</i>, return -1 if not found<br><br>
</dd>
<dt><big><a name="WidgetList.indexOf"></a>int <u>indexOf</u>(string <i>id</i>);
</big></dt>
<dd>find child index for item by <i>id</i>, return -1 if not found<br><br>
</dd>
<dt><big><a name="WidgetList.remove"></a>Widget <u>remove</u>(int <i>index</i>);
</big></dt>
<dd><u>remove</u> item from list, return removed item<br><br>
</dd>
<dt><big><a name="WidgetList.clear"></a>void <u>clear</u>();
</big></dt>
<dd>remove and destroy all items<br><br>
</dd>
</dl>
</dd>
<dt><big><a name="WidgetGroup"></a>class <u>WidgetGroup</u>: dlangui.widgets.widget.Widget;
</big></dt>
<dd>base class for widgets which have children<br><br>
<dl><dt><big><a name="WidgetGroup.childCount"></a>@property int <u>childCount</u>();
</big></dt>
<dd>returns number of children of this widget<br><br>
</dd>
<dt><big><a name="WidgetGroup.child"></a>Widget <u>child</u>(int <i>index</i>);
</big></dt>
<dd>returns <u>child</u> by <i>index</i><br><br>
</dd>
<dt><big><a name="WidgetGroup.addChild"></a>Widget <u>addChild</u>(Widget <i>item</i>);
</big></dt>
<dd>adds child, returns added <i>item</i><br><br>
</dd>
<dt><big><a name="WidgetGroup.removeChild"></a>Widget <u>removeChild</u>(int <i>index</i>);
</big></dt>
<dd>removes child, returns removed item<br><br>
</dd>
<dt><big><a name="WidgetGroup.removeChild"></a>Widget <u>removeChild</u>(string <i>ID</i>);
</big></dt>
<dd>removes child by <i>ID</i>, returns removed item<br><br>
</dd>
<dt><big><a name="WidgetGroup.childIndex"></a>int <u>childIndex</u>(Widget <i>item</i>);
</big></dt>
<dd>returns index of widget in child list, -1 if passed widget is not a child of this widget<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. Vadim Lopatin, 2014
</small>
</body></html>