From 7bd3486724ad49b16e358117ac9725b69a454ba7 Mon Sep 17 00:00:00 2001 From: SomeoneOnEarth Date: Fri, 17 Nov 2023 01:41:57 +0100 Subject: [PATCH] Refactored icon submenu creation --- source/HomeAssistantMenuItemFactory.mc | 12 +++++++++++- source/HomeAssistantViewIconMenuItem.mc | 16 +++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/source/HomeAssistantMenuItemFactory.mc b/source/HomeAssistantMenuItemFactory.mc index 5703829..bc3ba19 100644 --- a/source/HomeAssistantMenuItemFactory.mc +++ b/source/HomeAssistantMenuItemFactory.mc @@ -31,6 +31,8 @@ class HomeAssistantMenuItemFactory { private var mTapIcon; + private var mMenuIcon; + private static var instance; private function initialize() { @@ -47,6 +49,14 @@ class HomeAssistantMenuItemFactory { mTapIcon = new WatchUi.Bitmap({ :rezId=>$.Rez.Drawables.TapIcon }); + + mMenuIcon = new WatchUi.Bitmap({ + :rezId=>Rez.Drawables.MenuIcon, + :locX=>WatchUi.LAYOUT_HALIGN_CENTER, + :locY=>WatchUi.LAYOUT_VALIGN_CENTER + }); + + } @@ -97,7 +107,7 @@ class HomeAssistantMenuItemFactory { function group(definition as Lang.Dictionary) as WatchUi.MenuItem{ if (bLeanDesign) { - return new HomeAssistantViewIconMenuItem(definition); + return new HomeAssistantViewIconMenuItem(definition, mMenuIcon, mRightLabelAlignement); } else { return new HomeAssistantViewMenuItem(definition); } diff --git a/source/HomeAssistantViewIconMenuItem.mc b/source/HomeAssistantViewIconMenuItem.mc index 094055d..a46e4c8 100644 --- a/source/HomeAssistantViewIconMenuItem.mc +++ b/source/HomeAssistantViewIconMenuItem.mc @@ -24,24 +24,18 @@ using Toybox.WatchUi; class HomeAssistantViewIconMenuItem extends WatchUi.IconMenuItem { 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 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( label, null, identifier, icon, - alignement + options ); mMenu = new HomeAssistantView(definition, null);