mirror of https://github.com/buggins/dlangui.git
register MainMenu to be accessible from DML
This commit is contained in:
parent
11593f91db
commit
615d0484f3
|
@ -278,6 +278,7 @@ void registerStandardWidgets() {
|
||||||
import dlangui.widgets.editors;
|
import dlangui.widgets.editors;
|
||||||
import dlangui.widgets.grid;
|
import dlangui.widgets.grid;
|
||||||
import dlangui.dialogs.filedlg;
|
import dlangui.dialogs.filedlg;
|
||||||
|
import dlangui.widgets.menu;
|
||||||
mixin(registerWidgets!(FileNameEditLine, DirEditLine, //dlangui.dialogs.filedlg
|
mixin(registerWidgets!(FileNameEditLine, DirEditLine, //dlangui.dialogs.filedlg
|
||||||
ComboBox, ComboEdit, //dlangui.widgets.combobox
|
ComboBox, ComboEdit, //dlangui.widgets.combobox
|
||||||
Widget, TextWidget, MultilineTextWidget, Button, ImageWidget, ImageButton, ImageCheckButton, ImageTextButton,
|
Widget, TextWidget, MultilineTextWidget, Button, ImageWidget, ImageButton, ImageCheckButton, ImageTextButton,
|
||||||
|
@ -286,6 +287,7 @@ void registerStandardWidgets() {
|
||||||
StringGridWidget, //dlangui.widgets.grid
|
StringGridWidget, //dlangui.widgets.grid
|
||||||
VerticalLayout, HorizontalLayout, TableLayout, FrameLayout, // dlangui.widgets.layouts
|
VerticalLayout, HorizontalLayout, TableLayout, FrameLayout, // dlangui.widgets.layouts
|
||||||
ListWidget, StringListWidget,//dlangui.widgets.lists
|
ListWidget, StringListWidget,//dlangui.widgets.lists
|
||||||
|
MainMenu, //dlangui.widgets.menu
|
||||||
)("void registerWidgets"));
|
)("void registerWidgets"));
|
||||||
registerWidgets();
|
registerWidgets();
|
||||||
}
|
}
|
||||||
|
|
|
@ -427,18 +427,28 @@ class MenuWidgetBase : ListWidget {
|
||||||
|
|
||||||
this(MenuWidgetBase parentMenu, MenuItem item, Orientation orientation) {
|
this(MenuWidgetBase parentMenu, MenuItem item, Orientation orientation) {
|
||||||
_parentMenu = parentMenu;
|
_parentMenu = parentMenu;
|
||||||
_item = item;
|
|
||||||
this.orientation = orientation;
|
this.orientation = orientation;
|
||||||
id = "popup_menu";
|
id = "popup_menu";
|
||||||
styleId = STYLE_POPUP_MENU;
|
styleId = STYLE_POPUP_MENU;
|
||||||
|
menuItems = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
@property void menuItems(MenuItem item) {
|
||||||
|
if (_item) {
|
||||||
|
destroy(_item);
|
||||||
|
_item = null;
|
||||||
|
}
|
||||||
|
_item = item;
|
||||||
WidgetListAdapter adapter = new WidgetListAdapter();
|
WidgetListAdapter adapter = new WidgetListAdapter();
|
||||||
for (int i=0; i < _item.subitemCount; i++) {
|
if (item) {
|
||||||
MenuItem subitem = _item.subitem(i);
|
for (int i=0; i < _item.subitemCount; i++) {
|
||||||
MenuItemWidget widget = new MenuItemWidget(subitem, orientation == Orientation.Horizontal);
|
MenuItem subitem = _item.subitem(i);
|
||||||
if (orientation == Orientation.Horizontal)
|
MenuItemWidget widget = new MenuItemWidget(subitem, orientation == Orientation.Horizontal);
|
||||||
widget.styleId = STYLE_MAIN_MENU_ITEM;
|
if (orientation == Orientation.Horizontal)
|
||||||
widget.parent = this;
|
widget.styleId = STYLE_MAIN_MENU_ITEM;
|
||||||
adapter.add(widget);
|
widget.parent = this;
|
||||||
|
adapter.add(widget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ownAdapter = adapter;
|
ownAdapter = adapter;
|
||||||
}
|
}
|
||||||
|
@ -761,6 +771,8 @@ class MenuWidgetBase : ListWidget {
|
||||||
|
|
||||||
/// map key to action
|
/// map key to action
|
||||||
override Action findKeyAction(uint keyCode, uint flags) {
|
override Action findKeyAction(uint keyCode, uint flags) {
|
||||||
|
if (!_item)
|
||||||
|
return null;
|
||||||
Action action = _item.findKeyAction(keyCode, flags);
|
Action action = _item.findKeyAction(keyCode, flags);
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
@ -770,6 +782,14 @@ class MenuWidgetBase : ListWidget {
|
||||||
/// main menu (horizontal)
|
/// main menu (horizontal)
|
||||||
class MainMenu : MenuWidgetBase {
|
class MainMenu : MenuWidgetBase {
|
||||||
|
|
||||||
|
this() {
|
||||||
|
super(null, null, Orientation.Horizontal);
|
||||||
|
id = "MAIN_MENU";
|
||||||
|
styleId = STYLE_MAIN_MENU;
|
||||||
|
_clickOnButtonDown = true;
|
||||||
|
selectOnHover = false;
|
||||||
|
}
|
||||||
|
|
||||||
this(MenuItem item) {
|
this(MenuItem item) {
|
||||||
super(null, item, Orientation.Horizontal);
|
super(null, item, Orientation.Horizontal);
|
||||||
id = "MAIN_MENU";
|
id = "MAIN_MENU";
|
||||||
|
|
Loading…
Reference in New Issue