dlangui/styles.html

509 lines
17 KiB
HTML

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