mirror of https://github.com/buggins/dlangui.git
add AppFrame and StatusLine classes
This commit is contained in:
parent
4c1615ffa6
commit
96a0213145
|
@ -89,7 +89,6 @@
|
||||||
<resfile />
|
<resfile />
|
||||||
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
|
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
|
||||||
<useStdLibPath>1</useStdLibPath>
|
<useStdLibPath>1</useStdLibPath>
|
||||||
<cRuntime>2</cRuntime>
|
|
||||||
<additionalOptions />
|
<additionalOptions />
|
||||||
<preBuildCommand />
|
<preBuildCommand />
|
||||||
<postBuildCommand />
|
<postBuildCommand />
|
||||||
|
@ -184,7 +183,6 @@
|
||||||
<resfile />
|
<resfile />
|
||||||
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
|
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
|
||||||
<useStdLibPath>1</useStdLibPath>
|
<useStdLibPath>1</useStdLibPath>
|
||||||
<cRuntime>1</cRuntime>
|
|
||||||
<additionalOptions />
|
<additionalOptions />
|
||||||
<preBuildCommand />
|
<preBuildCommand />
|
||||||
<postBuildCommand />
|
<postBuildCommand />
|
||||||
|
@ -380,6 +378,7 @@
|
||||||
</Folder>
|
</Folder>
|
||||||
</Folder>
|
</Folder>
|
||||||
<Folder name="widgets">
|
<Folder name="widgets">
|
||||||
|
<File path="src\dlangui\widgets\appframe.d" />
|
||||||
<File path="src\dlangui\widgets\combobox.d" />
|
<File path="src\dlangui\widgets\combobox.d" />
|
||||||
<File path="src\dlangui\widgets\controls.d" />
|
<File path="src\dlangui\widgets\controls.d" />
|
||||||
<File path="src\dlangui\widgets\editors.d" />
|
<File path="src\dlangui\widgets\editors.d" />
|
||||||
|
@ -389,6 +388,7 @@
|
||||||
<File path="src\dlangui\widgets\menu.d" />
|
<File path="src\dlangui\widgets\menu.d" />
|
||||||
<File path="src\dlangui\widgets\popup.d" />
|
<File path="src\dlangui\widgets\popup.d" />
|
||||||
<File path="src\dlangui\widgets\scroll.d" />
|
<File path="src\dlangui\widgets\scroll.d" />
|
||||||
|
<File path="src\dlangui\widgets\statusline.d" />
|
||||||
<File path="src\dlangui\widgets\styles.d" />
|
<File path="src\dlangui\widgets\styles.d" />
|
||||||
<File path="src\dlangui\widgets\tabs.d" />
|
<File path="src\dlangui\widgets\tabs.d" />
|
||||||
<File path="src\dlangui\widgets\tree.d" />
|
<File path="src\dlangui\widgets\tree.d" />
|
||||||
|
|
|
@ -131,6 +131,7 @@
|
||||||
<style id="MAIN_MENU"
|
<style id="MAIN_MENU"
|
||||||
layoutWidth="FILL_PARENT"
|
layoutWidth="FILL_PARENT"
|
||||||
backgroundColor="#EFEFF2"
|
backgroundColor="#EFEFF2"
|
||||||
|
layoutWeight="0"
|
||||||
/>
|
/>
|
||||||
<style id="MAIN_MENU_ITEM"
|
<style id="MAIN_MENU_ITEM"
|
||||||
padding="4,2,4,2"
|
padding="4,2,4,2"
|
||||||
|
@ -215,6 +216,13 @@
|
||||||
layoutWidth="FILL_PARENT"
|
layoutWidth="FILL_PARENT"
|
||||||
layoutHeight="FILL_PARENT"
|
layoutHeight="FILL_PARENT"
|
||||||
/>
|
/>
|
||||||
|
<style id="STATUS_LINE"
|
||||||
|
backgroundColor="#D0D0D0"
|
||||||
|
layoutWidth="FILL_PARENT"
|
||||||
|
layoutHeight="WRAP_CONTENT"
|
||||||
|
padding="4,4,4,4"
|
||||||
|
layoutWeight="0"
|
||||||
|
/>
|
||||||
<style id="TREE_ITEM"
|
<style id="TREE_ITEM"
|
||||||
padding="2,2,2,2"
|
padding="2,2,2,2"
|
||||||
margins="0,0,0,0"
|
margins="0,0,0,0"
|
||||||
|
|
|
@ -52,6 +52,9 @@ public import dlangui.core.i18n;
|
||||||
public import dlangui.core.files;
|
public import dlangui.core.files;
|
||||||
public import dlangui.core.stdaction;
|
public import dlangui.core.stdaction;
|
||||||
public import dlangui.graphics.images;
|
public import dlangui.graphics.images;
|
||||||
|
public import dlangui.graphics.colors;
|
||||||
|
public import dlangui.graphics.fonts;
|
||||||
|
public import dlangui.graphics.drawbuf;
|
||||||
public import dlangui.widgets.widget;
|
public import dlangui.widgets.widget;
|
||||||
public import dlangui.widgets.controls;
|
public import dlangui.widgets.controls;
|
||||||
public import dlangui.widgets.layouts;
|
public import dlangui.widgets.layouts;
|
||||||
|
@ -64,9 +67,8 @@ public import dlangui.widgets.grid;
|
||||||
public import dlangui.widgets.tree;
|
public import dlangui.widgets.tree;
|
||||||
public import dlangui.widgets.combobox;
|
public import dlangui.widgets.combobox;
|
||||||
public import dlangui.widgets.popup;
|
public import dlangui.widgets.popup;
|
||||||
public import dlangui.graphics.colors;
|
public import dlangui.widgets.appframe;
|
||||||
public import dlangui.graphics.fonts;
|
public import dlangui.widgets.statusline;
|
||||||
public import dlangui.graphics.drawbuf;
|
|
||||||
public import dlangui.platforms.common.platform;
|
public import dlangui.platforms.common.platform;
|
||||||
|
|
||||||
// some useful imports from Phobos
|
// some useful imports from Phobos
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
// Written in the D programming language.
|
||||||
|
|
||||||
|
/**
|
||||||
|
This module contains definition for main widget for usual application - with menu and status bar.
|
||||||
|
|
||||||
|
When you need MainMenu, StatusBar, Toolbars in your app, reuse this class.
|
||||||
|
|
||||||
|
Synopsis:
|
||||||
|
|
||||||
|
----
|
||||||
|
import dlangui.widgets.appframe;
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Copyright: Vadim Lopatin, 2015
|
||||||
|
License: Boost License 1.0
|
||||||
|
Authors: Vadim Lopatin, coolreader.org@gmail.com
|
||||||
|
*/
|
||||||
|
module dlangui.widgets.appframe;
|
||||||
|
|
||||||
|
import dlangui.widgets.widget;
|
||||||
|
import dlangui.widgets.menu;
|
||||||
|
import dlangui.widgets.layouts;
|
||||||
|
import dlangui.widgets.statusline;
|
||||||
|
|
||||||
|
class AppFrame : VerticalLayout, MenuItemClickHandler {
|
||||||
|
protected MainMenu _mainMenu;
|
||||||
|
protected StatusLine _statusLine;
|
||||||
|
protected Widget _body;
|
||||||
|
/// main menu widget
|
||||||
|
@property MainMenu mainMenu() { return _mainMenu; }
|
||||||
|
/// status line widget
|
||||||
|
@property StatusLine statusLine() { return _statusLine; }
|
||||||
|
/// body widget
|
||||||
|
@property Widget frameBody() { return _body; }
|
||||||
|
|
||||||
|
this() {
|
||||||
|
super("APP_FRAME");
|
||||||
|
layoutWidth = FILL_PARENT;
|
||||||
|
layoutHeight = FILL_PARENT;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void init() {
|
||||||
|
_mainMenu = createMainMenu();
|
||||||
|
_mainMenu.onMenuItemClickListener = &onMenuItemClick;
|
||||||
|
_statusLine = createStatusLine();
|
||||||
|
_body = createBody();
|
||||||
|
addChild(_mainMenu);
|
||||||
|
addChild(_body);
|
||||||
|
addChild(_statusLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// override to handle main menu commands
|
||||||
|
override bool onMenuItemClick(MenuItem item) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// create main menu
|
||||||
|
protected MainMenu createMainMenu() {
|
||||||
|
return new MainMenu(new MenuItem());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// create app status line widget
|
||||||
|
protected StatusLine createStatusLine() {
|
||||||
|
return new StatusLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// create app body widget
|
||||||
|
protected Widget createBody() {
|
||||||
|
Widget res = new Widget("APP_FRAME_BODY");
|
||||||
|
res.layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
// Written in the D programming language.
|
||||||
|
|
||||||
|
/**
|
||||||
|
This module contains definition for status line control.
|
||||||
|
|
||||||
|
Status line is usually shown in the bottom of window, and shows status of app.
|
||||||
|
|
||||||
|
Contains one or more text and/or icon items
|
||||||
|
|
||||||
|
Synopsis:
|
||||||
|
|
||||||
|
----
|
||||||
|
import dlangui.widgets.statusline;
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Copyright: Vadim Lopatin, 2015
|
||||||
|
License: Boost License 1.0
|
||||||
|
Authors: Vadim Lopatin, coolreader.org@gmail.com
|
||||||
|
*/
|
||||||
|
module dlangui.widgets.statusline;
|
||||||
|
|
||||||
|
import dlangui.widgets.layouts;
|
||||||
|
import dlangui.widgets.controls;
|
||||||
|
|
||||||
|
/// Status line control
|
||||||
|
class StatusLine : HorizontalLayout {
|
||||||
|
TextWidget _defStatus;
|
||||||
|
this() {
|
||||||
|
super("STATUS_LINE");
|
||||||
|
styleId = STYLE_STATUS_LINE;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
void init() {
|
||||||
|
_defStatus = new TextWidget("STATUS_LINE_TEXT");
|
||||||
|
_defStatus.layoutWidth(FILL_PARENT);
|
||||||
|
addChild(_defStatus);
|
||||||
|
}
|
||||||
|
/// set text to show in status line in specific panel
|
||||||
|
void setStatusText(string itemId, dstring value) {
|
||||||
|
_defStatus.text = value;
|
||||||
|
}
|
||||||
|
/// set text to show in status line
|
||||||
|
void setStatusText(dstring value) {
|
||||||
|
setStatusText(null, value);
|
||||||
|
}
|
||||||
|
}
|
|
@ -116,6 +116,8 @@ immutable string STYLE_COMBO_BOX = "COMBO_BOX";
|
||||||
immutable string STYLE_COMBO_BOX_BUTTON = "COMBO_BOX_BUTTON";
|
immutable string STYLE_COMBO_BOX_BUTTON = "COMBO_BOX_BUTTON";
|
||||||
/// standard style id for combo box body (current item)
|
/// standard style id for combo box body (current item)
|
||||||
immutable string STYLE_COMBO_BOX_BODY = "COMBO_BOX_BODY";
|
immutable string STYLE_COMBO_BOX_BODY = "COMBO_BOX_BODY";
|
||||||
|
/// standard style id for app frame status line
|
||||||
|
immutable string STYLE_STATUS_LINE = "STATUS_LINE";
|
||||||
|
|
||||||
// Layout size constants
|
// Layout size constants
|
||||||
/// layout option, to occupy all available place
|
/// layout option, to occupy all available place
|
||||||
|
|
Loading…
Reference in New Issue