From 11cd72b3cba3f29810371ee1263e4ff4832cf9fc Mon Sep 17 00:00:00 2001 From: Arthur Lutz Date: Mon, 12 Jul 2021 12:00:15 +0200 Subject: [PATCH] [LauncherGodot] add switch menu item based on "Switch to LauncherGo" --- .../10_Settings/LauncherGodot/__init__.py | 59 +++++++++++++++++++ Menu/GameShell/10_Settings/list_page.py | 31 +++++----- 2 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 Menu/GameShell/10_Settings/LauncherGodot/__init__.py diff --git a/Menu/GameShell/10_Settings/LauncherGodot/__init__.py b/Menu/GameShell/10_Settings/LauncherGodot/__init__.py new file mode 100644 index 00000000..ded81eda --- /dev/null +++ b/Menu/GameShell/10_Settings/LauncherGodot/__init__.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +import os +import pygame +#import math +#mport subprocess +#from beeprint import pp +from libs.roundrects import aa_round_rect + +## local UI import +from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB +from UI.util_funcs import ArmSystem +from UI.lang_manager import MyLangManager +from UI.confirm_page import ConfirmPage + +class SwitchToLauncherGoConfirmPage(ConfirmPage): + + def KeyDown(self,event): + + if IsKeyMenuOrB(event.key): + self.ReturnToUpLevelPage() + self._Screen.Draw() + self._Screen.SwapAndShow() + + if IsKeyStartOrA(event.key): + # TODO - we could git clone if godot-launcher is not installed + # TODO - check connected to internet + #self._Screen._MsgBox.SetText("Installing LauncherGodot") + #ArmSystem("git clone https://github.com/samdze/godot-launcher.git") + self._Screen._MsgBox.SetText("Rebooting to LauncherGodot") + self._Screen._MsgBox.Draw() + self._Screen.SwapAndShow() + pygame.time.delay(300) + ArmSystem("sed -i s/launcher/godot-launcher/g /home/cpi/.bashrc" ) + ArmSystem("sudo reboot") + + +class APIOBJ(object): + + _Page = None + + def __init__(self): + pass + def Init(self,main_screen): + self._Page = SwitchToLauncherGoConfirmPage() + self._Page._Screen = main_screen + self._Page._Name ="Switch To LauncherGodot" + self._Page.Init() + + def API(self,main_screen): + if main_screen !=None: + main_screen.PushPage(self._Page) + main_screen.Draw() + main_screen.SwapAndShow() + +OBJ = APIOBJ() +def Init(main_screen): + OBJ.Init(main_screen) +def API(main_screen): + OBJ.API(main_screen) diff --git a/Menu/GameShell/10_Settings/list_page.py b/Menu/GameShell/10_Settings/list_page.py index 12f7c6db..1f8fbed5 100644 --- a/Menu/GameShell/10_Settings/list_page.py +++ b/Menu/GameShell/10_Settings/list_page.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- import pygame import sys @@ -24,19 +24,19 @@ class ListPage(Page): _Icons = {} _Selector=None - + _FootMsg = ["Nav","","","Back","Enter"] _MyList = [] _ListFontObj = MyLangManager.TrFont("varela15") _Scroller = None - + def __init__(self): Page.__init__(self) self._Icons = {} self._CanvasHWND = None self._MyList = [] - + def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width @@ -68,13 +68,14 @@ def Init(self): ["","ButtonsLayout","Buttons Layout"], ["","Skins","Theme Manager"], ["","LauncherGo","Switch to LauncherGo"], + ["","LauncherGodot","Switch to LauncherGodot"], ["","Lima","GPU Driver Switch"], ["","GateWay","Network gateway switch"]] start_x = 0 start_y = 0 - + sys.path.append(myvars.basepath)# add self as import path for i,v in enumerate(alist): li = ListItem() @@ -88,7 +89,7 @@ def Init(self): li.Init(v[2]) else: li.Init(v[1]) - + #if v[1] == "Wifi" or v[1] == "Sound" or v[1] == "Brightness" or v[1] == "Storage" or v[1] == "Update" or v[1] == "About" or v[1] == "PowerOFF" or v[1] == "HelloWorld": if FileExists(myvars.basepath+"/"+ v[1]): li._LinkObj = __import__(v[1]) @@ -96,7 +97,7 @@ def Init(self): if init_cb != None: if callable(init_cb): li._LinkObj.Init(self._Screen) - + self._MyList.append(li) self._Scroller = ListScroller() @@ -113,13 +114,13 @@ def Click(self): if callable(api_cb): cur_li._LinkObj.API(self._Screen) - + def KeyDown(self,event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() - + if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() @@ -128,22 +129,22 @@ def KeyDown(self,event): self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() - + if IsKeyStartOrA(event.key): self.Click() - + def Draw(self): self.ClearCanvas() if len(self._MyList) * ListItem._Height > self._Height: self._Ps._Width = self._Width - 11 - + self._Ps.Draw() - + for i in self._MyList: i.Draw() - + self._Scroller.UpdateSize( len(self._MyList)*ListItem._Height, self._PsIndex*ListItem._Height) self._Scroller.Draw() else: @@ -152,4 +153,4 @@ def Draw(self): for i in self._MyList: i.Draw() - +