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.grid;
|
||||
import dlangui.dialogs.filedlg;
|
||||
import dlangui.widgets.menu;
|
||||
mixin(registerWidgets!(FileNameEditLine, DirEditLine, //dlangui.dialogs.filedlg
|
||||
ComboBox, ComboEdit, //dlangui.widgets.combobox
|
||||
Widget, TextWidget, MultilineTextWidget, Button, ImageWidget, ImageButton, ImageCheckButton, ImageTextButton,
|
||||
|
@ -286,6 +287,7 @@ void registerStandardWidgets() {
|
|||
StringGridWidget, //dlangui.widgets.grid
|
||||
VerticalLayout, HorizontalLayout, TableLayout, FrameLayout, // dlangui.widgets.layouts
|
||||
ListWidget, StringListWidget,//dlangui.widgets.lists
|
||||
MainMenu, //dlangui.widgets.menu
|
||||
)("void registerWidgets"));
|
||||
registerWidgets();
|
||||
}
|
||||
|
|
|
@ -427,18 +427,28 @@ class MenuWidgetBase : ListWidget {
|
|||
|
||||
this(MenuWidgetBase parentMenu, MenuItem item, Orientation orientation) {
|
||||
_parentMenu = parentMenu;
|
||||
_item = item;
|
||||
this.orientation = orientation;
|
||||
id = "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();
|
||||
for (int i=0; i < _item.subitemCount; i++) {
|
||||
MenuItem subitem = _item.subitem(i);
|
||||
MenuItemWidget widget = new MenuItemWidget(subitem, orientation == Orientation.Horizontal);
|
||||
if (orientation == Orientation.Horizontal)
|
||||
widget.styleId = STYLE_MAIN_MENU_ITEM;
|
||||
widget.parent = this;
|
||||
adapter.add(widget);
|
||||
if (item) {
|
||||
for (int i=0; i < _item.subitemCount; i++) {
|
||||
MenuItem subitem = _item.subitem(i);
|
||||
MenuItemWidget widget = new MenuItemWidget(subitem, orientation == Orientation.Horizontal);
|
||||
if (orientation == Orientation.Horizontal)
|
||||
widget.styleId = STYLE_MAIN_MENU_ITEM;
|
||||
widget.parent = this;
|
||||
adapter.add(widget);
|
||||
}
|
||||
}
|
||||
ownAdapter = adapter;
|
||||
}
|
||||
|
@ -761,6 +771,8 @@ class MenuWidgetBase : ListWidget {
|
|||
|
||||
/// map key to action
|
||||
override Action findKeyAction(uint keyCode, uint flags) {
|
||||
if (!_item)
|
||||
return null;
|
||||
Action action = _item.findKeyAction(keyCode, flags);
|
||||
return action;
|
||||
}
|
||||
|
@ -770,6 +782,14 @@ class MenuWidgetBase : ListWidget {
|
|||
/// main menu (horizontal)
|
||||
class MainMenu : MenuWidgetBase {
|
||||
|
||||
this() {
|
||||
super(null, null, Orientation.Horizontal);
|
||||
id = "MAIN_MENU";
|
||||
styleId = STYLE_MAIN_MENU;
|
||||
_clickOnButtonDown = true;
|
||||
selectOnHover = false;
|
||||
}
|
||||
|
||||
this(MenuItem item) {
|
||||
super(null, item, Orientation.Horizontal);
|
||||
id = "MAIN_MENU";
|
||||
|
|
Loading…
Reference in New Issue