Refactored icon submenu creation

This commit is contained in:
SomeoneOnEarth
2023-11-17 01:41:57 +01:00
parent d93aa78686
commit 7bd3486724
2 changed files with 16 additions and 12 deletions

View File

@ -31,6 +31,8 @@ class HomeAssistantMenuItemFactory {
private var mTapIcon; private var mTapIcon;
private var mMenuIcon;
private static var instance; private static var instance;
private function initialize() { private function initialize() {
@ -48,6 +50,14 @@ class HomeAssistantMenuItemFactory {
:rezId=>$.Rez.Drawables.TapIcon :rezId=>$.Rez.Drawables.TapIcon
}); });
mMenuIcon = new WatchUi.Bitmap({
:rezId=>Rez.Drawables.MenuIcon,
:locX=>WatchUi.LAYOUT_HALIGN_CENTER,
:locY=>WatchUi.LAYOUT_VALIGN_CENTER
});
} }
static function create() { static function create() {
@ -97,7 +107,7 @@ class HomeAssistantMenuItemFactory {
function group(definition as Lang.Dictionary) as WatchUi.MenuItem{ function group(definition as Lang.Dictionary) as WatchUi.MenuItem{
if (bLeanDesign) { if (bLeanDesign) {
return new HomeAssistantViewIconMenuItem(definition); return new HomeAssistantViewIconMenuItem(definition, mMenuIcon, mRightLabelAlignement);
} else { } else {
return new HomeAssistantViewMenuItem(definition); return new HomeAssistantViewMenuItem(definition);
} }

View File

@ -24,24 +24,18 @@ using Toybox.WatchUi;
class HomeAssistantViewIconMenuItem extends WatchUi.IconMenuItem { class HomeAssistantViewIconMenuItem extends WatchUi.IconMenuItem {
hidden var mMenu as HomeAssistantView; hidden var mMenu as HomeAssistantView;
function initialize(definition as Lang.Dictionary) { function initialize(definition as Lang.Dictionary, icon as WatchUi.Drawable, options as {
:alignment as WatchUi.MenuItem.Alignment
} or Null) {
var label = definition.get("name") as Lang.String; var label = definition.get("name") as Lang.String;
var identifier = definition.get("entity") as Lang.String; var identifier = definition.get("entity") as Lang.String;
var icon = new WatchUi.Bitmap({
:rezId=>Rez.Drawables.MenuIcon,
:locX=>WatchUi.LAYOUT_HALIGN_CENTER,
:locY=>WatchUi.LAYOUT_VALIGN_CENTER
});
var alignement = {:alignment => WatchUi.MenuItem.MENU_ITEM_LABEL_ALIGN_RIGHT};
WatchUi.IconMenuItem.initialize( WatchUi.IconMenuItem.initialize(
label, label,
null, null,
identifier, identifier,
icon, icon,
alignement options
); );
mMenu = new HomeAssistantView(definition, null); mMenu = new HomeAssistantView(definition, null);