@@ -290,8 +290,9 @@ def brightness_slider_released(e):
290290editor .commit ()
291291slider .add_event_cb (brightness_slider_changed ,lv .EVENT .VALUE_CHANGED ,None )
292292slider .add_event_cb (brightness_slider_released ,lv .EVENT .RELEASED ,None )
293+ drawer_button_pct = 31
293294wifi_btn = lv .button (drawer )
294- wifi_btn .set_size (lv .pct (40 ),lv .pct (20 ))
295+ wifi_btn .set_size (lv .pct (drawer_button_pct ),lv .pct (20 ))
295296wifi_btn .align (lv .ALIGN .LEFT_MID ,0 ,0 )
296297wifi_label = lv .label (wifi_btn )
297298wifi_label .set_text (lv .SYMBOL .WIFI + " WiFi" )
@@ -300,9 +301,8 @@ def wifi_event(e):
300301close_drawer ()
301302mpos .apps .start_app_by_name ("com.micropythonos.wifi" )
302303wifi_btn .add_event_cb (wifi_event ,lv .EVENT .CLICKED ,None )
303-
304304settings_btn = lv .button (drawer )
305- settings_btn .set_size (lv .pct (40 ),lv .pct (20 ))
305+ settings_btn .set_size (lv .pct (drawer_button_pct ),lv .pct (20 ))
306306settings_btn .align (lv .ALIGN .RIGHT_MID ,0 ,0 )
307307settings_label = lv .label (settings_btn )
308308settings_label .set_text (lv .SYMBOL .SETTINGS + " Settings" )
@@ -312,21 +312,39 @@ def settings_event(e):
312312mpos .apps .start_app_by_name ("com.micropythonos.settings" )
313313settings_btn .add_event_cb (settings_event ,lv .EVENT .CLICKED ,None )
314314launcher_btn = lv .button (drawer )
315- launcher_btn .set_size (lv .pct (40 ),lv .pct (20 ))
316- launcher_btn .align (lv .ALIGN .BOTTOM_LEFT ,0 ,0 )
315+ launcher_btn .set_size (lv .pct (drawer_button_pct ),lv .pct (20 ))
316+ launcher_btn .align (lv .ALIGN .CENTER ,0 ,0 )
317317launcher_label = lv .label (launcher_btn )
318- launcher_label .set_text (lv .SYMBOL .HOME + "Launcher " )
318+ launcher_label .set_text (lv .SYMBOL .HOME + "Home " )
319319launcher_label .center ()
320320def launcher_event (e ):
321- print ("Launcher button pressed!" )
321+ print ("Home button pressed!" )
322322close_drawer (True )
323323show_launcher ()
324324launcher_btn .add_event_cb (launcher_event ,lv .EVENT .CLICKED ,None )
325+ sleep_btn = lv .button (drawer )
326+ sleep_btn .set_size (lv .pct (drawer_button_pct ),lv .pct (20 ))
327+ sleep_btn .align (lv .ALIGN .BOTTOM_LEFT ,0 ,0 )
328+ sleep_label = lv .label (sleep_btn )
329+ sleep_label .set_text ("Zz Sleep" )
330+ sleep_label .center ()
331+ def sleep_event (e ):
332+ print ("Sleep button pressed!" )
333+ import sys
334+ if sys .platform == "esp32" :
335+ #On ESP32, there's no power off but there's a hundred-year deepsleep.
336+ import machine
337+ machine .deepsleep (10000 )# TODO: make it wakeup when it receives an interrupt from the accelerometer or a button press
338+ else :# assume unix:
339+ # maybe do a system suspend here? or at least show a popup toast "not supported"
340+ close_drawer (True )
341+ show_launcher ()
342+ sleep_btn .add_event_cb (sleep_event ,lv .EVENT .CLICKED ,None )
325343restart_btn = lv .button (drawer )
326- restart_btn .set_size (lv .pct (40 ),lv .pct (20 ))
327- restart_btn .align (lv .ALIGN .BOTTOM_RIGHT ,0 ,0 )
344+ restart_btn .set_size (lv .pct (drawer_button_pct ),lv .pct (20 ))
345+ restart_btn .align (lv .ALIGN .BOTTOM_MID ,0 ,0 )
328346restart_label = lv .label (restart_btn )
329- restart_label .set_text (lv .SYMBOL .POWER + " Reset" )
347+ restart_label .set_text (lv .SYMBOL .REFRESH + " Reset" )
330348restart_label .center ()
331349def reset_cb (e ):
332350import machine
@@ -336,27 +354,24 @@ def reset_cb(e):
336354machine .soft_reset ()
337355else :
338356print ("Warning: machine has no reset or soft_reset method available" )
339-
340- try :
341- restart_btn .add_event_cb (reset_cb ,lv .EVENT .CLICKED ,None )
342- except Exception as e :
343- print ("Warning: could not import machine, not adding reset callback" )
344-
345- '''
346- On ESP32, there's no power off but there's a hundred-year deepsleep.
357+ restart_btn .add_event_cb (reset_cb ,lv .EVENT .CLICKED ,None )
347358poweroff_btn = lv .button (drawer )
348- poweroff_btn.set_size(lv.pct(40 ),lv.SIZE_CONTENT )
359+ poweroff_btn .set_size (lv .pct (drawer_button_pct ),lv .pct ( 20 ) )
349360poweroff_btn .align (lv .ALIGN .BOTTOM_RIGHT ,0 ,0 )
350361poweroff_label = lv .label (poweroff_btn )
351- poweroff_label.set_text(lv.SYMBOL.POWER+"Power Off")
362+ poweroff_label .set_text (lv .SYMBOL .POWER + " Off" )
352363poweroff_label .center ()
353364def poweroff_cb (e ):
354- lv.deinit() # Deinitialize LVGL (if supported )
365+ print ( "Power off action..." )
355366import sys
356- sys.exit(0)
367+ if sys .platform == "esp32" :
368+ #On ESP32, there's no power off but there's a hundred-year deepsleep.
369+ import machine
370+ machine .deepsleep (10000 )
371+ else :# assume unix:
372+ lv .deinit ()# Deinitialize LVGL (if supported)
373+ sys .exit (0 )
357374poweroff_btn .add_event_cb (poweroff_cb ,lv .EVENT .CLICKED ,None )
358- '''
359-
360375
361376
362377EVENT_MAP = {