From c77b2d2786c7830265702e0de1e469b6f1e2dc9a Mon Sep 17 00:00:00 2001
From: iggy <iggy@muc.ccc.de>
Date: Thu, 8 Jun 2023 14:36:19 +0200
Subject: [PATCH] py: more structure, put main menu in flower app

---
 python_payload/apps/flow3r/__init__.py  | 13 +++++++
 python_payload/apps/flow3r/menu_main.py | 44 ++++++++++++++++++++++
 python_payload/demo_menu.py             | 50 -------------------------
 python_payload/main.py                  | 14 +++++--
 python_payload/st3m/ui.py               |  3 +-
 5 files changed, 70 insertions(+), 54 deletions(-)
 create mode 100644 python_payload/apps/flow3r/menu_main.py
 delete mode 100644 python_payload/demo_menu.py

diff --git a/python_payload/apps/flow3r/__init__.py b/python_payload/apps/flow3r/__init__.py
index e69de29bb2..b5febcae8f 100644
--- a/python_payload/apps/flow3r/__init__.py
+++ b/python_payload/apps/flow3r/__init__.py
@@ -0,0 +1,13 @@
+from st3m.application import Application,menu
+from . import menu_main
+class myApp(Application):
+    def on_init(self):
+        self.appmenu = menu_main.get_menu()
+
+    def on_foreground(self):
+        menu.set_active_menu(self.appmenu)
+
+    def main_foreground(self):
+        menu.render()
+
+app=myApp("flow3r")
diff --git a/python_payload/apps/flow3r/menu_main.py b/python_payload/apps/flow3r/menu_main.py
new file mode 100644
index 0000000000..009c9ba7a3
--- /dev/null
+++ b/python_payload/apps/flow3r/menu_main.py
@@ -0,0 +1,44 @@
+from st3m import menu,event,control
+
+from apps import demo_worms, cap_touch_demo
+from apps import demo_sparabo, melodic_demo, harmonic_demo
+from apps.flow3r import menu_settings,menu_tinysynth
+
+
+import time
+
+def get_menu():
+    menu_main = menu.Menu("flow3r",has_back=False)
+    menu_badge = menu.Menu("badge")
+    menu_apps = menu.Menu("apps")
+    menu_music = menu.Menu("music")
+
+
+    #for app_module in [demo_sparabo,melodic_demo,harmonic_demo]:
+    #    menu_music.add(menu.MenuItemApp(app_module.app))
+
+    for app_module in [demo_worms,cap_touch_demo,]:
+        menu_apps.add(menu.MenuItemApp(app_module.app))
+
+    #testmenu = menu.Menu("test")
+
+    #item_add = menu.MenuItem("+")
+    #item_add.action = lambda x: testmenu.add(menu.MenuItem("new {}".format(len(testmenu.items))))
+
+    #item_sub = menu.MenuItem("-")
+    #item_sub.action = lambda x: testmenu.pop() if len(testmenu.items) > 4 else None
+
+    #item_foo = menu.MenuItem("foo")
+    #testmenu.add(item_foo)
+    #testmenu.add(item_sub)
+    #testmenu.add(item_add)
+    #menu_badge.add(menu.MenuItemSubmenu(testmenu))
+
+    menu_main.add(menu.MenuItemSubmenu(menu_badge))
+    menu_main.add(menu.MenuItemSubmenu(menu_apps))
+    #menu_main.add(menu.MenuItemSubmenu(menu_music))
+    menu_main.add(menu.MenuItemSubmenu(menu_settings.get_menu()))
+    menu_main.add(menu.MenuItemSubmenu(menu_tinysynth.get_menu()))
+
+    return menu_main
+
diff --git a/python_payload/demo_menu.py b/python_payload/demo_menu.py
deleted file mode 100644
index 6e92a9f126..0000000000
--- a/python_payload/demo_menu.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from st3m import menu,event,control,application
-
-from apps import demo_worms, cap_touch_demo
-from apps import demo_sparabo, melodic_demo, harmonic_demo
-from apps.flow3r import menu_settings,menu_tinysynth
-
-
-import time
-
-
-menu_main = menu.Menu("flow3r",has_back=False)
-menu_badge = menu.Menu("badge")
-menu_apps = menu.Menu("apps")
-menu_music = menu.Menu("music")
-
-
-#for app_module in [demo_sparabo,melodic_demo,harmonic_demo]:
-#    menu_music.add(menu.MenuItemApp(app_module.app))
-
-for app_module in [demo_worms,cap_touch_demo,]:
-    menu_apps.add(menu.MenuItemApp(app_module.app))
-
-#testmenu = menu.Menu("test")
-
-#item_add = menu.MenuItem("+")
-#item_add.action = lambda x: testmenu.add(menu.MenuItem("new {}".format(len(testmenu.items))))
-
-#item_sub = menu.MenuItem("-")
-#item_sub.action = lambda x: testmenu.pop() if len(testmenu.items) > 4 else None
-
-#item_foo = menu.MenuItem("foo")
-#testmenu.add(item_foo)
-#testmenu.add(item_sub)
-#testmenu.add(item_add)
-
-
-#menu_badge.add(menu.MenuItemSubmenu(testmenu))
-
-menu_main.add(menu.MenuItemSubmenu(menu_badge))
-menu_main.add(menu.MenuItemSubmenu(menu_apps))
-#menu_main.add(menu.MenuItemSubmenu(menu_music))
-menu_main.add(menu.MenuItemSubmenu(menu_settings.get_menu()))
-
-
-menu_main.add(menu.MenuItemSubmenu(menu_tinysynth.get_menu()))
-
-menu.set_active_menu(menu_main)
-menu.render()
-
-event.the_engine.eventloop()    
diff --git a/python_payload/main.py b/python_payload/main.py
index a89d95269a..9b192358a5 100644
--- a/python_payload/main.py
+++ b/python_payload/main.py
@@ -1,6 +1,14 @@
 from st3m.system import hardware,audio
+from apps import flow3r
 
-import demo_menu
-
+#TODO persistent settings
 hardware.captouch_autocalib()
-audio.set_volume_dB(0)
\ No newline at end of file
+audio.set_volume_dB(0)
+
+#Start default app
+flow3r.app.run()
+
+#Start the eventloop
+event.the_engine.eventloop()    
+
+#We will never get here...
\ No newline at end of file
diff --git a/python_payload/st3m/ui.py b/python_payload/st3m/ui.py
index de027f4e3e..dae5093e25 100644
--- a/python_payload/st3m/ui.py
+++ b/python_payload/st3m/ui.py
@@ -136,7 +136,8 @@ class IconLabel(Icon):
 class IconFlower(Icon):
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
-        self.petal_count= random.randint(3,5)
+        #self.petal_count= random.randint(3,5)
+        self.petal_count = 0
         self.petal_color = (random.random(),random.random(),random.random())
         self.phi_offset = random.random()
         self.size_offset = random.randint(0,20)
-- 
GitLab