diff --git a/firmware/PubRemote.sll b/firmware/PubRemote.sll index 2e035e93..0c184917 100644 --- a/firmware/PubRemote.sll +++ b/firmware/PubRemote.sll @@ -25,7 +25,7 @@ "uiExportFolderPath": "...\\src\\ui", "projectExportFolderPath": ".../", "custom_variable_prefix": "uic", - "backup_cnt": 1439, + "backup_cnt": 1459, "autosave_cnt": 0, "group_color_cnt": 0, "lvgl_version": "8.3.11", @@ -43,5 +43,5 @@ "naming": "Name", "naming_force_lowercase": false, "naming_add_subcomponent": false, - "nidcnt": 1000429 + "nidcnt": 1000501 } \ No newline at end of file diff --git a/firmware/PubRemote.spj b/firmware/PubRemote.spj index 2f0cca66..094e6086 100644 --- a/firmware/PubRemote.spj +++ b/firmware/PubRemote.spj @@ -1703,8 +1703,7 @@ "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true + "saved_objtypeKey": "CONTAINER" }, { "guid": "GUID41516794-986855S5483302", @@ -1991,8 +1990,7 @@ "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true + "saved_objtypeKey": "CONTAINER" }, { "guid": "GUID80567878-979931S6903302", @@ -3755,7 +3753,7 @@ { "nid": 1000287, "strtype": "_event/name", - "strval": "StatLongPress", + "strval": "PrimaryStatLongPress", "InheritedType": 10 }, { @@ -3796,7 +3794,7 @@ { "nid": 1000298, "strtype": "CALL FUNCTION/Function_name", - "strval": "stat_long_press", + "strval": "primary_stat_long_press", "InheritedType": 10 }, { @@ -3820,7 +3818,7 @@ { "nid": 1000291, "strtype": "_event/name", - "strval": "StatSwipeLeft", + "strval": "PrimaryStatSwipeLeft", "InheritedType": 10 }, { @@ -3861,7 +3859,7 @@ { "nid": 1000304, "strtype": "CALL FUNCTION/Function_name", - "strval": "stat_swipe_left", + "strval": "primary_stat_swipe_left", "InheritedType": 10 }, { @@ -3885,7 +3883,7 @@ { "nid": 1000313, "strtype": "_event/name", - "strval": "StatSwipeRight", + "strval": "PrimaryStatSwipeRight", "InheritedType": 10 }, { @@ -3926,7 +3924,7 @@ { "nid": 1000320, "strtype": "CALL FUNCTION/Function_name", - "strval": "stat_swipe_right", + "strval": "primary_stat_swipe_right", "InheritedType": 10 }, { @@ -3942,5476 +3940,683 @@ "InheritedType": 4 } ], - "saved_objtypeKey": "LABEL", - "tree_closed": true + "saved_objtypeKey": "LABEL" }, { "guid": "GUID78337151-43345S38631437", "deepid": -1217324510, "children": [ { - "guid": "GUID59356634-31440S9084434", - "deepid": 644785683, - "children": [ + "guid": "GUID48670411-31420S9074434", + "deepid": 2056748404, + "dont_export": false, + "locked": false, + "properties": [ { - "guid": "GUID88364352-31421S9074434", - "deepid": -1454122732, - "children": [ + "nid": -223392383, + "strtype": "OBJECT/Name", + "strval": "SecondaryStat", + "InheritedType": 10 + }, + { + "nid": 2074588060, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 0, + "nid": -1257862813, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1473062857, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -151654662, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1207857941, + "flags": 50, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 110234533, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 244841469, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 1779523421, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -1720808626, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -795969695, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 236264953, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 1471472889, + "strtype": "LABEL/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1606295033, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1712214064, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -860947686, + "strtype": "LABEL/Text", + "strval": "Disconnected", + "InheritedType": 10 + }, + { + "nid": 1804988933, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ { - "guid": "GUID48670411-31420S9074434", - "deepid": 2056748404, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -223392383, - "strtype": "OBJECT/Name", - "strval": "ConnectionStateLabel", - "InheritedType": 10 - }, - { - "nid": 2074588060, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1257862813, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1473062857, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -151654662, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 19, - 38 - ], - "InheritedType": 7 - }, - { - "nid": 1207857941, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ { - "nid": 110234533, - "strtype": "OBJECT/Align", + "nid": 10430, + "strtype": "_style/Text_Align", "strval": "CENTER", "InheritedType": 3 - }, - { - "nid": 244841469, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 1779523421, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -1720808626, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -795969695, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 236264953, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1471472889, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1606295033, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1712214064, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -860947686, - "strtype": "LABEL/Text", - "strval": "Disconnected", - "InheritedType": 10 - }, - { - "nid": 1804988933, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -749956109, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 } ], - "saved_objtypeKey": "LABEL", - "tree_closed": true + "InheritedType": 1 } ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -908412867, - "strtype": "OBJECT/Name", - "strval": "ConnectionStateBody", - "InheritedType": 10 - }, - { - "nid": -1252418221, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": -626229077, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1748124905, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, + "nid": -749956109, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": 10, + "strtype": "OBJECT/Name", + "strval": "SecondaryStatPaddingContainer", + "InheritedType": 10 + }, + { + "nid": 20, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 0, + "nid": 30, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 40, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 50, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 60, + "flags": 50, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 50 + ], + "InheritedType": 7 + }, + { + "nid": 70, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 90, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 110, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 180, + "strtype": "OBJECT/Overflow_visible", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 230, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 300, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 310, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 320, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ { - "nid": -1646815752, - "flags": 17, - "strtype": "OBJECT/Position", + "nid": 11110, + "strtype": "_style/Padding", "intarray": [ + 20, + 20, 0, 0 ], "InheritedType": 7 - }, - { - "nid": 1865820697, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 1 - ], - "InheritedType": 7 - }, + } + ], + "InheritedType": 1 + } + ], + "nid": 1010, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 1020, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": 1000471, + "strtype": "_event/EventHandler", + "strval": "LONG_PRESSED", + "childs": [ + { + "nid": 1000472, + "strtype": "_event/name", + "strval": "SecondaryStatLongPress", + "InheritedType": 10 + }, + { + "nid": 1000473, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000474, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000495, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ { - "nid": 353239529, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 + "nid": 1000496, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 }, { - "nid": -806749502, - "strtype": "OBJECT/Flags", - "InheritedType": 1 + "nid": 1000497, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 }, { - "nid": 802932982, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 + "nid": 1000498, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 }, { - "nid": 130, - "strtype": "OBJECT/Press_lock", - "strval": "False", - "InheritedType": 2 + "nid": 1000499, + "strtype": "CALL FUNCTION/Function_name", + "strval": "secondary_stat_long_press", + "InheritedType": 10 }, { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", + "nid": 1000500, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", "InheritedType": 2 - }, - { - "nid": 180, - "strtype": "OBJECT/Overflow_visible", - "strval": "True", - "InheritedType": 2 - }, + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + }, + { + "disabled": false, + "nid": 1000475, + "strtype": "_event/EventHandler", + "strval": "GESTURE_LEFT(GESTURE)", + "childs": [ + { + "nid": 1000476, + "strtype": "_event/name", + "strval": "SecondaryStatSwipeLeft", + "InheritedType": 10 + }, + { + "nid": 1000477, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000478, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000489, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 + "nid": 1000490, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 }, { - "nid": 107320999, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 + "nid": 1000491, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 }, { - "nid": 240, - "strtype": "OBJECT/Scroll_elastic", - "strval": "False", - "InheritedType": 2 + "nid": 1000492, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 }, { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 + "nid": 1000493, + "strtype": "CALL FUNCTION/Function_name", + "strval": "secondary_stat_swipe_left", + "InheritedType": 10 }, { - "nid": 270, - "strtype": "OBJECT/Scroll_chain", - "strval": "False", + "nid": 1000494, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", "InheritedType": 2 - }, - { - "nid": 854658990, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + }, + { + "disabled": false, + "nid": 1000479, + "strtype": "_event/EventHandler", + "strval": "GESTURE_RIGHT(GESTURE)", + "childs": [ + { + "nid": 1000480, + "strtype": "_event/name", + "strval": "SecondaryStatSwipeRight", + "InheritedType": 10 + }, + { + "nid": 1000481, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000482, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000483, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ { - "nid": 683373050, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 + "nid": 1000484, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 }, { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 + "nid": 1000485, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 }, { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 + "nid": 1000486, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 }, { - "nid": 353029826, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 + "nid": 1000487, + "strtype": "CALL FUNCTION/Function_name", + "strval": "secondary_stat_swipe_right", + "InheritedType": 10 }, { - "nid": -870622709, - "strtype": "CONTAINER/Edited", - "strval": "False", + "nid": 1000488, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 1742708827, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 40, - 40, - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 1590260633, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 20, - 0 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1074170077, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -2015211682, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER" - }, - { - "guid": "GUID62168481-31424S9076434", - "deepid": -1454122732, - "children": [ - { - "guid": "GUID83352964-31423S9076434", - "deepid": 2056748404, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -378552443, - "strtype": "OBJECT/Name", - "strval": "DutyCycleLabel", - "InheritedType": 10 - }, - { - "nid": 491369987, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -866076524, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1947021666, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -222898828, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 19, - 38 - ], - "InheritedType": 7 - }, - { - "nid": -63955433, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1395574153, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -2080091967, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1216352207, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 663571714, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -161126493, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 731342356, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1537810529, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1042392452, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1961486610, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -186312778, - "strtype": "LABEL/Text", - "strval": "Duty Cycle: 0%", - "InheritedType": 10 - }, - { - "nid": -2113207224, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 502857765, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1354324018, - "strtype": "OBJECT/Name", - "strval": "DutyCycleBody", - "InheritedType": 10 - }, - { - "nid": 1617367333, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": -27884939, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1135294865, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 447888022, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -347940614, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1466294893, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -461290462, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 100, - "strtype": "OBJECT/Hidden", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 913298829, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 130, - "strtype": "OBJECT/Press_lock", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1196488229, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 240, - "strtype": "OBJECT/Scroll_elastic", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 270, - "strtype": "OBJECT/Scroll_chain", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -926572084, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -471962256, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -85479905, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1896477023, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": -1578442601, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 40, - 40, - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1432308209, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 10, - 0 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1033118937, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -1388194554, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true - }, - { - "guid": "GUID78922771-31427S9078434", - "deepid": -1454122732, - "children": [ - { - "guid": "GUID18197267-31426S9078434", - "deepid": 2056748404, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -378552443, - "strtype": "OBJECT/Name", - "strval": "TempsLabel", - "InheritedType": 10 - }, - { - "nid": 491369987, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -866076524, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1947021666, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -222898828, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 19, - 38 - ], - "InheritedType": 7 - }, - { - "nid": -63955433, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1395574153, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -2080091967, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1216352207, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 663571714, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -161126493, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 731342356, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1537810529, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1042392452, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1961486610, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -186312778, - "strtype": "LABEL/Text", - "strval": "M: 0°C | C: 0°C", - "InheritedType": 10 - }, - { - "nid": -2113207224, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 502857765, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1354324018, - "strtype": "OBJECT/Name", - "strval": "TempsBody", - "InheritedType": 10 - }, - { - "nid": 1617367333, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": -27884939, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1135294865, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 447888022, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -347940614, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1466294893, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -461290462, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 100, - "strtype": "OBJECT/Hidden", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 913298829, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 130, - "strtype": "OBJECT/Press_lock", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1196488229, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 240, - "strtype": "OBJECT/Scroll_elastic", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 270, - "strtype": "OBJECT/Scroll_chain", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -926572084, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -471962256, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -85479905, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1896477023, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": -1578442601, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 49, - 40, - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1432308209, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 10, - 0 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1033118937, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -1388194554, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true - }, - { - "guid": "GUID61422834-31430S9079434", - "deepid": -1454122732, - "children": [ - { - "guid": "GUID91292751-31429S9079434", - "deepid": 2056748404, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -378552443, - "strtype": "OBJECT/Name", - "strval": "TripLabel", - "InheritedType": 10 - }, - { - "nid": 491369987, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -866076524, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1947021666, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -222898828, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 19, - 38 - ], - "InheritedType": 7 - }, - { - "nid": -63955433, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1395574153, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -2080091967, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1216352207, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 663571714, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -161126493, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 731342356, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1537810529, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1042392452, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1961486610, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -186312778, - "strtype": "LABEL/Text", - "strval": "Trip: -", - "InheritedType": 10 - }, - { - "nid": -2113207224, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 502857765, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1354324018, - "strtype": "OBJECT/Name", - "strval": "TripBody", - "InheritedType": 10 - }, - { - "nid": 1617367333, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": -27884939, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1135294865, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 447888022, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -347940614, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1466294893, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -461290462, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 100, - "strtype": "OBJECT/Hidden", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 913298829, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 130, - "strtype": "OBJECT/Press_lock", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1196488229, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 240, - "strtype": "OBJECT/Scroll_elastic", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 270, - "strtype": "OBJECT/Scroll_chain", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -926572084, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -471962256, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -85479905, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1896477023, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": -1578442601, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 40, - 40, - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1432308209, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 10, - 0 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1033118937, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -1388194554, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 10, - "strtype": "OBJECT/Name", - "strval": "SecondaryStatContainer", - "InheritedType": 10 - }, - { - "nid": 20, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": 30, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 40, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 50, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 60, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 50 - ], - "InheritedType": 7 - }, - { - "nid": 70, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 90, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 210, - "strtype": "OBJECT/Gesture_bubble", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 290, - "strtype": "OBJECT/Scroll_one", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 300, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "ACTIVE", - "InheritedType": 3 - }, - { - "nid": 310, - "strtype": "OBJECT/Scroll_direction", - "strval": "HOR", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 320, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 10000, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 0, - 0, - 10, - 20 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1010, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 1020, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 10, - "strtype": "OBJECT/Name", - "strval": "SecondaryStatPaddingContainer", - "InheritedType": 10 - }, - { - "nid": 20, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 30, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 40, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 50, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 60, - "flags": 50, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 50 - ], - "InheritedType": 7 - }, - { - "nid": 70, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 90, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 110, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 180, - "strtype": "OBJECT/Overflow_visible", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 230, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 300, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 310, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 320, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 10000, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 20, - 20, - -10, - -20 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 1010, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 1020, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -2061085621, - "strtype": "OBJECT/Name", - "strval": "StatsBody", - "InheritedType": 10 - }, - { - "nid": -1308429716, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": 765799168, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -48996838, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -934879464, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 69, - -16 - ], - "InheritedType": 7 - }, - { - "nid": -1438978321, - "flags": 34, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 50 - ], - "InheritedType": 7 - }, - { - "nid": 1402659094, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 2468858, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 567187765, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1627724601, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 989043535, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 182241905, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1952571805, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -2957420, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -1818931555, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER" - }, - { - "guid": "GUID68226417-225986S119341", - "deepid": -297544425, - "children": [ - { - "guid": "GUID29726544-225985S119341", - "deepid": 336042083, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 664848033, - "strtype": "OBJECT/Name", - "strval": "BoardBatteryDisplay", - "InheritedType": 10 - }, - { - "nid": 803503493, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1975984900, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -709434953, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1619575372, - "flags": 18, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1165003093, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": -249429050, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -660757979, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -2076374675, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -176372831, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 914468838, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 663147332, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 2143696411, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -2087976806, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1689216095, - "strtype": "LABEL/Long_mode", - "strval": "CLIP", - "InheritedType": 3 - }, - { - "nid": -1617195481, - "strtype": "LABEL/Text", - "strval": "0%", - "InheritedType": 10 - }, - { - "nid": -1322544491, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": -1417897970, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 1109758047, - "strtype": "_style/Text_Font", - "strval": "Inter_Bold_14", - "InheritedType": 3 - }, - { - "nid": 1116127920, - "strtype": "_style/Padding", - "intarray": [ - 0, - 0, - 0, - 5 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": -1557522580, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 886414923, - "strtype": "OBJECT/Name", - "strval": "StatsFooter", - "InheritedType": 10 - }, - { - "nid": -444638881, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": 1472793445, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 485661359, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1482921594, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 69, - -16 - ], - "InheritedType": 7 - }, - { - "nid": -1776695673, - "flags": 34, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 25 - ], - "InheritedType": 7 - }, - { - "nid": -1251720972, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1764191652, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 720566833, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1864241264, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 561246403, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -943141465, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1551506141, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": -2137863595, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": -32315611, - "strtype": "_style/Padding", - "intarray": [ - 0, - 0, - 10, - 8 - ], - "InheritedType": 7 - }, - { - "nid": 11120, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 0, - 10 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": 787411574, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": -122801459, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -869248742, - "strtype": "_event/EventHandler", - "strval": "LONG_PRESSED", - "childs": [ - { - "nid": -795324687, - "strtype": "_event/name", - "strval": "StatsFooterLongPress", - "InheritedType": 10 - }, - { - "nid": -1062769515, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 709582146, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -965003248, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": -1744760849, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": -802327044, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1451092684, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": -148416251, - "strtype": "CALL FUNCTION/Function_name", - "strval": "stats_footer_long_press", - "InheritedType": 10 - }, - { - "nid": 580523209, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -465216940, - "strtype": "OBJECT/Name", - "strval": "StatsContent", - "InheritedType": 10 - }, - { - "nid": -719265453, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 1, - "Wrap": false, - "Reversed": false, - "MainAlignment": 3, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": 263358305, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 384488928, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -1956164925, - "flags": 34, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -352007147, - "flags": 34, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 100 - ], - "InheritedType": 7 - }, - { - "nid": -400835226, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 434147815, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 140, - "strtype": "OBJECT/Click_focusable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -209423308, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -2042035555, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -392346798, - "strtype": "OBJECT/Scroll_one", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -1038075797, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 726386075, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1192361630, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -2137227448, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 603852984, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 373724144, - "strtype": "_style/Padding", - "intarray": [ - 20, - 20, - 20, - 5 - ], - "InheritedType": 7 - }, - { - "nid": 885009666, - "strtype": "_style/Text_Font", - "strval": "Inter_14", - "InheritedType": 3 - } - ], - "InheritedType": 1 - } - ], - "nid": 1116871429, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 1910931447, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER" - } - ], - "isPage": true, - "editor_posx": 570, - "editor_posy": -300, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -1754950318, - "strtype": "OBJECT/Name", - "strval": "StatsScreen", - "InheritedType": 10 - }, - { - "nid": 1353954865, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1372030291, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1811686317, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1745852156, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -1940388592, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1841669741, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 2033368460, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 371683173, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1072484663, - "strtype": "SCREEN/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1515668814, - "strtype": "SCREEN/Screen", - "InheritedType": 1 - }, - { - "nid": 1281223852, - "strtype": "SCREEN/Temporary", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 1570191644, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 386116289, - "strtype": "_style/Bg_Color", - "intarray": [ - 0, - 0, - 0, - 255 - ], - "InheritedType": 7 - } - ], - "InheritedType": 1 - } - ], - "nid": -2049042113, - "strtype": "SCREEN/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 2071576477, - "strtype": "SCREEN/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -1801938176, - "strtype": "_event/EventHandler", - "strval": "GESTURE_DOWN(GESTURE)", - "childs": [ - { - "nid": -1727822278, - "strtype": "_event/name", - "strval": "StatsSwipeDown", - "InheritedType": 10 - }, - { - "nid": -153543943, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -1764694256, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -1951197010, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -350846453, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": 289002282, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": -1932362503, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": 1957923584, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID96807463-926932S376370", - "InheritedType": 9 - }, - { - "nid": 555489659, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "OVER_BOTTOM", - "InheritedType": 3 - }, - { - "nid": -2005820167, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": -328810422, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - }, - { - "disabled": false, - "nid": -621495887, - "strtype": "_event/EventHandler", - "strval": "SCREEN_LOADED", - "childs": [ - { - "nid": -1074766802, - "strtype": "_event/name", - "strval": "StatsScreenLoaded", - "InheritedType": 10 - }, - { - "nid": 1671741192, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 235282546, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -1882595335, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1416113554, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": -1537816042, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": -1576255325, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": -399080106, - "strtype": "CALL FUNCTION/Function_name", - "strval": "stats_screen_loaded", - "InheritedType": 10 - }, - { - "nid": -1745500551, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - }, - { - "disabled": false, - "nid": -2024055484, - "strtype": "_event/EventHandler", - "strval": "SCREEN_UNLOAD_START", - "childs": [ - { - "nid": -1407433881, - "strtype": "_event/name", - "strval": "StatsScreenUnloadStart", - "InheritedType": 10 - }, - { - "nid": 2115589216, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 428189741, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1331343185, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": -694890197, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": -1223778576, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": -1039681494, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": -201374454, - "strtype": "CALL FUNCTION/Function_name", - "strval": "stats_screen_unload_start", - "InheritedType": 10 - }, - { - "nid": -385474072, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - }, - { - "disabled": false, - "nid": 1000246, - "strtype": "_event/EventHandler", - "strval": "SCREEN_LOAD_START", - "childs": [ - { - "nid": 1000247, - "strtype": "_event/name", - "strval": "StatsScreenLoadStart", - "InheritedType": 10 - }, - { - "nid": 1000248, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000249, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000250, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1000251, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": 1000252, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1000253, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": 1000254, - "strtype": "CALL FUNCTION/Function_name", - "strval": "stats_screen_load_start", - "InheritedType": 10 - }, - { - "nid": 1000255, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "SCREEN" - }, - { - "guid": "GUID96807463-926932S376370", - "deepid": 1968680217, - "children": [ - { - "guid": "GUID31109410-926931S376370", - "deepid": -490587171, - "children": [ - { - "guid": "GUID73818553-924858S375370", - "deepid": -1454122732, - "children": [ - { - "guid": "GUID99486130-326793S7703279", - "deepid": 717929459, - "children": [ - { - "guid": "GUID32831082-328857S453603279", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -287230020, - "strtype": "OBJECT/Name", - "strval": "MenuBackButtonLabel", - "InheritedType": 10 - }, - { - "nid": -935193111, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -677069533, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 350898885, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -827208586, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2098253300, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 914281181, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1205843799, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1330055326, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1598905741, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -1943663774, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1950961097, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1359554271, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -920755921, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1861313178, - "strtype": "LABEL/Text", - "strval": "Back", - "InheritedType": 10 - }, - { - "nid": 344228570, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -485699825, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1282815734, - "strtype": "OBJECT/Name", - "strval": "MenuBackButton", - "InheritedType": 10 - }, - { - "nid": 1856167819, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 2139132550, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -870143964, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 805781039, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2126372539, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": 2012187107, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 77208501, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -622774682, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1348566191, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -28808256, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1900810375, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 100684942, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -19896147, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -256061267, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": -269266814, - "strtype": "_event/name", - "strval": "MenuBackButtonPress", - "InheritedType": 10 - }, - { - "nid": -2131095364, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 618609670, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -410630028, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -1346728983, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": -1626226476, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 1289811226, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": -1583685956, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID26744689-209636S222341", - "InheritedType": 9 - }, - { - "nid": -616860180, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "FADE_ON", - "InheritedType": 3 - }, - { - "nid": -838755075, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": -1543832241, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true - }, - { - "guid": "GUID67352526-250127S4224545", - "deepid": 717929459, - "children": [ - { - "guid": "GUID57195880-250126S4224545", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -287230020, - "strtype": "OBJECT/Name", - "strval": "MenuConnectButtonLabel", - "InheritedType": 10 - }, - { - "nid": -935193111, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -677069533, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 350898885, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -827208586, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2098253300, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 914281181, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1205843799, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1330055326, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1598905741, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -1943663774, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1950961097, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1359554271, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -920755921, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1861313178, - "strtype": "LABEL/Text", - "strval": "Connect", - "InheritedType": 10 - }, - { - "nid": 344228570, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -485699825, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1282815734, - "strtype": "OBJECT/Name", - "strval": "MenuConnectButton", - "InheritedType": 10 - }, - { - "nid": 1856167819, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 2139132550, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -870143964, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 805781039, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2126372539, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": 2012187107, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 77208501, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 100, - "strtype": "OBJECT/Hidden", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -622774682, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1348566191, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -28808256, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1900810375, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 100684942, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -19896147, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -256061267, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": -269266814, - "strtype": "_event/name", - "strval": "MenuBackButtonPress", - "InheritedType": 10 - }, - { - "nid": -2131095364, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 618609670, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000190, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1000191, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": 1000192, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1000193, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": 1000194, - "strtype": "CALL FUNCTION/Function_name", - "strval": "menu_connect_press", - "InheritedType": 10 - }, - { - "nid": 1000195, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON" - }, - { - "guid": "GUID10414599-878968S9214129", - "deepid": 717929459, - "children": [ - { - "guid": "GUID46041099-878967S9214129", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -287230020, - "strtype": "OBJECT/Name", - "strval": "MenuPocketModeButtonLabel", - "InheritedType": 10 - }, - { - "nid": -935193111, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -677069533, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 350898885, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -827208586, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2098253300, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 914281181, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1205843799, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1330055326, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1598905741, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -1943663774, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1950961097, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1359554271, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -920755921, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1861313178, - "strtype": "LABEL/Text", - "strval": "Enable Pocket Mode", - "InheritedType": 10 - }, - { - "nid": 344228570, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -485699825, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1282815734, - "strtype": "OBJECT/Name", - "strval": "MenuPocketModeButton", - "InheritedType": 10 - }, - { - "nid": 1856167819, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 2139132550, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -870143964, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 805781039, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2126372539, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": 2012187107, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 77208501, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -622774682, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1348566191, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -28808256, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1900810375, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 100684942, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -19896147, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -256061267, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": -269266814, - "strtype": "_event/name", - "strval": "MenuPocketModeButtonPress", - "InheritedType": 10 - }, - { - "nid": -2131095364, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 618609670, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000190, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1000191, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": 1000192, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1000193, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": 1000194, - "strtype": "CALL FUNCTION/Function_name", - "strval": "menu_pocket_mode_press", - "InheritedType": 10 - }, - { - "nid": 1000195, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON" - }, - { - "guid": "GUID74212888-334284S37843279", - "deepid": 717929459, - "children": [ - { - "guid": "GUID67440251-334283S37843279", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -886924293, - "strtype": "OBJECT/Name", - "strval": "MenuSettingsButtonLabel", - "InheritedType": 10 - }, - { - "nid": -953965470, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 193196441, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1900367972, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -562447702, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -353995959, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 1899742672, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -616585531, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -133388097, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 330913556, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1599871047, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -1152814380, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -2000334316, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1367251778, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 55673346, - "strtype": "LABEL/Text", - "strval": "Settings", - "InheritedType": 10 - }, - { - "nid": 105661378, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 1655342414, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 651488106, - "strtype": "OBJECT/Name", - "strval": "MenuSettingsButton", - "InheritedType": 10 - }, - { - "nid": -301036052, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1911632614, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 1921632710, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1076010138, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1353361217, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": -673963010, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 693550299, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 990692017, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 459267430, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 854165207, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -281971382, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1303050589, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 2069092874, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": 239883239, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": -133490127, - "strtype": "_event/name", - "strval": "MenuSettingsButtonPress", - "InheritedType": 10 - }, - { - "nid": -2015720558, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -2091389623, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 738917618, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -1397926392, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": -1470549184, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 73985089, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": -1437941000, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID2768820-355393S8223279", - "InheritedType": 9 - }, - { - "nid": 1984296132, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "MOVE_LEFT", - "InheritedType": 3 - }, - { - "nid": -1656195334, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": -1087089450, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON" - }, - { - "guid": "GUID12837729-332936S24903279", - "deepid": 717929459, - "children": [ - { - "guid": "GUID33829515-332935S24903279", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -1639513761, - "strtype": "OBJECT/Name", - "strval": "MenuCalibrateButtonLabel", - "InheritedType": 10 - }, - { - "nid": 1145506371, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 2034749877, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1808687500, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1858708909, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 14361412, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 760604995, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -1231922719, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 1272426246, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -880599586, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -2004570336, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -1481315757, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": 1511550765, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1739122702, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -126904104, - "strtype": "LABEL/Text", - "strval": "Calibration", - "InheritedType": 10 - }, - { - "nid": -58032530, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 1515684021, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1101955054, - "strtype": "OBJECT/Name", - "strval": "MenuCalibrateButton", - "InheritedType": 10 - }, - { - "nid": -559664023, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 818053021, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -409093157, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -595809719, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -442747654, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": 1070976260, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -829797136, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -198768072, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -829447108, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -1877488506, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -151833235, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -982080510, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -1832112441, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -2076291771, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": 371637357, - "strtype": "_event/name", - "strval": "MenuCalibrateButtonPress", - "InheritedType": 10 - }, - { - "nid": 1560005015, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1742951478, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1387324662, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -1059247146, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": -1100952499, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 554492652, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": -903062438, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID23505394-724806S6783280", - "InheritedType": 9 - }, - { - "nid": 999456145, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "MOVE_LEFT", - "InheritedType": 3 - }, - { - "nid": -1267397760, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": 45407430, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true - }, - { - "guid": "GUID67855479-331588S2863279", - "deepid": 717929459, - "children": [ - { - "guid": "GUID17957549-331587S2863279", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -1687421544, - "strtype": "OBJECT/Name", - "strval": "MenuPairButtonLabel", - "InheritedType": 10 - }, - { - "nid": -1035426399, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -373426619, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -1264943805, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 1253430925, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 1752023710, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 699248871, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 2121779850, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -183942750, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -1011776907, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -751181518, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -231537612, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -937659898, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -1806446406, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1330645487, - "strtype": "LABEL/Text", - "strval": "Pairing", - "InheritedType": 10 - }, - { - "nid": -480189000, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 57283741, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -792726349, - "strtype": "OBJECT/Name", - "strval": "MenuPairButton", - "InheritedType": 10 - }, - { - "nid": -2057394872, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 525037612, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -239804388, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -1120327825, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 154424876, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": -581041763, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 2143995621, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1063581839, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -545792, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 753677217, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 718325278, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -23110449, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 127539494, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -1265476812, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": 266130676, - "strtype": "_event/name", - "strval": "MenuPairButtonPress", - "InheritedType": 10 - }, - { - "nid": -1632584908, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -1751142456, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 2139850850, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -1455519891, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": -384543578, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 1137646550, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": 511742118, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID51718687-474042S229367", - "InheritedType": 9 - }, - { - "nid": 1889429830, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "MOVE_LEFT", - "InheritedType": 3 - }, - { - "nid": 736508919, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": 1543319317, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true - }, - { - "guid": "GUID34058408-584587S2493314", - "deepid": 717929459, - "children": [ - { - "guid": "GUID29403018-584586S2493314", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -287230020, - "strtype": "OBJECT/Name", - "strval": "MenuAboutButtonLabel", - "InheritedType": 10 - }, - { - "nid": -935193111, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -677069533, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 350898885, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -827208586, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2098253300, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 914281181, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1205843799, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1330055326, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1598905741, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -1943663774, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1950961097, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1359554271, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -920755921, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1861313178, - "strtype": "LABEL/Text", - "strval": "About", - "InheritedType": 10 - }, - { - "nid": 344228570, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -485699825, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 1282815734, - "strtype": "OBJECT/Name", - "strval": "MenuAboutButton", - "InheritedType": 10 - }, - { - "nid": 1856167819, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 2139132550, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -870143964, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 805781039, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -2126372539, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 42 - ], - "InheritedType": 7 - }, - { - "nid": 2012187107, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 77208501, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -622774682, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1348566191, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -28808256, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1900810375, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 100684942, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -19896147, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "disabled": false, - "nid": -256061267, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": -269266814, - "strtype": "_event/name", - "strval": "MenuAboutButtonPress", - "InheritedType": 10 - }, - { - "nid": -2131095364, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 618609670, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -410630028, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": -1346728983, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": -1626226476, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 1289811226, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": -1583685956, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID1485352-584585S4613314", - "InheritedType": 9 - }, - { - "nid": -616860180, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "FADE_ON", - "InheritedType": 3 - }, - { - "nid": -838755075, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": -1543832241, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 - } - ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true - }, - { - "guid": "GUID39976597-714962S8723280", - "deepid": 717929459, - "children": [ - { - "guid": "GUID35371894-714961S8723280", - "deepid": 1549581850, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -2065030678, - "strtype": "OBJECT/Name", - "strval": "MenuShutdownButtonLabel", - "InheritedType": 10 - }, - { - "nid": 1546071966, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -698190518, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 879310139, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 272142743, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -949016796, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 156578128, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -946780508, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 978287754, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": -1725692282, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1436095489, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -617274705, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -106430123, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -543377444, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1392100069, - "strtype": "LABEL/Text", - "strval": "Shutdown", "InheritedType": 10 - }, - { - "nid": 79131479, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 1444618988, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 } ], - "saved_objtypeKey": "LABEL" + "InheritedType": 4 } ], + "saved_objtypeKey": "CONTAINER" + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -2061085621, + "strtype": "OBJECT/Name", + "strval": "StatsBody", + "InheritedType": 10 + }, + { + "nid": -1308429716, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": 765799168, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -48996838, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -934879464, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 69, + -16 + ], + "InheritedType": 7 + }, + { + "nid": -1438978321, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 50 + ], + "InheritedType": 7 + }, + { + "nid": 1402659094, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 2468858, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 140, + "strtype": "OBJECT/Click_focusable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 567187765, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1627724601, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 989043535, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 182241905, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 1952571805, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -2957420, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": -1818931555, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "CONTAINER" + }, + { + "guid": "GUID68226417-225986S119341", + "deepid": -297544425, + "children": [ + { + "guid": "GUID29726544-225985S119341", + "deepid": 336042083, "dont_export": false, "locked": false, "properties": [ { - "nid": 395166917, + "nid": 664848033, "strtype": "OBJECT/Name", - "strval": "MenuShutdownButton", + "strval": "BoardBatteryDisplay", "InheritedType": 10 }, { - "nid": -723360943, + "nid": 803503493, "strtype": "OBJECT/Layout", "InheritedType": 1 }, @@ -9423,19 +4628,19 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 1275242656, + "nid": -1975984900, "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": 1215347547, + "nid": -709434953, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": -1190820263, - "flags": 17, + "nid": 1619575372, + "flags": 18, "strtype": "OBJECT/Position", "intarray": [ 0, @@ -9444,52 +4649,46 @@ "InheritedType": 7 }, { - "nid": 928595869, - "flags": 18, + "nid": -1165003093, + "flags": 51, "strtype": "OBJECT/Size", "intarray": [ - 100, - 42 + 1, + 1 ], "InheritedType": 7 }, { - "nid": -685774597, + "nid": -249429050, "strtype": "OBJECT/Align", "strval": "CENTER", "InheritedType": 3 }, { - "nid": -1202094570, + "nid": -660757979, "strtype": "OBJECT/Flags", "InheritedType": 1 }, { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1688679378, - "strtype": "OBJECT/Scrollable", + "nid": -2076374675, + "strtype": "OBJECT/Clickable", "strval": "False", "InheritedType": 2 }, { - "nid": -1166496339, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 }, { - "nid": 852836475, + "nid": -176372831, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 1597704686, + "nid": 914468838, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 @@ -9507,219 +4706,894 @@ "InheritedType": 3 }, { - "nid": -1692553378, + "nid": 663147332, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 139278431, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 + "nid": 2143696411, + "strtype": "LABEL/Edited", + "strval": "False", + "InheritedType": 2 }, { - "disabled": false, - "nid": -630399605, - "strtype": "_event/EventHandler", - "strval": "CLICKED", + "nid": -2087976806, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1689216095, + "strtype": "LABEL/Long_mode", + "strval": "CLIP", + "InheritedType": 3 + }, + { + "nid": -1617195481, + "strtype": "LABEL/Text", + "strval": "0%", + "InheritedType": 10 + }, + { + "nid": -1322544491, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", "childs": [ { - "nid": -380253974, - "strtype": "_event/name", - "strval": "MenuShutdownButtonPress", - "InheritedType": 10 - }, - { - "nid": 824895350, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": -1007469405, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 753861524, - "strtype": "_event/action", - "strval": "CALL FUNCTION", + "nid": -1417897970, + "strtype": "_style/StyleState", + "strval": "DEFAULT", "childs": [ { - "nid": 136808008, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": -997153170, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1032068109, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": -1540573669, - "strtype": "CALL FUNCTION/Function_name", - "strval": "shutdown_button_press", - "InheritedType": 10 + "nid": 1109758047, + "strtype": "_style/Text_Font", + "strval": "Inter_Bold_14", + "InheritedType": 3 }, { - "nid": -866389995, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 + "nid": 1116127920, + "strtype": "_style/Padding", + "intarray": [ + 0, + 0, + 0, + 5 + ], + "InheritedType": 7 } ], - "InheritedType": 10 + "InheritedType": 1 } ], - "InheritedType": 4 - }, + "nid": -1557522580, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": 886414923, + "strtype": "OBJECT/Name", + "strval": "StatsFooter", + "InheritedType": 10 + }, + { + "nid": -444638881, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": 1472793445, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 485661359, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 1482921594, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 69, + -16 + ], + "InheritedType": 7 + }, + { + "nid": -1776695673, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 25 + ], + "InheritedType": 7 + }, + { + "nid": -1251720972, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 1764191652, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 140, + "strtype": "OBJECT/Click_focusable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 720566833, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1864241264, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 561246403, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": -943141465, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1551506141, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ { - "disabled": false, - "nid": 1000206, - "strtype": "_event/EventHandler", - "strval": "LONG_PRESSED", + "nid": -2137863595, + "strtype": "_style/StyleState", + "strval": "DEFAULT", "childs": [ { - "nid": 1000207, - "strtype": "_event/name", - "strval": "ShutdownButtonLongPress", - "InheritedType": 10 - }, - { - "nid": 1000208, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000209, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 + "nid": -32315611, + "strtype": "_style/Padding", + "intarray": [ + 0, + 0, + 10, + 8 + ], + "InheritedType": 7 }, { - "nid": 1000210, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1000211, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": 1000212, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1000213, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": 1000214, - "strtype": "CALL FUNCTION/Function_name", - "strval": "shutdown_button_long_press", - "InheritedType": 10 - }, - { - "nid": 1000215, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } + "nid": 11120, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 0, + 10 ], - "InheritedType": 10 + "InheritedType": 7 } ], - "InheritedType": 4 + "InheritedType": 1 + } + ], + "nid": 787411574, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": -122801459, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": -869248742, + "strtype": "_event/EventHandler", + "strval": "LONG_PRESSED", + "childs": [ + { + "nid": -795324687, + "strtype": "_event/name", + "strval": "StatsFooterLongPress", + "InheritedType": 10 }, { - "disabled": false, - "nid": 1000226, - "strtype": "_event/EventHandler", - "strval": "PRESSED", + "nid": -1062769515, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 709582146, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -965003248, + "strtype": "_event/action", + "strval": "CALL FUNCTION", "childs": [ { - "nid": 1000227, - "strtype": "_event/name", - "strval": "ShutdownButtonDown", + "nid": -1744760849, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", "InheritedType": 10 }, { - "nid": 1000228, - "strtype": "_event/condition_C", - "strval": "", + "nid": -802327044, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", "InheritedType": 10 }, { - "nid": 1000229, - "strtype": "_event/condition_P", - "strval": "", + "nid": 1451092684, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", "InheritedType": 10 }, { - "nid": 1000230, - "strtype": "_event/action", - "strval": "CALL FUNCTION", - "childs": [ - { - "nid": 1000231, - "strtype": "CALL FUNCTION/Name", - "strval": "CALL FUNCTION", - "InheritedType": 10 - }, - { - "nid": 1000232, - "strtype": "CALL FUNCTION/Call", - "strval": "<{Function_name}>( event_struct )", - "InheritedType": 10 - }, - { - "nid": 1000233, - "strtype": "CALL FUNCTION/CallC", - "strval": "<{Function_name}>( e );", - "InheritedType": 10 - }, - { - "nid": 1000234, - "strtype": "CALL FUNCTION/Function_name", - "strval": "shutdown_button_down", - "InheritedType": 10 - }, - { - "nid": 1000235, - "strtype": "CALL FUNCTION/Dont_export_function", - "strval": "True", - "InheritedType": 2 - } - ], + "nid": -148416251, + "strtype": "CALL FUNCTION/Function_name", + "strval": "stats_footer_long_press", "InheritedType": 10 + }, + { + "nid": 580523209, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 } ], - "InheritedType": 4 + "InheritedType": 10 + } + ], + "InheritedType": 4 + } + ], + "saved_objtypeKey": "CONTAINER" + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -465216940, + "strtype": "OBJECT/Name", + "strval": "StatsContent", + "InheritedType": 10 + }, + { + "nid": -719265453, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 3, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": 263358305, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 384488928, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1956164925, + "flags": 34, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -352007147, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 100 + ], + "InheritedType": 7 + }, + { + "nid": -400835226, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 434147815, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 140, + "strtype": "OBJECT/Click_focusable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -209423308, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2042035555, + "strtype": "OBJECT/Scroll_momentum", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -392346798, + "strtype": "OBJECT/Scroll_one", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1038075797, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 726386075, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 1192361630, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -2137227448, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 603852984, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 373724144, + "strtype": "_style/Padding", + "intarray": [ + 20, + 20, + 20, + 5 + ], + "InheritedType": 7 + }, + { + "nid": 885009666, + "strtype": "_style/Text_Font", + "strval": "Inter_14", + "InheritedType": 3 } ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true + "InheritedType": 1 + } + ], + "nid": 1116871429, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 1910931447, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "CONTAINER" + } + ], + "isPage": true, + "editor_posx": 570, + "editor_posy": -300, + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -1754950318, + "strtype": "OBJECT/Name", + "strval": "StatsScreen", + "InheritedType": 10 + }, + { + "nid": 1353954865, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -1372030291, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1811686317, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 1745852156, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -1940388592, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1841669741, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 2033368460, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 371683173, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 1072484663, + "strtype": "SCREEN/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1515668814, + "strtype": "SCREEN/Screen", + "InheritedType": 1 + }, + { + "nid": 1281223852, + "strtype": "SCREEN/Temporary", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 1570191644, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 386116289, + "strtype": "_style/Bg_Color", + "intarray": [ + 0, + 0, + 0, + 255 + ], + "InheritedType": 7 + } + ], + "InheritedType": 1 + } + ], + "nid": -2049042113, + "strtype": "SCREEN/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 2071576477, + "strtype": "SCREEN/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": -1801938176, + "strtype": "_event/EventHandler", + "strval": "GESTURE_DOWN(GESTURE)", + "childs": [ + { + "nid": -1727822278, + "strtype": "_event/name", + "strval": "StatsSwipeDown", + "InheritedType": 10 + }, + { + "nid": -153543943, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -1764694256, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000429, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": 1000430, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": 1000431, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": 1000432, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": 1000433, + "strtype": "CALL FUNCTION/Function_name", + "strval": "stats_screen_gesture_down", + "InheritedType": 10 + }, + { + "nid": 1000434, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + }, + { + "disabled": false, + "nid": -621495887, + "strtype": "_event/EventHandler", + "strval": "SCREEN_LOADED", + "childs": [ + { + "nid": -1074766802, + "strtype": "_event/name", + "strval": "StatsScreenLoaded", + "InheritedType": 10 + }, + { + "nid": 1671741192, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 235282546, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -1882595335, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": 1416113554, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": -1537816042, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": -1576255325, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": -399080106, + "strtype": "CALL FUNCTION/Function_name", + "strval": "stats_screen_loaded", + "InheritedType": 10 + }, + { + "nid": -1745500551, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + }, + { + "disabled": false, + "nid": -2024055484, + "strtype": "_event/EventHandler", + "strval": "SCREEN_UNLOAD_START", + "childs": [ + { + "nid": -1407433881, + "strtype": "_event/name", + "strval": "StatsScreenUnloadStart", + "InheritedType": 10 + }, + { + "nid": 2115589216, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 428189741, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1331343185, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": -694890197, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": -1223778576, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": -1039681494, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": -201374454, + "strtype": "CALL FUNCTION/Function_name", + "strval": "stats_screen_unload_start", + "InheritedType": 10 + }, + { + "nid": -385474072, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + }, + { + "disabled": false, + "nid": 1000246, + "strtype": "_event/EventHandler", + "strval": "SCREEN_LOAD_START", + "childs": [ + { + "nid": 1000247, + "strtype": "_event/name", + "strval": "StatsScreenLoadStart", + "InheritedType": 10 + }, + { + "nid": 1000248, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000249, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1000250, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": 1000251, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": 1000252, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": 1000253, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": 1000254, + "strtype": "CALL FUNCTION/Function_name", + "strval": "stats_screen_load_start", + "InheritedType": 10 + }, + { + "nid": 1000255, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 } ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + } + ], + "saved_objtypeKey": "SCREEN" + }, + { + "guid": "GUID96807463-926932S376370", + "deepid": 1968680217, + "children": [ + { + "guid": "GUID31109410-926931S376370", + "deepid": -490587171, + "children": [ + { + "guid": "GUID73818553-924858S375370", + "deepid": -1454122732, "dont_export": false, "locked": false, "properties": [ @@ -10432,154 +6306,1407 @@ 0, 0 ], - "InheritedType": 7 - }, - { - "nid": -1861640151, - "flags": 34, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 20 + "InheritedType": 7 + }, + { + "nid": -1861640151, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 20 + ], + "InheritedType": 7 + }, + { + "nid": 284526996, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 2135582089, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -1543533043, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 1963672883, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1947499955, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 274427403, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": -1171913085, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -965814050, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 11110, + "strtype": "_style/Padding", + "intarray": [ + 0, + 0, + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 11120, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 0, + 4 + ], + "InheritedType": 7 + } + ], + "InheritedType": 1 + } + ], + "nid": 1026302551, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 414725285, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "CONTAINER" + }, + { + "guid": "GUID44032903-826399S104053322", + "deepid": 644785683, + "children": [ + { + "guid": "GUID30878964-352908S8193279", + "deepid": -1454122732, + "children": [ + { + "guid": "GUID66400986-355406S7053279", + "deepid": -1080731338, + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -1037297585, + "strtype": "OBJECT/Name", + "strval": "BrightnessSlider", + "InheritedType": 10 + }, + { + "nid": -1953516729, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -79354691, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -308844317, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1592979493, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -1798930416, + "flags": 18, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 15 + ], + "InheritedType": 7 + }, + { + "nid": -1300234721, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 814585677, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 210, + "strtype": "OBJECT/Gesture_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 300, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 310, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": -575878689, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 2095214200, + "strtype": "SLIDER/Slider", + "InheritedType": 1 + }, + { + "nid": 1491495069, + "strtype": "SLIDER/Range", + "intarray": [ + 10, + 255 + ], + "InheritedType": 7 + }, + { + "nid": 618112526, + "strtype": "SLIDER/Mode", + "strval": "NORMAL", + "InheritedType": 3 + }, + { + "nid": -2127960542, + "strtype": "SLIDER/Value", + "InheritedType": 6 + }, + { + "nid": 511185087, + "strtype": "SLIDER/Value_left", + "InheritedType": 6 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -631482455, + "strtype": "SLIDER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.INDICATOR", + "childs": [], + "nid": -1584760730, + "strtype": "SLIDER/Style_indicator", + "strval": "lv.PART.INDICATOR, Rectangle", + "InheritedType": 11 + }, + { + "part": "lv.PART.KNOB", + "childs": [], + "nid": 683084254, + "strtype": "SLIDER/Style_knob", + "strval": "lv.PART.KNOB, Rectangle, Pad", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": 1165650840, + "strtype": "_event/EventHandler", + "strval": "VALUE_CHANGED", + "childs": [ + { + "nid": 348021728, + "strtype": "_event/name", + "strval": "BrightnessSliderChange", + "InheritedType": 10 + }, + { + "nid": 1011559748, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -989907888, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -1850392885, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": 885783266, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": 335111125, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": 1158823458, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": -1685508787, + "strtype": "CALL FUNCTION/Function_name", + "strval": "brightness_slider_change", + "InheritedType": 10 + }, + { + "nid": -1276117096, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + } + ], + "saved_objtypeKey": "SLIDER", + "tree_closed": true + }, + { + "guid": "GUID48756241-352907S8193279", + "deepid": 2056748404, + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -223392383, + "strtype": "OBJECT/Name", + "strval": "BrightnessLabel", + "InheritedType": 10 + }, + { + "nid": 2074588060, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -1257862813, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1473062857, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -151654662, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 19, + 38 + ], + "InheritedType": 7 + }, + { + "nid": 1207857941, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 110234533, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 244841469, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 1779523421, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -1720808626, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -795969695, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 236264953, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 1471472889, + "strtype": "LABEL/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1606295033, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1712214064, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -860947686, + "strtype": "LABEL/Text", + "strval": "Screen brightness", + "InheritedType": 10 + }, + { + "nid": 1804988933, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -749956109, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "LABEL" + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -908412867, + "strtype": "OBJECT/Name", + "strval": "BrightnessBody", + "InheritedType": 10 + }, + { + "nid": -1252418221, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": -626229077, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1748124905, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1646815752, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1865820697, + "flags": 50, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 353239529, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": -806749502, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 802932982, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 130, + "strtype": "OBJECT/Press_lock", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 140, + "strtype": "OBJECT/Click_focusable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 180, + "strtype": "OBJECT/Overflow_visible", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 107320999, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 240, + "strtype": "OBJECT/Scroll_elastic", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 250, + "strtype": "OBJECT/Scroll_momentum", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 270, + "strtype": "OBJECT/Scroll_chain", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 854658990, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 683373050, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 353029826, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -870622709, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 1742708827, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 11110, + "strtype": "_style/Padding", + "intarray": [ + 40, + 40, + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1590260633, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 20, + 0 + ], + "InheritedType": 7 + } + ], + "InheritedType": 1 + } + ], + "nid": 1074170077, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": -2015211682, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } ], - "InheritedType": 7 - }, - { - "nid": 284526996, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 2135582089, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1543533043, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1963672883, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1947499955, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 274427403, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": -1171913085, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -965814050, - "strtype": "CONTAINER/Edited", - "strval": "False", - "InheritedType": 2 + "saved_objtypeKey": "CONTAINER", + "tree_closed": true }, { - "part": "lv.PART.MAIN", - "childs": [ + "guid": "GUID8650653-432534S1174258", + "deepid": -1454122732, + "children": [ + { + "guid": "GUID27591657-432532S1174258", + "deepid": 1552526811, + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": 1563394525, + "strtype": "OBJECT/Name", + "strval": "SinglePressAction", + "InheritedType": 10 + }, + { + "nid": -385573200, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 497264398, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1717723157, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1876781704, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 800184036, + "flags": 50, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 1 + ], + "InheritedType": 7 + }, + { + "nid": -626767778, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": -1919288106, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 210, + "strtype": "OBJECT/Gesture_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -1739309049, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1377085599, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -675933511, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": -1235213743, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 944437764, + "strtype": "DROPDOWN/Dropdown", + "InheritedType": 1 + }, + { + "nid": 1363302350, + "strtype": "DROPDOWN/Options", + "strval": "None\\nShutdown\\nOpen menu\\nDim display\\nPocket mode\\nCycle secondary stat\\nCycle board battery", + "InheritedType": 10 + }, + { + "nid": -837768278, + "strtype": "DROPDOWN/List_align", + "strval": "BOTTOM", + "InheritedType": 3 + }, + { + "nid": 1219642509, + "strtype": "DROPDOWN/Show_selected", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1023694027, + "strtype": "DROPDOWN/Base_text", + "strval": "", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 2112811206, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": -1134863582, + "strtype": "_style/Text_Font", + "strval": "Inter_Bold_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": 1152372033, + "strtype": "DROPDOWN/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.INDICATOR", + "childs": [ + { + "nid": 1253235939, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 1424675917, + "strtype": "_style/Text_Font", + "strval": "montserrat_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": -916887232, + "strtype": "DROPDOWN/Style_indicator", + "strval": "lv.PART.INDICATOR, Text", + "InheritedType": 11 + }, + { + "part": " lv.PART.MAIN", + "childs": [ + { + "nid": -1418212686, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 1926177614, + "strtype": "_style/Text_Font", + "strval": "Inter_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": -1907816658, + "strtype": "DROPDOWN/Style_list_main", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "part": " lv.PART.SCROLLBAR", + "childs": [], + "nid": 30665061, + "strtype": "DROPDOWN/Style_list_scrollbar", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "part": " lv.PART.SELECTED", + "childs": [ + { + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 10450, + "strtype": "_style/Text_Font", + "strval": "Inter_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": 576272003, + "strtype": "DROPDOWN/Style_list_selected", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.SELECTED, Text, Rectangle", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": 1810401884, + "strtype": "_event/EventHandler", + "strval": "VALUE_CHANGED", + "childs": [ + { + "nid": 1100306910, + "strtype": "_event/name", + "strval": "SinglePressActionSelectChange", + "InheritedType": 10 + }, + { + "nid": 1458277417, + "strtype": "_event/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1282432946, + "strtype": "_event/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -158590517, + "strtype": "_event/action", + "strval": "CALL FUNCTION", + "childs": [ + { + "nid": 150262588, + "strtype": "CALL FUNCTION/Name", + "strval": "CALL FUNCTION", + "InheritedType": 10 + }, + { + "nid": -1212193577, + "strtype": "CALL FUNCTION/Call", + "strval": "<{Function_name}>( event_struct )", + "InheritedType": 10 + }, + { + "nid": 901395333, + "strtype": "CALL FUNCTION/CallC", + "strval": "<{Function_name}>( e );", + "InheritedType": 10 + }, + { + "nid": -1727936940, + "strtype": "CALL FUNCTION/Function_name", + "strval": "single_press_action_select_change", + "InheritedType": 10 + }, + { + "nid": -880188489, + "strtype": "CALL FUNCTION/Dont_export_function", + "strval": "True", + "InheritedType": 2 + } + ], + "InheritedType": 10 + } + ], + "InheritedType": 4 + } + ], + "saved_objtypeKey": "DROPDOWN" + }, { - "nid": 10000, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ + "guid": "GUID97347516-432533S1174258", + "deepid": 2056748404, + "dont_export": false, + "locked": false, + "properties": [ { - "nid": 11110, - "strtype": "_style/Padding", + "nid": -223392383, + "strtype": "OBJECT/Name", + "strval": "SinglePressActionLabel", + "InheritedType": 10 + }, + { + "nid": 2074588060, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -1257862813, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1473062857, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -151654662, + "flags": 17, + "strtype": "OBJECT/Position", "intarray": [ - 0, - 0, - 0, - 0 + 19, + 38 + ], + "InheritedType": 7 + }, + { + "nid": 1207857941, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 ], "InheritedType": 7 }, { - "nid": 11120, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 0, - 4 + "nid": 110234533, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 244841469, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 1779523421, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": -1720808626, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -795969695, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 236264953, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 1471472889, + "strtype": "LABEL/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1606295033, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1712214064, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -860947686, + "strtype": "LABEL/Text", + "strval": "Single-press action", + "InheritedType": 10 + }, + { + "nid": 1804988933, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -749956109, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "LABEL" + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": -908412867, + "strtype": "OBJECT/Name", + "strval": "SinglePressActionsBody", + "InheritedType": 10 + }, + { + "nid": -1252418221, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": -626229077, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1748124905, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1646815752, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1865820697, + "flags": 50, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 353239529, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": -806749502, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 802932982, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 130, + "strtype": "OBJECT/Press_lock", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 140, + "strtype": "OBJECT/Click_focusable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 180, + "strtype": "OBJECT/Overflow_visible", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 107320999, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 240, + "strtype": "OBJECT/Scroll_elastic", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 250, + "strtype": "OBJECT/Scroll_momentum", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 270, + "strtype": "OBJECT/Scroll_chain", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 854658990, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 683373050, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 353029826, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -870622709, + "strtype": "CONTAINER/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 1742708827, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 11110, + "strtype": "_style/Padding", + "intarray": [ + 40, + 40, + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1590260633, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 20, + 0 + ], + "InheritedType": 7 + } ], - "InheritedType": 7 + "InheritedType": 1 } ], - "InheritedType": 1 + "nid": 1074170077, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": -2015211682, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 } ], - "nid": 1026302551, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 + "saved_objtypeKey": "CONTAINER" }, { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 414725285, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER" - }, - { - "guid": "GUID44032903-826399S104053322", - "deepid": 644785683, - "children": [ - { - "guid": "GUID30878964-352908S8193279", + "guid": "GUID4554269-296737S241634258", "deepid": -1454122732, "children": [ { - "guid": "GUID66400986-355406S7053279", - "deepid": -1080731338, + "guid": "GUID26022858-296735S241634258", + "deepid": 1552526811, "dont_export": false, "locked": false, "properties": [ { - "nid": -1037297585, + "nid": 1563394525, "strtype": "OBJECT/Name", - "strval": "BrightnessSlider", + "strval": "DoublePressAction", "InheritedType": 10 }, { - "nid": -1953516729, + "nid": -385573200, "strtype": "OBJECT/Layout", "InheritedType": 1 }, @@ -10591,18 +7718,18 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": -79354691, + "nid": 497264398, "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": -308844317, + "nid": 1717723157, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": -1592979493, + "nid": -1876781704, "flags": 17, "strtype": "OBJECT/Position", "intarray": [ @@ -10612,23 +7739,23 @@ "InheritedType": 7 }, { - "nid": -1798930416, - "flags": 18, + "nid": 800184036, + "flags": 50, "strtype": "OBJECT/Size", "intarray": [ 100, - 15 + 1 ], "InheritedType": 7 }, { - "nid": -1300234721, + "nid": -626767778, "strtype": "OBJECT/Align", "strval": "CENTER", "InheritedType": 3 }, { - "nid": 814585677, + "nid": -1919288106, "strtype": "OBJECT/Flags", "InheritedType": 1 }, @@ -10645,13 +7772,19 @@ "InheritedType": 1 }, { - "nid": 300, + "nid": -1739309049, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1377085599, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 310, + "nid": -675933511, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 @@ -10669,120 +7802,195 @@ "InheritedType": 3 }, { - "nid": -575878689, + "nid": -1235213743, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": 2095214200, - "strtype": "SLIDER/Slider", + "nid": 944437764, + "strtype": "DROPDOWN/Dropdown", "InheritedType": 1 }, { - "nid": 1491495069, - "strtype": "SLIDER/Range", - "intarray": [ - 10, - 255 - ], - "InheritedType": 7 + "nid": 1363302350, + "strtype": "DROPDOWN/Options", + "strval": "None\\nShutdown\\nOpen menu\\nDim display\\nPocket mode\\nCycle secondary stat\\nCycle board battery", + "InheritedType": 10 }, { - "nid": 618112526, - "strtype": "SLIDER/Mode", - "strval": "NORMAL", + "nid": -837768278, + "strtype": "DROPDOWN/List_align", + "strval": "BOTTOM", "InheritedType": 3 }, { - "nid": -2127960542, - "strtype": "SLIDER/Value", - "InheritedType": 6 + "nid": 1219642509, + "strtype": "DROPDOWN/Show_selected", + "strval": "True", + "InheritedType": 2 }, { - "nid": 511185087, - "strtype": "SLIDER/Value_left", - "InheritedType": 6 + "nid": 1023694027, + "strtype": "DROPDOWN/Base_text", + "strval": "", + "InheritedType": 10 }, { "part": "lv.PART.MAIN", - "childs": [], - "nid": -631482455, - "strtype": "SLIDER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Transform", + "childs": [ + { + "nid": 2112811206, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": -1134863582, + "strtype": "_style/Text_Font", + "strval": "Inter_Bold_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": 1152372033, + "strtype": "DROPDOWN/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", "InheritedType": 11 }, { "part": "lv.PART.INDICATOR", - "childs": [], - "nid": -1584760730, - "strtype": "SLIDER/Style_indicator", - "strval": "lv.PART.INDICATOR, Rectangle", + "childs": [ + { + "nid": 1253235939, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 1424675917, + "strtype": "_style/Text_Font", + "strval": "montserrat_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": -916887232, + "strtype": "DROPDOWN/Style_indicator", + "strval": "lv.PART.INDICATOR, Text", "InheritedType": 11 }, { - "part": "lv.PART.KNOB", + "part": " lv.PART.MAIN", + "childs": [ + { + "nid": -1418212686, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 1926177614, + "strtype": "_style/Text_Font", + "strval": "Inter_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": -1907816658, + "strtype": "DROPDOWN/Style_list_main", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "part": " lv.PART.SCROLLBAR", "childs": [], - "nid": 683084254, - "strtype": "SLIDER/Style_knob", - "strval": "lv.PART.KNOB, Rectangle, Pad", + "nid": 30665061, + "strtype": "DROPDOWN/Style_list_scrollbar", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "part": " lv.PART.SELECTED", + "childs": [ + { + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 10450, + "strtype": "_style/Text_Font", + "strval": "Inter_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": 576272003, + "strtype": "DROPDOWN/Style_list_selected", + "strval": "{\"python\":\"{0}.get_list()\",\"c\":\"lv_dropdown_get_list({0})\"} lv.PART.SELECTED, Text, Rectangle", "InheritedType": 11 }, { "disabled": false, - "nid": 1165650840, + "nid": 1810401884, "strtype": "_event/EventHandler", "strval": "VALUE_CHANGED", "childs": [ { - "nid": 348021728, + "nid": 1100306910, "strtype": "_event/name", - "strval": "BrightnessSliderChange", + "strval": "DoublePressActionSelectChange", "InheritedType": 10 }, { - "nid": 1011559748, + "nid": 1458277417, "strtype": "_event/condition_C", "strval": "", "InheritedType": 10 }, { - "nid": -989907888, + "nid": 1282432946, "strtype": "_event/condition_P", "strval": "", "InheritedType": 10 }, { - "nid": -1850392885, + "nid": -158590517, "strtype": "_event/action", "strval": "CALL FUNCTION", "childs": [ { - "nid": 885783266, + "nid": 150262588, "strtype": "CALL FUNCTION/Name", "strval": "CALL FUNCTION", "InheritedType": 10 }, { - "nid": 335111125, + "nid": -1212193577, "strtype": "CALL FUNCTION/Call", "strval": "<{Function_name}>( event_struct )", "InheritedType": 10 }, { - "nid": 1158823458, + "nid": 901395333, "strtype": "CALL FUNCTION/CallC", "strval": "<{Function_name}>( e );", "InheritedType": 10 }, { - "nid": -1685508787, + "nid": -1727936940, "strtype": "CALL FUNCTION/Function_name", - "strval": "brightness_slider_change", + "strval": "double_press_action_select_change", "InheritedType": 10 }, { - "nid": -1276117096, + "nid": -880188489, "strtype": "CALL FUNCTION/Dont_export_function", "strval": "True", "InheritedType": 2 @@ -10794,11 +8002,10 @@ "InheritedType": 4 } ], - "saved_objtypeKey": "SLIDER", - "tree_closed": true + "saved_objtypeKey": "DROPDOWN" }, { - "guid": "GUID48756241-352907S8193279", + "guid": "GUID99964430-296736S241634258", "deepid": 2056748404, "dont_export": false, "locked": false, @@ -10806,7 +8013,7 @@ { "nid": -223392383, "strtype": "OBJECT/Name", - "strval": "BrightnessLabel", + "strval": "DoublePressActionLabel", "InheritedType": 10 }, { @@ -10926,7 +8133,7 @@ { "nid": -860947686, "strtype": "LABEL/Text", - "strval": "Screen brightness", + "strval": "Double-press action", "InheritedType": 10 }, { @@ -10953,7 +8160,7 @@ { "nid": -908412867, "strtype": "OBJECT/Name", - "strval": "BrightnessBody", + "strval": "DoublePressActionsBody", "InheritedType": 10 }, { @@ -11146,15 +8353,14 @@ "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true + "saved_objtypeKey": "CONTAINER" }, { - "guid": "GUID4554269-296737S241634258", + "guid": "GUID13393028-432537S7954258", "deepid": -1454122732, "children": [ { - "guid": "GUID26022858-296735S241634258", + "guid": "GUID12044445-432535S7954258", "deepid": 1552526811, "dont_export": false, "locked": false, @@ -11162,7 +8368,7 @@ { "nid": 1563394525, "strtype": "OBJECT/Name", - "strval": "DoublePressAction", + "strval": "LongPressAction", "InheritedType": 10 }, { @@ -11275,7 +8481,7 @@ { "nid": 1363302350, "strtype": "DROPDOWN/Options", - "strval": "None\\nOpen menu", + "strval": "None\\nShutdown\\nOpen menu\\nDim display\\nPocket mode\\nCycle secondary stat\\nCycle board battery", "InheritedType": 10 }, { @@ -11405,7 +8611,7 @@ { "nid": 1100306910, "strtype": "_event/name", - "strval": "DoublePressActionSelectChange", + "strval": "LongPressActionSelectChange", "InheritedType": 10 }, { @@ -11446,7 +8652,7 @@ { "nid": -1727936940, "strtype": "CALL FUNCTION/Function_name", - "strval": "double_press_action_select_change", + "strval": "long_press_action_select_change", "InheritedType": 10 }, { @@ -11465,7 +8671,7 @@ "saved_objtypeKey": "DROPDOWN" }, { - "guid": "GUID99964430-296736S241634258", + "guid": "GUID63038512-432536S7954258", "deepid": 2056748404, "dont_export": false, "locked": false, @@ -11473,7 +8679,7 @@ { "nid": -223392383, "strtype": "OBJECT/Name", - "strval": "ActionsLabel", + "strval": "LongPressActionLabel", "InheritedType": 10 }, { @@ -11593,7 +8799,7 @@ { "nid": -860947686, "strtype": "LABEL/Text", - "strval": "Double-press action", + "strval": "Long press action", "InheritedType": 10 }, { @@ -11620,7 +8826,7 @@ { "nid": -908412867, "strtype": "OBJECT/Name", - "strval": "ActionsBody", + "strval": "LongPressActionsBody", "InheritedType": 10 }, { @@ -11813,8 +9019,7 @@ "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true + "saved_objtypeKey": "CONTAINER" }, { "guid": "GUID88300006-837294S310452", @@ -12480,8 +9685,7 @@ "InheritedType": 11 } ], - "saved_objtypeKey": "CONTAINER", - "tree_closed": true + "saved_objtypeKey": "CONTAINER" }, { "guid": "GUID43651174-826403S330623322", @@ -24377,6 +21581,17 @@ "strtype": "_style/StyleState", "strval": "DEFAULT", "childs": [ + { + "nid": 11110, + "strtype": "_style/Padding", + "intarray": [ + 40, + 40, + 0, + 0 + ], + "InheritedType": 7 + }, { "nid": 11120, "strtype": "_style/Padding_RowCol", @@ -24568,173 +21783,186 @@ ], "saved_objtypeKey": "LABEL", "tree_closed": true + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": 10, + "strtype": "OBJECT/Name", + "strval": "VersionInfoContainer", + "InheritedType": 10 }, { - "guid": "GUID21823098-855623S32546", - "deepid": -58109746, - "children": [ + "nid": 20, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 1, + "Wrap": false, + "Reversed": false, + "MainAlignment": 1, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": 30, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 40, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 50, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 60, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 100 + ], + "InheritedType": 7 + }, + { + "nid": 70, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 90, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 110, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "flags": 1048576, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 230, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 300, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 310, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 320, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "part": "lv.PART.MAIN", + "childs": [ { - "guid": "GUID33722496-855622S32546", - "deepid": 1201226262, - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": -1254511039, - "strtype": "OBJECT/Name", - "strval": "UpdateButtonLabel", - "InheritedType": 10 - }, - { - "nid": -200602366, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1821210004, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": -917494144, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -1494624756, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 740656273, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": 464825741, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": -547401375, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1219832836, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "flags": 1048576, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 1183479928, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": -128638457, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 1651075844, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -63569678, - "strtype": "LABEL/Edited", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1019739255, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": -806376166, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": 1369209118, - "strtype": "LABEL/Text", - "strval": "Check for updates", - "InheritedType": 10 - }, + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ { - "nid": 2021756096, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 + "nid": 11110, + "strtype": "_style/Padding", + "intarray": [ + 40, + 40, + 0, + 0 + ], + "InheritedType": 7 }, { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -1853652973, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", - "InheritedType": 11 + "nid": 11120, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 10, + 0 + ], + "InheritedType": 7 } ], - "saved_objtypeKey": "LABEL", - "tree_closed": true + "InheritedType": 1 } ], + "nid": 1010, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 1020, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "CONTAINER" + }, + { + "guid": "GUID46283966-598858S163424193", + "deepid": 302579535, + "children": [ + { + "guid": "GUID13241153-735049S127893325", + "deepid": -1788867930, "dont_export": false, "locked": false, "properties": [ { - "nid": -1541957408, + "nid": 10, "strtype": "OBJECT/Name", - "strval": "UpdateButton", + "strval": "DebugInfoLabel", "InheritedType": 10 }, { - "nid": 262184220, + "nid": 20, "strtype": "OBJECT/Layout", "InheritedType": 1 }, @@ -24746,19 +21974,19 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 778549521, + "nid": 30, "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": -869711188, + "nid": 40, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": -1287287398, - "flags": 34, + "nid": 50, + "flags": 17, "strtype": "OBJECT/Position", "intarray": [ 0, @@ -24767,26 +21995,32 @@ "InheritedType": 7 }, { - "nid": -1496742015, - "flags": 18, + "nid": 60, + "flags": 50, "strtype": "OBJECT/Size", "intarray": [ 100, - 32 + 1 ], "InheritedType": 7 }, { - "nid": -1782943105, + "nid": 70, "strtype": "OBJECT/Align", "strval": "CENTER", "InheritedType": 3 }, { - "nid": 1399929210, + "nid": 90, "strtype": "OBJECT/Flags", "InheritedType": 1 }, + { + "nid": 110, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, { "nid": 225, "flags": 1048576, @@ -24794,25 +22028,25 @@ "InheritedType": 1 }, { - "nid": 1850796180, + "nid": 230, "strtype": "OBJECT/Scrollable", "strval": "False", "InheritedType": 2 }, { - "nid": -159491933, + "nid": 260, "strtype": "OBJECT/Scroll_on_focus", "strval": "True", "InheritedType": 2 }, { - "nid": 1350463959, + "nid": 300, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 856373829, + "nid": 310, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 @@ -24830,146 +22064,44 @@ "InheritedType": 3 }, { - "nid": 215526904, + "nid": 320, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": -1997660530, - "strtype": "BUTTON/Edited", + "nid": 1010, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": 1020, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 1030, + "strtype": "LABEL/Text", + "strval": "Battery: unknown", + "InheritedType": 10 + }, + { + "nid": 1040, + "strtype": "LABEL/Recolor", "strval": "False", "InheritedType": 2 }, { "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 1727269484, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 10520, - "strtype": "_style/Bg_Color", - "intarray": [ - 255, - 255, - 255, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 10710, - "strtype": "_style/Border_Color", - "intarray": [ - 255, - 255, - 255, - 255 - ], - "InheritedType": 7 - }, - { - "nid": 10720, - "strtype": "_style/Border width", - "integer": 2, - "InheritedType": 6 - }, - { - "nid": 1531885935, - "strtype": "_style/Text_Font", - "strval": "Inter_Bold_14", - "InheritedType": 3 - } - ], - "InheritedType": 1 - } - ], - "nid": -694283308, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "childs": [], + "nid": 1050, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", "InheritedType": 11 - }, - { - "disabled": false, - "nid": 1000196, - "strtype": "_event/EventHandler", - "strval": "CLICKED", - "childs": [ - { - "nid": 1000197, - "strtype": "_event/name", - "strval": "UpdateButtonPress", - "InheritedType": 10 - }, - { - "nid": 1000198, - "strtype": "_event/condition_C", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000199, - "strtype": "_event/condition_P", - "strval": "", - "InheritedType": 10 - }, - { - "nid": 1000405, - "strtype": "_event/action", - "strval": "CHANGE SCREEN", - "childs": [ - { - "nid": 1000406, - "strtype": "CHANGE SCREEN/Name", - "strval": "CHANGE SCREEN", - "InheritedType": 10 - }, - { - "nid": 1000407, - "strtype": "CHANGE SCREEN/Call", - "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", - "InheritedType": 10 - }, - { - "nid": 1000408, - "strtype": "CHANGE SCREEN/CallC", - "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", - "InheritedType": 10 - }, - { - "nid": 1000409, - "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID44257677-980462S5474211", - "InheritedType": 9 - }, - { - "nid": 1000410, - "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "MOVE_LEFT", - "InheritedType": 3 - }, - { - "nid": 1000411, - "strtype": "CHANGE SCREEN/Speed", - "integer": 200, - "InheritedType": 6 - }, - { - "nid": 1000412, - "strtype": "CHANGE SCREEN/Delay", - "InheritedType": 6 - } - ], - "InheritedType": 10 - } - ], - "InheritedType": 4 } ], - "saved_objtypeKey": "BUTTON" + "saved_objtypeKey": "LABEL" } ], "dont_export": false, @@ -24978,7 +22110,7 @@ { "nid": 10, "strtype": "OBJECT/Name", - "strval": "VersionInfoContainer", + "strval": "DebugInfoContainer", "InheritedType": 10 }, { @@ -24987,13 +22119,13 @@ "InheritedType": 1 }, { - "Flow": 1, + "Flow": 0, "Wrap": false, "Reversed": false, - "MainAlignment": 1, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, "nid": 30, "strtype": "OBJECT/Layout_type", "strval": "No_layout", @@ -25102,15 +22234,6 @@ 0 ], "InheritedType": 7 - }, - { - "nid": 11120, - "strtype": "_style/Padding_RowCol", - "intarray": [ - 10, - 0 - ], - "InheritedType": 7 } ], "InheritedType": 1 @@ -25131,25 +22254,165 @@ } ], "saved_objtypeKey": "CONTAINER" + } + ], + "dont_export": false, + "locked": false, + "properties": [ + { + "nid": 10, + "strtype": "OBJECT/Name", + "strval": "AboutBody", + "InheritedType": 10 + }, + { + "nid": 20, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 1, + "TrackAlignment": 1, + "LayoutType": 1, + "nid": 30, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 40, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 50, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 60, + "flags": 34, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 55 + ], + "InheritedType": 7 + }, + { + "nid": 70, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 }, { - "guid": "GUID46283966-598858S163424193", - "deepid": 302579535, + "nid": 90, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 210, + "strtype": "OBJECT/Gesture_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 220, + "strtype": "OBJECT/Snappable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 225, + "strtype": "OBJECT/Scrolling", + "InheritedType": 1 + }, + { + "nid": 250, + "strtype": "OBJECT/Scroll_momentum", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 300, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "ACTIVE", + "InheritedType": 3 + }, + { + "nid": 310, + "strtype": "OBJECT/Scroll_direction", + "strval": "HOR", + "InheritedType": 3 + }, + { + "nid": 314, + "strtype": "OBJECT/Scroll_snap_x", + "strval": "START", + "InheritedType": 3 + }, + { + "nid": 315, + "strtype": "OBJECT/Scroll_snap_y", + "strval": "NONE", + "InheritedType": 3 + }, + { + "nid": 320, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": 1010, + "strtype": "CONTAINER/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 1020, + "strtype": "CONTAINER/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "CONTAINER" + }, + { + "guid": "GUID55138425-584583S4613314", + "deepid": -504243872, + "children": [ + { + "guid": "GUID1006935-584582S4613314", + "deepid": -58109746, "children": [ { - "guid": "GUID13241153-735049S127893325", - "deepid": -1788867930, + "guid": "GUID59795572-584581S4613314", + "deepid": 1201226262, "dont_export": false, "locked": false, "properties": [ { - "nid": 10, + "nid": -1254511039, "strtype": "OBJECT/Name", - "strval": "DebugInfoLabel", + "strval": "AboutMainActionButtonLabel", "InheritedType": 10 }, { - "nid": 20, + "nid": -200602366, "strtype": "OBJECT/Layout", "InheritedType": 1 }, @@ -25161,18 +22424,18 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 30, + "nid": -1821210004, "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": 40, + "nid": -917494144, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": 50, + "nid": -1494624756, "flags": 17, "strtype": "OBJECT/Position", "intarray": [ @@ -25182,28 +22445,29 @@ "InheritedType": 7 }, { - "nid": 60, - "flags": 50, + "nid": 740656273, + "flags": 51, "strtype": "OBJECT/Size", "intarray": [ - 100, + 1, 1 ], "InheritedType": 7 }, { - "nid": 70, + "nid": 464825741, "strtype": "OBJECT/Align", "strval": "CENTER", "InheritedType": 3 }, { - "nid": 90, + "nid": -547401375, + "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, { - "nid": 110, + "nid": -1219832836, "strtype": "OBJECT/Clickable", "strval": "False", "InheritedType": 2 @@ -25215,25 +22479,13 @@ "InheritedType": 1 }, { - "nid": 230, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 260, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 300, + "nid": 1183479928, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 310, + "nid": -128638457, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 @@ -25251,30 +22503,36 @@ "InheritedType": 3 }, { - "nid": 320, + "nid": 1651075844, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": 1010, + "nid": -63569678, + "strtype": "LABEL/Edited", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1019739255, "strtype": "LABEL/Label", "InheritedType": 1 }, { - "nid": 1020, + "nid": -806376166, "strtype": "LABEL/Long_mode", "strval": "WRAP", "InheritedType": 3 }, { - "nid": 1030, + "nid": 1369209118, "strtype": "LABEL/Text", - "strval": "Battery: unknown", + "strval": "Back", "InheritedType": 10 }, { - "nid": 1040, + "nid": 2021756096, "strtype": "LABEL/Recolor", "strval": "False", "InheritedType": 2 @@ -25282,26 +22540,27 @@ { "part": "lv.PART.MAIN", "childs": [], - "nid": 1050, + "nid": -1853652973, "strtype": "LABEL/Style_main", "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", "InheritedType": 11 } ], - "saved_objtypeKey": "LABEL" + "saved_objtypeKey": "LABEL", + "tree_closed": true } ], "dont_export": false, "locked": false, "properties": [ { - "nid": 10, + "nid": -1541957408, "strtype": "OBJECT/Name", - "strval": "DebugInfoContainer", + "strval": "AboutMainActionButton", "InheritedType": 10 }, { - "nid": 20, + "nid": 262184220, "strtype": "OBJECT/Layout", "InheritedType": 1 }, @@ -25313,19 +22572,19 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 30, + "nid": 778549521, "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": 40, + "nid": -869711188, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": 50, - "flags": 17, + "nid": -1287287398, + "flags": 34, "strtype": "OBJECT/Position", "intarray": [ 0, @@ -25334,33 +22593,27 @@ "InheritedType": 7 }, { - "nid": 60, - "flags": 34, + "nid": -1496742015, + "flags": 17, "strtype": "OBJECT/Size", "intarray": [ - 100, - 100 + 60, + 42 ], "InheritedType": 7 }, { - "nid": 70, + "nid": -1782943105, "strtype": "OBJECT/Align", "strval": "CENTER", "InheritedType": 3 }, { - "nid": 90, + "nid": 1399929210, "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, - { - "nid": 110, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, { "nid": 225, "flags": 1048576, @@ -25368,19 +22621,25 @@ "InheritedType": 1 }, { - "nid": 230, + "nid": 1850796180, "strtype": "OBJECT/Scrollable", "strval": "False", "InheritedType": 2 }, { - "nid": 300, + "nid": -159491933, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1350463959, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 310, + "nid": 856373829, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 @@ -25398,196 +22657,125 @@ "InheritedType": 3 }, { - "nid": 320, + "nid": 215526904, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, + { + "nid": -1997660530, + "strtype": "BUTTON/Edited", + "strval": "False", + "InheritedType": 2 + }, { "part": "lv.PART.MAIN", "childs": [ { - "nid": 10000, + "nid": 1727269484, "strtype": "_style/StyleState", "strval": "DEFAULT", "childs": [ { - "nid": 11110, - "strtype": "_style/Padding", - "intarray": [ - 40, - 40, - 0, - 0 - ], - "InheritedType": 7 + "nid": 1531885935, + "strtype": "_style/Text_Font", + "strval": "Inter_Bold_14", + "InheritedType": 3 + } + ], + "InheritedType": 1 + } + ], + "nid": -694283308, + "strtype": "BUTTON/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", + "InheritedType": 11 + }, + { + "disabled": false, + "nid": 1360830500, + "strtype": "_event/EventHandler", + "strval": "CLICKED", + "childs": [ + { + "nid": 1634052113, + "strtype": "_custom/name", + "strval": "AboutBackButtonPress", + "InheritedType": 10 + }, + { + "nid": -1742277201, + "strtype": "_custom/condition_C", + "strval": "", + "InheritedType": 10 + }, + { + "nid": 1809884515, + "strtype": "_custom/condition_P", + "strval": "", + "InheritedType": 10 + }, + { + "nid": -1016668760, + "strtype": "_event/action", + "strval": "CHANGE SCREEN", + "childs": [ + { + "nid": 357483472, + "strtype": "CHANGE SCREEN/Name", + "strval": "CHANGE SCREEN", + "InheritedType": 10 + }, + { + "nid": 167582766, + "strtype": "CHANGE SCREEN/Call", + "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", + "InheritedType": 10 + }, + { + "nid": 2111688907, + "strtype": "CHANGE SCREEN/CallC", + "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", + "InheritedType": 10 + }, + { + "nid": -742599003, + "strtype": "CHANGE SCREEN/Screen_to", + "strval": "GUID96807463-926932S376370", + "InheritedType": 9 + }, + { + "nid": 2027466217, + "strtype": "CHANGE SCREEN/Fade_mode", + "strval": "MOVE_RIGHT", + "InheritedType": 3 + }, + { + "nid": 2030626290, + "strtype": "CHANGE SCREEN/Speed", + "integer": 200, + "InheritedType": 6 + }, + { + "nid": 466299966, + "strtype": "CHANGE SCREEN/Delay", + "InheritedType": 6 } ], - "InheritedType": 1 + "InheritedType": 10 } ], - "nid": 1010, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 1020, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 + "InheritedType": 4 } ], - "saved_objtypeKey": "CONTAINER" - } - ], - "dont_export": false, - "locked": false, - "properties": [ - { - "nid": 10, - "strtype": "OBJECT/Name", - "strval": "AboutBody", - "InheritedType": 10 - }, - { - "nid": 20, - "strtype": "OBJECT/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 1, - "TrackAlignment": 1, - "LayoutType": 1, - "nid": 30, - "strtype": "OBJECT/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 40, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": 50, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 60, - "flags": 34, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 55 - ], - "InheritedType": 7 - }, - { - "nid": 70, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 90, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 210, - "strtype": "OBJECT/Gesture_bubble", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 220, - "strtype": "OBJECT/Snappable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 225, - "strtype": "OBJECT/Scrolling", - "InheritedType": 1 - }, - { - "nid": 250, - "strtype": "OBJECT/Scroll_momentum", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 300, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "ACTIVE", - "InheritedType": 3 - }, - { - "nid": 310, - "strtype": "OBJECT/Scroll_direction", - "strval": "HOR", - "InheritedType": 3 - }, - { - "nid": 314, - "strtype": "OBJECT/Scroll_snap_x", - "strval": "START", - "InheritedType": 3 - }, - { - "nid": 315, - "strtype": "OBJECT/Scroll_snap_y", - "strval": "NONE", - "InheritedType": 3 - }, - { - "nid": 320, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": 1010, - "strtype": "CONTAINER/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", - "InheritedType": 11 + "saved_objtypeKey": "BUTTON" }, { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 1020, - "strtype": "CONTAINER/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - } - ], - "saved_objtypeKey": "CONTAINER" - }, - { - "guid": "GUID55138425-584583S4613314", - "deepid": -504243872, - "children": [ - { - "guid": "GUID1006935-584582S4613314", + "guid": "GUID21823098-855623S32546", "deepid": -58109746, "children": [ { - "guid": "GUID59795572-584581S4613314", + "guid": "GUID33722496-855622S32546", "deepid": 1201226262, "dont_export": false, "locked": false, @@ -25595,7 +22783,7 @@ { "nid": -1254511039, "strtype": "OBJECT/Name", - "strval": "AboutMainActionButtonLabel", + "strval": "UpdateButtonLabel", "InheritedType": 10 }, { @@ -25715,7 +22903,7 @@ { "nid": 1369209118, "strtype": "LABEL/Text", - "strval": "Back", + "strval": "Update", "InheritedType": 10 }, { @@ -25743,7 +22931,7 @@ { "nid": -1541957408, "strtype": "OBJECT/Name", - "strval": "AboutMainActionButton", + "strval": "UpdateButton", "InheritedType": 10 }, { @@ -25784,7 +22972,7 @@ "flags": 17, "strtype": "OBJECT/Size", "intarray": [ - 80, + 60, 42 ], "InheritedType": 7 @@ -25797,7 +22985,6 @@ }, { "nid": 1399929210, - "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, @@ -25880,71 +23067,71 @@ }, { "disabled": false, - "nid": 1360830500, + "nid": 1000196, "strtype": "_event/EventHandler", "strval": "CLICKED", "childs": [ { - "nid": 1634052113, - "strtype": "_custom/name", - "strval": "AboutBackButtonPress", + "nid": 1000197, + "strtype": "_event/name", + "strval": "UpdateButtonPress", "InheritedType": 10 }, { - "nid": -1742277201, - "strtype": "_custom/condition_C", + "nid": 1000198, + "strtype": "_event/condition_C", "strval": "", "InheritedType": 10 }, { - "nid": 1809884515, - "strtype": "_custom/condition_P", + "nid": 1000199, + "strtype": "_event/condition_P", "strval": "", "InheritedType": 10 }, { - "nid": -1016668760, + "nid": 1000405, "strtype": "_event/action", "strval": "CHANGE SCREEN", "childs": [ { - "nid": 357483472, + "nid": 1000406, "strtype": "CHANGE SCREEN/Name", "strval": "CHANGE SCREEN", "InheritedType": 10 }, { - "nid": 167582766, + "nid": 1000407, "strtype": "CHANGE SCREEN/Call", "strval": "ChangeScreen( <{Screen_to}>, lv.SCR_LOAD_ANIM.<{Fade_mode}>, <{Speed}>, <{Delay}>)", "InheritedType": 10 }, { - "nid": 2111688907, + "nid": 1000408, "strtype": "CHANGE SCREEN/CallC", "strval": "_ui_screen_change( &<{Screen_to}>, LV_SCR_LOAD_ANIM_<{Fade_mode}>, <{Speed}>, <{Delay}>, &<{Screen_to}>_screen_init);", "InheritedType": 10 }, { - "nid": -742599003, + "nid": 1000409, "strtype": "CHANGE SCREEN/Screen_to", - "strval": "GUID96807463-926932S376370", + "strval": "GUID44257677-980462S5474211", "InheritedType": 9 }, { - "nid": 2027466217, + "nid": 1000410, "strtype": "CHANGE SCREEN/Fade_mode", - "strval": "MOVE_RIGHT", + "strval": "MOVE_LEFT", "InheritedType": 3 }, { - "nid": 2030626290, + "nid": 1000411, "strtype": "CHANGE SCREEN/Speed", "integer": 200, "InheritedType": 6 }, { - "nid": 466299966, + "nid": 1000412, "strtype": "CHANGE SCREEN/Delay", "InheritedType": 6 } @@ -25955,8 +23142,7 @@ "InheritedType": 4 } ], - "saved_objtypeKey": "BUTTON", - "tree_closed": true + "saved_objtypeKey": "BUTTON" } ], "dont_export": false, @@ -26079,7 +23265,25 @@ }, { "part": "lv.PART.MAIN", - "childs": [], + "childs": [ + { + "nid": 10000, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 11120, + "strtype": "_style/Padding_RowCol", + "intarray": [ + 0, + 10 + ], + "InheritedType": 7 + } + ], + "InheritedType": 1 + } + ], "nid": 318008791, "strtype": "CONTAINER/Style_main", "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", @@ -29745,7 +26949,7 @@ "uiExportFolderPath": "...\\src\\ui", "projectExportFolderPath": ".../", "custom_variable_prefix": "uic", - "backup_cnt": 1438, + "backup_cnt": 1458, "autosave_cnt": 0, "group_color_cnt": 0, "lvgl_version": "8.3.11", @@ -29763,7 +26967,7 @@ "naming": "Name", "naming_force_lowercase": false, "naming_add_subcomponent": false, - "nidcnt": 1000429, + "nidcnt": 1000501, "BitDepth": 16, "Name": "SquareLine_Project" } diff --git a/firmware/PubRemote_events.py b/firmware/PubRemote_events.py index e1b27922..04a04ae2 100644 --- a/firmware/PubRemote_events.py +++ b/firmware/PubRemote_events.py @@ -278,3 +278,39 @@ def update_secondary_button_press(event_struct): def double_press_action_select_change(event_struct): return + +def stats_screen_gesture_down(event_struct): + return + + +def single_press_action_select_change(event_struct): + return + + +def long_press_action_select_change(event_struct): + return + + +def primary_stat_long_press(event_struct): + return + + +def primary_stat_swipe_left(event_struct): + return + + +def primary_stat_swipe_right(event_struct): + return + + +def secondary_stat_swipe_left(event_struct): + return + + +def secondary_stat_swipe_right(event_struct): + return + + +def secondary_stat_long_press(event_struct): + return + diff --git a/firmware/src/config.h b/firmware/src/config.h index e5b6f434..d108b266 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -90,4 +90,9 @@ #define HAPTIC_ENABLED 0 #endif +// Timezone configuration (default to US Eastern Time) +#ifndef DEFAULT_TIMEZONE + #define DEFAULT_TIMEZONE "EST5EDT,M3.2.0,M11.1.0" +#endif + #endif \ No newline at end of file diff --git a/firmware/src/main.c b/firmware/src/main.c index 02e8f8df..03cd3c18 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -29,12 +29,17 @@ #include "ui/ui.h" #include #include +#include static const char *TAG = "PUBREMOTE-MAIN"; #define DEBUG_MEMORY 0 void app_main(void) { + // Initialize timezone (default to US Eastern Time) + setenv("TZ", DEFAULT_TIMEZONE, 1); + tzset(); + // Enable power for core peripherals acc1_power_set_level(1); // Core setup diff --git a/firmware/src/remote/powermanagement.c b/firmware/src/remote/powermanagement.c index 121f2e35..1407209a 100644 --- a/firmware/src/remote/powermanagement.c +++ b/firmware/src/remote/powermanagement.c @@ -61,7 +61,7 @@ static void power_state_update() { is_power_connected = powerState.isPowered; } -static bool get_button_pressed() { +bool get_button_pressed() { return gpio_get_level(PRIMARY_BUTTON) == JOYSTICK_BUTTON_LEVEL; } @@ -441,7 +441,9 @@ void power_management_init() { ESP_LOGI(TAG, "Not a deep sleep wakeup or other wake-up sources."); break; } + reset_sleep_timer(); + if (get_button_pressed()) { // Enable the power button once released if it wasn't already register_primary_button_cb(BUTTON_EVENT_UP, power_button_initial_release); diff --git a/firmware/src/remote/powermanagement.h b/firmware/src/remote/powermanagement.h index 09adda08..99d75c8b 100644 --- a/firmware/src/remote/powermanagement.h +++ b/firmware/src/remote/powermanagement.h @@ -2,6 +2,7 @@ #define __POWERMANAGEMENT_H #include "lvgl.h" +bool get_button_pressed(); void acc1_power_set_level(bool enable); void acc2_power_set_level(uint8_t level); void reset_sleep_timer(); diff --git a/firmware/src/remote/remoteinputs.c b/firmware/src/remote/remoteinputs.c index a7c21f71..9c7b5d88 100644 --- a/firmware/src/remote/remoteinputs.c +++ b/firmware/src/remote/remoteinputs.c @@ -279,6 +279,7 @@ void buttons_deinit() { gpio_btn_handle = NULL; } } + void register_primary_button_cb(ButtonEvent event, button_callback_t cb) { switch (event) { case BUTTON_EVENT_DOWN: diff --git a/firmware/src/remote/settings.c b/firmware/src/remote/settings.c index 11757657..ce8f28a5 100644 --- a/firmware/src/remote/settings.c +++ b/firmware/src/remote/settings.c @@ -23,7 +23,9 @@ static const uint8_t DEFAULT_PEER_ADDR[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} static const DarkTextOptions DEFAULT_DARK_TEXT = DARK_TEXT_DISABLED; static const BoardBatteryDisplayOption DEFAULT_BATTERY_DISPLAY = BATTERY_DISPLAY_PERCENT; static const PocketModeOptions DEFAULT_POCKET_MODE = POCKET_MODE_DISABLED; -static const StatsDoublePressAction DEFAULT_DOUBLE_PRESS_ACTION = DOUBLE_PRESS_ACTION_NONE; +static const StatsButtonPressAction DEFAULT_SINGLE_PRESS_ACTION = BUTTON_PRESS_ACTION_NONE; +static const StatsButtonPressAction DEFAULT_DOUBLE_PRESS_ACTION = BUTTON_PRESS_ACTION_NONE; +static const StatsButtonPressAction DEFAULT_LONG_PRESS_ACTION = BUTTON_PRESS_ACTION_SHUTDOWN; DeviceSettings device_settings = { .bl_level = BL_LEVEL_DEFAULT, @@ -36,7 +38,9 @@ DeviceSettings device_settings = { .dark_text = DEFAULT_DARK_TEXT, .battery_display = DEFAULT_BATTERY_DISPLAY, .pocket_mode = DEFAULT_POCKET_MODE, + .single_press_action = DEFAULT_SINGLE_PRESS_ACTION, .double_press_action = DEFAULT_DOUBLE_PRESS_ACTION, + .long_press_action = DEFAULT_LONG_PRESS_ACTION, }; CalibrationSettings calibration_settings = { @@ -296,7 +300,9 @@ void save_device_settings() { nvs_write_int("dark_text", device_settings.dark_text); nvs_write_int("battery_display", device_settings.battery_display); nvs_write_int("pocket_mode", device_settings.pocket_mode); + nvs_write_int("stats_sp", device_settings.single_press_action); nvs_write_int("stats_dp", device_settings.double_press_action); + nvs_write_int("stats_lp", device_settings.long_press_action); } esp_err_t save_wifi_ssid(const char *ssid) { @@ -503,10 +509,18 @@ esp_err_t settings_init() { device_settings.pocket_mode = nvs_read_int("pocket_mode", &temp_setting_value) == ESP_OK ? (bool)temp_setting_value : POCKET_MODE_DISABLED; + device_settings.single_press_action = nvs_read_int("stats_sp", &temp_setting_value) == ESP_OK + ? (StatsButtonPressAction)temp_setting_value + : DEFAULT_SINGLE_PRESS_ACTION; + device_settings.double_press_action = nvs_read_int("stats_dp", &temp_setting_value) == ESP_OK - ? (StatsDoublePressAction)temp_setting_value + ? (StatsButtonPressAction)temp_setting_value : DEFAULT_DOUBLE_PRESS_ACTION; + device_settings.long_press_action = nvs_read_int("stats_lp", &temp_setting_value) == ESP_OK + ? (StatsButtonPressAction)temp_setting_value + : DEFAULT_LONG_PRESS_ACTION; + // Reading calibration settings calibration_settings.x_min = nvs_read_int("x_min", &temp_setting_value) == ESP_OK ? (uint16_t)temp_setting_value : STICK_MIN_VAL; diff --git a/firmware/src/remote/settings.h b/firmware/src/remote/settings.h index 331cc3bd..e300dce9 100644 --- a/firmware/src/remote/settings.h +++ b/firmware/src/remote/settings.h @@ -86,9 +86,14 @@ typedef enum { } PocketModeOptions; typedef enum { - DOUBLE_PRESS_ACTION_NONE, - DOUBLE_PRESS_ACTION_OPEN_MENU, -} StatsDoublePressAction; + BUTTON_PRESS_ACTION_NONE, + BUTTON_PRESS_ACTION_SHUTDOWN, + BUTTON_PRESS_ACTION_OPEN_MENU, + BUTTON_PRESS_ACTION_TOGGLE_DISPLAY, + BUTTON_PRESS_ACTION_TOGGLE_POCKET_MODE, + BUTTON_PRESS_ACTION_CYCLE_SECONDARY_STAT, + BUTTON_PRESS_ACTION_CYCLE_BOARD_BATTERY_DISPLAY, +} StatsButtonPressAction; #define DEFAULT_PAIRING_SECRET_CODE -1 @@ -121,7 +126,9 @@ typedef struct { bool dark_text; BoardBatteryDisplayOption battery_display; PocketModeOptions pocket_mode; - StatsDoublePressAction double_press_action; + StatsButtonPressAction single_press_action; + StatsButtonPressAction double_press_action; + StatsButtonPressAction long_press_action; } DeviceSettings; uint64_t get_auto_off_ms(); diff --git a/firmware/src/screens/about_screen.c b/firmware/src/screens/about_screen.c index 76ea0f78..a7f7d120 100644 --- a/firmware/src/screens/about_screen.c +++ b/firmware/src/screens/about_screen.c @@ -62,6 +62,7 @@ void about_screen_load_start(lv_event_t *e) { if (LVGL_lock(0)) { apply_ui_scale(NULL); + update_version_info_label(); update_battery_percentage_label(); lv_obj_add_event_cb(ui_AboutBody, paged_scroll_event_cb, LV_EVENT_SCROLL, ui_AboutHeader); diff --git a/firmware/src/screens/calibration_screen.c b/firmware/src/screens/calibration_screen.c index 46f574a2..f12e0260 100644 --- a/firmware/src/screens/calibration_screen.c +++ b/firmware/src/screens/calibration_screen.c @@ -269,7 +269,9 @@ void calibration_screen_load_start(lv_event_t *e) { if (LVGL_lock(0)) { apply_ui_scale(NULL); + create_navigation_group(ui_CalibrationFooter); + LVGL_unlock(); } update_calibration_screen(); diff --git a/firmware/src/screens/menu_screen.c b/firmware/src/screens/menu_screen.c index 831a363e..a4551deb 100644 --- a/firmware/src/screens/menu_screen.c +++ b/firmware/src/screens/menu_screen.c @@ -1,3 +1,4 @@ +#include "screens/menu_screen.h" #include "esp_log.h" #include "esp_system.h" #include "freertos/FreeRTOS.h" @@ -11,13 +12,34 @@ static const char *TAG = "PUBREMOTE-MENU_SCREEN"; +lv_obj_t *ui_MenuBackButton = NULL, *ui_MenuBackButtonLabel = NULL, *ui_MenuConnectButton = NULL, + *ui_MenuConnectButtonLabel = NULL, *ui_MenuPocketModeButton = NULL, *ui_MenuPocketModeButtonLabel = NULL, + *ui_MenuSettingsButton = NULL, *ui_MenuSettingsButtonLabel = NULL, *ui_MenuCalibrateButton = NULL, + *ui_MenuCalibrateButtonLabel = NULL, *ui_MenuPairButton = NULL, *ui_MenuPairButtonLabel = NULL, + *ui_MenuAboutButton = NULL, *ui_MenuAboutButtonLabel = NULL, *ui_MenuShutdownButton = NULL, + *ui_MenuShutdownButtonLabel = NULL; + static bool confirm_reset = false; +void toggle_pocket_mode() { + // Toggle pocket mode + if (device_settings.pocket_mode == POCKET_MODE_DISABLED) { + device_settings.pocket_mode = POCKET_MODE_ENABLED; + } + else { + device_settings.pocket_mode = POCKET_MODE_DISABLED; + } + + save_device_settings(); +} + static void set_reset_mode(bool mode) { confirm_reset = mode; + if (confirm_reset) { lv_label_set_text(ui_MenuShutdownButtonLabel, "Factory reset?"); } + else { lv_label_set_text(ui_MenuShutdownButtonLabel, "Shutdown"); } @@ -28,13 +50,105 @@ bool is_menu_screen_active() { return active_screen == ui_MenuScreen; } +void add_main_menu_navigation_buttons(lv_obj_t *body_item) { + // Define button entries and their associated actions/screens + typedef struct { + lv_obj_t **btn; + lv_obj_t **label; + const char *text; + bool hidden; + void (*short_press)(lv_event_t *e); + void (*long_press)(lv_event_t *e); + void (*down)(lv_event_t *e); + } menu_button_t; + + menu_button_t button_entries[] = { + {&ui_MenuBackButton, &ui_MenuBackButtonLabel, "Back", false, menu_back_press, NULL, NULL}, + {&ui_MenuConnectButton, &ui_MenuConnectButtonLabel, "Connect", true, menu_connect_press, NULL, NULL}, + {&ui_MenuPocketModeButton, &ui_MenuPocketModeButtonLabel, "Enable Pocket Mode", false, menu_pocket_mode_press, + NULL, NULL}, + {&ui_MenuSettingsButton, &ui_MenuSettingsButtonLabel, "Settings", false, menu_settings_press, NULL, NULL}, + {&ui_MenuCalibrateButton, &ui_MenuCalibrateButtonLabel, "Calibration", false, menu_calibration_press, NULL, NULL}, + {&ui_MenuPairButton, &ui_MenuPairButtonLabel, "Pairing", false, menu_pair_press, NULL, NULL}, + {&ui_MenuAboutButton, &ui_MenuAboutButtonLabel, "About", false, menu_about_press, NULL, NULL}, + {&ui_MenuShutdownButton, &ui_MenuShutdownButtonLabel, "Shutdown", false, menu_shutdown_button_press, + menu_shutdown_button_long_press, menu_shutdown_button_down}}; + + int total_buttons = sizeof(button_entries) / sizeof(button_entries[0]); + + for (uint32_t i = 0; i < total_buttons; i++) { + lv_obj_t *item = NULL; + + if (lv_obj_get_child_cnt(body_item) > i) { + item = lv_obj_get_child(body_item, i); + + if (item == NULL) { + item = lv_btn_create(body_item); + } + } + else { + item = lv_btn_create(body_item); + } + + lv_obj_set_height(item, 42); + lv_obj_set_width(item, lv_pct(100)); + lv_obj_set_align(item, LV_ALIGN_CENTER); + lv_obj_add_flag(item, LV_OBJ_FLAG_SCROLL_ON_FOCUS); + lv_obj_clear_flag(item, LV_OBJ_FLAG_SCROLLABLE); + + if (button_entries[i].hidden) { + lv_obj_add_flag(item, LV_OBJ_FLAG_HIDDEN); + } + else { + lv_obj_clear_flag(item, LV_OBJ_FLAG_HIDDEN); + } + + if (button_entries[i].short_press) { + lv_obj_add_event_cb(item, button_entries[i].short_press, LV_EVENT_CLICKED, NULL); + } + + if (button_entries[i].long_press) { + lv_obj_add_event_cb(item, button_entries[i].long_press, LV_EVENT_LONG_PRESSED, NULL); + } + + if (button_entries[i].down) { + lv_obj_add_event_cb(item, button_entries[i].down, LV_EVENT_PRESSED, NULL); + } + + lv_obj_t *label = NULL; + + if (lv_obj_get_child_cnt(item) > 0) { + label = lv_obj_get_child(item, 0); + } + else { + label = lv_label_create(item); + } + + lv_obj_set_width(label, LV_SIZE_CONTENT); + lv_obj_set_height(label, LV_SIZE_CONTENT); + lv_obj_set_align(label, LV_ALIGN_CENTER); + lv_label_set_text(label, button_entries[i].text); + + // Associate the created objects with the global pointers via the struct + *(button_entries[i].btn) = item; + *(button_entries[i].label) = label; + } +} + // Event handlers void menu_screen_load_start(lv_event_t *e) { ESP_LOGI(TAG, "Menu screen load start"); // Permanent screen - don't apply scale if (LVGL_lock(0)) { + // Add menu buttons if not already present + if (lv_obj_get_child_cnt(ui_MenuBody) == 0) { + add_main_menu_navigation_buttons(ui_MenuBody); + apply_ui_scale(ui_MenuBody); + } + create_navigation_group(ui_MenuBody); + LVGL_unlock(); } } @@ -79,6 +193,15 @@ void enter_deep_sleep(lv_event_t *e) { enter_sleep(); } +void menu_back_press(lv_event_t *e) { + ESP_LOGI(TAG, "Back button pressed"); + + if (LVGL_lock(0)) { + _ui_screen_change(&ui_StatsScreen, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_StatsScreen_screen_init); + LVGL_unlock(); + } +} + void menu_connect_press(lv_event_t *e) { ESP_LOGI(TAG, "Connect button pressed"); @@ -98,18 +221,46 @@ void menu_connect_press(lv_event_t *e) { void menu_pocket_mode_press(lv_event_t *e) { ESP_LOGI(TAG, "Pocket mode button pressed"); - // Toggle pocket mode - if (device_settings.pocket_mode == POCKET_MODE_DISABLED) { - device_settings.pocket_mode = POCKET_MODE_ENABLED; + toggle_pocket_mode(); + + if (LVGL_lock(0)) { + _ui_screen_change(&ui_StatsScreen, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_StatsScreen_screen_init); + LVGL_unlock(); } - else { - device_settings.pocket_mode = POCKET_MODE_DISABLED; +} + +void menu_settings_press(lv_event_t *e) { + ESP_LOGI(TAG, "Settings button pressed"); + + if (LVGL_lock(0)) { + _ui_screen_change(&ui_SettingsScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_SettingsScreen_screen_init); + LVGL_unlock(); } +} - save_device_settings(); +void menu_calibration_press(lv_event_t *e) { + ESP_LOGI(TAG, "Calibration button pressed"); if (LVGL_lock(0)) { - _ui_screen_change(&ui_StatsScreen, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_StatsScreen_screen_init); + _ui_screen_change(&ui_CalibrationScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_CalibrationScreen_screen_init); + LVGL_unlock(); + } +} + +void menu_pair_press(lv_event_t *e) { + ESP_LOGI(TAG, "Pairing button pressed"); + + if (LVGL_lock(0)) { + _ui_screen_change(&ui_PairingScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_PairingScreen_screen_init); + LVGL_unlock(); + } +} + +void menu_about_press(lv_event_t *e) { + ESP_LOGI(TAG, "About button pressed"); + + if (LVGL_lock(0)) { + _ui_screen_change(&ui_AboutScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_AboutScreen_screen_init); LVGL_unlock(); } } @@ -117,7 +268,11 @@ void menu_pocket_mode_press(lv_event_t *e) { // Track press event so we can bind long and short press events without overlap static bool is_press_handled = false; -void shutdown_button_press(lv_event_t *e) { +void menu_shutdown_button_down(lv_event_t *e) { + is_press_handled = false; +} + +void menu_shutdown_button_press(lv_event_t *e) { if (is_press_handled) { ESP_LOGI(TAG, "Shutdown button press already handled"); return; @@ -133,7 +288,7 @@ void shutdown_button_press(lv_event_t *e) { } } -void shutdown_button_long_press(lv_event_t *e) { +void menu_shutdown_button_long_press(lv_event_t *e) { if (is_press_handled) { ESP_LOGI(TAG, "Shutdown button long press already handled"); return; @@ -142,7 +297,3 @@ void shutdown_button_long_press(lv_event_t *e) { set_reset_mode(!confirm_reset); is_press_handled = true; } - -void shutdown_button_down(lv_event_t *e) { - is_press_handled = false; -} \ No newline at end of file diff --git a/firmware/src/screens/menu_screen.h b/firmware/src/screens/menu_screen.h index c9a43369..5d85119a 100644 --- a/firmware/src/screens/menu_screen.h +++ b/firmware/src/screens/menu_screen.h @@ -4,12 +4,21 @@ bool is_menu_screen_active(); +void toggle_pocket_mode(); +void add_main_menu_navigation_buttons(lv_obj_t *body_item); void menu_screen_load_start(lv_event_t *e); void menu_screen_loaded(lv_event_t *e); void menu_screen_unload_start(lv_event_t *e); void enter_deep_sleep(lv_event_t *e); +void menu_back_press(lv_event_t *e); void menu_connect_press(lv_event_t *e); -void shutdown_button_long_press(lv_event_t *e); -void shutdown_button_down(lv_event_t *e); +void menu_pocket_mode_press(lv_event_t *e); +void menu_settings_press(lv_event_t *e); +void menu_calibration_press(lv_event_t *e); +void menu_pair_press(lv_event_t *e); +void menu_about_press(lv_event_t *e); +void menu_shutdown_button_down(lv_event_t *e); +void menu_shutdown_button_press(lv_event_t *e); +void menu_shutdown_button_long_press(lv_event_t *e); #endif \ No newline at end of file diff --git a/firmware/src/screens/pairing_screen.c b/firmware/src/screens/pairing_screen.c index b991aed0..889dcde4 100644 --- a/firmware/src/screens/pairing_screen.c +++ b/firmware/src/screens/pairing_screen.c @@ -16,10 +16,14 @@ bool is_pairing_screen_active() { // Event handlers void pairing_screen_load_start(lv_event_t *e) { ESP_LOGI(TAG, "Pairing screen load start"); + led_set_effect_rainbow(); + if (LVGL_lock(0)) { apply_ui_scale(NULL); + create_navigation_group(ui_PairingFooter); + LVGL_unlock(); } } diff --git a/firmware/src/screens/settings_screen.c b/firmware/src/screens/settings_screen.c index da63bde8..37fbb8cf 100644 --- a/firmware/src/screens/settings_screen.c +++ b/firmware/src/screens/settings_screen.c @@ -15,6 +15,7 @@ bool is_settings_screen_active() { // Event handlers void settings_screen_load_start(lv_event_t *e) { ESP_LOGI(TAG, "Settings screen load start"); + if (LVGL_lock(-1)) { apply_ui_scale(NULL); @@ -25,9 +26,15 @@ void settings_screen_load_start(lv_event_t *e) { // Brightness lv_slider_set_value(ui_BrightnessSlider, device_settings.bl_level, LV_ANIM_OFF); + // Single press action + lv_dropdown_set_selected(ui_SinglePressAction, device_settings.single_press_action); + // Double press action lv_dropdown_set_selected(ui_DoublePressAction, device_settings.double_press_action); + // Long press action + lv_dropdown_set_selected(ui_LongPressAction, device_settings.long_press_action); + // Screen rotation lv_dropdown_set_selected(ui_Rotation, device_settings.screen_rotation); @@ -75,9 +82,19 @@ void brightness_slider_change(lv_event_t *e) { display_set_bl_level(device_settings.bl_level); } +void single_press_action_select_change(lv_event_t *e) { + int val = lv_dropdown_get_selected(ui_SinglePressAction); + device_settings.single_press_action = (StatsButtonPressAction)(val & 0xFF); +} + void double_press_action_select_change(lv_event_t *e) { int val = lv_dropdown_get_selected(ui_DoublePressAction); - device_settings.double_press_action = (StatsDoublePressAction)(val & 0xFF); + device_settings.double_press_action = (StatsButtonPressAction)(val & 0xFF); +} + +void long_press_action_select_change(lv_event_t *e) { + int val = lv_dropdown_get_selected(ui_LongPressAction); + device_settings.long_press_action = (StatsButtonPressAction)(val & 0xFF); } void auto_off_select_change(lv_event_t *e) { diff --git a/firmware/src/screens/stats_screen.c b/firmware/src/screens/stats_screen.c index 07c21b82..b2e3114b 100644 --- a/firmware/src/screens/stats_screen.c +++ b/firmware/src/screens/stats_screen.c @@ -3,13 +3,16 @@ #include "remote/display.h" #include "remote/remoteinputs.h" #include "remote/vehicle_state.h" +#include "screens/menu_screen.h" #include "utilities/screen_utils.h" #include #include #include #include +#include #include #include +#include #include static const char *TAG = "PUBREMOTE-STATS_SCREEN"; @@ -19,24 +22,14 @@ StatsScreenDisplayOptions stat_display_options = { .secondary_stat = STAT_DISPLAY_DUTY, }; -static void change_stat_display(int direction) { - if (direction > 0) { - stat_display_options.primary_stat = (stat_display_options.primary_stat + 1) % 4; - } - else { - stat_display_options.primary_stat = (stat_display_options.primary_stat + 3) % 4; - } -} - bool is_stats_screen_active() { lv_obj_t *active_screen = lv_scr_act(); return active_screen == ui_StatsScreen; } -static uint8_t max_speed = 0; - static void update_speed_dial_display() { static float last_value = 0; + static uint8_t max_speed = 0; // Ensure the value has changed if (last_value == remoteStats.speed) { @@ -173,6 +166,16 @@ static void update_pocket_mode_display() { } } +static void update_primary_stat(int direction) { + // Currently unnused + // if (direction > 0) { + // stat_display_options.primary_stat = (stat_display_options.primary_stat + 1) % 4; + // } + // else { + // stat_display_options.primary_stat = (stat_display_options.primary_stat + 3) % 4; + // } +} + static void update_primary_stat_display() { static float last_value = 0; @@ -274,141 +277,139 @@ static void update_header_display() { last_should_show_board_state = should_show_board_state; } -static void update_duty_cycle_display() { - static float last_value = 0; - - // Ensure the value has changed - if (last_value == remoteStats.dutyCycle) { - return; +static char *get_connection_state_label() { + switch (connection_state) { + case CONNECTION_STATE_CONNECTED: + return "Connected"; + case CONNECTION_STATE_CONNECTING: + return "Connecting"; + case CONNECTION_STATE_RECONNECTING: + return "Reconnecting"; + case CONNECTION_STATE_DISCONNECTED: + return "Disconnected"; + default: + return "Disconnected"; } - - // Update the displayed text - char *formattedString; - asprintf(&formattedString, "Duty Cycle: %d%%", remoteStats.dutyCycle); - lv_label_set_text(ui_DutyCycleLabel, formattedString); - free(formattedString); - - // Update the last value - last_value = remoteStats.dutyCycle; } -static void update_temps_display() { - static float last_motor_temp_value = 0.0; - static float last_controller_temp_value = 0.0; - - // Ensure the value has changed - if (last_motor_temp_value == remoteStats.motorTemp && last_controller_temp_value == remoteStats.controllerTemp) { - return; +static void update_secondary_stat(int direction) { + if (direction > 0) { + stat_display_options.secondary_stat = (stat_display_options.secondary_stat + 1) % 4; + ESP_LOGI(TAG, "Updated secondary stat forward: %d", stat_display_options.secondary_stat); + } + else { + stat_display_options.secondary_stat = (stat_display_options.secondary_stat + 4) % 4; + ESP_LOGI(TAG, "Updated secondary stat backward: %d", stat_display_options.secondary_stat); } +} - bool should_convert = device_settings.temp_units == TEMP_UNITS_FAHRENHEIT; - float converted_mot_val = remoteStats.motorTemp; - float converted_cont_val = remoteStats.controllerTemp; - char temp_unit_label[] = CELSIUS_LABEL; +static void update_secondary_stat_display() { + static SecondaryStatDisplayOption last_option = -1; - if (should_convert) { - converted_mot_val = convert_c_to_f(remoteStats.motorTemp); - converted_cont_val = convert_c_to_f(remoteStats.controllerTemp); - strncpy(temp_unit_label, FAHRENHEIT_LABEL, sizeof(temp_unit_label) - 1); + if (connection_state != CONNECTION_STATE_CONNECTED) { + lv_label_set_text(ui_SecondaryStat, get_connection_state_label()); + last_option = -1; // Reset last option to force update on reconnect } - // Update the displayed text - char *formattedString; - asprintf(&formattedString, "M: %.0f°%s | C: %.0f°%s", converted_mot_val, temp_unit_label, converted_cont_val, - temp_unit_label); - lv_label_set_text(ui_TempsLabel, formattedString); - free(formattedString); + else { + static int last_duty_cycle_value = -1; + static float last_motor_temp_value = 0.0; + static float last_controller_temp_value = 0.0; + static float last_trip_distance_value = -1; // Set to -1 to force initial update + char *formattedString; + + // Update duty cycle display + if (stat_display_options.secondary_stat == STAT_DISPLAY_DUTY) { + // Ensure the value has changed + if (last_duty_cycle_value == remoteStats.dutyCycle && last_option == stat_display_options.secondary_stat) { + return; + } + + // Update the displayed text + asprintf(&formattedString, "Duty Cycle: %d%%", remoteStats.dutyCycle); + + // Update the last value + last_duty_cycle_value = remoteStats.dutyCycle; + } - // Update the last value - last_motor_temp_value = remoteStats.motorTemp; - last_controller_temp_value = remoteStats.controllerTemp; -} + // Update temperature display + else if (stat_display_options.secondary_stat == STAT_DISPLAY_TEMP) { + + // Ensure the value has changed + if (last_motor_temp_value == remoteStats.motorTemp && last_controller_temp_value == remoteStats.controllerTemp && + last_option == stat_display_options.secondary_stat) { + return; + } + + bool should_convert = device_settings.temp_units == TEMP_UNITS_FAHRENHEIT; + float converted_mot_val = remoteStats.motorTemp; + float converted_cont_val = remoteStats.controllerTemp; + char temp_unit_label[] = CELSIUS_LABEL; + + if (should_convert) { + converted_mot_val = convert_c_to_f(remoteStats.motorTemp); + converted_cont_val = convert_c_to_f(remoteStats.controllerTemp); + strncpy(temp_unit_label, FAHRENHEIT_LABEL, sizeof(temp_unit_label) - 1); + } + + // Update the displayed text + asprintf(&formattedString, "M: %.0f°%s | C: %.0f°%s", converted_mot_val, temp_unit_label, converted_cont_val, + temp_unit_label); + + // Update the last value + last_motor_temp_value = remoteStats.motorTemp; + last_controller_temp_value = remoteStats.controllerTemp; + } -static void update_trip_distance_display() { - static float last_trip_distance_value = -1; // Set to -1 to force initial update - float new_trip_distance = remoteStats.tripDistance / 1000.0; + // Update trip distance display + else if (stat_display_options.secondary_stat == STAT_DISPLAY_TRIP) { + float new_trip_distance = remoteStats.tripDistance / 1000.0; - // Ensure the value has changed - if (last_trip_distance_value == new_trip_distance) { - return; - } + // Ensure the value has changed + if (last_trip_distance_value == new_trip_distance && last_option == stat_display_options.secondary_stat) { + return; + } - float converted_val = new_trip_distance; + float converted_val = new_trip_distance; - if (device_settings.distance_units == DISTANCE_UNITS_IMPERIAL) { - converted_val = convert_kph_to_mph(new_trip_distance); - } + if (device_settings.distance_units == DISTANCE_UNITS_IMPERIAL) { + converted_val = convert_kph_to_mph(new_trip_distance); + } - char distance_label[] = KILOMETERS_LABEL; + char distance_label[] = KILOMETERS_LABEL; - if (device_settings.distance_units == DISTANCE_UNITS_IMPERIAL) { - strncpy(distance_label, MILES_LABEL, sizeof(distance_label) - 1); - } + if (device_settings.distance_units == DISTANCE_UNITS_IMPERIAL) { + strncpy(distance_label, MILES_LABEL, sizeof(distance_label) - 1); + } - // Update the displayed text - char *formattedString; - asprintf(&formattedString, "Trip: %.1f%s", converted_val, distance_label); - lv_label_set_text(ui_TripLabel, formattedString); - free(formattedString); - - // Update the last value - last_trip_distance_value = new_trip_distance; -} + // Update the displayed text + asprintf(&formattedString, "Trip: %.1f%s", converted_val, distance_label); -static char *get_connection_state_label() { - switch (connection_state) { - case CONNECTION_STATE_CONNECTED: - return "Connected"; - case CONNECTION_STATE_CONNECTING: - return "Connecting"; - case CONNECTION_STATE_RECONNECTING: - return "Reconnecting"; - case CONNECTION_STATE_DISCONNECTED: - return "Disconnected"; - default: - return "Disconnected"; - } -} + // Update the last value + last_trip_distance_value = new_trip_distance; + } -static void update_secondary_stat_display() { - static ConnectionState last_connection_state = CONNECTION_STATE_DISCONNECTED; - static lv_coord_t connected_scroll_position = 0; - ConnectionState new_connection_state = connection_state; - - // See if the current connection state has changed - // Update shown fields accordingly - if (last_connection_state != new_connection_state) { - bool is_connected = new_connection_state == CONNECTION_STATE_CONNECTED; - - // Update available options based on connection state - if (is_connected) { - lv_obj_add_flag(ui_ConnectionStateBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(ui_DutyCycleBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(ui_TempsBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(ui_TripBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_scroll_to(ui_SecondaryStatContainer, connected_scroll_position, 0, LV_ANIM_OFF); + // Update time display + else if (stat_display_options.secondary_stat == STAT_DISPLAY_TIME) { + // Show the current time + time_t now = time(NULL); + struct tm *time_info = localtime(&now); + int hours = time_info->tm_hour; + int minutes = time_info->tm_min; + int seconds = time_info->tm_sec; + + // Update the displayed text + asprintf(&formattedString, "Time: %02d:%02d:%02d", hours, minutes, seconds); } + else { - connected_scroll_position = lv_obj_get_scroll_x(ui_SecondaryStatContainer); - lv_obj_clear_flag(ui_ConnectionStateBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(ui_DutyCycleBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(ui_TempsBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(ui_TripBody, LV_OBJ_FLAG_HIDDEN); - lv_obj_scroll_to(ui_SecondaryStatContainer, 0, 0, LV_ANIM_OFF); + stat_display_options.secondary_stat = STAT_DISPLAY_DUTY; } - lv_label_set_text(ui_ConnectionStateLabel, get_connection_state_label()); - } - - // Update secondary stat displays if currently connected - if (connection_state == CONNECTION_STATE_CONNECTED) { - update_duty_cycle_display(); - update_temps_display(); - update_trip_distance_display(); + last_option = stat_display_options.secondary_stat; + lv_label_set_text(ui_SecondaryStat, formattedString); + free(formattedString); } - - // Update the last value - last_connection_state = new_connection_state; } static void update_board_battery_display() { @@ -542,8 +543,21 @@ void stats_screen_load_start(lv_event_t *e) { stats_register_update_cb(stats_update_screen_display); } -static bool double_press_handler() { - if (device_settings.double_press_action == DOUBLE_PRESS_ACTION_OPEN_MENU) { +static bool display_dimmed = false; + +static bool handle_button_action(StatsButtonPressAction action) { + // No action assigned + if (action == BUTTON_PRESS_ACTION_NONE) { + return false; + } + + // Shutdown + else if (action == BUTTON_PRESS_ACTION_SHUTDOWN) { + enter_sleep(); + } + + // Open menu + else if (action == BUTTON_PRESS_ACTION_OPEN_MENU) { // Open the main menu if (LVGL_lock(-1)) { _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_OVER_TOP, 200, 0, &ui_MenuScreen_screen_init); @@ -551,38 +565,183 @@ static bool double_press_handler() { } } + // Dim display + else if (action == BUTTON_PRESS_ACTION_TOGGLE_DISPLAY) { + if (display_dimmed) { + display_set_bl_level(device_settings.bl_level); + display_dimmed = false; + } + else { + display_set_bl_level(0); + display_dimmed = true; + } + } + + // Dim display + else if (action == BUTTON_PRESS_ACTION_TOGGLE_POCKET_MODE) { + toggle_pocket_mode(); + } + + // Cycle secondary stat + else if (action == BUTTON_PRESS_ACTION_CYCLE_SECONDARY_STAT) { + update_secondary_stat(1); + } + + // Cycle board battery display + else if (action == BUTTON_PRESS_ACTION_CYCLE_BOARD_BATTERY_DISPLAY) { + change_board_battery_display(); + } + + return true; +} + +static bool button_single_press_handler() { + ESP_LOGI(TAG, "Stats screen button single press"); + + return handle_button_action(device_settings.single_press_action); +} + +static bool button_double_press_handler() { + ESP_LOGI(TAG, "Stats screen button double press"); + + return handle_button_action(device_settings.double_press_action); +} + +static bool long_press_handled = false; + +static bool button_long_press_handler() { + if (!long_press_handled) { + ESP_LOGI(TAG, "Stats screen button long press"); + long_press_handled = true; + return handle_button_action(device_settings.long_press_action); + } + else { + ESP_LOGI(TAG, "Ignoring repeated long press event"); + return false; + } +} + +static bool button_up_handler() { + ESP_LOGI(TAG, "Stats screen button up"); + + long_press_handled = false; + + return true; +} + +static bool initial_button_up_handler() { + // Unbind the button up handler + unregister_primary_button_cb(BUTTON_EVENT_UP); + + // Bind the others + register_primary_button_cb(BUTTON_EVENT_PRESS, button_single_press_handler); + register_primary_button_cb(BUTTON_EVENT_DOUBLE_PRESS, button_double_press_handler); + register_primary_button_cb(BUTTON_EVENT_LONG_PRESS_HOLD, button_long_press_handler); + register_primary_button_cb(BUTTON_EVENT_UP, button_up_handler); return true; } void stats_screen_loaded(lv_event_t *e) { ESP_LOGI(TAG, "Stats screen loaded"); + stats_update_screen_display(); - register_primary_button_cb(BUTTON_EVENT_DOUBLE_PRESS, double_press_handler); + + if (get_button_pressed()) { + // Enable the button events once released if it wasn't already + register_primary_button_cb(BUTTON_EVENT_UP, initial_button_up_handler); + } + else { + initial_button_up_handler(); + } if (LVGL_lock(-1)) { - lv_obj_set_scroll_snap_x(ui_SecondaryStatContainer, LV_SCROLL_SNAP_CENTER); LVGL_unlock(); } } void stats_screen_unload_start(lv_event_t *e) { ESP_LOGI(TAG, "Stats screen unload start"); + stats_unregister_update_cb(stats_update_screen_display); + + unregister_primary_button_cb(BUTTON_EVENT_PRESS); unregister_primary_button_cb(BUTTON_EVENT_DOUBLE_PRESS); + unregister_primary_button_cb(BUTTON_EVENT_LONG_PRESS_HOLD); + unregister_primary_button_cb(BUTTON_EVENT_UP); +} + +bool proceed_with_gesture() { + // If the display is dimmed, light it and ignore the gesture + if (display_dimmed) { + display_set_bl_level(device_settings.bl_level); + display_dimmed = false; + return false; + } + + // Otherwise, proceed with the gesture + else { + return true; + } +} + +void stats_screen_gesture_down(lv_event_t *e) { + if (proceed_with_gesture()) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_OVER_BOTTOM, 200, 0, &ui_MenuScreen_screen_init); + } +} + +void primary_stat_long_press(lv_event_t *e) { + ESP_LOGI(TAG, "Primary Stat Long Press"); + + if (proceed_with_gesture()) { + update_primary_stat(1); + } } -void stat_long_press(lv_event_t *e) { - change_stat_display(1); +void primary_stat_swipe_left(lv_event_t *e) { + ESP_LOGI(TAG, "Primary Stat Swipe Left"); + + if (proceed_with_gesture()) { + update_primary_stat(1); + } } -void stat_swipe_left(lv_event_t *e) { - change_stat_display(1); +void primary_stat_swipe_right(lv_event_t *e) { + ESP_LOGI(TAG, "Primary Stat Swipe Right"); + + if (proceed_with_gesture()) { + update_primary_stat(-1); + } } -void stat_swipe_right(lv_event_t *e) { - change_stat_display(-1); +void secondary_stat_long_press(lv_event_t *e) { + ESP_LOGI(TAG, "Secondary Stat Long Press"); + + if (proceed_with_gesture()) { + update_secondary_stat(1); + } +} + +void secondary_stat_swipe_left(lv_event_t *e) { + ESP_LOGI(TAG, "Secondary Stat Swipe Left"); + + if (proceed_with_gesture()) { + update_secondary_stat(1); + } +} + +void secondary_stat_swipe_right(lv_event_t *e) { + ESP_LOGI(TAG, "Secondary Stat Swipe Right"); + + if (proceed_with_gesture()) { + update_secondary_stat(-1); + } } void stats_footer_long_press(lv_event_t *e) { - change_board_battery_display(); + ESP_LOGI(TAG, "Stats Footer Long Press"); + + if (proceed_with_gesture()) { + change_board_battery_display(); + } } diff --git a/firmware/src/screens/stats_screen.h b/firmware/src/screens/stats_screen.h index 5c674093..3002f38c 100644 --- a/firmware/src/screens/stats_screen.h +++ b/firmware/src/screens/stats_screen.h @@ -4,14 +4,21 @@ typedef enum { STAT_DISPLAY_SPEED, + // STAT_DISPLAY_DUTY, + // STAT_DISPLAY_POWER, + // STAT_DISPLAY_TEMP, +} PrimaryStatDisplayOption; + +typedef enum { STAT_DISPLAY_DUTY, - STAT_DISPLAY_POWER, STAT_DISPLAY_TEMP, -} StatsDisplayOption; + STAT_DISPLAY_TRIP, + STAT_DISPLAY_TIME, +} SecondaryStatDisplayOption; typedef struct { - StatsDisplayOption primary_stat; - StatsDisplayOption secondary_stat; + PrimaryStatDisplayOption primary_stat; + SecondaryStatDisplayOption secondary_stat; } StatsScreenDisplayOptions; typedef enum { diff --git a/firmware/src/screens/update_screen.c b/firmware/src/screens/update_screen.c index f481f773..31d59330 100644 --- a/firmware/src/screens/update_screen.c +++ b/firmware/src/screens/update_screen.c @@ -14,6 +14,9 @@ #include #include #include +#include "esp_netif_sntp.h" +#include "esp_sntp.h" +#include static const char *TAG = "PUBREMOTE-UPDATE_SCREEN"; @@ -205,6 +208,36 @@ static void update_task(void *pvParameters) { current_update_step = UPDATE_STEP_ERROR; } else { + if (LVGL_lock(0)) { + lv_label_set_text(ui_UpdateBodyLabel, "Syncing time..."); + LVGL_unlock(); + } + + ESP_LOGI(TAG, "WiFi connected. Initializing SNTP sync..."); + esp_sntp_config_t sntp_config = ESP_NETIF_SNTP_DEFAULT_CONFIG("pool.ntp.org"); + esp_netif_sntp_init(&sntp_config); + + int retry = 0; + const int retry_count = 15; + while (esp_netif_sntp_sync_wait(pdMS_TO_TICKS(1000)) != ESP_OK && ++retry < retry_count) { + ESP_LOGI(TAG, "Waiting for system time to be synchronized... (%d/%d)", retry, retry_count); + } + + if (retry < retry_count) { + ESP_LOGI(TAG, "System time synchronized successfully"); + setenv("TZ", DEFAULT_TIMEZONE, 1); + tzset(); + time_t now = time(NULL); + struct tm *time_info = localtime(&now); + char strftime_buf[64]; + strftime(strftime_buf, sizeof(strftime_buf), "%c", time_info); + ESP_LOGI(TAG, "Current local time: %s", strftime_buf); + } else { + ESP_LOGW(TAG, "System time synchronization timed out"); + } + + esp_netif_sntp_deinit(); + current_update_step = UPDATE_STEP_CHECKING_UPDATE; } break; @@ -323,7 +356,9 @@ void update_screen_load_start(lv_event_t *e) { if (LVGL_lock(0)) { apply_ui_scale(NULL); + create_navigation_group(ui_UpdateFooter); + LVGL_unlock(); } } diff --git a/firmware/src/ui/ui.h b/firmware/src/ui/ui.h index 553d5b49..2faf6bdf 100644 --- a/firmware/src/ui/ui.h +++ b/firmware/src/ui/ui.h @@ -7,47 +7,48 @@ #define _PUBREMOTE_UI_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif #include "lvgl.h" -#include "ui_events.h" #include "ui_helpers.h" +#include "ui_events.h" - ///////////////////// SCREENS //////////////////// -#include "ui_AboutScreen.h" -#include "ui_CalibrationScreen.h" -#include "ui_ChargeScreen.h" -#include "ui_MenuScreen.h" -#include "ui_PairingScreen.h" -#include "ui_SettingsScreen.h" +///////////////////// SCREENS //////////////////// + #include "ui_SplashScreen.h" #include "ui_StatsScreen.h" +#include "ui_MenuScreen.h" +#include "ui_SettingsScreen.h" +#include "ui_PairingScreen.h" +#include "ui_CalibrationScreen.h" +#include "ui_AboutScreen.h" #include "ui_UpdateScreen.h" +#include "ui_ChargeScreen.h" + +///////////////////// VARIABLES //////////////////// - ///////////////////// VARIABLES //////////////////// - // EVENTS +// EVENTS - extern lv_obj_t *ui____initial_actions0; +extern lv_obj_t * ui____initial_actions0; - // IMAGES AND IMAGE SETS - LV_IMG_DECLARE(ui_img_icon2_png); // assets/icon2.png +// IMAGES AND IMAGE SETS +LV_IMG_DECLARE(ui_img_icon2_png); // assets/icon2.png - // FONTS - LV_FONT_DECLARE(ui_font_Inter_14); - LV_FONT_DECLARE(ui_font_Inter_28); - LV_FONT_DECLARE(ui_font_Inter_Bold_14); - LV_FONT_DECLARE(ui_font_Inter_Bold_28); - LV_FONT_DECLARE(ui_font_Inter_Bold_48); - LV_FONT_DECLARE(ui_font_Inter_Bold_96); +// FONTS +LV_FONT_DECLARE(ui_font_Inter_14); +LV_FONT_DECLARE(ui_font_Inter_28); +LV_FONT_DECLARE(ui_font_Inter_Bold_14); +LV_FONT_DECLARE(ui_font_Inter_Bold_28); +LV_FONT_DECLARE(ui_font_Inter_Bold_48); +LV_FONT_DECLARE(ui_font_Inter_Bold_96); - // UI INIT - void ui_init(void); - void ui_destroy(void); +// UI INIT +void ui_init(void); +void ui_destroy(void); #ifdef __cplusplus } /*extern "C"*/ diff --git a/firmware/src/ui/ui_AboutScreen.c b/firmware/src/ui/ui_AboutScreen.c index f8127a73..4e42a238 100644 --- a/firmware/src/ui/ui_AboutScreen.c +++ b/firmware/src/ui/ui_AboutScreen.c @@ -5,200 +5,207 @@ #include "ui.h" -lv_obj_t *ui_AboutScreen = NULL; -lv_obj_t *ui_AboutContent = NULL; -lv_obj_t *ui_AboutHeader = NULL; -lv_obj_t *ui_AboutBody = NULL; -lv_obj_t *ui_VersionInfoContainer = NULL; -lv_obj_t *ui_VersionInfoLabel = NULL; -lv_obj_t *ui_UpdateButton = NULL; -lv_obj_t *ui_UpdateButtonLabel = NULL; -lv_obj_t *ui_DebugInfoContainer = NULL; -lv_obj_t *ui_DebugInfoLabel = NULL; -lv_obj_t *ui_AboutFooter = NULL; -lv_obj_t *ui_AboutMainActionButton = NULL; -lv_obj_t *ui_AboutMainActionButtonLabel = NULL; +lv_obj_t * ui_AboutScreen = NULL; +lv_obj_t * ui_AboutContent = NULL; +lv_obj_t * ui_AboutHeader = NULL; +lv_obj_t * ui_AboutBody = NULL; +lv_obj_t * ui_VersionInfoContainer = NULL; +lv_obj_t * ui_VersionInfoLabel = NULL; +lv_obj_t * ui_DebugInfoContainer = NULL; +lv_obj_t * ui_DebugInfoLabel = NULL; +lv_obj_t * ui_AboutFooter = NULL; +lv_obj_t * ui_AboutMainActionButton = NULL; +lv_obj_t * ui_AboutMainActionButtonLabel = NULL; +lv_obj_t * ui_UpdateButton = NULL; +lv_obj_t * ui_UpdateButtonLabel = NULL; // event funtions -void ui_event_AboutScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - about_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - about_screen_unload_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - about_screen_load_start(e); - } +void ui_event_AboutScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + about_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + about_screen_unload_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + about_screen_load_start(e); + } } -void ui_event_UpdateButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_AboutMainActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_UpdateScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_UpdateScreen_screen_init); - } + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); + } } -void ui_event_AboutMainActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_UpdateButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); - } + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_UpdateScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_UpdateScreen_screen_init); + } } // build funtions -void ui_AboutScreen_screen_init(void) { - ui_AboutScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_AboutScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_AboutScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_AboutScreen); - lv_obj_set_style_bg_color(ui_AboutScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_AboutScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_AboutContent = lv_obj_create(ui_AboutScreen); - lv_obj_remove_style_all(ui_AboutContent); - lv_obj_set_width(ui_AboutContent, lv_pct(100)); - lv_obj_set_height(ui_AboutContent, lv_pct(100)); - lv_obj_set_align(ui_AboutContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_AboutContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_AboutContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_AboutContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_AboutContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_AboutHeader = lv_obj_create(ui_AboutContent); - lv_obj_remove_style_all(ui_AboutHeader); - lv_obj_set_width(ui_AboutHeader, lv_pct(100)); - lv_obj_set_height(ui_AboutHeader, lv_pct(20)); - lv_obj_set_align(ui_AboutHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_AboutHeader, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_AboutHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_AboutHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_scrollbar_mode(ui_AboutHeader, LV_SCROLLBAR_MODE_ACTIVE); - lv_obj_set_scroll_dir(ui_AboutHeader, LV_DIR_VER); - lv_obj_set_style_pad_row(ui_AboutHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_AboutHeader, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_AboutBody = lv_obj_create(ui_AboutContent); - lv_obj_remove_style_all(ui_AboutBody); - lv_obj_set_width(ui_AboutBody, lv_pct(100)); - lv_obj_set_height(ui_AboutBody, lv_pct(55)); - lv_obj_set_align(ui_AboutBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_AboutBody, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_AboutBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_AboutBody, - LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SNAPPABLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_scrollbar_mode(ui_AboutBody, LV_SCROLLBAR_MODE_ACTIVE); - lv_obj_set_scroll_dir(ui_AboutBody, LV_DIR_HOR); - lv_obj_set_scroll_snap_x(ui_AboutBody, LV_SCROLL_SNAP_START); - - ui_VersionInfoContainer = lv_obj_create(ui_AboutBody); - lv_obj_remove_style_all(ui_VersionInfoContainer); - lv_obj_set_width(ui_VersionInfoContainer, lv_pct(100)); - lv_obj_set_height(ui_VersionInfoContainer, lv_pct(100)); - lv_obj_set_align(ui_VersionInfoContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_VersionInfoContainer, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_VersionInfoContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_VersionInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_VersionInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_VersionInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_VersionInfoContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_VersionInfoLabel = lv_label_create(ui_VersionInfoContainer); - lv_obj_set_width(ui_VersionInfoLabel, lv_pct(100)); - lv_obj_set_height(ui_VersionInfoLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_VersionInfoLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_VersionInfoLabel, "Version: unknown\nType: unknown\nHash: unknown"); - lv_obj_add_flag(ui_VersionInfoLabel, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_VersionInfoLabel, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_UpdateButton = lv_btn_create(ui_VersionInfoContainer); - lv_obj_set_height(ui_UpdateButton, 32); - lv_obj_set_width(ui_UpdateButton, lv_pct(100)); - lv_obj_set_align(ui_UpdateButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_UpdateButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_UpdateButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_UpdateButton, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_UpdateButton, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_color(ui_UpdateButton, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_opa(ui_UpdateButton, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_width(ui_UpdateButton, 2, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_UpdateButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateButtonLabel = lv_label_create(ui_UpdateButton); - lv_obj_set_width(ui_UpdateButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_UpdateButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_UpdateButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_UpdateButtonLabel, "Check for updates"); - - ui_DebugInfoContainer = lv_obj_create(ui_AboutBody); - lv_obj_remove_style_all(ui_DebugInfoContainer); - lv_obj_set_width(ui_DebugInfoContainer, lv_pct(100)); - lv_obj_set_height(ui_DebugInfoContainer, lv_pct(100)); - lv_obj_set_align(ui_DebugInfoContainer, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_DebugInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_DebugInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_DebugInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_DebugInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_DebugInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DebugInfoLabel = lv_label_create(ui_DebugInfoContainer); - lv_obj_set_width(ui_DebugInfoLabel, lv_pct(100)); - lv_obj_set_height(ui_DebugInfoLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DebugInfoLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_DebugInfoLabel, "Battery: unknown"); - lv_obj_add_flag(ui_DebugInfoLabel, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_DebugInfoLabel, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_AboutFooter = lv_obj_create(ui_AboutContent); - lv_obj_remove_style_all(ui_AboutFooter); - lv_obj_set_width(ui_AboutFooter, lv_pct(100)); - lv_obj_set_height(ui_AboutFooter, lv_pct(25)); - lv_obj_set_align(ui_AboutFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_AboutFooter, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_AboutFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_AboutFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_AboutMainActionButton = lv_btn_create(ui_AboutFooter); - lv_obj_set_width(ui_AboutMainActionButton, 80); - lv_obj_set_height(ui_AboutMainActionButton, 42); - lv_obj_set_align(ui_AboutMainActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_AboutMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_AboutMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_AboutMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_AboutMainActionButtonLabel = lv_label_create(ui_AboutMainActionButton); - lv_obj_set_width(ui_AboutMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_AboutMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_AboutMainActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_AboutMainActionButtonLabel, "Back"); - - lv_obj_add_event_cb(ui_UpdateButton, ui_event_UpdateButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_AboutMainActionButton, ui_event_AboutMainActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_AboutScreen, ui_event_AboutScreen, LV_EVENT_ALL, NULL); +void ui_AboutScreen_screen_init(void) +{ + ui_AboutScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_AboutScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_AboutScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_AboutScreen); + lv_obj_set_style_bg_color(ui_AboutScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_AboutScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AboutContent = lv_obj_create(ui_AboutScreen); + lv_obj_remove_style_all(ui_AboutContent); + lv_obj_set_width(ui_AboutContent, lv_pct(100)); + lv_obj_set_height(ui_AboutContent, lv_pct(100)); + lv_obj_set_align(ui_AboutContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_AboutContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_AboutContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_AboutContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_AboutContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AboutHeader = lv_obj_create(ui_AboutContent); + lv_obj_remove_style_all(ui_AboutHeader); + lv_obj_set_width(ui_AboutHeader, lv_pct(100)); + lv_obj_set_height(ui_AboutHeader, lv_pct(20)); + lv_obj_set_align(ui_AboutHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_AboutHeader, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_AboutHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_AboutHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags + lv_obj_set_scrollbar_mode(ui_AboutHeader, LV_SCROLLBAR_MODE_ACTIVE); + lv_obj_set_scroll_dir(ui_AboutHeader, LV_DIR_VER); + lv_obj_set_style_pad_left(ui_AboutHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_AboutHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_AboutHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_AboutHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_AboutHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_AboutHeader, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AboutBody = lv_obj_create(ui_AboutContent); + lv_obj_remove_style_all(ui_AboutBody); + lv_obj_set_width(ui_AboutBody, lv_pct(100)); + lv_obj_set_height(ui_AboutBody, lv_pct(55)); + lv_obj_set_align(ui_AboutBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_AboutBody, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_AboutBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_AboutBody, LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SNAPPABLE | + LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags + lv_obj_set_scrollbar_mode(ui_AboutBody, LV_SCROLLBAR_MODE_ACTIVE); + lv_obj_set_scroll_dir(ui_AboutBody, LV_DIR_HOR); + lv_obj_set_scroll_snap_x(ui_AboutBody, LV_SCROLL_SNAP_START); + + ui_VersionInfoContainer = lv_obj_create(ui_AboutBody); + lv_obj_remove_style_all(ui_VersionInfoContainer); + lv_obj_set_width(ui_VersionInfoContainer, lv_pct(100)); + lv_obj_set_height(ui_VersionInfoContainer, lv_pct(100)); + lv_obj_set_align(ui_VersionInfoContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_VersionInfoContainer, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_VersionInfoContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_VersionInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_VersionInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_VersionInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_VersionInfoContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_VersionInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_VersionInfoLabel = lv_label_create(ui_VersionInfoContainer); + lv_obj_set_width(ui_VersionInfoLabel, lv_pct(100)); + lv_obj_set_height(ui_VersionInfoLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_VersionInfoLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_VersionInfoLabel, "Version: unknown\nType: unknown\nHash: unknown"); + lv_obj_add_flag(ui_VersionInfoLabel, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_VersionInfoLabel, LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_DebugInfoContainer = lv_obj_create(ui_AboutBody); + lv_obj_remove_style_all(ui_DebugInfoContainer); + lv_obj_set_width(ui_DebugInfoContainer, lv_pct(100)); + lv_obj_set_height(ui_DebugInfoContainer, lv_pct(100)); + lv_obj_set_align(ui_DebugInfoContainer, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_DebugInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_DebugInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_DebugInfoContainer, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_DebugInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_DebugInfoContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_DebugInfoLabel = lv_label_create(ui_DebugInfoContainer); + lv_obj_set_width(ui_DebugInfoLabel, lv_pct(100)); + lv_obj_set_height(ui_DebugInfoLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DebugInfoLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_DebugInfoLabel, "Battery: unknown"); + lv_obj_add_flag(ui_DebugInfoLabel, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_DebugInfoLabel, LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_AboutFooter = lv_obj_create(ui_AboutContent); + lv_obj_remove_style_all(ui_AboutFooter); + lv_obj_set_width(ui_AboutFooter, lv_pct(100)); + lv_obj_set_height(ui_AboutFooter, lv_pct(25)); + lv_obj_set_align(ui_AboutFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_AboutFooter, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_AboutFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_AboutFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_AboutFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_AboutFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AboutMainActionButton = lv_btn_create(ui_AboutFooter); + lv_obj_set_width(ui_AboutMainActionButton, 60); + lv_obj_set_height(ui_AboutMainActionButton, 42); + lv_obj_set_align(ui_AboutMainActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_AboutMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_AboutMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_AboutMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AboutMainActionButtonLabel = lv_label_create(ui_AboutMainActionButton); + lv_obj_set_width(ui_AboutMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_AboutMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_AboutMainActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_AboutMainActionButtonLabel, "Back"); + + ui_UpdateButton = lv_btn_create(ui_AboutFooter); + lv_obj_set_width(ui_UpdateButton, 60); + lv_obj_set_height(ui_UpdateButton, 42); + lv_obj_set_align(ui_UpdateButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_UpdateButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_UpdateButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_UpdateButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateButtonLabel = lv_label_create(ui_UpdateButton); + lv_obj_set_width(ui_UpdateButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_UpdateButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_UpdateButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_UpdateButtonLabel, "Update"); + + lv_obj_add_event_cb(ui_AboutMainActionButton, ui_event_AboutMainActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_UpdateButton, ui_event_UpdateButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_AboutScreen, ui_event_AboutScreen, LV_EVENT_ALL, NULL); + } -void ui_AboutScreen_screen_destroy(void) { - if (ui_AboutScreen) - lv_obj_del(ui_AboutScreen); - - // NULL screen variables - ui_AboutScreen = NULL; - ui_AboutContent = NULL; - ui_AboutHeader = NULL; - ui_AboutBody = NULL; - ui_VersionInfoContainer = NULL; - ui_VersionInfoLabel = NULL; - ui_UpdateButton = NULL; - ui_UpdateButtonLabel = NULL; - ui_DebugInfoContainer = NULL; - ui_DebugInfoLabel = NULL; - ui_AboutFooter = NULL; - ui_AboutMainActionButton = NULL; - ui_AboutMainActionButtonLabel = NULL; +void ui_AboutScreen_screen_destroy(void) +{ + if(ui_AboutScreen) lv_obj_del(ui_AboutScreen); + + // NULL screen variables + ui_AboutScreen = NULL; + ui_AboutContent = NULL; + ui_AboutHeader = NULL; + ui_AboutBody = NULL; + ui_VersionInfoContainer = NULL; + ui_VersionInfoLabel = NULL; + ui_DebugInfoContainer = NULL; + ui_DebugInfoLabel = NULL; + ui_AboutFooter = NULL; + ui_AboutMainActionButton = NULL; + ui_AboutMainActionButtonLabel = NULL; + ui_UpdateButton = NULL; + ui_UpdateButtonLabel = NULL; + } diff --git a/firmware/src/ui/ui_AboutScreen.h b/firmware/src/ui/ui_AboutScreen.h index 1f9616c8..c1ec1a42 100644 --- a/firmware/src/ui/ui_AboutScreen.h +++ b/firmware/src/ui/ui_AboutScreen.h @@ -7,33 +7,33 @@ #define UI_ABOUTSCREEN_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif - // SCREEN: ui_AboutScreen - extern void ui_AboutScreen_screen_init(void); - extern void ui_AboutScreen_screen_destroy(void); - extern void ui_event_AboutScreen(lv_event_t *e); - extern lv_obj_t *ui_AboutScreen; - extern lv_obj_t *ui_AboutContent; - extern lv_obj_t *ui_AboutHeader; - extern lv_obj_t *ui_AboutBody; - extern lv_obj_t *ui_VersionInfoContainer; - extern lv_obj_t *ui_VersionInfoLabel; - extern void ui_event_UpdateButton(lv_event_t *e); - extern lv_obj_t *ui_UpdateButton; - extern lv_obj_t *ui_UpdateButtonLabel; - extern lv_obj_t *ui_DebugInfoContainer; - extern lv_obj_t *ui_DebugInfoLabel; - extern lv_obj_t *ui_AboutFooter; - extern void ui_event_AboutMainActionButton(lv_event_t *e); - extern lv_obj_t *ui_AboutMainActionButton; - extern lv_obj_t *ui_AboutMainActionButtonLabel; - // CUSTOM VARIABLES +// SCREEN: ui_AboutScreen +extern void ui_AboutScreen_screen_init(void); +extern void ui_AboutScreen_screen_destroy(void); +extern void ui_event_AboutScreen(lv_event_t * e); +extern lv_obj_t * ui_AboutScreen; +extern lv_obj_t * ui_AboutContent; +extern lv_obj_t * ui_AboutHeader; +extern lv_obj_t * ui_AboutBody; +extern lv_obj_t * ui_VersionInfoContainer; +extern lv_obj_t * ui_VersionInfoLabel; +extern lv_obj_t * ui_DebugInfoContainer; +extern lv_obj_t * ui_DebugInfoLabel; +extern lv_obj_t * ui_AboutFooter; +extern void ui_event_AboutMainActionButton(lv_event_t * e); +extern lv_obj_t * ui_AboutMainActionButton; +extern lv_obj_t * ui_AboutMainActionButtonLabel; +extern void ui_event_UpdateButton(lv_event_t * e); +extern lv_obj_t * ui_UpdateButton; +extern lv_obj_t * ui_UpdateButtonLabel; +// CUSTOM VARIABLES #ifdef __cplusplus } /*extern "C"*/ #endif #endif + diff --git a/firmware/src/ui/ui_CalibrationScreen.c b/firmware/src/ui/ui_CalibrationScreen.c index b60857b5..d23fc14d 100644 --- a/firmware/src/ui/ui_CalibrationScreen.c +++ b/firmware/src/ui/ui_CalibrationScreen.c @@ -5,396 +5,400 @@ #include "ui.h" -lv_obj_t *ui_CalibrationScreen = NULL; -lv_obj_t *ui_CalibrationContent = NULL; -lv_obj_t *ui_CalibrationHeader = NULL; -lv_obj_t *ui_CalibrationHeaderLabel = NULL; -lv_obj_t *ui_CalibrationBody = NULL; -lv_obj_t *ui_CalibrationStepContent = NULL; -lv_obj_t *ui_ExpoSlider = NULL; -lv_obj_t *ui_StickFlags = NULL; -lv_obj_t *ui_InvertXContainer = NULL; -lv_obj_t *ui_InvertXSwitch = NULL; -lv_obj_t *ui_InvertXLabel = NULL; -lv_obj_t *ui_InvertYContainer = NULL; -lv_obj_t *ui_InvertYSwitch = NULL; -lv_obj_t *ui_InvertYLabel = NULL; -lv_obj_t *ui_InvertXYContainer = NULL; -lv_obj_t *ui_InvertXYSwitch = NULL; -lv_obj_t *ui_InvertXYLabel = NULL; -lv_obj_t *ui_CalibrationIndicatorContainer = NULL; -lv_obj_t *ui_DeadbandIndicator = NULL; -lv_obj_t *ui_CalibrationLineVert = NULL; -lv_obj_t *ui_CalibrationLineHoriz = NULL; -lv_obj_t *ui_PositionIndicatorContainer = NULL; -lv_obj_t *ui_PositionIndicatorHoriz = NULL; -lv_obj_t *ui_PositionIndicatorVert = NULL; -lv_obj_t *ui_CalibrationStepLabel = NULL; -lv_obj_t *ui_CalibrationFooter = NULL; -lv_obj_t *ui_CalibrationSecondaryActionButton = NULL; -lv_obj_t *ui_CalibrationSecondaryActionButtonLabel = NULL; -lv_obj_t *ui_CalibrationPrimaryActionButton = NULL; -lv_obj_t *ui_CalibrationPrimaryActionButtonLabel = NULL; +lv_obj_t * ui_CalibrationScreen = NULL; +lv_obj_t * ui_CalibrationContent = NULL; +lv_obj_t * ui_CalibrationHeader = NULL; +lv_obj_t * ui_CalibrationHeaderLabel = NULL; +lv_obj_t * ui_CalibrationBody = NULL; +lv_obj_t * ui_CalibrationStepContent = NULL; +lv_obj_t * ui_ExpoSlider = NULL; +lv_obj_t * ui_StickFlags = NULL; +lv_obj_t * ui_InvertXContainer = NULL; +lv_obj_t * ui_InvertXSwitch = NULL; +lv_obj_t * ui_InvertXLabel = NULL; +lv_obj_t * ui_InvertYContainer = NULL; +lv_obj_t * ui_InvertYSwitch = NULL; +lv_obj_t * ui_InvertYLabel = NULL; +lv_obj_t * ui_InvertXYContainer = NULL; +lv_obj_t * ui_InvertXYSwitch = NULL; +lv_obj_t * ui_InvertXYLabel = NULL; +lv_obj_t * ui_CalibrationIndicatorContainer = NULL; +lv_obj_t * ui_DeadbandIndicator = NULL; +lv_obj_t * ui_CalibrationLineVert = NULL; +lv_obj_t * ui_CalibrationLineHoriz = NULL; +lv_obj_t * ui_PositionIndicatorContainer = NULL; +lv_obj_t * ui_PositionIndicatorHoriz = NULL; +lv_obj_t * ui_PositionIndicatorVert = NULL; +lv_obj_t * ui_CalibrationStepLabel = NULL; +lv_obj_t * ui_CalibrationFooter = NULL; +lv_obj_t * ui_CalibrationSecondaryActionButton = NULL; +lv_obj_t * ui_CalibrationSecondaryActionButtonLabel = NULL; +lv_obj_t * ui_CalibrationPrimaryActionButton = NULL; +lv_obj_t * ui_CalibrationPrimaryActionButtonLabel = NULL; // event funtions -void ui_event_CalibrationScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - calibration_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - calibration_screen_unload_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - calibration_screen_load_start(e); - } +void ui_event_CalibrationScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + calibration_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + calibration_screen_unload_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + calibration_screen_load_start(e); + } } -void ui_event_ExpoSlider(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_ExpoSlider(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - expo_slider_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + expo_slider_change(e); + } } -void ui_event_CalibrationSecondaryActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_CalibrationSecondaryActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); - calibration_settings_secondary_button_press(e); - } + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); + calibration_settings_secondary_button_press(e); + } } -void ui_event_CalibrationPrimaryActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_CalibrationPrimaryActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - calibration_settings_primary_button_press(e); - } + if(event_code == LV_EVENT_CLICKED) { + calibration_settings_primary_button_press(e); + } } // build funtions -void ui_CalibrationScreen_screen_init(void) { - ui_CalibrationScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_CalibrationScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_CalibrationScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_CalibrationScreen); - lv_obj_set_style_bg_color(ui_CalibrationScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_CalibrationScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationContent = lv_obj_create(ui_CalibrationScreen); - lv_obj_remove_style_all(ui_CalibrationContent); - lv_obj_set_width(ui_CalibrationContent, lv_pct(100)); - lv_obj_set_height(ui_CalibrationContent, lv_pct(100)); - lv_obj_set_align(ui_CalibrationContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_CalibrationContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_CalibrationContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_CalibrationContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_CalibrationContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationHeader = lv_obj_create(ui_CalibrationContent); - lv_obj_remove_style_all(ui_CalibrationHeader); - lv_obj_set_width(ui_CalibrationHeader, lv_pct(100)); - lv_obj_set_height(ui_CalibrationHeader, lv_pct(20)); - lv_obj_set_align(ui_CalibrationHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_CalibrationHeader, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_CalibrationHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_CalibrationHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_CalibrationHeaderLabel = lv_label_create(ui_CalibrationHeader); - lv_obj_set_width(ui_CalibrationHeaderLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_CalibrationHeaderLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_CalibrationHeaderLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_CalibrationHeaderLabel, "X: 0.0 | Y: 0.0"); - lv_obj_set_style_text_font(ui_CalibrationHeaderLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationBody = lv_obj_create(ui_CalibrationContent); - lv_obj_remove_style_all(ui_CalibrationBody); - lv_obj_set_width(ui_CalibrationBody, lv_pct(100)); - lv_obj_set_height(ui_CalibrationBody, lv_pct(55)); - lv_obj_set_align(ui_CalibrationBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_CalibrationBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_CalibrationBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_CalibrationBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_CalibrationBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_CalibrationBody, 12, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_CalibrationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationStepContent = lv_obj_create(ui_CalibrationBody); - lv_obj_remove_style_all(ui_CalibrationStepContent); - lv_obj_set_width(ui_CalibrationStepContent, lv_pct(100)); - lv_obj_set_height(ui_CalibrationStepContent, lv_pct(90)); - lv_obj_set_align(ui_CalibrationStepContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_CalibrationStepContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_CalibrationStepContent, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_CalibrationStepContent, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_CalibrationStepContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_ExpoSlider = lv_slider_create(ui_CalibrationStepContent); - lv_slider_set_range(ui_ExpoSlider, 1, 20); - lv_slider_set_value(ui_ExpoSlider, 10, LV_ANIM_OFF); - if (lv_slider_get_mode(ui_ExpoSlider) == LV_SLIDER_MODE_RANGE) - lv_slider_set_left_value(ui_ExpoSlider, 0, LV_ANIM_OFF); - lv_obj_set_height(ui_ExpoSlider, 15); - lv_obj_set_width(ui_ExpoSlider, lv_pct(75)); - lv_obj_set_align(ui_ExpoSlider, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_ExpoSlider, LV_OBJ_FLAG_HIDDEN); /// Flags - - ui_StickFlags = lv_obj_create(ui_CalibrationStepContent); - lv_obj_remove_style_all(ui_StickFlags); - lv_obj_set_width(ui_StickFlags, lv_pct(100)); - lv_obj_set_height(ui_StickFlags, lv_pct(100)); - lv_obj_set_align(ui_StickFlags, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StickFlags, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StickFlags, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_StickFlags, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_StickFlags, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_StickFlags, 8, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_StickFlags, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_InvertXContainer = lv_obj_create(ui_StickFlags); - lv_obj_remove_style_all(ui_InvertXContainer); - lv_obj_set_width(ui_InvertXContainer, lv_pct(50)); - lv_obj_set_height(ui_InvertXContainer, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertXContainer, 9); - lv_obj_set_y(ui_InvertXContainer, -74); - lv_obj_set_align(ui_InvertXContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_InvertXContainer, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_InvertXContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_InvertXContainer, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_InvertXContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_InvertXSwitch = lv_switch_create(ui_InvertXContainer); - lv_obj_set_height(ui_InvertXSwitch, 25); - lv_obj_set_width(ui_InvertXSwitch, lv_pct(50)); - lv_obj_set_x(ui_InvertXSwitch, 12); - lv_obj_set_y(ui_InvertXSwitch, -10); - lv_obj_set_align(ui_InvertXSwitch, LV_ALIGN_CENTER); - - ui_InvertXLabel = lv_label_create(ui_InvertXContainer); - lv_obj_set_width(ui_InvertXLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_InvertXLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertXLabel, 6); - lv_obj_set_y(ui_InvertXLabel, -17); - lv_obj_set_align(ui_InvertXLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_InvertXLabel, "Invert X"); - - ui_InvertYContainer = lv_obj_create(ui_StickFlags); - lv_obj_remove_style_all(ui_InvertYContainer); - lv_obj_set_width(ui_InvertYContainer, lv_pct(50)); - lv_obj_set_height(ui_InvertYContainer, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertYContainer, 9); - lv_obj_set_y(ui_InvertYContainer, -74); - lv_obj_set_align(ui_InvertYContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_InvertYContainer, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_InvertYContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_InvertYContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_InvertYSwitch = lv_switch_create(ui_InvertYContainer); - lv_obj_set_height(ui_InvertYSwitch, 25); - lv_obj_set_width(ui_InvertYSwitch, lv_pct(50)); - lv_obj_set_x(ui_InvertYSwitch, 12); - lv_obj_set_y(ui_InvertYSwitch, -10); - lv_obj_set_align(ui_InvertYSwitch, LV_ALIGN_CENTER); - - ui_InvertYLabel = lv_label_create(ui_InvertYContainer); - lv_obj_set_width(ui_InvertYLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_InvertYLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertYLabel, 6); - lv_obj_set_y(ui_InvertYLabel, -17); - lv_obj_set_align(ui_InvertYLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_InvertYLabel, "Invert Y"); - - ui_InvertXYContainer = lv_obj_create(ui_StickFlags); - lv_obj_remove_style_all(ui_InvertXYContainer); - lv_obj_set_width(ui_InvertXYContainer, lv_pct(50)); - lv_obj_set_height(ui_InvertXYContainer, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertXYContainer, 9); - lv_obj_set_y(ui_InvertXYContainer, -74); - lv_obj_set_align(ui_InvertXYContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_InvertXYContainer, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_InvertXYContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_InvertXYContainer, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_InvertXYContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_InvertXYSwitch = lv_switch_create(ui_InvertXYContainer); - lv_obj_set_height(ui_InvertXYSwitch, 25); - lv_obj_set_width(ui_InvertXYSwitch, lv_pct(50)); - lv_obj_set_x(ui_InvertXYSwitch, 12); - lv_obj_set_y(ui_InvertXYSwitch, -10); - lv_obj_set_align(ui_InvertXYSwitch, LV_ALIGN_CENTER); - - ui_InvertXYLabel = lv_label_create(ui_InvertXYContainer); - lv_obj_set_width(ui_InvertXYLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_InvertXYLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_InvertXYLabel, 6); - lv_obj_set_y(ui_InvertXYLabel, -17); - lv_obj_set_align(ui_InvertXYLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_InvertXYLabel, "Invert XY"); - - ui_CalibrationIndicatorContainer = lv_obj_create(ui_CalibrationStepContent); - lv_obj_remove_style_all(ui_CalibrationIndicatorContainer); - lv_obj_set_width(ui_CalibrationIndicatorContainer, 80); - lv_obj_set_height(ui_CalibrationIndicatorContainer, 80); - lv_obj_set_align(ui_CalibrationIndicatorContainer, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_CalibrationIndicatorContainer, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_CalibrationIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_radius(ui_CalibrationIndicatorContainer, 999, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_color(ui_CalibrationIndicatorContainer, lv_color_hex(0x414141), - LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_opa(ui_CalibrationIndicatorContainer, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_width(ui_CalibrationIndicatorContainer, 6, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_side(ui_CalibrationIndicatorContainer, LV_BORDER_SIDE_FULL, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DeadbandIndicator = lv_obj_create(ui_CalibrationIndicatorContainer); - lv_obj_remove_style_all(ui_DeadbandIndicator); - lv_obj_set_width(ui_DeadbandIndicator, lv_pct(50)); - lv_obj_set_height(ui_DeadbandIndicator, lv_pct(50)); - lv_obj_set_align(ui_DeadbandIndicator, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_DeadbandIndicator, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_DeadbandIndicator, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_radius(ui_DeadbandIndicator, 999, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_color(ui_DeadbandIndicator, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_opa(ui_DeadbandIndicator, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_width(ui_DeadbandIndicator, 3, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationLineVert = lv_obj_create(ui_CalibrationIndicatorContainer); - lv_obj_remove_style_all(ui_CalibrationLineVert); - lv_obj_set_width(ui_CalibrationLineVert, 4); - lv_obj_set_height(ui_CalibrationLineVert, lv_pct(130)); - lv_obj_set_align(ui_CalibrationLineVert, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_CalibrationLineVert, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_CalibrationLineVert, lv_color_hex(0xEE4266), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_CalibrationLineVert, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationLineHoriz = lv_obj_create(ui_CalibrationIndicatorContainer); - lv_obj_remove_style_all(ui_CalibrationLineHoriz); - lv_obj_set_height(ui_CalibrationLineHoriz, 4); - lv_obj_set_width(ui_CalibrationLineHoriz, lv_pct(130)); - lv_obj_set_align(ui_CalibrationLineHoriz, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_CalibrationLineHoriz, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_CalibrationLineHoriz, lv_color_hex(0xEE4266), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_CalibrationLineHoriz, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PositionIndicatorContainer = lv_obj_create(ui_CalibrationIndicatorContainer); - lv_obj_remove_style_all(ui_PositionIndicatorContainer); - lv_obj_set_width(ui_PositionIndicatorContainer, lv_pct(20)); - lv_obj_set_height(ui_PositionIndicatorContainer, lv_pct(20)); - lv_obj_set_align(ui_PositionIndicatorContainer, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_PositionIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_PositionIndicatorHoriz = lv_obj_create(ui_PositionIndicatorContainer); - lv_obj_remove_style_all(ui_PositionIndicatorHoriz); - lv_obj_set_height(ui_PositionIndicatorHoriz, 4); - lv_obj_set_width(ui_PositionIndicatorHoriz, lv_pct(100)); - lv_obj_set_align(ui_PositionIndicatorHoriz, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_PositionIndicatorHoriz, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_PositionIndicatorHoriz, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_PositionIndicatorHoriz, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PositionIndicatorVert = lv_obj_create(ui_PositionIndicatorContainer); - lv_obj_remove_style_all(ui_PositionIndicatorVert); - lv_obj_set_width(ui_PositionIndicatorVert, 4); - lv_obj_set_height(ui_PositionIndicatorVert, lv_pct(100)); - lv_obj_set_align(ui_PositionIndicatorVert, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_PositionIndicatorVert, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_PositionIndicatorVert, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_PositionIndicatorVert, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationStepLabel = lv_label_create(ui_CalibrationBody); - lv_obj_set_width(ui_CalibrationStepLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_CalibrationStepLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_CalibrationStepLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_CalibrationStepLabel, "Press start to begin calibration"); - lv_obj_set_style_text_font(ui_CalibrationStepLabel, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_left(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_CalibrationStepLabel, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationFooter = lv_obj_create(ui_CalibrationContent); - lv_obj_remove_style_all(ui_CalibrationFooter); - lv_obj_set_width(ui_CalibrationFooter, lv_pct(100)); - lv_obj_set_height(ui_CalibrationFooter, lv_pct(25)); - lv_obj_set_align(ui_CalibrationFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_CalibrationFooter, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_CalibrationFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_CalibrationFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_CalibrationFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_CalibrationFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationSecondaryActionButton = lv_btn_create(ui_CalibrationFooter); - lv_obj_set_width(ui_CalibrationSecondaryActionButton, 60); - lv_obj_set_height(ui_CalibrationSecondaryActionButton, 42); - lv_obj_set_align(ui_CalibrationSecondaryActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_CalibrationSecondaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_CalibrationSecondaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_CalibrationSecondaryActionButton, &ui_font_Inter_Bold_14, - LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationSecondaryActionButtonLabel = lv_label_create(ui_CalibrationSecondaryActionButton); - lv_obj_set_width(ui_CalibrationSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_CalibrationSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_CalibrationSecondaryActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_CalibrationSecondaryActionButtonLabel, "Cancel"); - - ui_CalibrationPrimaryActionButton = lv_btn_create(ui_CalibrationFooter); - lv_obj_set_width(ui_CalibrationPrimaryActionButton, 60); - lv_obj_set_height(ui_CalibrationPrimaryActionButton, 42); - lv_obj_set_align(ui_CalibrationPrimaryActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_CalibrationPrimaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_CalibrationPrimaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_CalibrationPrimaryActionButton, &ui_font_Inter_Bold_14, - LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_CalibrationPrimaryActionButtonLabel = lv_label_create(ui_CalibrationPrimaryActionButton); - lv_obj_set_width(ui_CalibrationPrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_CalibrationPrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_CalibrationPrimaryActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_CalibrationPrimaryActionButtonLabel, "Start"); - - lv_obj_add_event_cb(ui_ExpoSlider, ui_event_ExpoSlider, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_CalibrationSecondaryActionButton, ui_event_CalibrationSecondaryActionButton, LV_EVENT_ALL, - NULL); - lv_obj_add_event_cb(ui_CalibrationPrimaryActionButton, ui_event_CalibrationPrimaryActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_CalibrationScreen, ui_event_CalibrationScreen, LV_EVENT_ALL, NULL); +void ui_CalibrationScreen_screen_init(void) +{ + ui_CalibrationScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_CalibrationScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_CalibrationScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_CalibrationScreen); + lv_obj_set_style_bg_color(ui_CalibrationScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_CalibrationScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationContent = lv_obj_create(ui_CalibrationScreen); + lv_obj_remove_style_all(ui_CalibrationContent); + lv_obj_set_width(ui_CalibrationContent, lv_pct(100)); + lv_obj_set_height(ui_CalibrationContent, lv_pct(100)); + lv_obj_set_align(ui_CalibrationContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_CalibrationContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_CalibrationContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_CalibrationContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_CalibrationContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationHeader = lv_obj_create(ui_CalibrationContent); + lv_obj_remove_style_all(ui_CalibrationHeader); + lv_obj_set_width(ui_CalibrationHeader, lv_pct(100)); + lv_obj_set_height(ui_CalibrationHeader, lv_pct(20)); + lv_obj_set_align(ui_CalibrationHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_CalibrationHeader, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_CalibrationHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_CalibrationHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_CalibrationHeaderLabel = lv_label_create(ui_CalibrationHeader); + lv_obj_set_width(ui_CalibrationHeaderLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_CalibrationHeaderLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_CalibrationHeaderLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_CalibrationHeaderLabel, "X: 0.0 | Y: 0.0"); + lv_obj_set_style_text_font(ui_CalibrationHeaderLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationBody = lv_obj_create(ui_CalibrationContent); + lv_obj_remove_style_all(ui_CalibrationBody); + lv_obj_set_width(ui_CalibrationBody, lv_pct(100)); + lv_obj_set_height(ui_CalibrationBody, lv_pct(55)); + lv_obj_set_align(ui_CalibrationBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_CalibrationBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_CalibrationBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_CalibrationBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_CalibrationBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_CalibrationBody, 12, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_CalibrationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationStepContent = lv_obj_create(ui_CalibrationBody); + lv_obj_remove_style_all(ui_CalibrationStepContent); + lv_obj_set_width(ui_CalibrationStepContent, lv_pct(100)); + lv_obj_set_height(ui_CalibrationStepContent, lv_pct(90)); + lv_obj_set_align(ui_CalibrationStepContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_CalibrationStepContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_CalibrationStepContent, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_CalibrationStepContent, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_CalibrationStepContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_ExpoSlider = lv_slider_create(ui_CalibrationStepContent); + lv_slider_set_range(ui_ExpoSlider, 1, 20); + lv_slider_set_value(ui_ExpoSlider, 10, LV_ANIM_OFF); + if(lv_slider_get_mode(ui_ExpoSlider) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_ExpoSlider, 0, LV_ANIM_OFF); + lv_obj_set_height(ui_ExpoSlider, 15); + lv_obj_set_width(ui_ExpoSlider, lv_pct(75)); + lv_obj_set_align(ui_ExpoSlider, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_ExpoSlider, LV_OBJ_FLAG_HIDDEN); /// Flags + + ui_StickFlags = lv_obj_create(ui_CalibrationStepContent); + lv_obj_remove_style_all(ui_StickFlags); + lv_obj_set_width(ui_StickFlags, lv_pct(100)); + lv_obj_set_height(ui_StickFlags, lv_pct(100)); + lv_obj_set_align(ui_StickFlags, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StickFlags, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StickFlags, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_StickFlags, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_StickFlags, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_StickFlags, 8, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_StickFlags, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_InvertXContainer = lv_obj_create(ui_StickFlags); + lv_obj_remove_style_all(ui_InvertXContainer); + lv_obj_set_width(ui_InvertXContainer, lv_pct(50)); + lv_obj_set_height(ui_InvertXContainer, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertXContainer, 9); + lv_obj_set_y(ui_InvertXContainer, -74); + lv_obj_set_align(ui_InvertXContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_InvertXContainer, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_InvertXContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_InvertXContainer, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_InvertXContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_InvertXSwitch = lv_switch_create(ui_InvertXContainer); + lv_obj_set_height(ui_InvertXSwitch, 25); + lv_obj_set_width(ui_InvertXSwitch, lv_pct(50)); + lv_obj_set_x(ui_InvertXSwitch, 12); + lv_obj_set_y(ui_InvertXSwitch, -10); + lv_obj_set_align(ui_InvertXSwitch, LV_ALIGN_CENTER); + + ui_InvertXLabel = lv_label_create(ui_InvertXContainer); + lv_obj_set_width(ui_InvertXLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_InvertXLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertXLabel, 6); + lv_obj_set_y(ui_InvertXLabel, -17); + lv_obj_set_align(ui_InvertXLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_InvertXLabel, "Invert X"); + + ui_InvertYContainer = lv_obj_create(ui_StickFlags); + lv_obj_remove_style_all(ui_InvertYContainer); + lv_obj_set_width(ui_InvertYContainer, lv_pct(50)); + lv_obj_set_height(ui_InvertYContainer, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertYContainer, 9); + lv_obj_set_y(ui_InvertYContainer, -74); + lv_obj_set_align(ui_InvertYContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_InvertYContainer, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_InvertYContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_InvertYContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_InvertYSwitch = lv_switch_create(ui_InvertYContainer); + lv_obj_set_height(ui_InvertYSwitch, 25); + lv_obj_set_width(ui_InvertYSwitch, lv_pct(50)); + lv_obj_set_x(ui_InvertYSwitch, 12); + lv_obj_set_y(ui_InvertYSwitch, -10); + lv_obj_set_align(ui_InvertYSwitch, LV_ALIGN_CENTER); + + ui_InvertYLabel = lv_label_create(ui_InvertYContainer); + lv_obj_set_width(ui_InvertYLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_InvertYLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertYLabel, 6); + lv_obj_set_y(ui_InvertYLabel, -17); + lv_obj_set_align(ui_InvertYLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_InvertYLabel, "Invert Y"); + + ui_InvertXYContainer = lv_obj_create(ui_StickFlags); + lv_obj_remove_style_all(ui_InvertXYContainer); + lv_obj_set_width(ui_InvertXYContainer, lv_pct(50)); + lv_obj_set_height(ui_InvertXYContainer, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertXYContainer, 9); + lv_obj_set_y(ui_InvertXYContainer, -74); + lv_obj_set_align(ui_InvertXYContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_InvertXYContainer, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_InvertXYContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_InvertXYContainer, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_InvertXYContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_InvertXYSwitch = lv_switch_create(ui_InvertXYContainer); + lv_obj_set_height(ui_InvertXYSwitch, 25); + lv_obj_set_width(ui_InvertXYSwitch, lv_pct(50)); + lv_obj_set_x(ui_InvertXYSwitch, 12); + lv_obj_set_y(ui_InvertXYSwitch, -10); + lv_obj_set_align(ui_InvertXYSwitch, LV_ALIGN_CENTER); + + ui_InvertXYLabel = lv_label_create(ui_InvertXYContainer); + lv_obj_set_width(ui_InvertXYLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_InvertXYLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_InvertXYLabel, 6); + lv_obj_set_y(ui_InvertXYLabel, -17); + lv_obj_set_align(ui_InvertXYLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_InvertXYLabel, "Invert XY"); + + ui_CalibrationIndicatorContainer = lv_obj_create(ui_CalibrationStepContent); + lv_obj_remove_style_all(ui_CalibrationIndicatorContainer); + lv_obj_set_width(ui_CalibrationIndicatorContainer, 80); + lv_obj_set_height(ui_CalibrationIndicatorContainer, 80); + lv_obj_set_align(ui_CalibrationIndicatorContainer, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_CalibrationIndicatorContainer, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_CalibrationIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_radius(ui_CalibrationIndicatorContainer, 999, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_CalibrationIndicatorContainer, lv_color_hex(0x414141), + LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_CalibrationIndicatorContainer, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(ui_CalibrationIndicatorContainer, 6, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(ui_CalibrationIndicatorContainer, LV_BORDER_SIDE_FULL, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_DeadbandIndicator = lv_obj_create(ui_CalibrationIndicatorContainer); + lv_obj_remove_style_all(ui_DeadbandIndicator); + lv_obj_set_width(ui_DeadbandIndicator, lv_pct(50)); + lv_obj_set_height(ui_DeadbandIndicator, lv_pct(50)); + lv_obj_set_align(ui_DeadbandIndicator, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_DeadbandIndicator, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_DeadbandIndicator, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_radius(ui_DeadbandIndicator, 999, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_DeadbandIndicator, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_DeadbandIndicator, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(ui_DeadbandIndicator, 3, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationLineVert = lv_obj_create(ui_CalibrationIndicatorContainer); + lv_obj_remove_style_all(ui_CalibrationLineVert); + lv_obj_set_width(ui_CalibrationLineVert, 4); + lv_obj_set_height(ui_CalibrationLineVert, lv_pct(130)); + lv_obj_set_align(ui_CalibrationLineVert, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_CalibrationLineVert, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_CalibrationLineVert, lv_color_hex(0xEE4266), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_CalibrationLineVert, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationLineHoriz = lv_obj_create(ui_CalibrationIndicatorContainer); + lv_obj_remove_style_all(ui_CalibrationLineHoriz); + lv_obj_set_height(ui_CalibrationLineHoriz, 4); + lv_obj_set_width(ui_CalibrationLineHoriz, lv_pct(130)); + lv_obj_set_align(ui_CalibrationLineHoriz, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_CalibrationLineHoriz, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_CalibrationLineHoriz, lv_color_hex(0xEE4266), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_CalibrationLineHoriz, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PositionIndicatorContainer = lv_obj_create(ui_CalibrationIndicatorContainer); + lv_obj_remove_style_all(ui_PositionIndicatorContainer); + lv_obj_set_width(ui_PositionIndicatorContainer, lv_pct(20)); + lv_obj_set_height(ui_PositionIndicatorContainer, lv_pct(20)); + lv_obj_set_align(ui_PositionIndicatorContainer, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_PositionIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_PositionIndicatorHoriz = lv_obj_create(ui_PositionIndicatorContainer); + lv_obj_remove_style_all(ui_PositionIndicatorHoriz); + lv_obj_set_height(ui_PositionIndicatorHoriz, 4); + lv_obj_set_width(ui_PositionIndicatorHoriz, lv_pct(100)); + lv_obj_set_align(ui_PositionIndicatorHoriz, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_PositionIndicatorHoriz, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_PositionIndicatorHoriz, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_PositionIndicatorHoriz, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PositionIndicatorVert = lv_obj_create(ui_PositionIndicatorContainer); + lv_obj_remove_style_all(ui_PositionIndicatorVert); + lv_obj_set_width(ui_PositionIndicatorVert, 4); + lv_obj_set_height(ui_PositionIndicatorVert, lv_pct(100)); + lv_obj_set_align(ui_PositionIndicatorVert, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_PositionIndicatorVert, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_PositionIndicatorVert, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_PositionIndicatorVert, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationStepLabel = lv_label_create(ui_CalibrationBody); + lv_obj_set_width(ui_CalibrationStepLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_CalibrationStepLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_CalibrationStepLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_CalibrationStepLabel, "Press start to begin calibration"); + lv_obj_set_style_text_font(ui_CalibrationStepLabel, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_CalibrationStepLabel, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_CalibrationStepLabel, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationFooter = lv_obj_create(ui_CalibrationContent); + lv_obj_remove_style_all(ui_CalibrationFooter); + lv_obj_set_width(ui_CalibrationFooter, lv_pct(100)); + lv_obj_set_height(ui_CalibrationFooter, lv_pct(25)); + lv_obj_set_align(ui_CalibrationFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_CalibrationFooter, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_CalibrationFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_CalibrationFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_CalibrationFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_CalibrationFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationSecondaryActionButton = lv_btn_create(ui_CalibrationFooter); + lv_obj_set_width(ui_CalibrationSecondaryActionButton, 60); + lv_obj_set_height(ui_CalibrationSecondaryActionButton, 42); + lv_obj_set_align(ui_CalibrationSecondaryActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_CalibrationSecondaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_CalibrationSecondaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_CalibrationSecondaryActionButton, &ui_font_Inter_Bold_14, + LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationSecondaryActionButtonLabel = lv_label_create(ui_CalibrationSecondaryActionButton); + lv_obj_set_width(ui_CalibrationSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_CalibrationSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_CalibrationSecondaryActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_CalibrationSecondaryActionButtonLabel, "Cancel"); + + ui_CalibrationPrimaryActionButton = lv_btn_create(ui_CalibrationFooter); + lv_obj_set_width(ui_CalibrationPrimaryActionButton, 60); + lv_obj_set_height(ui_CalibrationPrimaryActionButton, 42); + lv_obj_set_align(ui_CalibrationPrimaryActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_CalibrationPrimaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_CalibrationPrimaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_CalibrationPrimaryActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_CalibrationPrimaryActionButtonLabel = lv_label_create(ui_CalibrationPrimaryActionButton); + lv_obj_set_width(ui_CalibrationPrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_CalibrationPrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_CalibrationPrimaryActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_CalibrationPrimaryActionButtonLabel, "Start"); + + lv_obj_add_event_cb(ui_ExpoSlider, ui_event_ExpoSlider, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_CalibrationSecondaryActionButton, ui_event_CalibrationSecondaryActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_CalibrationPrimaryActionButton, ui_event_CalibrationPrimaryActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_CalibrationScreen, ui_event_CalibrationScreen, LV_EVENT_ALL, NULL); + } -void ui_CalibrationScreen_screen_destroy(void) { - if (ui_CalibrationScreen) - lv_obj_del(ui_CalibrationScreen); - - // NULL screen variables - ui_CalibrationScreen = NULL; - ui_CalibrationContent = NULL; - ui_CalibrationHeader = NULL; - ui_CalibrationHeaderLabel = NULL; - ui_CalibrationBody = NULL; - ui_CalibrationStepContent = NULL; - ui_ExpoSlider = NULL; - ui_StickFlags = NULL; - ui_InvertXContainer = NULL; - ui_InvertXSwitch = NULL; - ui_InvertXLabel = NULL; - ui_InvertYContainer = NULL; - ui_InvertYSwitch = NULL; - ui_InvertYLabel = NULL; - ui_InvertXYContainer = NULL; - ui_InvertXYSwitch = NULL; - ui_InvertXYLabel = NULL; - ui_CalibrationIndicatorContainer = NULL; - ui_DeadbandIndicator = NULL; - ui_CalibrationLineVert = NULL; - ui_CalibrationLineHoriz = NULL; - ui_PositionIndicatorContainer = NULL; - ui_PositionIndicatorHoriz = NULL; - ui_PositionIndicatorVert = NULL; - ui_CalibrationStepLabel = NULL; - ui_CalibrationFooter = NULL; - ui_CalibrationSecondaryActionButton = NULL; - ui_CalibrationSecondaryActionButtonLabel = NULL; - ui_CalibrationPrimaryActionButton = NULL; - ui_CalibrationPrimaryActionButtonLabel = NULL; +void ui_CalibrationScreen_screen_destroy(void) +{ + if(ui_CalibrationScreen) lv_obj_del(ui_CalibrationScreen); + + // NULL screen variables + ui_CalibrationScreen = NULL; + ui_CalibrationContent = NULL; + ui_CalibrationHeader = NULL; + ui_CalibrationHeaderLabel = NULL; + ui_CalibrationBody = NULL; + ui_CalibrationStepContent = NULL; + ui_ExpoSlider = NULL; + ui_StickFlags = NULL; + ui_InvertXContainer = NULL; + ui_InvertXSwitch = NULL; + ui_InvertXLabel = NULL; + ui_InvertYContainer = NULL; + ui_InvertYSwitch = NULL; + ui_InvertYLabel = NULL; + ui_InvertXYContainer = NULL; + ui_InvertXYSwitch = NULL; + ui_InvertXYLabel = NULL; + ui_CalibrationIndicatorContainer = NULL; + ui_DeadbandIndicator = NULL; + ui_CalibrationLineVert = NULL; + ui_CalibrationLineHoriz = NULL; + ui_PositionIndicatorContainer = NULL; + ui_PositionIndicatorHoriz = NULL; + ui_PositionIndicatorVert = NULL; + ui_CalibrationStepLabel = NULL; + ui_CalibrationFooter = NULL; + ui_CalibrationSecondaryActionButton = NULL; + ui_CalibrationSecondaryActionButtonLabel = NULL; + ui_CalibrationPrimaryActionButton = NULL; + ui_CalibrationPrimaryActionButtonLabel = NULL; + } diff --git a/firmware/src/ui/ui_ChargeScreen.c b/firmware/src/ui/ui_ChargeScreen.c index d40ee2df..20c72b4e 100644 --- a/firmware/src/ui/ui_ChargeScreen.c +++ b/firmware/src/ui/ui_ChargeScreen.c @@ -5,82 +5,86 @@ #include "ui.h" -lv_obj_t *ui_ChargeScreen = NULL; -lv_obj_t *ui_ChargeLevelDial = NULL; -lv_obj_t *ui_ChargeInfoContainer = NULL; -lv_obj_t *ui_ChargeInfoPrimaryLabel = NULL; -lv_obj_t *ui_ChargeInfoLevelLabel = NULL; +lv_obj_t * ui_ChargeScreen = NULL; +lv_obj_t * ui_ChargeLevelDial = NULL; +lv_obj_t * ui_ChargeInfoContainer = NULL; +lv_obj_t * ui_ChargeInfoPrimaryLabel = NULL; +lv_obj_t * ui_ChargeInfoLevelLabel = NULL; // event funtions -void ui_event_ChargeScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - charge_screen_load_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOADED) { - charge_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - charge_screen_unload_start(e); - } +void ui_event_ChargeScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + charge_screen_load_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOADED) { + charge_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + charge_screen_unload_start(e); + } } // build funtions -void ui_ChargeScreen_screen_init(void) { - ui_ChargeScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_ChargeScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_ChargeScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_ChargeScreen); - lv_obj_set_style_bg_color(ui_ChargeScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_ChargeScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_ChargeLevelDial = lv_arc_create(ui_ChargeScreen); - lv_obj_set_width(ui_ChargeLevelDial, 240); - lv_obj_set_height(ui_ChargeLevelDial, 240); - lv_obj_set_align(ui_ChargeLevelDial, LV_ALIGN_CENTER); - lv_arc_set_value(ui_ChargeLevelDial, 0); - lv_arc_set_bg_angles(ui_ChargeLevelDial, 90, 89); - lv_obj_set_style_arc_width(ui_ChargeLevelDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_arc_width(ui_ChargeLevelDial, 20, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_bg_color(ui_ChargeLevelDial, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_ChargeLevelDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_ChargeInfoContainer = lv_obj_create(ui_ChargeScreen); - lv_obj_remove_style_all(ui_ChargeInfoContainer); - lv_obj_set_width(ui_ChargeInfoContainer, LV_SIZE_CONTENT); /// 100 - lv_obj_set_height(ui_ChargeInfoContainer, LV_SIZE_CONTENT); /// 50 - lv_obj_set_align(ui_ChargeInfoContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_ChargeInfoContainer, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_ChargeInfoContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_ChargeInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_ChargeInfoPrimaryLabel = lv_label_create(ui_ChargeInfoContainer); - lv_obj_set_width(ui_ChargeInfoPrimaryLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_ChargeInfoPrimaryLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_ChargeInfoPrimaryLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_ChargeInfoPrimaryLabel, "Charging"); - lv_obj_set_style_text_align(ui_ChargeInfoPrimaryLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_ChargeInfoPrimaryLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_ChargeInfoLevelLabel = lv_label_create(ui_ChargeInfoContainer); - lv_obj_set_width(ui_ChargeInfoLevelLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_ChargeInfoLevelLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_ChargeInfoLevelLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_ChargeInfoLevelLabel, "0%"); - - lv_obj_add_event_cb(ui_ChargeScreen, ui_event_ChargeScreen, LV_EVENT_ALL, NULL); +void ui_ChargeScreen_screen_init(void) +{ + ui_ChargeScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_ChargeScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_ChargeScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_ChargeScreen); + lv_obj_set_style_bg_color(ui_ChargeScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ChargeScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ChargeLevelDial = lv_arc_create(ui_ChargeScreen); + lv_obj_set_width(ui_ChargeLevelDial, 240); + lv_obj_set_height(ui_ChargeLevelDial, 240); + lv_obj_set_align(ui_ChargeLevelDial, LV_ALIGN_CENTER); + lv_arc_set_value(ui_ChargeLevelDial, 0); + lv_arc_set_bg_angles(ui_ChargeLevelDial, 90, 89); + lv_obj_set_style_arc_width(ui_ChargeLevelDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_arc_width(ui_ChargeLevelDial, 20, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_bg_color(ui_ChargeLevelDial, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ChargeLevelDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_ChargeInfoContainer = lv_obj_create(ui_ChargeScreen); + lv_obj_remove_style_all(ui_ChargeInfoContainer); + lv_obj_set_width(ui_ChargeInfoContainer, LV_SIZE_CONTENT); /// 100 + lv_obj_set_height(ui_ChargeInfoContainer, LV_SIZE_CONTENT); /// 50 + lv_obj_set_align(ui_ChargeInfoContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_ChargeInfoContainer, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_ChargeInfoContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_ChargeInfoContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_ChargeInfoPrimaryLabel = lv_label_create(ui_ChargeInfoContainer); + lv_obj_set_width(ui_ChargeInfoPrimaryLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ChargeInfoPrimaryLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_ChargeInfoPrimaryLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_ChargeInfoPrimaryLabel, "Charging"); + lv_obj_set_style_text_align(ui_ChargeInfoPrimaryLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ChargeInfoPrimaryLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ChargeInfoLevelLabel = lv_label_create(ui_ChargeInfoContainer); + lv_obj_set_width(ui_ChargeInfoLevelLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ChargeInfoLevelLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_ChargeInfoLevelLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_ChargeInfoLevelLabel, "0%"); + + lv_obj_add_event_cb(ui_ChargeScreen, ui_event_ChargeScreen, LV_EVENT_ALL, NULL); + } -void ui_ChargeScreen_screen_destroy(void) { - if (ui_ChargeScreen) - lv_obj_del(ui_ChargeScreen); +void ui_ChargeScreen_screen_destroy(void) +{ + if(ui_ChargeScreen) lv_obj_del(ui_ChargeScreen); + + // NULL screen variables + ui_ChargeScreen = NULL; + ui_ChargeLevelDial = NULL; + ui_ChargeInfoContainer = NULL; + ui_ChargeInfoPrimaryLabel = NULL; + ui_ChargeInfoLevelLabel = NULL; - // NULL screen variables - ui_ChargeScreen = NULL; - ui_ChargeLevelDial = NULL; - ui_ChargeInfoContainer = NULL; - ui_ChargeInfoPrimaryLabel = NULL; - ui_ChargeInfoLevelLabel = NULL; } diff --git a/firmware/src/ui/ui_MenuScreen.c b/firmware/src/ui/ui_MenuScreen.c index d2b29957..c3ef116b 100644 --- a/firmware/src/ui/ui_MenuScreen.c +++ b/firmware/src/ui/ui_MenuScreen.c @@ -5,284 +5,74 @@ #include "ui.h" -lv_obj_t *ui_MenuScreen = NULL; -lv_obj_t *ui_MenuContent = NULL; -lv_obj_t *ui_MenuBody = NULL; -lv_obj_t *ui_MenuBackButton = NULL; -lv_obj_t *ui_MenuBackButtonLabel = NULL; -lv_obj_t *ui_MenuConnectButton = NULL; -lv_obj_t *ui_MenuConnectButtonLabel = NULL; -lv_obj_t *ui_MenuPocketModeButton = NULL; -lv_obj_t *ui_MenuPocketModeButtonLabel = NULL; -lv_obj_t *ui_MenuSettingsButton = NULL; -lv_obj_t *ui_MenuSettingsButtonLabel = NULL; -lv_obj_t *ui_MenuCalibrateButton = NULL; -lv_obj_t *ui_MenuCalibrateButtonLabel = NULL; -lv_obj_t *ui_MenuPairButton = NULL; -lv_obj_t *ui_MenuPairButtonLabel = NULL; -lv_obj_t *ui_MenuAboutButton = NULL; -lv_obj_t *ui_MenuAboutButtonLabel = NULL; -lv_obj_t *ui_MenuShutdownButton = NULL; -lv_obj_t *ui_MenuShutdownButtonLabel = NULL; +lv_obj_t * ui_MenuScreen = NULL; +lv_obj_t * ui_MenuContent = NULL; +lv_obj_t * ui_MenuBody = NULL; // event funtions -void ui_event_MenuScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - menu_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - menu_screen_unload_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - menu_screen_load_start(e); - } -} - -void ui_event_MenuBackButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_StatsScreen, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_StatsScreen_screen_init); - } -} - -void ui_event_MenuConnectButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - menu_connect_press(e); - } -} - -void ui_event_MenuPocketModeButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - menu_pocket_mode_press(e); - } -} - -void ui_event_MenuSettingsButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_SettingsScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_SettingsScreen_screen_init); - } -} - -void ui_event_MenuCalibrateButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_CalibrationScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_CalibrationScreen_screen_init); - } -} - -void ui_event_MenuPairButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_PairingScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 200, 0, &ui_PairingScreen_screen_init); - } -} - -void ui_event_MenuAboutButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_AboutScreen, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_AboutScreen_screen_init); - } -} - -void ui_event_MenuShutdownButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_CLICKED) { - shutdown_button_press(e); - } - if (event_code == LV_EVENT_LONG_PRESSED) { - shutdown_button_long_press(e); - } - if (event_code == LV_EVENT_PRESSED) { - shutdown_button_down(e); - } +void ui_event_MenuScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + menu_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + menu_screen_unload_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + menu_screen_load_start(e); + } } // build funtions -void ui_MenuScreen_screen_init(void) { - ui_MenuScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_MenuScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_MenuScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_MenuScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_MenuContent = lv_obj_create(ui_MenuScreen); - lv_obj_remove_style_all(ui_MenuContent); - lv_obj_set_width(ui_MenuContent, lv_pct(100)); - lv_obj_set_height(ui_MenuContent, lv_pct(100)); - lv_obj_set_align(ui_MenuContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_MenuContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_MenuContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_MenuContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_MenuContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_MenuBody = lv_obj_create(ui_MenuContent); - lv_obj_remove_style_all(ui_MenuBody); - lv_obj_set_width(ui_MenuBody, lv_pct(100)); - lv_obj_set_height(ui_MenuBody, lv_pct(100)); - lv_obj_set_align(ui_MenuBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_MenuBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_MenuBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_MenuBody, - LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SNAPPABLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_scrollbar_mode(ui_MenuBody, LV_SCROLLBAR_MODE_ACTIVE); - lv_obj_set_scroll_dir(ui_MenuBody, LV_DIR_VER); - lv_obj_set_style_pad_left(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_MenuBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_MenuBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_MenuBody, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_MenuBackButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuBackButton, 42); - lv_obj_set_width(ui_MenuBackButton, lv_pct(100)); - lv_obj_set_align(ui_MenuBackButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuBackButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuBackButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuBackButtonLabel = lv_label_create(ui_MenuBackButton); - lv_obj_set_width(ui_MenuBackButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuBackButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuBackButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuBackButtonLabel, "Back"); - - ui_MenuConnectButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuConnectButton, 42); - lv_obj_set_width(ui_MenuConnectButton, lv_pct(100)); - lv_obj_set_align(ui_MenuConnectButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuConnectButton, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuConnectButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuConnectButtonLabel = lv_label_create(ui_MenuConnectButton); - lv_obj_set_width(ui_MenuConnectButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuConnectButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuConnectButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuConnectButtonLabel, "Connect"); - - ui_MenuPocketModeButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuPocketModeButton, 42); - lv_obj_set_width(ui_MenuPocketModeButton, lv_pct(100)); - lv_obj_set_align(ui_MenuPocketModeButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuPocketModeButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuPocketModeButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuPocketModeButtonLabel = lv_label_create(ui_MenuPocketModeButton); - lv_obj_set_width(ui_MenuPocketModeButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuPocketModeButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuPocketModeButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuPocketModeButtonLabel, "Enable Pocket Mode"); +void ui_MenuScreen_screen_init(void) +{ + ui_MenuScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_MenuScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_MenuScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_MenuScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_MenuContent = lv_obj_create(ui_MenuScreen); + lv_obj_remove_style_all(ui_MenuContent); + lv_obj_set_width(ui_MenuContent, lv_pct(100)); + lv_obj_set_height(ui_MenuContent, lv_pct(100)); + lv_obj_set_align(ui_MenuContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_MenuContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_MenuContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_MenuContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_MenuContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_MenuBody = lv_obj_create(ui_MenuContent); + lv_obj_remove_style_all(ui_MenuBody); + lv_obj_set_width(ui_MenuBody, lv_pct(100)); + lv_obj_set_height(ui_MenuBody, lv_pct(100)); + lv_obj_set_align(ui_MenuBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_MenuBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_MenuBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_MenuBody, LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SNAPPABLE | + LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags + lv_obj_set_scrollbar_mode(ui_MenuBody, LV_SCROLLBAR_MODE_ACTIVE); + lv_obj_set_scroll_dir(ui_MenuBody, LV_DIR_VER); + lv_obj_set_style_pad_left(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_MenuBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_MenuBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_MenuBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_MenuBody, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_add_event_cb(ui_MenuScreen, ui_event_MenuScreen, LV_EVENT_ALL, NULL); - ui_MenuSettingsButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuSettingsButton, 42); - lv_obj_set_width(ui_MenuSettingsButton, lv_pct(100)); - lv_obj_set_align(ui_MenuSettingsButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuSettingsButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuSettingsButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuSettingsButtonLabel = lv_label_create(ui_MenuSettingsButton); - lv_obj_set_width(ui_MenuSettingsButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuSettingsButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuSettingsButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuSettingsButtonLabel, "Settings"); - - ui_MenuCalibrateButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuCalibrateButton, 42); - lv_obj_set_width(ui_MenuCalibrateButton, lv_pct(100)); - lv_obj_set_align(ui_MenuCalibrateButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuCalibrateButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuCalibrateButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuCalibrateButtonLabel = lv_label_create(ui_MenuCalibrateButton); - lv_obj_set_width(ui_MenuCalibrateButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuCalibrateButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuCalibrateButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuCalibrateButtonLabel, "Calibration"); - - ui_MenuPairButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuPairButton, 42); - lv_obj_set_width(ui_MenuPairButton, lv_pct(100)); - lv_obj_set_align(ui_MenuPairButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuPairButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuPairButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuPairButtonLabel = lv_label_create(ui_MenuPairButton); - lv_obj_set_width(ui_MenuPairButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuPairButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuPairButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuPairButtonLabel, "Pairing"); - - ui_MenuAboutButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuAboutButton, 42); - lv_obj_set_width(ui_MenuAboutButton, lv_pct(100)); - lv_obj_set_align(ui_MenuAboutButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuAboutButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuAboutButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuAboutButtonLabel = lv_label_create(ui_MenuAboutButton); - lv_obj_set_width(ui_MenuAboutButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuAboutButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuAboutButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuAboutButtonLabel, "About"); - - ui_MenuShutdownButton = lv_btn_create(ui_MenuBody); - lv_obj_set_height(ui_MenuShutdownButton, 42); - lv_obj_set_width(ui_MenuShutdownButton, lv_pct(100)); - lv_obj_set_align(ui_MenuShutdownButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_MenuShutdownButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_MenuShutdownButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_MenuShutdownButtonLabel = lv_label_create(ui_MenuShutdownButton); - lv_obj_set_width(ui_MenuShutdownButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_MenuShutdownButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MenuShutdownButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_MenuShutdownButtonLabel, "Shutdown"); - - lv_obj_add_event_cb(ui_MenuBackButton, ui_event_MenuBackButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuConnectButton, ui_event_MenuConnectButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuPocketModeButton, ui_event_MenuPocketModeButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuSettingsButton, ui_event_MenuSettingsButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuCalibrateButton, ui_event_MenuCalibrateButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuPairButton, ui_event_MenuPairButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuAboutButton, ui_event_MenuAboutButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuShutdownButton, ui_event_MenuShutdownButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_MenuScreen, ui_event_MenuScreen, LV_EVENT_ALL, NULL); } -void ui_MenuScreen_screen_destroy(void) { - if (ui_MenuScreen) - lv_obj_del(ui_MenuScreen); +void ui_MenuScreen_screen_destroy(void) +{ + if(ui_MenuScreen) lv_obj_del(ui_MenuScreen); + + // NULL screen variables + ui_MenuScreen = NULL; + ui_MenuContent = NULL; + ui_MenuBody = NULL; - // NULL screen variables - ui_MenuScreen = NULL; - ui_MenuContent = NULL; - ui_MenuBody = NULL; - ui_MenuBackButton = NULL; - ui_MenuBackButtonLabel = NULL; - ui_MenuConnectButton = NULL; - ui_MenuConnectButtonLabel = NULL; - ui_MenuPocketModeButton = NULL; - ui_MenuPocketModeButtonLabel = NULL; - ui_MenuSettingsButton = NULL; - ui_MenuSettingsButtonLabel = NULL; - ui_MenuCalibrateButton = NULL; - ui_MenuCalibrateButtonLabel = NULL; - ui_MenuPairButton = NULL; - ui_MenuPairButtonLabel = NULL; - ui_MenuAboutButton = NULL; - ui_MenuAboutButtonLabel = NULL; - ui_MenuShutdownButton = NULL; - ui_MenuShutdownButtonLabel = NULL; } diff --git a/firmware/src/ui/ui_MenuScreen.h b/firmware/src/ui/ui_MenuScreen.h index 89bdf890..a720abd0 100644 --- a/firmware/src/ui/ui_MenuScreen.h +++ b/firmware/src/ui/ui_MenuScreen.h @@ -17,30 +17,6 @@ extern void ui_event_MenuScreen(lv_event_t * e); extern lv_obj_t * ui_MenuScreen; extern lv_obj_t * ui_MenuContent; extern lv_obj_t * ui_MenuBody; -extern void ui_event_MenuBackButton(lv_event_t * e); -extern lv_obj_t * ui_MenuBackButton; -extern lv_obj_t * ui_MenuBackButtonLabel; -extern void ui_event_MenuConnectButton(lv_event_t * e); -extern lv_obj_t * ui_MenuConnectButton; -extern lv_obj_t * ui_MenuConnectButtonLabel; -extern void ui_event_MenuPocketModeButton(lv_event_t * e); -extern lv_obj_t * ui_MenuPocketModeButton; -extern lv_obj_t * ui_MenuPocketModeButtonLabel; -extern void ui_event_MenuSettingsButton(lv_event_t * e); -extern lv_obj_t * ui_MenuSettingsButton; -extern lv_obj_t * ui_MenuSettingsButtonLabel; -extern void ui_event_MenuCalibrateButton(lv_event_t * e); -extern lv_obj_t * ui_MenuCalibrateButton; -extern lv_obj_t * ui_MenuCalibrateButtonLabel; -extern void ui_event_MenuPairButton(lv_event_t * e); -extern lv_obj_t * ui_MenuPairButton; -extern lv_obj_t * ui_MenuPairButtonLabel; -extern void ui_event_MenuAboutButton(lv_event_t * e); -extern lv_obj_t * ui_MenuAboutButton; -extern lv_obj_t * ui_MenuAboutButtonLabel; -extern void ui_event_MenuShutdownButton(lv_event_t * e); -extern lv_obj_t * ui_MenuShutdownButton; -extern lv_obj_t * ui_MenuShutdownButtonLabel; // CUSTOM VARIABLES #ifdef __cplusplus diff --git a/firmware/src/ui/ui_PairingScreen.c b/firmware/src/ui/ui_PairingScreen.c index 8bc3c400..4d6a24d7 100644 --- a/firmware/src/ui/ui_PairingScreen.c +++ b/firmware/src/ui/ui_PairingScreen.c @@ -5,150 +5,155 @@ #include "ui.h" -lv_obj_t *ui_PairingScreen = NULL; -lv_obj_t *ui_PairingContent = NULL; -lv_obj_t *ui_PairingHeader = NULL; -lv_obj_t *ui_PairingHeaderLabel = NULL; -lv_obj_t *ui_PairingBody = NULL; -lv_obj_t *ui_PairingCode = NULL; -lv_obj_t *ui_PairingCodeLabel = NULL; -lv_obj_t *ui_PairingFooter = NULL; -lv_obj_t *ui_PairingMainActionButton = NULL; -lv_obj_t *ui_PairingMainActionButtonLabel = NULL; +lv_obj_t * ui_PairingScreen = NULL; +lv_obj_t * ui_PairingContent = NULL; +lv_obj_t * ui_PairingHeader = NULL; +lv_obj_t * ui_PairingHeaderLabel = NULL; +lv_obj_t * ui_PairingBody = NULL; +lv_obj_t * ui_PairingCode = NULL; +lv_obj_t * ui_PairingCodeLabel = NULL; +lv_obj_t * ui_PairingFooter = NULL; +lv_obj_t * ui_PairingMainActionButton = NULL; +lv_obj_t * ui_PairingMainActionButtonLabel = NULL; // event funtions -void ui_event_PairingScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - pairing_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - pairing_screen_load_start(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - pairing_screen_unload_start(e); - } +void ui_event_PairingScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + pairing_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + pairing_screen_load_start(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + pairing_screen_unload_start(e); + } } -void ui_event_PairingMainActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_PairingMainActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); - } + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); + } } // build funtions -void ui_PairingScreen_screen_init(void) { - ui_PairingScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_PairingScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_PairingScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_PairingScreen); - lv_obj_set_style_bg_color(ui_PairingScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_PairingScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingContent = lv_obj_create(ui_PairingScreen); - lv_obj_remove_style_all(ui_PairingContent); - lv_obj_set_width(ui_PairingContent, lv_pct(100)); - lv_obj_set_height(ui_PairingContent, lv_pct(100)); - lv_obj_set_align(ui_PairingContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_PairingContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_PairingContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_PairingContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_PairingContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingHeader = lv_obj_create(ui_PairingContent); - lv_obj_remove_style_all(ui_PairingHeader); - lv_obj_set_width(ui_PairingHeader, lv_pct(100)); - lv_obj_set_height(ui_PairingHeader, lv_pct(20)); - lv_obj_set_align(ui_PairingHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_PairingHeader, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_PairingHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_PairingHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_PairingHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_PairingHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_PairingHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_PairingHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingHeaderLabel = lv_label_create(ui_PairingHeader); - lv_obj_set_width(ui_PairingHeaderLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_PairingHeaderLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_PairingHeaderLabel, 31); - lv_obj_set_y(ui_PairingHeaderLabel, -102); - lv_obj_set_align(ui_PairingHeaderLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_PairingHeaderLabel, "Pairing"); - lv_obj_set_style_text_font(ui_PairingHeaderLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingBody = lv_obj_create(ui_PairingContent); - lv_obj_remove_style_all(ui_PairingBody); - lv_obj_set_width(ui_PairingBody, lv_pct(100)); - lv_obj_set_height(ui_PairingBody, lv_pct(55)); - lv_obj_set_align(ui_PairingBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_PairingBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_PairingBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_PairingBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_PairingBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_PairingBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_PairingBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_PairingBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingCode = lv_label_create(ui_PairingBody); - lv_obj_set_width(ui_PairingCode, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_PairingCode, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_PairingCode, LV_ALIGN_CENTER); - lv_label_set_text(ui_PairingCode, "0000"); - lv_obj_set_style_text_font(ui_PairingCode, &ui_font_Inter_Bold_48, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingCodeLabel = lv_label_create(ui_PairingBody); - lv_obj_set_width(ui_PairingCodeLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_PairingCodeLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_PairingCodeLabel, 19); - lv_obj_set_y(ui_PairingCodeLabel, 38); - lv_obj_set_align(ui_PairingCodeLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_PairingCodeLabel, "Your pairing code"); - - ui_PairingFooter = lv_obj_create(ui_PairingContent); - lv_obj_remove_style_all(ui_PairingFooter); - lv_obj_set_width(ui_PairingFooter, lv_pct(65)); - lv_obj_set_height(ui_PairingFooter, lv_pct(25)); - lv_obj_set_align(ui_PairingFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_PairingFooter, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_PairingFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_PairingFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_PairingFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_PairingFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingMainActionButton = lv_btn_create(ui_PairingFooter); - lv_obj_set_width(ui_PairingMainActionButton, 80); - lv_obj_set_height(ui_PairingMainActionButton, 42); - lv_obj_set_align(ui_PairingMainActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_PairingMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_PairingMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_PairingMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PairingMainActionButtonLabel = lv_label_create(ui_PairingMainActionButton); - lv_obj_set_width(ui_PairingMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_PairingMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_PairingMainActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_PairingMainActionButtonLabel, "Cancel"); - - lv_obj_add_event_cb(ui_PairingMainActionButton, ui_event_PairingMainActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_PairingScreen, ui_event_PairingScreen, LV_EVENT_ALL, NULL); +void ui_PairingScreen_screen_init(void) +{ + ui_PairingScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_PairingScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_PairingScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_PairingScreen); + lv_obj_set_style_bg_color(ui_PairingScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_PairingScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingContent = lv_obj_create(ui_PairingScreen); + lv_obj_remove_style_all(ui_PairingContent); + lv_obj_set_width(ui_PairingContent, lv_pct(100)); + lv_obj_set_height(ui_PairingContent, lv_pct(100)); + lv_obj_set_align(ui_PairingContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_PairingContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_PairingContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_PairingContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_PairingContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingHeader = lv_obj_create(ui_PairingContent); + lv_obj_remove_style_all(ui_PairingHeader); + lv_obj_set_width(ui_PairingHeader, lv_pct(100)); + lv_obj_set_height(ui_PairingHeader, lv_pct(20)); + lv_obj_set_align(ui_PairingHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_PairingHeader, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_PairingHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_PairingHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_PairingHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_PairingHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_PairingHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_PairingHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingHeaderLabel = lv_label_create(ui_PairingHeader); + lv_obj_set_width(ui_PairingHeaderLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_PairingHeaderLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_PairingHeaderLabel, 31); + lv_obj_set_y(ui_PairingHeaderLabel, -102); + lv_obj_set_align(ui_PairingHeaderLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_PairingHeaderLabel, "Pairing"); + lv_obj_set_style_text_font(ui_PairingHeaderLabel, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingBody = lv_obj_create(ui_PairingContent); + lv_obj_remove_style_all(ui_PairingBody); + lv_obj_set_width(ui_PairingBody, lv_pct(100)); + lv_obj_set_height(ui_PairingBody, lv_pct(55)); + lv_obj_set_align(ui_PairingBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_PairingBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_PairingBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_PairingBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_PairingBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_PairingBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_PairingBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_PairingBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingCode = lv_label_create(ui_PairingBody); + lv_obj_set_width(ui_PairingCode, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_PairingCode, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_PairingCode, LV_ALIGN_CENTER); + lv_label_set_text(ui_PairingCode, "0000"); + lv_obj_set_style_text_font(ui_PairingCode, &ui_font_Inter_Bold_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingCodeLabel = lv_label_create(ui_PairingBody); + lv_obj_set_width(ui_PairingCodeLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_PairingCodeLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_PairingCodeLabel, 19); + lv_obj_set_y(ui_PairingCodeLabel, 38); + lv_obj_set_align(ui_PairingCodeLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_PairingCodeLabel, "Your pairing code"); + + ui_PairingFooter = lv_obj_create(ui_PairingContent); + lv_obj_remove_style_all(ui_PairingFooter); + lv_obj_set_width(ui_PairingFooter, lv_pct(65)); + lv_obj_set_height(ui_PairingFooter, lv_pct(25)); + lv_obj_set_align(ui_PairingFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_PairingFooter, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_PairingFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_PairingFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_PairingFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_PairingFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingMainActionButton = lv_btn_create(ui_PairingFooter); + lv_obj_set_width(ui_PairingMainActionButton, 80); + lv_obj_set_height(ui_PairingMainActionButton, 42); + lv_obj_set_align(ui_PairingMainActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_PairingMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_PairingMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_PairingMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PairingMainActionButtonLabel = lv_label_create(ui_PairingMainActionButton); + lv_obj_set_width(ui_PairingMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_PairingMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_PairingMainActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_PairingMainActionButtonLabel, "Cancel"); + + lv_obj_add_event_cb(ui_PairingMainActionButton, ui_event_PairingMainActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_PairingScreen, ui_event_PairingScreen, LV_EVENT_ALL, NULL); + } -void ui_PairingScreen_screen_destroy(void) { - if (ui_PairingScreen) - lv_obj_del(ui_PairingScreen); - - // NULL screen variables - ui_PairingScreen = NULL; - ui_PairingContent = NULL; - ui_PairingHeader = NULL; - ui_PairingHeaderLabel = NULL; - ui_PairingBody = NULL; - ui_PairingCode = NULL; - ui_PairingCodeLabel = NULL; - ui_PairingFooter = NULL; - ui_PairingMainActionButton = NULL; - ui_PairingMainActionButtonLabel = NULL; +void ui_PairingScreen_screen_destroy(void) +{ + if(ui_PairingScreen) lv_obj_del(ui_PairingScreen); + + // NULL screen variables + ui_PairingScreen = NULL; + ui_PairingContent = NULL; + ui_PairingHeader = NULL; + ui_PairingHeaderLabel = NULL; + ui_PairingBody = NULL; + ui_PairingCode = NULL; + ui_PairingCodeLabel = NULL; + ui_PairingFooter = NULL; + ui_PairingMainActionButton = NULL; + ui_PairingMainActionButtonLabel = NULL; + } diff --git a/firmware/src/ui/ui_SettingsScreen.c b/firmware/src/ui/ui_SettingsScreen.c index ce25ef4f..44e64f86 100644 --- a/firmware/src/ui/ui_SettingsScreen.c +++ b/firmware/src/ui/ui_SettingsScreen.c @@ -5,614 +5,743 @@ #include "ui.h" -lv_obj_t *ui_SettingsScreen = NULL; -lv_obj_t *ui_SettingsContent = NULL; -lv_obj_t *ui_SettingsHeader = NULL; -lv_obj_t *ui_SettingsBody = NULL; -lv_obj_t *ui_BrightnessBody = NULL; -lv_obj_t *ui_BrightnessSlider = NULL; -lv_obj_t *ui_BrightnessLabel = NULL; -lv_obj_t *ui_ActionsBody = NULL; -lv_obj_t *ui_DoublePressAction = NULL; -lv_obj_t *ui_ActionsLabel = NULL; -lv_obj_t *ui_RotationBody = NULL; -lv_obj_t *ui_Rotation = NULL; -lv_obj_t *ui_RotationLabel = NULL; -lv_obj_t *ui_PowerBody = NULL; -lv_obj_t *ui_AutoOffTime = NULL; -lv_obj_t *ui_PowerLabel = NULL; -lv_obj_t *ui_TempUnitsBody = NULL; -lv_obj_t *ui_TempUnits = NULL; -lv_obj_t *ui_TempUnitsLabel = NULL; -lv_obj_t *ui_DistanceUnitsBody = NULL; -lv_obj_t *ui_DistanceUnits = NULL; -lv_obj_t *ui_DistanceUnitsLabel = NULL; -lv_obj_t *ui_StartupSoundBody = NULL; -lv_obj_t *ui_StartupSound = NULL; -lv_obj_t *ui_StartupSoundLabel = NULL; -lv_obj_t *ui_ThemeColorBody = NULL; -lv_obj_t *ui_ThemeColor = NULL; -lv_obj_t *ui_ThemeColorLabel = NULL; -lv_obj_t *ui_DarkTextBody = NULL; -lv_obj_t *ui_DarkText = NULL; -lv_obj_t *ui_DarkTextLabel = NULL; -lv_obj_t *ui_SettingsFooter = NULL; -lv_obj_t *ui_SettingsMainActionButton = NULL; -lv_obj_t *ui_SettingsMainActionButtonLabel = NULL; +lv_obj_t * ui_SettingsScreen = NULL; +lv_obj_t * ui_SettingsContent = NULL; +lv_obj_t * ui_SettingsHeader = NULL; +lv_obj_t * ui_SettingsBody = NULL; +lv_obj_t * ui_BrightnessBody = NULL; +lv_obj_t * ui_BrightnessSlider = NULL; +lv_obj_t * ui_BrightnessLabel = NULL; +lv_obj_t * ui_SinglePressActionsBody = NULL; +lv_obj_t * ui_SinglePressAction = NULL; +lv_obj_t * ui_SinglePressActionLabel = NULL; +lv_obj_t * ui_DoublePressActionsBody = NULL; +lv_obj_t * ui_DoublePressAction = NULL; +lv_obj_t * ui_DoublePressActionLabel = NULL; +lv_obj_t * ui_LongPressActionsBody = NULL; +lv_obj_t * ui_LongPressAction = NULL; +lv_obj_t * ui_LongPressActionLabel = NULL; +lv_obj_t * ui_RotationBody = NULL; +lv_obj_t * ui_Rotation = NULL; +lv_obj_t * ui_RotationLabel = NULL; +lv_obj_t * ui_PowerBody = NULL; +lv_obj_t * ui_AutoOffTime = NULL; +lv_obj_t * ui_PowerLabel = NULL; +lv_obj_t * ui_TempUnitsBody = NULL; +lv_obj_t * ui_TempUnits = NULL; +lv_obj_t * ui_TempUnitsLabel = NULL; +lv_obj_t * ui_DistanceUnitsBody = NULL; +lv_obj_t * ui_DistanceUnits = NULL; +lv_obj_t * ui_DistanceUnitsLabel = NULL; +lv_obj_t * ui_StartupSoundBody = NULL; +lv_obj_t * ui_StartupSound = NULL; +lv_obj_t * ui_StartupSoundLabel = NULL; +lv_obj_t * ui_ThemeColorBody = NULL; +lv_obj_t * ui_ThemeColor = NULL; +lv_obj_t * ui_ThemeColorLabel = NULL; +lv_obj_t * ui_DarkTextBody = NULL; +lv_obj_t * ui_DarkText = NULL; +lv_obj_t * ui_DarkTextLabel = NULL; +lv_obj_t * ui_SettingsFooter = NULL; +lv_obj_t * ui_SettingsMainActionButton = NULL; +lv_obj_t * ui_SettingsMainActionButtonLabel = NULL; // event funtions -void ui_event_SettingsScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - settings_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - settings_screen_unload_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - settings_screen_load_start(e); - } +void ui_event_SettingsScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + settings_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + settings_screen_unload_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + settings_screen_load_start(e); + } } -void ui_event_BrightnessSlider(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_BrightnessSlider(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - brightness_slider_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + brightness_slider_change(e); + } } -void ui_event_DoublePressAction(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_SinglePressAction(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - double_press_action_select_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + single_press_action_select_change(e); + } } -void ui_event_Rotation(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_DoublePressAction(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - screen_rotation_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + double_press_action_select_change(e); + } } -void ui_event_AutoOffTime(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_LongPressAction(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - auto_off_select_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + long_press_action_select_change(e); + } } -void ui_event_TempUnits(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_Rotation(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - temp_units_select_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + screen_rotation_change(e); + } } -void ui_event_DistanceUnits(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_AutoOffTime(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - distance_units_select_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + auto_off_select_change(e); + } } -void ui_event_StartupSound(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_TempUnits(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - startup_sound_select_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + temp_units_select_change(e); + } } -void ui_event_ThemeColor(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_DistanceUnits(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - theme_color_picker_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + distance_units_select_change(e); + } } -void ui_event_DarkText(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_StartupSound(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_VALUE_CHANGED) { - dark_text_switch_change(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + startup_sound_select_change(e); + } } -void ui_event_SettingsMainActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_ThemeColor(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); - settings_save(e); - } + if(event_code == LV_EVENT_VALUE_CHANGED) { + theme_color_picker_change(e); + } +} + +void ui_event_DarkText(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_VALUE_CHANGED) { + dark_text_switch_change(e); + } +} + +void ui_event_SettingsMainActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); + settings_save(e); + } } // build funtions -void ui_SettingsScreen_screen_init(void) { - ui_SettingsScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_SettingsScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_SettingsScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_SettingsScreen); - lv_obj_set_style_bg_color(ui_SettingsScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_SettingsScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SettingsContent = lv_obj_create(ui_SettingsScreen); - lv_obj_remove_style_all(ui_SettingsContent); - lv_obj_set_width(ui_SettingsContent, lv_pct(100)); - lv_obj_set_height(ui_SettingsContent, lv_pct(100)); - lv_obj_set_align(ui_SettingsContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_SettingsContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_SettingsContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_SettingsContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_SettingsContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SettingsHeader = lv_obj_create(ui_SettingsContent); - lv_obj_remove_style_all(ui_SettingsHeader); - lv_obj_set_width(ui_SettingsHeader, lv_pct(100)); - lv_obj_set_height(ui_SettingsHeader, lv_pct(20)); - lv_obj_set_align(ui_SettingsHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_SettingsHeader, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_SettingsHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_SettingsHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_SettingsHeader, 4, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SettingsBody = lv_obj_create(ui_SettingsContent); - lv_obj_remove_style_all(ui_SettingsBody); - lv_obj_set_width(ui_SettingsBody, lv_pct(100)); - lv_obj_set_height(ui_SettingsBody, lv_pct(55)); - lv_obj_set_align(ui_SettingsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_SettingsBody, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_SettingsBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_SettingsBody, LV_OBJ_FLAG_SCROLL_ONE); /// Flags - lv_obj_clear_flag(ui_SettingsBody, LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_scrollbar_mode(ui_SettingsBody, LV_SCROLLBAR_MODE_ACTIVE); - lv_obj_set_scroll_dir(ui_SettingsBody, LV_DIR_HOR); - - ui_BrightnessBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_BrightnessBody); - lv_obj_set_width(ui_BrightnessBody, lv_pct(100)); - lv_obj_set_height(ui_BrightnessBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_BrightnessBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_BrightnessBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_BrightnessBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_BrightnessBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_BrightnessBody, - LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_BrightnessBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_BrightnessBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_BrightnessBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_BrightnessSlider = lv_slider_create(ui_BrightnessBody); - lv_slider_set_range(ui_BrightnessSlider, 10, 255); - lv_slider_set_value(ui_BrightnessSlider, 0, LV_ANIM_OFF); - if (lv_slider_get_mode(ui_BrightnessSlider) == LV_SLIDER_MODE_RANGE) - lv_slider_set_left_value(ui_BrightnessSlider, 0, LV_ANIM_OFF); - lv_obj_set_height(ui_BrightnessSlider, 15); - lv_obj_set_width(ui_BrightnessSlider, lv_pct(100)); - lv_obj_set_align(ui_BrightnessSlider, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_BrightnessSlider, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - - ui_BrightnessLabel = lv_label_create(ui_BrightnessBody); - lv_obj_set_width(ui_BrightnessLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_BrightnessLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_BrightnessLabel, 19); - lv_obj_set_y(ui_BrightnessLabel, 38); - lv_obj_set_align(ui_BrightnessLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_BrightnessLabel, "Screen brightness"); - - ui_ActionsBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_ActionsBody); - lv_obj_set_width(ui_ActionsBody, lv_pct(100)); - lv_obj_set_height(ui_ActionsBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_ActionsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_ActionsBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_ActionsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_ActionsBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_ActionsBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_ActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_ActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_ActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_ActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_ActionsBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_ActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DoublePressAction = lv_dropdown_create(ui_ActionsBody); - lv_dropdown_set_options(ui_DoublePressAction, "None\nOpen menu"); - lv_obj_set_width(ui_DoublePressAction, lv_pct(100)); - lv_obj_set_height(ui_DoublePressAction, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DoublePressAction, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_DoublePressAction, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_DoublePressAction, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_DoublePressAction, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_DoublePressAction, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DoublePressAction), &ui_font_Inter_14, - LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DoublePressAction), &ui_font_Inter_14, - LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_ActionsLabel = lv_label_create(ui_ActionsBody); - lv_obj_set_width(ui_ActionsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_ActionsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_ActionsLabel, 19); - lv_obj_set_y(ui_ActionsLabel, 38); - lv_obj_set_align(ui_ActionsLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_ActionsLabel, "Double-press action"); - - ui_RotationBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_RotationBody); - lv_obj_set_width(ui_RotationBody, lv_pct(100)); - lv_obj_set_height(ui_RotationBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_RotationBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_RotationBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_RotationBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_RotationBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_RotationBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_RotationBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_RotationBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_RotationBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_Rotation = lv_dropdown_create(ui_RotationBody); - lv_dropdown_set_options(ui_Rotation, "None\n90 degrees\n180 degress\n270 degrees"); - lv_obj_set_width(ui_Rotation, lv_pct(100)); - lv_obj_set_height(ui_Rotation, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_Rotation, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_Rotation, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_Rotation, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_Rotation, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_Rotation, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_Rotation), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_Rotation), &ui_font_Inter_14, LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_RotationLabel = lv_label_create(ui_RotationBody); - lv_obj_set_width(ui_RotationLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_RotationLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_RotationLabel, 19); - lv_obj_set_y(ui_RotationLabel, 38); - lv_obj_set_align(ui_RotationLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_RotationLabel, "Screen rotation"); - - ui_PowerBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_PowerBody); - lv_obj_set_width(ui_PowerBody, lv_pct(100)); - lv_obj_set_height(ui_PowerBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_PowerBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_PowerBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_PowerBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_PowerBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_PowerBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_PowerBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_PowerBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_AutoOffTime = lv_dropdown_create(ui_PowerBody); - lv_dropdown_set_options(ui_AutoOffTime, "Disabled\n2 minutes\n5 minutes\n10 minutes\n20 minutes\n30 minutes"); - lv_obj_set_width(ui_AutoOffTime, lv_pct(100)); - lv_obj_set_height(ui_AutoOffTime, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_AutoOffTime, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_AutoOffTime, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_AutoOffTime, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_AutoOffTime, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_AutoOffTime, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_AutoOffTime), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_AutoOffTime), &ui_font_Inter_14, - LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_PowerLabel = lv_label_create(ui_PowerBody); - lv_obj_set_width(ui_PowerLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_PowerLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_PowerLabel, 19); - lv_obj_set_y(ui_PowerLabel, 38); - lv_obj_set_align(ui_PowerLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_PowerLabel, "Auto-off time"); - - ui_TempUnitsBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_TempUnitsBody); - lv_obj_set_width(ui_TempUnitsBody, lv_pct(100)); - lv_obj_set_height(ui_TempUnitsBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_TempUnitsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_TempUnitsBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_TempUnitsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_TempUnitsBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_TempUnitsBody, 49, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_TempUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_TempUnitsBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_TempUnits = lv_dropdown_create(ui_TempUnitsBody); - lv_dropdown_set_options(ui_TempUnits, "Celsius\nFahrenheit"); - lv_obj_set_width(ui_TempUnits, lv_pct(100)); - lv_obj_set_height(ui_TempUnits, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_TempUnits, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_TempUnits, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_TempUnits, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_TempUnits, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_TempUnits, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_TempUnits), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_TempUnits), &ui_font_Inter_14, - LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_TempUnitsLabel = lv_label_create(ui_TempUnitsBody); - lv_obj_set_width(ui_TempUnitsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_TempUnitsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_TempUnitsLabel, 19); - lv_obj_set_y(ui_TempUnitsLabel, 38); - lv_obj_set_align(ui_TempUnitsLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_TempUnitsLabel, "Temp units"); - - ui_DistanceUnitsBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_DistanceUnitsBody); - lv_obj_set_width(ui_DistanceUnitsBody, lv_pct(100)); - lv_obj_set_height(ui_DistanceUnitsBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DistanceUnitsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_DistanceUnitsBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_DistanceUnitsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_DistanceUnitsBody, - LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_DistanceUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_DistanceUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_DistanceUnitsBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DistanceUnits = lv_dropdown_create(ui_DistanceUnitsBody); - lv_dropdown_set_options(ui_DistanceUnits, "Kilometers\nMiles"); - lv_obj_set_width(ui_DistanceUnits, lv_pct(100)); - lv_obj_set_height(ui_DistanceUnits, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DistanceUnits, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_DistanceUnits, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_DistanceUnits, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_DistanceUnits, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_DistanceUnits, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DistanceUnits), &ui_font_Inter_14, - LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DistanceUnits), &ui_font_Inter_14, - LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_DistanceUnitsLabel = lv_label_create(ui_DistanceUnitsBody); - lv_obj_set_width(ui_DistanceUnitsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_DistanceUnitsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_DistanceUnitsLabel, 19); - lv_obj_set_y(ui_DistanceUnitsLabel, 38); - lv_obj_set_align(ui_DistanceUnitsLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_DistanceUnitsLabel, "Distance units"); - - ui_StartupSoundBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_StartupSoundBody); - lv_obj_set_width(ui_StartupSoundBody, lv_pct(100)); - lv_obj_set_height(ui_StartupSoundBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_StartupSoundBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StartupSoundBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StartupSoundBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_StartupSoundBody, - LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_StartupSoundBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_StartupSoundBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_StartupSoundBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_StartupSound = lv_dropdown_create(ui_StartupSoundBody); - lv_dropdown_set_options(ui_StartupSound, "Disabled\nBeep\nMelody"); - lv_obj_set_width(ui_StartupSound, lv_pct(100)); - lv_obj_set_height(ui_StartupSound, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_StartupSound, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_StartupSound, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_StartupSound, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - lv_obj_set_style_text_font(ui_StartupSound, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(ui_StartupSound, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_StartupSound), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_text_font(lv_dropdown_get_list(ui_StartupSound), &ui_font_Inter_14, - LV_PART_SELECTED | LV_STATE_DEFAULT); - - ui_StartupSoundLabel = lv_label_create(ui_StartupSoundBody); - lv_obj_set_width(ui_StartupSoundLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_StartupSoundLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_StartupSoundLabel, 19); - lv_obj_set_y(ui_StartupSoundLabel, 38); - lv_obj_set_align(ui_StartupSoundLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_StartupSoundLabel, "Startup sound"); - - ui_ThemeColorBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_ThemeColorBody); - lv_obj_set_width(ui_ThemeColorBody, lv_pct(100)); - lv_obj_set_height(ui_ThemeColorBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_ThemeColorBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_ThemeColorBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_ThemeColorBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_ThemeColorBody, - LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_ThemeColorBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_ThemeColorBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_ThemeColorBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_ThemeColor = lv_colorwheel_create(ui_ThemeColorBody, true); - lv_obj_set_width(ui_ThemeColor, 75); - lv_obj_set_height(ui_ThemeColor, 75); - lv_obj_set_align(ui_ThemeColor, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_ThemeColor, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags - - lv_obj_set_style_pad_left(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_ThemeColorLabel = lv_label_create(ui_ThemeColorBody); - lv_obj_set_width(ui_ThemeColorLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_ThemeColorLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_ThemeColorLabel, 19); - lv_obj_set_y(ui_ThemeColorLabel, 38); - lv_obj_set_align(ui_ThemeColorLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_ThemeColorLabel, "Theme color"); - - ui_DarkTextBody = lv_obj_create(ui_SettingsBody); - lv_obj_remove_style_all(ui_DarkTextBody); - lv_obj_set_width(ui_DarkTextBody, lv_pct(100)); - lv_obj_set_height(ui_DarkTextBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DarkTextBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_DarkTextBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_DarkTextBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_DarkTextBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_DarkTextBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_DarkTextBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_DarkTextBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DarkText = lv_switch_create(ui_DarkTextBody); - lv_obj_set_height(ui_DarkText, 25); - lv_obj_set_width(ui_DarkText, lv_pct(50)); - lv_obj_set_x(ui_DarkText, 31); - lv_obj_set_y(ui_DarkText, -12); - lv_obj_set_align(ui_DarkText, LV_ALIGN_CENTER); - - ui_DarkTextLabel = lv_label_create(ui_DarkTextBody); - lv_obj_set_width(ui_DarkTextLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_DarkTextLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_DarkTextLabel, 19); - lv_obj_set_y(ui_DarkTextLabel, 38); - lv_obj_set_align(ui_DarkTextLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_DarkTextLabel, "Dark text"); - - ui_SettingsFooter = lv_obj_create(ui_SettingsContent); - lv_obj_remove_style_all(ui_SettingsFooter); - lv_obj_set_width(ui_SettingsFooter, lv_pct(100)); - lv_obj_set_height(ui_SettingsFooter, lv_pct(25)); - lv_obj_set_align(ui_SettingsFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_SettingsFooter, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_SettingsFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_SettingsFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_SettingsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_SettingsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SettingsMainActionButton = lv_btn_create(ui_SettingsFooter); - lv_obj_set_width(ui_SettingsMainActionButton, 80); - lv_obj_set_height(ui_SettingsMainActionButton, 42); - lv_obj_set_align(ui_SettingsMainActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_SettingsMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_SettingsMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_SettingsMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SettingsMainActionButtonLabel = lv_label_create(ui_SettingsMainActionButton); - lv_obj_set_width(ui_SettingsMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_SettingsMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_SettingsMainActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_SettingsMainActionButtonLabel, "Save"); - - lv_obj_add_event_cb(ui_BrightnessSlider, ui_event_BrightnessSlider, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_DoublePressAction, ui_event_DoublePressAction, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_Rotation, ui_event_Rotation, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_AutoOffTime, ui_event_AutoOffTime, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_TempUnits, ui_event_TempUnits, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_DistanceUnits, ui_event_DistanceUnits, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_StartupSound, ui_event_StartupSound, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_ThemeColor, ui_event_ThemeColor, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_DarkText, ui_event_DarkText, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_SettingsMainActionButton, ui_event_SettingsMainActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_SettingsScreen, ui_event_SettingsScreen, LV_EVENT_ALL, NULL); +void ui_SettingsScreen_screen_init(void) +{ + ui_SettingsScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_SettingsScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_SettingsScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_SettingsScreen); + lv_obj_set_style_bg_color(ui_SettingsScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_SettingsScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SettingsContent = lv_obj_create(ui_SettingsScreen); + lv_obj_remove_style_all(ui_SettingsContent); + lv_obj_set_width(ui_SettingsContent, lv_pct(100)); + lv_obj_set_height(ui_SettingsContent, lv_pct(100)); + lv_obj_set_align(ui_SettingsContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_SettingsContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_SettingsContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_SettingsContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_SettingsContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SettingsHeader = lv_obj_create(ui_SettingsContent); + lv_obj_remove_style_all(ui_SettingsHeader); + lv_obj_set_width(ui_SettingsHeader, lv_pct(100)); + lv_obj_set_height(ui_SettingsHeader, lv_pct(20)); + lv_obj_set_align(ui_SettingsHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_SettingsHeader, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_SettingsHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_SettingsHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_SettingsHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_SettingsHeader, 4, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SettingsBody = lv_obj_create(ui_SettingsContent); + lv_obj_remove_style_all(ui_SettingsBody); + lv_obj_set_width(ui_SettingsBody, lv_pct(100)); + lv_obj_set_height(ui_SettingsBody, lv_pct(55)); + lv_obj_set_align(ui_SettingsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_SettingsBody, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_SettingsBody, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_SettingsBody, LV_OBJ_FLAG_SCROLL_ONE); /// Flags + lv_obj_clear_flag(ui_SettingsBody, LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags + lv_obj_set_scrollbar_mode(ui_SettingsBody, LV_SCROLLBAR_MODE_ACTIVE); + lv_obj_set_scroll_dir(ui_SettingsBody, LV_DIR_HOR); + + ui_BrightnessBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_BrightnessBody); + lv_obj_set_width(ui_BrightnessBody, lv_pct(100)); + lv_obj_set_height(ui_BrightnessBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_BrightnessBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_BrightnessBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_BrightnessBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_BrightnessBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_BrightnessBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_BrightnessBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_BrightnessBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_BrightnessBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_BrightnessBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_BrightnessSlider = lv_slider_create(ui_BrightnessBody); + lv_slider_set_range(ui_BrightnessSlider, 10, 255); + lv_slider_set_value(ui_BrightnessSlider, 0, LV_ANIM_OFF); + if(lv_slider_get_mode(ui_BrightnessSlider) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_BrightnessSlider, 0, + LV_ANIM_OFF); + lv_obj_set_height(ui_BrightnessSlider, 15); + lv_obj_set_width(ui_BrightnessSlider, lv_pct(100)); + lv_obj_set_align(ui_BrightnessSlider, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_BrightnessSlider, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + + ui_BrightnessLabel = lv_label_create(ui_BrightnessBody); + lv_obj_set_width(ui_BrightnessLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_BrightnessLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_BrightnessLabel, 19); + lv_obj_set_y(ui_BrightnessLabel, 38); + lv_obj_set_align(ui_BrightnessLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_BrightnessLabel, "Screen brightness"); + + ui_SinglePressActionsBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_SinglePressActionsBody); + lv_obj_set_width(ui_SinglePressActionsBody, lv_pct(100)); + lv_obj_set_height(ui_SinglePressActionsBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_SinglePressActionsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_SinglePressActionsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_SinglePressActionsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_SinglePressActionsBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_SinglePressActionsBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_SinglePressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_SinglePressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_SinglePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_SinglePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_SinglePressActionsBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_SinglePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SinglePressAction = lv_dropdown_create(ui_SinglePressActionsBody); + lv_dropdown_set_options(ui_SinglePressAction, + "None\nShutdown\nOpen menu\nDim display\nPocket mode\nCycle secondary stat\nCycle board battery"); + lv_obj_set_width(ui_SinglePressAction, lv_pct(100)); + lv_obj_set_height(ui_SinglePressAction, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_SinglePressAction, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_SinglePressAction, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_SinglePressAction, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_SinglePressAction, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_SinglePressAction, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_SinglePressAction), &ui_font_Inter_14, + LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_SinglePressAction), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_SinglePressActionLabel = lv_label_create(ui_SinglePressActionsBody); + lv_obj_set_width(ui_SinglePressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_SinglePressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_SinglePressActionLabel, 19); + lv_obj_set_y(ui_SinglePressActionLabel, 38); + lv_obj_set_align(ui_SinglePressActionLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_SinglePressActionLabel, "Single-press action"); + + ui_DoublePressActionsBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_DoublePressActionsBody); + lv_obj_set_width(ui_DoublePressActionsBody, lv_pct(100)); + lv_obj_set_height(ui_DoublePressActionsBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DoublePressActionsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_DoublePressActionsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_DoublePressActionsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_DoublePressActionsBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_DoublePressActionsBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_DoublePressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_DoublePressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_DoublePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_DoublePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_DoublePressActionsBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_DoublePressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_DoublePressAction = lv_dropdown_create(ui_DoublePressActionsBody); + lv_dropdown_set_options(ui_DoublePressAction, + "None\nShutdown\nOpen menu\nDim display\nPocket mode\nCycle secondary stat\nCycle board battery"); + lv_obj_set_width(ui_DoublePressAction, lv_pct(100)); + lv_obj_set_height(ui_DoublePressAction, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DoublePressAction, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_DoublePressAction, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_DoublePressAction, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_DoublePressAction, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_DoublePressAction, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DoublePressAction), &ui_font_Inter_14, + LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DoublePressAction), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_DoublePressActionLabel = lv_label_create(ui_DoublePressActionsBody); + lv_obj_set_width(ui_DoublePressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_DoublePressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_DoublePressActionLabel, 19); + lv_obj_set_y(ui_DoublePressActionLabel, 38); + lv_obj_set_align(ui_DoublePressActionLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_DoublePressActionLabel, "Double-press action"); + + ui_LongPressActionsBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_LongPressActionsBody); + lv_obj_set_width(ui_LongPressActionsBody, lv_pct(100)); + lv_obj_set_height(ui_LongPressActionsBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_LongPressActionsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_LongPressActionsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_LongPressActionsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_LongPressActionsBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_LongPressActionsBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_LongPressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_LongPressActionsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_LongPressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_LongPressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_LongPressActionsBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_LongPressActionsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_LongPressAction = lv_dropdown_create(ui_LongPressActionsBody); + lv_dropdown_set_options(ui_LongPressAction, + "None\nShutdown\nOpen menu\nDim display\nPocket mode\nCycle secondary stat\nCycle board battery"); + lv_obj_set_width(ui_LongPressAction, lv_pct(100)); + lv_obj_set_height(ui_LongPressAction, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_LongPressAction, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_LongPressAction, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_LongPressAction, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_LongPressAction, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_LongPressAction, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_LongPressAction), &ui_font_Inter_14, + LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_LongPressAction), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_LongPressActionLabel = lv_label_create(ui_LongPressActionsBody); + lv_obj_set_width(ui_LongPressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_LongPressActionLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_LongPressActionLabel, 19); + lv_obj_set_y(ui_LongPressActionLabel, 38); + lv_obj_set_align(ui_LongPressActionLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_LongPressActionLabel, "Long press action"); + + ui_RotationBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_RotationBody); + lv_obj_set_width(ui_RotationBody, lv_pct(100)); + lv_obj_set_height(ui_RotationBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_RotationBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_RotationBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_RotationBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_RotationBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_RotationBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | + LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | + LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_RotationBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_RotationBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_RotationBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_RotationBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_Rotation = lv_dropdown_create(ui_RotationBody); + lv_dropdown_set_options(ui_Rotation, "None\n90 degrees\n180 degress\n270 degrees"); + lv_obj_set_width(ui_Rotation, lv_pct(100)); + lv_obj_set_height(ui_Rotation, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_Rotation, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_Rotation, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_Rotation, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_Rotation, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_Rotation, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_Rotation), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_Rotation), &ui_font_Inter_14, LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_RotationLabel = lv_label_create(ui_RotationBody); + lv_obj_set_width(ui_RotationLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_RotationLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_RotationLabel, 19); + lv_obj_set_y(ui_RotationLabel, 38); + lv_obj_set_align(ui_RotationLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_RotationLabel, "Screen rotation"); + + ui_PowerBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_PowerBody); + lv_obj_set_width(ui_PowerBody, lv_pct(100)); + lv_obj_set_height(ui_PowerBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_PowerBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_PowerBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_PowerBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_PowerBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | + LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | + LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_PowerBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_PowerBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_PowerBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_PowerBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_AutoOffTime = lv_dropdown_create(ui_PowerBody); + lv_dropdown_set_options(ui_AutoOffTime, "Disabled\n2 minutes\n5 minutes\n10 minutes\n20 minutes\n30 minutes"); + lv_obj_set_width(ui_AutoOffTime, lv_pct(100)); + lv_obj_set_height(ui_AutoOffTime, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_AutoOffTime, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_AutoOffTime, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_AutoOffTime, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_AutoOffTime, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_AutoOffTime, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_AutoOffTime), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_AutoOffTime), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_PowerLabel = lv_label_create(ui_PowerBody); + lv_obj_set_width(ui_PowerLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_PowerLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_PowerLabel, 19); + lv_obj_set_y(ui_PowerLabel, 38); + lv_obj_set_align(ui_PowerLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_PowerLabel, "Auto-off time"); + + ui_TempUnitsBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_TempUnitsBody); + lv_obj_set_width(ui_TempUnitsBody, lv_pct(100)); + lv_obj_set_height(ui_TempUnitsBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_TempUnitsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_TempUnitsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_TempUnitsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_TempUnitsBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | + LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | + LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_TempUnitsBody, 49, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_TempUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_TempUnitsBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_TempUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_TempUnits = lv_dropdown_create(ui_TempUnitsBody); + lv_dropdown_set_options(ui_TempUnits, "Celsius\nFahrenheit"); + lv_obj_set_width(ui_TempUnits, lv_pct(100)); + lv_obj_set_height(ui_TempUnits, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_TempUnits, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_TempUnits, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_TempUnits, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_TempUnits, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_TempUnits, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_TempUnits), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_TempUnits), &ui_font_Inter_14, LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_TempUnitsLabel = lv_label_create(ui_TempUnitsBody); + lv_obj_set_width(ui_TempUnitsLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_TempUnitsLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_TempUnitsLabel, 19); + lv_obj_set_y(ui_TempUnitsLabel, 38); + lv_obj_set_align(ui_TempUnitsLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_TempUnitsLabel, "Temp units"); + + ui_DistanceUnitsBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_DistanceUnitsBody); + lv_obj_set_width(ui_DistanceUnitsBody, lv_pct(100)); + lv_obj_set_height(ui_DistanceUnitsBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DistanceUnitsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_DistanceUnitsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_DistanceUnitsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_DistanceUnitsBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_DistanceUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_DistanceUnitsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_DistanceUnitsBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_DistanceUnitsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_DistanceUnits = lv_dropdown_create(ui_DistanceUnitsBody); + lv_dropdown_set_options(ui_DistanceUnits, "Kilometers\nMiles"); + lv_obj_set_width(ui_DistanceUnits, lv_pct(100)); + lv_obj_set_height(ui_DistanceUnits, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DistanceUnits, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_DistanceUnits, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_DistanceUnits, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_DistanceUnits, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_DistanceUnits, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DistanceUnits), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_DistanceUnits), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_DistanceUnitsLabel = lv_label_create(ui_DistanceUnitsBody); + lv_obj_set_width(ui_DistanceUnitsLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_DistanceUnitsLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_DistanceUnitsLabel, 19); + lv_obj_set_y(ui_DistanceUnitsLabel, 38); + lv_obj_set_align(ui_DistanceUnitsLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_DistanceUnitsLabel, "Distance units"); + + ui_StartupSoundBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_StartupSoundBody); + lv_obj_set_width(ui_StartupSoundBody, lv_pct(100)); + lv_obj_set_height(ui_StartupSoundBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_StartupSoundBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StartupSoundBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StartupSoundBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_StartupSoundBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_StartupSoundBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_StartupSoundBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_StartupSoundBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_StartupSoundBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_StartupSound = lv_dropdown_create(ui_StartupSoundBody); + lv_dropdown_set_options(ui_StartupSound, "Disabled\nBeep\nMelody"); + lv_obj_set_width(ui_StartupSound, lv_pct(100)); + lv_obj_set_height(ui_StartupSound, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_StartupSound, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_StartupSound, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_StartupSound, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + lv_obj_set_style_text_font(ui_StartupSound, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(ui_StartupSound, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_StartupSound), &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_text_font(lv_dropdown_get_list(ui_StartupSound), &ui_font_Inter_14, + LV_PART_SELECTED | LV_STATE_DEFAULT); + + ui_StartupSoundLabel = lv_label_create(ui_StartupSoundBody); + lv_obj_set_width(ui_StartupSoundLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_StartupSoundLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_StartupSoundLabel, 19); + lv_obj_set_y(ui_StartupSoundLabel, 38); + lv_obj_set_align(ui_StartupSoundLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_StartupSoundLabel, "Startup sound"); + + ui_ThemeColorBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_ThemeColorBody); + lv_obj_set_width(ui_ThemeColorBody, lv_pct(100)); + lv_obj_set_height(ui_ThemeColorBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_ThemeColorBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_ThemeColorBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_ThemeColorBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_ThemeColorBody, + LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_ThemeColorBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_ThemeColorBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_ThemeColorBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_ThemeColorBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ThemeColor = lv_colorwheel_create(ui_ThemeColorBody, true); + lv_obj_set_width(ui_ThemeColor, 75); + lv_obj_set_height(ui_ThemeColor, 75); + lv_obj_set_align(ui_ThemeColor, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_ThemeColor, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + + lv_obj_set_style_pad_left(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_ThemeColor, 10, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_ThemeColorLabel = lv_label_create(ui_ThemeColorBody); + lv_obj_set_width(ui_ThemeColorLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ThemeColorLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ThemeColorLabel, 19); + lv_obj_set_y(ui_ThemeColorLabel, 38); + lv_obj_set_align(ui_ThemeColorLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_ThemeColorLabel, "Theme color"); + + ui_DarkTextBody = lv_obj_create(ui_SettingsBody); + lv_obj_remove_style_all(ui_DarkTextBody); + lv_obj_set_width(ui_DarkTextBody, lv_pct(100)); + lv_obj_set_height(ui_DarkTextBody, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_DarkTextBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_DarkTextBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_DarkTextBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_DarkTextBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | + LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | + LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags + lv_obj_set_style_pad_left(ui_DarkTextBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_DarkTextBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_DarkTextBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_DarkTextBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_DarkText = lv_switch_create(ui_DarkTextBody); + lv_obj_set_height(ui_DarkText, 25); + lv_obj_set_width(ui_DarkText, lv_pct(50)); + lv_obj_set_x(ui_DarkText, 31); + lv_obj_set_y(ui_DarkText, -12); + lv_obj_set_align(ui_DarkText, LV_ALIGN_CENTER); + + ui_DarkTextLabel = lv_label_create(ui_DarkTextBody); + lv_obj_set_width(ui_DarkTextLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_DarkTextLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_DarkTextLabel, 19); + lv_obj_set_y(ui_DarkTextLabel, 38); + lv_obj_set_align(ui_DarkTextLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_DarkTextLabel, "Dark text"); + + ui_SettingsFooter = lv_obj_create(ui_SettingsContent); + lv_obj_remove_style_all(ui_SettingsFooter); + lv_obj_set_width(ui_SettingsFooter, lv_pct(100)); + lv_obj_set_height(ui_SettingsFooter, lv_pct(25)); + lv_obj_set_align(ui_SettingsFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_SettingsFooter, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_SettingsFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_SettingsFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_SettingsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_SettingsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SettingsMainActionButton = lv_btn_create(ui_SettingsFooter); + lv_obj_set_width(ui_SettingsMainActionButton, 80); + lv_obj_set_height(ui_SettingsMainActionButton, 42); + lv_obj_set_align(ui_SettingsMainActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_SettingsMainActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_SettingsMainActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_SettingsMainActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SettingsMainActionButtonLabel = lv_label_create(ui_SettingsMainActionButton); + lv_obj_set_width(ui_SettingsMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_SettingsMainActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_SettingsMainActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_SettingsMainActionButtonLabel, "Save"); + + lv_obj_add_event_cb(ui_BrightnessSlider, ui_event_BrightnessSlider, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_SinglePressAction, ui_event_SinglePressAction, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_DoublePressAction, ui_event_DoublePressAction, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_LongPressAction, ui_event_LongPressAction, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_Rotation, ui_event_Rotation, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_AutoOffTime, ui_event_AutoOffTime, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_TempUnits, ui_event_TempUnits, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_DistanceUnits, ui_event_DistanceUnits, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_StartupSound, ui_event_StartupSound, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_ThemeColor, ui_event_ThemeColor, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_DarkText, ui_event_DarkText, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_SettingsMainActionButton, ui_event_SettingsMainActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_SettingsScreen, ui_event_SettingsScreen, LV_EVENT_ALL, NULL); + } -void ui_SettingsScreen_screen_destroy(void) { - if (ui_SettingsScreen) - lv_obj_del(ui_SettingsScreen); - - // NULL screen variables - ui_SettingsScreen = NULL; - ui_SettingsContent = NULL; - ui_SettingsHeader = NULL; - ui_SettingsBody = NULL; - ui_BrightnessBody = NULL; - ui_BrightnessSlider = NULL; - ui_BrightnessLabel = NULL; - ui_ActionsBody = NULL; - ui_DoublePressAction = NULL; - ui_ActionsLabel = NULL; - ui_RotationBody = NULL; - ui_Rotation = NULL; - ui_RotationLabel = NULL; - ui_PowerBody = NULL; - ui_AutoOffTime = NULL; - ui_PowerLabel = NULL; - ui_TempUnitsBody = NULL; - ui_TempUnits = NULL; - ui_TempUnitsLabel = NULL; - ui_DistanceUnitsBody = NULL; - ui_DistanceUnits = NULL; - ui_DistanceUnitsLabel = NULL; - ui_StartupSoundBody = NULL; - ui_StartupSound = NULL; - ui_StartupSoundLabel = NULL; - ui_ThemeColorBody = NULL; - ui_ThemeColor = NULL; - ui_ThemeColorLabel = NULL; - ui_DarkTextBody = NULL; - ui_DarkText = NULL; - ui_DarkTextLabel = NULL; - ui_SettingsFooter = NULL; - ui_SettingsMainActionButton = NULL; - ui_SettingsMainActionButtonLabel = NULL; +void ui_SettingsScreen_screen_destroy(void) +{ + if(ui_SettingsScreen) lv_obj_del(ui_SettingsScreen); + + // NULL screen variables + ui_SettingsScreen = NULL; + ui_SettingsContent = NULL; + ui_SettingsHeader = NULL; + ui_SettingsBody = NULL; + ui_BrightnessBody = NULL; + ui_BrightnessSlider = NULL; + ui_BrightnessLabel = NULL; + ui_SinglePressActionsBody = NULL; + ui_SinglePressAction = NULL; + ui_SinglePressActionLabel = NULL; + ui_DoublePressActionsBody = NULL; + ui_DoublePressAction = NULL; + ui_DoublePressActionLabel = NULL; + ui_LongPressActionsBody = NULL; + ui_LongPressAction = NULL; + ui_LongPressActionLabel = NULL; + ui_RotationBody = NULL; + ui_Rotation = NULL; + ui_RotationLabel = NULL; + ui_PowerBody = NULL; + ui_AutoOffTime = NULL; + ui_PowerLabel = NULL; + ui_TempUnitsBody = NULL; + ui_TempUnits = NULL; + ui_TempUnitsLabel = NULL; + ui_DistanceUnitsBody = NULL; + ui_DistanceUnits = NULL; + ui_DistanceUnitsLabel = NULL; + ui_StartupSoundBody = NULL; + ui_StartupSound = NULL; + ui_StartupSoundLabel = NULL; + ui_ThemeColorBody = NULL; + ui_ThemeColor = NULL; + ui_ThemeColorLabel = NULL; + ui_DarkTextBody = NULL; + ui_DarkText = NULL; + ui_DarkTextLabel = NULL; + ui_SettingsFooter = NULL; + ui_SettingsMainActionButton = NULL; + ui_SettingsMainActionButtonLabel = NULL; + } diff --git a/firmware/src/ui/ui_SettingsScreen.h b/firmware/src/ui/ui_SettingsScreen.h index 2772e3b2..31629470 100644 --- a/firmware/src/ui/ui_SettingsScreen.h +++ b/firmware/src/ui/ui_SettingsScreen.h @@ -7,62 +7,70 @@ #define UI_SETTINGSSCREEN_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif - // SCREEN: ui_SettingsScreen - extern void ui_SettingsScreen_screen_init(void); - extern void ui_SettingsScreen_screen_destroy(void); - extern void ui_event_SettingsScreen(lv_event_t *e); - extern lv_obj_t *ui_SettingsScreen; - extern lv_obj_t *ui_SettingsContent; - extern lv_obj_t *ui_SettingsHeader; - extern lv_obj_t *ui_SettingsBody; - extern lv_obj_t *ui_BrightnessBody; - extern void ui_event_BrightnessSlider(lv_event_t *e); - extern lv_obj_t *ui_BrightnessSlider; - extern lv_obj_t *ui_BrightnessLabel; - extern lv_obj_t *ui_ActionsBody; - extern void ui_event_DoublePressAction(lv_event_t *e); - extern lv_obj_t *ui_DoublePressAction; - extern lv_obj_t *ui_ActionsLabel; - extern lv_obj_t *ui_RotationBody; - extern void ui_event_Rotation(lv_event_t *e); - extern lv_obj_t *ui_Rotation; - extern lv_obj_t *ui_RotationLabel; - extern lv_obj_t *ui_PowerBody; - extern void ui_event_AutoOffTime(lv_event_t *e); - extern lv_obj_t *ui_AutoOffTime; - extern lv_obj_t *ui_PowerLabel; - extern lv_obj_t *ui_TempUnitsBody; - extern void ui_event_TempUnits(lv_event_t *e); - extern lv_obj_t *ui_TempUnits; - extern lv_obj_t *ui_TempUnitsLabel; - extern lv_obj_t *ui_DistanceUnitsBody; - extern void ui_event_DistanceUnits(lv_event_t *e); - extern lv_obj_t *ui_DistanceUnits; - extern lv_obj_t *ui_DistanceUnitsLabel; - extern lv_obj_t *ui_StartupSoundBody; - extern void ui_event_StartupSound(lv_event_t *e); - extern lv_obj_t *ui_StartupSound; - extern lv_obj_t *ui_StartupSoundLabel; - extern lv_obj_t *ui_ThemeColorBody; - extern void ui_event_ThemeColor(lv_event_t *e); - extern lv_obj_t *ui_ThemeColor; - extern lv_obj_t *ui_ThemeColorLabel; - extern lv_obj_t *ui_DarkTextBody; - extern void ui_event_DarkText(lv_event_t *e); - extern lv_obj_t *ui_DarkText; - extern lv_obj_t *ui_DarkTextLabel; - extern lv_obj_t *ui_SettingsFooter; - extern void ui_event_SettingsMainActionButton(lv_event_t *e); - extern lv_obj_t *ui_SettingsMainActionButton; - extern lv_obj_t *ui_SettingsMainActionButtonLabel; - // CUSTOM VARIABLES +// SCREEN: ui_SettingsScreen +extern void ui_SettingsScreen_screen_init(void); +extern void ui_SettingsScreen_screen_destroy(void); +extern void ui_event_SettingsScreen(lv_event_t * e); +extern lv_obj_t * ui_SettingsScreen; +extern lv_obj_t * ui_SettingsContent; +extern lv_obj_t * ui_SettingsHeader; +extern lv_obj_t * ui_SettingsBody; +extern lv_obj_t * ui_BrightnessBody; +extern void ui_event_BrightnessSlider(lv_event_t * e); +extern lv_obj_t * ui_BrightnessSlider; +extern lv_obj_t * ui_BrightnessLabel; +extern lv_obj_t * ui_SinglePressActionsBody; +extern void ui_event_SinglePressAction(lv_event_t * e); +extern lv_obj_t * ui_SinglePressAction; +extern lv_obj_t * ui_SinglePressActionLabel; +extern lv_obj_t * ui_DoublePressActionsBody; +extern void ui_event_DoublePressAction(lv_event_t * e); +extern lv_obj_t * ui_DoublePressAction; +extern lv_obj_t * ui_DoublePressActionLabel; +extern lv_obj_t * ui_LongPressActionsBody; +extern void ui_event_LongPressAction(lv_event_t * e); +extern lv_obj_t * ui_LongPressAction; +extern lv_obj_t * ui_LongPressActionLabel; +extern lv_obj_t * ui_RotationBody; +extern void ui_event_Rotation(lv_event_t * e); +extern lv_obj_t * ui_Rotation; +extern lv_obj_t * ui_RotationLabel; +extern lv_obj_t * ui_PowerBody; +extern void ui_event_AutoOffTime(lv_event_t * e); +extern lv_obj_t * ui_AutoOffTime; +extern lv_obj_t * ui_PowerLabel; +extern lv_obj_t * ui_TempUnitsBody; +extern void ui_event_TempUnits(lv_event_t * e); +extern lv_obj_t * ui_TempUnits; +extern lv_obj_t * ui_TempUnitsLabel; +extern lv_obj_t * ui_DistanceUnitsBody; +extern void ui_event_DistanceUnits(lv_event_t * e); +extern lv_obj_t * ui_DistanceUnits; +extern lv_obj_t * ui_DistanceUnitsLabel; +extern lv_obj_t * ui_StartupSoundBody; +extern void ui_event_StartupSound(lv_event_t * e); +extern lv_obj_t * ui_StartupSound; +extern lv_obj_t * ui_StartupSoundLabel; +extern lv_obj_t * ui_ThemeColorBody; +extern void ui_event_ThemeColor(lv_event_t * e); +extern lv_obj_t * ui_ThemeColor; +extern lv_obj_t * ui_ThemeColorLabel; +extern lv_obj_t * ui_DarkTextBody; +extern void ui_event_DarkText(lv_event_t * e); +extern lv_obj_t * ui_DarkText; +extern lv_obj_t * ui_DarkTextLabel; +extern lv_obj_t * ui_SettingsFooter; +extern void ui_event_SettingsMainActionButton(lv_event_t * e); +extern lv_obj_t * ui_SettingsMainActionButton; +extern lv_obj_t * ui_SettingsMainActionButtonLabel; +// CUSTOM VARIABLES #ifdef __cplusplus } /*extern "C"*/ #endif #endif + diff --git a/firmware/src/ui/ui_StatsScreen.c b/firmware/src/ui/ui_StatsScreen.c index fddf74cd..17df021f 100644 --- a/firmware/src/ui/ui_StatsScreen.c +++ b/firmware/src/ui/ui_StatsScreen.c @@ -5,550 +5,444 @@ #include "ui.h" -lv_obj_t *ui_StatsScreen = NULL; -lv_obj_t *ui_SpeedDial = NULL; -lv_obj_t *ui_UtilizationDial = NULL; -lv_obj_t *ui_LeftSensor = NULL; -lv_obj_t *ui_RightSensor = NULL; -lv_obj_t *ui_StatsContent = NULL; -lv_obj_t *ui_StatsHeader = NULL; -lv_obj_t *ui_RemoteIndicatorContainer = NULL; -lv_obj_t *ui_BatteryIndicatorContainer = NULL; -lv_obj_t *ui_BatteryOutline = NULL; -lv_obj_t *ui_BatteryFill = NULL; -lv_obj_t *ui_BatteryTip = NULL; -lv_obj_t *ui_RSSIContainer = NULL; -lv_obj_t *ui_RSSI1 = NULL; -lv_obj_t *ui_RSSI2 = NULL; -lv_obj_t *ui_RSSI3 = NULL; -lv_obj_t *ui_MessageText = NULL; -lv_obj_t *ui_StatsBody = NULL; -lv_obj_t *ui_RemoteModeContainer = NULL; -lv_obj_t *ui_RemoteModeText = NULL; -lv_obj_t *ui_PrimaryStat = NULL; -lv_obj_t *ui_PrimaryStatUnit = NULL; -lv_obj_t *ui_SecondaryStatPaddingContainer = NULL; -lv_obj_t *ui_SecondaryStatContainer = NULL; -lv_obj_t *ui_ConnectionStateBody = NULL; -lv_obj_t *ui_ConnectionStateLabel = NULL; -lv_obj_t *ui_DutyCycleBody = NULL; -lv_obj_t *ui_DutyCycleLabel = NULL; -lv_obj_t *ui_TempsBody = NULL; -lv_obj_t *ui_TempsLabel = NULL; -lv_obj_t *ui_TripBody = NULL; -lv_obj_t *ui_TripLabel = NULL; -lv_obj_t *ui_StatsFooter = NULL; -lv_obj_t *ui_BoardBatteryDisplay = NULL; +lv_obj_t * ui_StatsScreen = NULL; +lv_obj_t * ui_SpeedDial = NULL; +lv_obj_t * ui_UtilizationDial = NULL; +lv_obj_t * ui_LeftSensor = NULL; +lv_obj_t * ui_RightSensor = NULL; +lv_obj_t * ui_StatsContent = NULL; +lv_obj_t * ui_StatsHeader = NULL; +lv_obj_t * ui_RemoteIndicatorContainer = NULL; +lv_obj_t * ui_BatteryIndicatorContainer = NULL; +lv_obj_t * ui_BatteryOutline = NULL; +lv_obj_t * ui_BatteryFill = NULL; +lv_obj_t * ui_BatteryTip = NULL; +lv_obj_t * ui_RSSIContainer = NULL; +lv_obj_t * ui_RSSI1 = NULL; +lv_obj_t * ui_RSSI2 = NULL; +lv_obj_t * ui_RSSI3 = NULL; +lv_obj_t * ui_MessageText = NULL; +lv_obj_t * ui_StatsBody = NULL; +lv_obj_t * ui_RemoteModeContainer = NULL; +lv_obj_t * ui_RemoteModeText = NULL; +lv_obj_t * ui_PrimaryStat = NULL; +lv_obj_t * ui_PrimaryStatUnit = NULL; +lv_obj_t * ui_SecondaryStatPaddingContainer = NULL; +lv_obj_t * ui_SecondaryStat = NULL; +lv_obj_t * ui_StatsFooter = NULL; +lv_obj_t * ui_BoardBatteryDisplay = NULL; // event funtions -void ui_event_StatsScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_BOTTOM) { - lv_indev_wait_release(lv_indev_get_act()); - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_OVER_BOTTOM, 200, 0, &ui_MenuScreen_screen_init); - } - if (event_code == LV_EVENT_SCREEN_LOADED) { - stats_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - stats_screen_unload_start(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - stats_screen_load_start(e); - } +void ui_event_StatsScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_BOTTOM) { + lv_indev_wait_release(lv_indev_get_act()); + stats_screen_gesture_down(e); + } + if(event_code == LV_EVENT_SCREEN_LOADED) { + stats_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + stats_screen_unload_start(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + stats_screen_load_start(e); + } } -void ui_event_PrimaryStat(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_LONG_PRESSED) { - stat_long_press(e); - } - if (event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { - lv_indev_wait_release(lv_indev_get_act()); - stat_swipe_left(e); - } - if (event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { - lv_indev_wait_release(lv_indev_get_act()); - stat_swipe_right(e); - } +void ui_event_PrimaryStat(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_LONG_PRESSED) { + primary_stat_long_press(e); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + primary_stat_swipe_left(e); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + primary_stat_swipe_right(e); + } } -void ui_event_StatsFooter(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_SecondaryStatPaddingContainer(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_LONG_PRESSED) { + secondary_stat_long_press(e); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + secondary_stat_swipe_left(e); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + secondary_stat_swipe_right(e); + } +} + +void ui_event_StatsFooter(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_LONG_PRESSED) { - stats_footer_long_press(e); - } + if(event_code == LV_EVENT_LONG_PRESSED) { + stats_footer_long_press(e); + } } // build funtions -void ui_StatsScreen_screen_init(void) { - ui_StatsScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_StatsScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_StatsScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_StatsScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SpeedDial = lv_arc_create(ui_StatsScreen); - lv_obj_set_width(ui_SpeedDial, 240); - lv_obj_set_height(ui_SpeedDial, 240); - lv_obj_set_align(ui_SpeedDial, LV_ALIGN_CENTER); - lv_arc_set_range(ui_SpeedDial, 0, 40); - lv_arc_set_value(ui_SpeedDial, 0); - lv_obj_set_style_arc_color(ui_SpeedDial, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_SpeedDial, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_SpeedDial, 16, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_arc_width(ui_SpeedDial, 16, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_opa(ui_SpeedDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_UtilizationDial = lv_arc_create(ui_StatsScreen); - lv_obj_set_width(ui_UtilizationDial, 240); - lv_obj_set_height(ui_UtilizationDial, 240); - lv_obj_set_align(ui_UtilizationDial, LV_ALIGN_CENTER); - lv_arc_set_range(ui_UtilizationDial, 0, 95); - lv_arc_set_value(ui_UtilizationDial, 0); - lv_arc_set_mode(ui_UtilizationDial, LV_ARC_MODE_REVERSE); - lv_obj_set_style_pad_left(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_color(ui_UtilizationDial, lv_color_hex(0x282828), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_UtilizationDial, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_UtilizationDial, 12, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_arc_width(ui_UtilizationDial, 12, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_opa(ui_UtilizationDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_LeftSensor = lv_arc_create(ui_StatsScreen); - lv_obj_set_width(ui_LeftSensor, 240); - lv_obj_set_height(ui_LeftSensor, lv_pct(100)); - lv_obj_set_align(ui_LeftSensor, LV_ALIGN_CENTER); - lv_arc_set_range(ui_LeftSensor, 0, 1); - lv_arc_set_value(ui_LeftSensor, 0); - lv_arc_set_bg_angles(ui_LeftSensor, 93, 105); - lv_obj_set_style_arc_color(ui_LeftSensor, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_LeftSensor, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_LeftSensor, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_arc_color(ui_LeftSensor, lv_color_hex(0xFFFFFF), LV_PART_INDICATOR | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_LeftSensor, 255, LV_PART_INDICATOR | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_LeftSensor, 10, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_bg_color(ui_LeftSensor, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_LeftSensor, 0, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_RightSensor = lv_arc_create(ui_StatsScreen); - lv_obj_set_width(ui_RightSensor, 240); - lv_obj_set_height(ui_RightSensor, lv_pct(100)); - lv_obj_set_align(ui_RightSensor, LV_ALIGN_CENTER); - lv_arc_set_range(ui_RightSensor, 0, 1); - lv_arc_set_value(ui_RightSensor, 0); - lv_arc_set_bg_angles(ui_RightSensor, 75, 87); - lv_obj_set_style_arc_color(ui_RightSensor, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_RightSensor, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_RightSensor, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_set_style_arc_color(ui_RightSensor, lv_color_hex(0xFFFFFF), LV_PART_INDICATOR | LV_STATE_DEFAULT); - lv_obj_set_style_arc_opa(ui_RightSensor, 255, LV_PART_INDICATOR | LV_STATE_DEFAULT); - lv_obj_set_style_arc_width(ui_RightSensor, 10, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - lv_obj_set_style_bg_color(ui_RightSensor, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_RightSensor, 0, LV_PART_KNOB | LV_STATE_DEFAULT); - - ui_StatsContent = lv_obj_create(ui_StatsScreen); - lv_obj_remove_style_all(ui_StatsContent); - lv_obj_set_width(ui_StatsContent, lv_pct(100)); - lv_obj_set_height(ui_StatsContent, lv_pct(100)); - lv_obj_set_align(ui_StatsContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StatsContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StatsContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_StatsContent, LV_OBJ_FLAG_SCROLL_ONE); /// Flags - lv_obj_clear_flag(ui_StatsContent, - LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_style_pad_left(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_StatsContent, 5, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_StatsContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_StatsHeader = lv_obj_create(ui_StatsContent); - lv_obj_remove_style_all(ui_StatsHeader); - lv_obj_set_width(ui_StatsHeader, lv_pct(100)); - lv_obj_set_height(ui_StatsHeader, lv_pct(25)); - lv_obj_set_x(ui_StatsHeader, 69); - lv_obj_set_y(ui_StatsHeader, -16); - lv_obj_set_align(ui_StatsHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StatsHeader, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StatsHeader, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_StatsHeader, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_RemoteIndicatorContainer = lv_obj_create(ui_StatsHeader); - lv_obj_remove_style_all(ui_RemoteIndicatorContainer); - lv_obj_set_width(ui_RemoteIndicatorContainer, LV_SIZE_CONTENT); /// 50 - lv_obj_set_height(ui_RemoteIndicatorContainer, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_RemoteIndicatorContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_RemoteIndicatorContainer, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_RemoteIndicatorContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_RemoteIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_opa(ui_RemoteIndicatorContainer, 200, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_RemoteIndicatorContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_RemoteIndicatorContainer, 5, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_BatteryIndicatorContainer = lv_obj_create(ui_RemoteIndicatorContainer); - lv_obj_remove_style_all(ui_BatteryIndicatorContainer); - lv_obj_set_width(ui_BatteryIndicatorContainer, 22); - lv_obj_set_height(ui_BatteryIndicatorContainer, 14); - lv_obj_set_align(ui_BatteryIndicatorContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_BatteryIndicatorContainer, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_BatteryIndicatorContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START); - lv_obj_clear_flag(ui_BatteryIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_BatteryOutline = lv_obj_create(ui_BatteryIndicatorContainer); - lv_obj_remove_style_all(ui_BatteryOutline); - lv_obj_set_width(ui_BatteryOutline, 18); - lv_obj_set_height(ui_BatteryOutline, 14); - lv_obj_set_align(ui_BatteryOutline, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_BatteryOutline, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_BatteryOutline, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_START); - lv_obj_clear_flag(ui_BatteryOutline, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_radius(ui_BatteryOutline, 2, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_color(ui_BatteryOutline, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_opa(ui_BatteryOutline, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_border_width(ui_BatteryOutline, 2, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_BatteryFill = lv_obj_create(ui_BatteryOutline); - lv_obj_remove_style_all(ui_BatteryFill); - lv_obj_set_width(ui_BatteryFill, lv_pct(100)); - lv_obj_set_height(ui_BatteryFill, lv_pct(100)); - lv_obj_set_align(ui_BatteryFill, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_BatteryFill, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_BatteryFill, lv_color_hex(0x1DB200), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_BatteryFill, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_BatteryTip = lv_obj_create(ui_BatteryIndicatorContainer); - lv_obj_remove_style_all(ui_BatteryTip); - lv_obj_set_width(ui_BatteryTip, 3); - lv_obj_set_height(ui_BatteryTip, 4); - lv_obj_set_align(ui_BatteryTip, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_BatteryTip, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_BatteryTip, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_BatteryTip, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_RSSIContainer = lv_obj_create(ui_RemoteIndicatorContainer); - lv_obj_remove_style_all(ui_RSSIContainer); - lv_obj_set_width(ui_RSSIContainer, 16); - lv_obj_set_height(ui_RSSIContainer, 14); - lv_obj_set_align(ui_RSSIContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_RSSIContainer, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_RSSIContainer, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_RSSIContainer, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_RSSIContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_RSSI1 = lv_obj_create(ui_RSSIContainer); - lv_obj_remove_style_all(ui_RSSI1); - lv_obj_set_width(ui_RSSI1, 4); - lv_obj_set_height(ui_RSSI1, 4); - lv_obj_set_align(ui_RSSI1, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_RSSI1, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_RSSI1, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_RSSI1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_RSSI2 = lv_obj_create(ui_RSSIContainer); - lv_obj_remove_style_all(ui_RSSI2); - lv_obj_set_width(ui_RSSI2, 4); - lv_obj_set_height(ui_RSSI2, 8); - lv_obj_set_align(ui_RSSI2, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_RSSI2, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_RSSI2, lv_color_hex(0x717171), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_RSSI2, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_RSSI3 = lv_obj_create(ui_RSSIContainer); - lv_obj_remove_style_all(ui_RSSI3); - lv_obj_set_width(ui_RSSI3, 4); - lv_obj_set_height(ui_RSSI3, 12); - lv_obj_set_align(ui_RSSI3, LV_ALIGN_CENTER); - lv_obj_clear_flag(ui_RSSI3, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_bg_color(ui_RSSI3, lv_color_hex(0x717171), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_RSSI3, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_MessageText = lv_label_create(ui_StatsHeader); - lv_obj_set_width(ui_MessageText, lv_pct(100)); - lv_obj_set_height(ui_MessageText, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_MessageText, LV_ALIGN_CENTER); - lv_label_set_long_mode(ui_MessageText, LV_LABEL_LONG_SCROLL_CIRCULAR); - lv_label_set_text(ui_MessageText, "PUSHBACK"); - lv_obj_add_flag(ui_MessageText, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_set_style_text_align(ui_MessageText, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_MessageText, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_left(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_MessageText, 5, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_StatsBody = lv_obj_create(ui_StatsContent); - lv_obj_remove_style_all(ui_StatsBody); - lv_obj_set_width(ui_StatsBody, lv_pct(100)); - lv_obj_set_height(ui_StatsBody, lv_pct(50)); - lv_obj_set_x(ui_StatsBody, 69); - lv_obj_set_y(ui_StatsBody, -16); - lv_obj_set_align(ui_StatsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StatsBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StatsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_StatsBody, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - - ui_RemoteModeContainer = lv_obj_create(ui_StatsBody); - lv_obj_remove_style_all(ui_RemoteModeContainer); - lv_obj_set_width(ui_RemoteModeContainer, lv_pct(25)); - lv_obj_set_height(ui_RemoteModeContainer, LV_SIZE_CONTENT); /// 50 - lv_obj_set_align(ui_RemoteModeContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_RemoteModeContainer, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_RemoteModeContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_RemoteModeContainer, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_RemoteModeContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_RemoteModeContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_RemoteModeContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_RemoteModeContainer, -10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_RemoteModeContainer, -11, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_RemoteModeText = lv_label_create(ui_RemoteModeContainer); - lv_obj_set_width(ui_RemoteModeText, lv_pct(100)); - lv_obj_set_height(ui_RemoteModeText, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_RemoteModeText, 17); - lv_obj_set_y(ui_RemoteModeText, -53); - lv_obj_set_align(ui_RemoteModeText, LV_ALIGN_CENTER); - lv_label_set_long_mode(ui_RemoteModeText, LV_LABEL_LONG_SCROLL_CIRCULAR); - lv_label_set_text(ui_RemoteModeText, "POCKET MODE"); - lv_obj_set_style_text_font(ui_RemoteModeText, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PrimaryStat = lv_label_create(ui_StatsBody); - lv_obj_set_width(ui_PrimaryStat, lv_pct(100)); - lv_obj_set_height(ui_PrimaryStat, LV_SIZE_CONTENT); /// 1 - lv_obj_set_y(ui_PrimaryStat, 4); - lv_obj_set_x(ui_PrimaryStat, lv_pct(-14)); - lv_obj_set_align(ui_PrimaryStat, LV_ALIGN_CENTER); - lv_label_set_long_mode(ui_PrimaryStat, LV_LABEL_LONG_DOT); - lv_label_set_text(ui_PrimaryStat, "0.0"); - lv_obj_set_style_text_align(ui_PrimaryStat, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_PrimaryStat, &ui_font_Inter_Bold_48, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_PrimaryStatUnit = lv_label_create(ui_PrimaryStat); - lv_obj_set_width(ui_PrimaryStatUnit, 40); - lv_obj_set_height(ui_PrimaryStatUnit, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_PrimaryStatUnit, 64); - lv_obj_set_y(ui_PrimaryStatUnit, 7); - lv_obj_set_align(ui_PrimaryStatUnit, LV_ALIGN_CENTER); - lv_label_set_text(ui_PrimaryStatUnit, "KPH"); - lv_obj_add_flag(ui_PrimaryStatUnit, LV_OBJ_FLAG_FLOATING); /// Flags - lv_obj_set_style_text_font(ui_PrimaryStatUnit, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SecondaryStatPaddingContainer = lv_obj_create(ui_StatsBody); - lv_obj_remove_style_all(ui_SecondaryStatPaddingContainer); - lv_obj_set_width(ui_SecondaryStatPaddingContainer, lv_pct(100)); - lv_obj_set_height(ui_SecondaryStatPaddingContainer, LV_SIZE_CONTENT); /// 50 - lv_obj_set_align(ui_SecondaryStatPaddingContainer, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_SecondaryStatPaddingContainer, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_SecondaryStatPaddingContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_SecondaryStatPaddingContainer, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_SecondaryStatPaddingContainer, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_SecondaryStatPaddingContainer, -10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_SecondaryStatPaddingContainer, -20, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_SecondaryStatContainer = lv_obj_create(ui_SecondaryStatPaddingContainer); - lv_obj_remove_style_all(ui_SecondaryStatContainer); - lv_obj_set_width(ui_SecondaryStatContainer, lv_pct(100)); - lv_obj_set_height(ui_SecondaryStatContainer, LV_SIZE_CONTENT); /// 50 - lv_obj_set_align(ui_SecondaryStatContainer, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_SecondaryStatContainer, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_SecondaryStatContainer, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_SecondaryStatContainer, LV_OBJ_FLAG_SCROLL_ONE); /// Flags - lv_obj_clear_flag(ui_SecondaryStatContainer, LV_OBJ_FLAG_GESTURE_BUBBLE | LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags - lv_obj_set_scrollbar_mode(ui_SecondaryStatContainer, LV_SCROLLBAR_MODE_ACTIVE); - lv_obj_set_scroll_dir(ui_SecondaryStatContainer, LV_DIR_HOR); - lv_obj_set_style_pad_left(ui_SecondaryStatContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_SecondaryStatContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_SecondaryStatContainer, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_SecondaryStatContainer, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_ConnectionStateBody = lv_obj_create(ui_SecondaryStatContainer); - lv_obj_remove_style_all(ui_ConnectionStateBody); - lv_obj_set_width(ui_ConnectionStateBody, lv_pct(100)); - lv_obj_set_height(ui_ConnectionStateBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_ConnectionStateBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_ConnectionStateBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_ConnectionStateBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_ConnectionStateBody, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags - lv_obj_clear_flag(ui_ConnectionStateBody, - LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_ConnectionStateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_ConnectionStateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_ConnectionStateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_ConnectionStateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_ConnectionStateBody, 20, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_ConnectionStateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_ConnectionStateLabel = lv_label_create(ui_ConnectionStateBody); - lv_obj_set_width(ui_ConnectionStateLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_ConnectionStateLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_ConnectionStateLabel, 19); - lv_obj_set_y(ui_ConnectionStateLabel, 38); - lv_obj_set_align(ui_ConnectionStateLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_ConnectionStateLabel, "Disconnected"); - - ui_DutyCycleBody = lv_obj_create(ui_SecondaryStatContainer); - lv_obj_remove_style_all(ui_DutyCycleBody); - lv_obj_set_width(ui_DutyCycleBody, lv_pct(100)); - lv_obj_set_height(ui_DutyCycleBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_DutyCycleBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_DutyCycleBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_DutyCycleBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_DutyCycleBody, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_DutyCycleBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_DutyCycleBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_DutyCycleBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_DutyCycleBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_DutyCycleBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_DutyCycleBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_DutyCycleBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_DutyCycleLabel = lv_label_create(ui_DutyCycleBody); - lv_obj_set_width(ui_DutyCycleLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_DutyCycleLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_DutyCycleLabel, 19); - lv_obj_set_y(ui_DutyCycleLabel, 38); - lv_obj_set_align(ui_DutyCycleLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_DutyCycleLabel, "Duty Cycle: 0%"); - - ui_TempsBody = lv_obj_create(ui_SecondaryStatContainer); - lv_obj_remove_style_all(ui_TempsBody); - lv_obj_set_width(ui_TempsBody, lv_pct(100)); - lv_obj_set_height(ui_TempsBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_TempsBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_TempsBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_TempsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_TempsBody, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_TempsBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | - LV_OBJ_FLAG_SCROLL_MOMENTUM | LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_TempsBody, 49, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_TempsBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_TempsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_TempsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_TempsBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_TempsBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_TempsLabel = lv_label_create(ui_TempsBody); - lv_obj_set_width(ui_TempsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_TempsLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_TempsLabel, 19); - lv_obj_set_y(ui_TempsLabel, 38); - lv_obj_set_align(ui_TempsLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_TempsLabel, "M: 0°C | C: 0°C"); - - ui_TripBody = lv_obj_create(ui_SecondaryStatContainer); - lv_obj_remove_style_all(ui_TripBody); - lv_obj_set_width(ui_TripBody, lv_pct(100)); - lv_obj_set_height(ui_TripBody, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_TripBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_TripBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_TripBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_add_flag(ui_TripBody, LV_OBJ_FLAG_HIDDEN); /// Flags - lv_obj_clear_flag(ui_TripBody, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_PRESS_LOCK | LV_OBJ_FLAG_CLICK_FOCUSABLE | - LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_ELASTIC | LV_OBJ_FLAG_SCROLL_MOMENTUM | - LV_OBJ_FLAG_SCROLL_CHAIN); /// Flags - lv_obj_set_style_pad_left(ui_TripBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_TripBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_TripBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_TripBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_TripBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_TripBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_TripLabel = lv_label_create(ui_TripBody); - lv_obj_set_width(ui_TripLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_TripLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_TripLabel, 19); - lv_obj_set_y(ui_TripLabel, 38); - lv_obj_set_align(ui_TripLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_TripLabel, "Trip: -"); - - ui_StatsFooter = lv_obj_create(ui_StatsContent); - lv_obj_remove_style_all(ui_StatsFooter); - lv_obj_set_width(ui_StatsFooter, lv_pct(100)); - lv_obj_set_height(ui_StatsFooter, lv_pct(25)); - lv_obj_set_x(ui_StatsFooter, 69); - lv_obj_set_y(ui_StatsFooter, -16); - lv_obj_set_align(ui_StatsFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_StatsFooter, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_StatsFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_StatsFooter, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_StatsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_StatsFooter, 8, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_StatsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_BoardBatteryDisplay = lv_label_create(ui_StatsFooter); - lv_obj_set_width(ui_BoardBatteryDisplay, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_BoardBatteryDisplay, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_BoardBatteryDisplay, LV_ALIGN_CENTER); - lv_label_set_long_mode(ui_BoardBatteryDisplay, LV_LABEL_LONG_CLIP); - lv_label_set_text(ui_BoardBatteryDisplay, "0%"); - lv_obj_set_style_text_font(ui_BoardBatteryDisplay, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_left(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_BoardBatteryDisplay, 5, LV_PART_MAIN | LV_STATE_DEFAULT); - - lv_obj_add_event_cb(ui_PrimaryStat, ui_event_PrimaryStat, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_StatsFooter, ui_event_StatsFooter, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_StatsScreen, ui_event_StatsScreen, LV_EVENT_ALL, NULL); +void ui_StatsScreen_screen_init(void) +{ + ui_StatsScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_StatsScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_StatsScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_StatsScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SpeedDial = lv_arc_create(ui_StatsScreen); + lv_obj_set_width(ui_SpeedDial, 240); + lv_obj_set_height(ui_SpeedDial, 240); + lv_obj_set_align(ui_SpeedDial, LV_ALIGN_CENTER); + lv_arc_set_range(ui_SpeedDial, 0, 40); + lv_arc_set_value(ui_SpeedDial, 0); + lv_obj_set_style_arc_color(ui_SpeedDial, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_SpeedDial, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_SpeedDial, 16, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_arc_width(ui_SpeedDial, 16, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_opa(ui_SpeedDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_UtilizationDial = lv_arc_create(ui_StatsScreen); + lv_obj_set_width(ui_UtilizationDial, 240); + lv_obj_set_height(ui_UtilizationDial, 240); + lv_obj_set_align(ui_UtilizationDial, LV_ALIGN_CENTER); + lv_arc_set_range(ui_UtilizationDial, 0, 95); + lv_arc_set_value(ui_UtilizationDial, 0); + lv_arc_set_mode(ui_UtilizationDial, LV_ARC_MODE_REVERSE); + lv_obj_set_style_pad_left(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_UtilizationDial, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_color(ui_UtilizationDial, lv_color_hex(0x282828), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_UtilizationDial, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_UtilizationDial, 12, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_arc_width(ui_UtilizationDial, 12, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_opa(ui_UtilizationDial, 0, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_LeftSensor = lv_arc_create(ui_StatsScreen); + lv_obj_set_width(ui_LeftSensor, 240); + lv_obj_set_height(ui_LeftSensor, lv_pct(100)); + lv_obj_set_align(ui_LeftSensor, LV_ALIGN_CENTER); + lv_arc_set_range(ui_LeftSensor, 0, 1); + lv_arc_set_value(ui_LeftSensor, 0); + lv_arc_set_bg_angles(ui_LeftSensor, 93, 105); + lv_obj_set_style_arc_color(ui_LeftSensor, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_LeftSensor, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_LeftSensor, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_arc_color(ui_LeftSensor, lv_color_hex(0xFFFFFF), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_LeftSensor, 255, LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_LeftSensor, 10, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_bg_color(ui_LeftSensor, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_LeftSensor, 0, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_RightSensor = lv_arc_create(ui_StatsScreen); + lv_obj_set_width(ui_RightSensor, 240); + lv_obj_set_height(ui_RightSensor, lv_pct(100)); + lv_obj_set_align(ui_RightSensor, LV_ALIGN_CENTER); + lv_arc_set_range(ui_RightSensor, 0, 1); + lv_arc_set_value(ui_RightSensor, 0); + lv_arc_set_bg_angles(ui_RightSensor, 75, 87); + lv_obj_set_style_arc_color(ui_RightSensor, lv_color_hex(0x414141), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_RightSensor, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_RightSensor, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_set_style_arc_color(ui_RightSensor, lv_color_hex(0xFFFFFF), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_arc_opa(ui_RightSensor, 255, LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_arc_width(ui_RightSensor, 10, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_bg_color(ui_RightSensor, lv_color_hex(0xFFFFFF), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_RightSensor, 0, LV_PART_KNOB | LV_STATE_DEFAULT); + + ui_StatsContent = lv_obj_create(ui_StatsScreen); + lv_obj_remove_style_all(ui_StatsContent); + lv_obj_set_width(ui_StatsContent, lv_pct(100)); + lv_obj_set_height(ui_StatsContent, lv_pct(100)); + lv_obj_set_align(ui_StatsContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StatsContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StatsContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_StatsContent, LV_OBJ_FLAG_SCROLL_ONE); /// Flags + lv_obj_clear_flag(ui_StatsContent, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE | + LV_OBJ_FLAG_SCROLL_MOMENTUM); /// Flags + lv_obj_set_style_pad_left(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_StatsContent, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_StatsContent, 5, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_StatsContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_StatsHeader = lv_obj_create(ui_StatsContent); + lv_obj_remove_style_all(ui_StatsHeader); + lv_obj_set_width(ui_StatsHeader, lv_pct(100)); + lv_obj_set_height(ui_StatsHeader, lv_pct(25)); + lv_obj_set_x(ui_StatsHeader, 69); + lv_obj_set_y(ui_StatsHeader, -16); + lv_obj_set_align(ui_StatsHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StatsHeader, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StatsHeader, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_StatsHeader, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_RemoteIndicatorContainer = lv_obj_create(ui_StatsHeader); + lv_obj_remove_style_all(ui_RemoteIndicatorContainer); + lv_obj_set_width(ui_RemoteIndicatorContainer, LV_SIZE_CONTENT); /// 50 + lv_obj_set_height(ui_RemoteIndicatorContainer, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_RemoteIndicatorContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_RemoteIndicatorContainer, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_RemoteIndicatorContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_RemoteIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_opa(ui_RemoteIndicatorContainer, 200, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_RemoteIndicatorContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_RemoteIndicatorContainer, 5, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_BatteryIndicatorContainer = lv_obj_create(ui_RemoteIndicatorContainer); + lv_obj_remove_style_all(ui_BatteryIndicatorContainer); + lv_obj_set_width(ui_BatteryIndicatorContainer, 22); + lv_obj_set_height(ui_BatteryIndicatorContainer, 14); + lv_obj_set_align(ui_BatteryIndicatorContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_BatteryIndicatorContainer, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_BatteryIndicatorContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START); + lv_obj_clear_flag(ui_BatteryIndicatorContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_BatteryOutline = lv_obj_create(ui_BatteryIndicatorContainer); + lv_obj_remove_style_all(ui_BatteryOutline); + lv_obj_set_width(ui_BatteryOutline, 18); + lv_obj_set_height(ui_BatteryOutline, 14); + lv_obj_set_align(ui_BatteryOutline, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_BatteryOutline, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_BatteryOutline, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_START); + lv_obj_clear_flag(ui_BatteryOutline, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_radius(ui_BatteryOutline, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_BatteryOutline, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_BatteryOutline, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(ui_BatteryOutline, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_BatteryFill = lv_obj_create(ui_BatteryOutline); + lv_obj_remove_style_all(ui_BatteryFill); + lv_obj_set_width(ui_BatteryFill, lv_pct(100)); + lv_obj_set_height(ui_BatteryFill, lv_pct(100)); + lv_obj_set_align(ui_BatteryFill, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_BatteryFill, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_BatteryFill, lv_color_hex(0x1DB200), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_BatteryFill, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_BatteryTip = lv_obj_create(ui_BatteryIndicatorContainer); + lv_obj_remove_style_all(ui_BatteryTip); + lv_obj_set_width(ui_BatteryTip, 3); + lv_obj_set_height(ui_BatteryTip, 4); + lv_obj_set_align(ui_BatteryTip, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_BatteryTip, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_BatteryTip, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_BatteryTip, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_RSSIContainer = lv_obj_create(ui_RemoteIndicatorContainer); + lv_obj_remove_style_all(ui_RSSIContainer); + lv_obj_set_width(ui_RSSIContainer, 16); + lv_obj_set_height(ui_RSSIContainer, 14); + lv_obj_set_align(ui_RSSIContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_RSSIContainer, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_RSSIContainer, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_RSSIContainer, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_RSSIContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_RSSI1 = lv_obj_create(ui_RSSIContainer); + lv_obj_remove_style_all(ui_RSSI1); + lv_obj_set_width(ui_RSSI1, 4); + lv_obj_set_height(ui_RSSI1, 4); + lv_obj_set_align(ui_RSSI1, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_RSSI1, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_RSSI1, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_RSSI1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_RSSI2 = lv_obj_create(ui_RSSIContainer); + lv_obj_remove_style_all(ui_RSSI2); + lv_obj_set_width(ui_RSSI2, 4); + lv_obj_set_height(ui_RSSI2, 8); + lv_obj_set_align(ui_RSSI2, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_RSSI2, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_RSSI2, lv_color_hex(0x717171), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_RSSI2, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_RSSI3 = lv_obj_create(ui_RSSIContainer); + lv_obj_remove_style_all(ui_RSSI3); + lv_obj_set_width(ui_RSSI3, 4); + lv_obj_set_height(ui_RSSI3, 12); + lv_obj_set_align(ui_RSSI3, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_RSSI3, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_RSSI3, lv_color_hex(0x717171), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_RSSI3, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_MessageText = lv_label_create(ui_StatsHeader); + lv_obj_set_width(ui_MessageText, lv_pct(100)); + lv_obj_set_height(ui_MessageText, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_MessageText, LV_ALIGN_CENTER); + lv_label_set_long_mode(ui_MessageText, LV_LABEL_LONG_SCROLL_CIRCULAR); + lv_label_set_text(ui_MessageText, "PUSHBACK"); + lv_obj_add_flag(ui_MessageText, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_set_style_text_align(ui_MessageText, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_MessageText, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_MessageText, 5, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_MessageText, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_StatsBody = lv_obj_create(ui_StatsContent); + lv_obj_remove_style_all(ui_StatsBody); + lv_obj_set_width(ui_StatsBody, lv_pct(100)); + lv_obj_set_height(ui_StatsBody, lv_pct(50)); + lv_obj_set_x(ui_StatsBody, 69); + lv_obj_set_y(ui_StatsBody, -16); + lv_obj_set_align(ui_StatsBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StatsBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StatsBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_StatsBody, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_RemoteModeContainer = lv_obj_create(ui_StatsBody); + lv_obj_remove_style_all(ui_RemoteModeContainer); + lv_obj_set_width(ui_RemoteModeContainer, lv_pct(25)); + lv_obj_set_height(ui_RemoteModeContainer, LV_SIZE_CONTENT); /// 50 + lv_obj_set_align(ui_RemoteModeContainer, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_RemoteModeContainer, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_RemoteModeContainer, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_add_flag(ui_RemoteModeContainer, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_RemoteModeContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_RemoteModeContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_RemoteModeContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_RemoteModeContainer, -10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_RemoteModeContainer, -11, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_RemoteModeText = lv_label_create(ui_RemoteModeContainer); + lv_obj_set_width(ui_RemoteModeText, lv_pct(100)); + lv_obj_set_height(ui_RemoteModeText, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_RemoteModeText, 17); + lv_obj_set_y(ui_RemoteModeText, -53); + lv_obj_set_align(ui_RemoteModeText, LV_ALIGN_CENTER); + lv_label_set_long_mode(ui_RemoteModeText, LV_LABEL_LONG_SCROLL_CIRCULAR); + lv_label_set_text(ui_RemoteModeText, "POCKET MODE"); + lv_obj_set_style_text_font(ui_RemoteModeText, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PrimaryStat = lv_label_create(ui_StatsBody); + lv_obj_set_width(ui_PrimaryStat, lv_pct(100)); + lv_obj_set_height(ui_PrimaryStat, LV_SIZE_CONTENT); /// 1 + lv_obj_set_y(ui_PrimaryStat, 4); + lv_obj_set_x(ui_PrimaryStat, lv_pct(-14)); + lv_obj_set_align(ui_PrimaryStat, LV_ALIGN_CENTER); + lv_label_set_long_mode(ui_PrimaryStat, LV_LABEL_LONG_DOT); + lv_label_set_text(ui_PrimaryStat, "0.0"); + lv_obj_set_style_text_align(ui_PrimaryStat, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_PrimaryStat, &ui_font_Inter_Bold_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_PrimaryStatUnit = lv_label_create(ui_PrimaryStat); + lv_obj_set_width(ui_PrimaryStatUnit, 40); + lv_obj_set_height(ui_PrimaryStatUnit, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_PrimaryStatUnit, 64); + lv_obj_set_y(ui_PrimaryStatUnit, 7); + lv_obj_set_align(ui_PrimaryStatUnit, LV_ALIGN_CENTER); + lv_label_set_text(ui_PrimaryStatUnit, "KPH"); + lv_obj_add_flag(ui_PrimaryStatUnit, LV_OBJ_FLAG_FLOATING); /// Flags + lv_obj_set_style_text_font(ui_PrimaryStatUnit, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SecondaryStatPaddingContainer = lv_obj_create(ui_StatsBody); + lv_obj_remove_style_all(ui_SecondaryStatPaddingContainer); + lv_obj_set_width(ui_SecondaryStatPaddingContainer, lv_pct(100)); + lv_obj_set_height(ui_SecondaryStatPaddingContainer, LV_SIZE_CONTENT); /// 50 + lv_obj_set_align(ui_SecondaryStatPaddingContainer, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_SecondaryStatPaddingContainer, LV_OBJ_FLAG_OVERFLOW_VISIBLE); /// Flags + lv_obj_clear_flag(ui_SecondaryStatPaddingContainer, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_SecondaryStatPaddingContainer, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_SecondaryStatPaddingContainer, 20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_SecondaryStatPaddingContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_SecondaryStatPaddingContainer, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_SecondaryStat = lv_label_create(ui_SecondaryStatPaddingContainer); + lv_obj_set_width(ui_SecondaryStat, lv_pct(100)); + lv_obj_set_height(ui_SecondaryStat, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_SecondaryStat, LV_ALIGN_CENTER); + lv_label_set_text(ui_SecondaryStat, "Disconnected"); + lv_obj_set_style_text_align(ui_SecondaryStat, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_StatsFooter = lv_obj_create(ui_StatsContent); + lv_obj_remove_style_all(ui_StatsFooter); + lv_obj_set_width(ui_StatsFooter, lv_pct(100)); + lv_obj_set_height(ui_StatsFooter, lv_pct(25)); + lv_obj_set_x(ui_StatsFooter, 69); + lv_obj_set_y(ui_StatsFooter, -16); + lv_obj_set_align(ui_StatsFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_StatsFooter, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_StatsFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_StatsFooter, LV_OBJ_FLAG_CLICK_FOCUSABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_StatsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_StatsFooter, 8, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_StatsFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_StatsFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_BoardBatteryDisplay = lv_label_create(ui_StatsFooter); + lv_obj_set_width(ui_BoardBatteryDisplay, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_BoardBatteryDisplay, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_BoardBatteryDisplay, LV_ALIGN_CENTER); + lv_label_set_long_mode(ui_BoardBatteryDisplay, LV_LABEL_LONG_CLIP); + lv_label_set_text(ui_BoardBatteryDisplay, "0%"); + lv_obj_set_style_text_font(ui_BoardBatteryDisplay, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_BoardBatteryDisplay, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_BoardBatteryDisplay, 5, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_add_event_cb(ui_PrimaryStat, ui_event_PrimaryStat, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_SecondaryStatPaddingContainer, ui_event_SecondaryStatPaddingContainer, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_StatsFooter, ui_event_StatsFooter, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_StatsScreen, ui_event_StatsScreen, LV_EVENT_ALL, NULL); + } -void ui_StatsScreen_screen_destroy(void) { - if (ui_StatsScreen) - lv_obj_del(ui_StatsScreen); - - // NULL screen variables - ui_StatsScreen = NULL; - ui_SpeedDial = NULL; - ui_UtilizationDial = NULL; - ui_LeftSensor = NULL; - ui_RightSensor = NULL; - ui_StatsContent = NULL; - ui_StatsHeader = NULL; - ui_RemoteIndicatorContainer = NULL; - ui_BatteryIndicatorContainer = NULL; - ui_BatteryOutline = NULL; - ui_BatteryFill = NULL; - ui_BatteryTip = NULL; - ui_RSSIContainer = NULL; - ui_RSSI1 = NULL; - ui_RSSI2 = NULL; - ui_RSSI3 = NULL; - ui_MessageText = NULL; - ui_StatsBody = NULL; - ui_RemoteModeContainer = NULL; - ui_RemoteModeText = NULL; - ui_PrimaryStat = NULL; - ui_PrimaryStatUnit = NULL; - ui_SecondaryStatPaddingContainer = NULL; - ui_SecondaryStatContainer = NULL; - ui_ConnectionStateBody = NULL; - ui_ConnectionStateLabel = NULL; - ui_DutyCycleBody = NULL; - ui_DutyCycleLabel = NULL; - ui_TempsBody = NULL; - ui_TempsLabel = NULL; - ui_TripBody = NULL; - ui_TripLabel = NULL; - ui_StatsFooter = NULL; - ui_BoardBatteryDisplay = NULL; +void ui_StatsScreen_screen_destroy(void) +{ + if(ui_StatsScreen) lv_obj_del(ui_StatsScreen); + + // NULL screen variables + ui_StatsScreen = NULL; + ui_SpeedDial = NULL; + ui_UtilizationDial = NULL; + ui_LeftSensor = NULL; + ui_RightSensor = NULL; + ui_StatsContent = NULL; + ui_StatsHeader = NULL; + ui_RemoteIndicatorContainer = NULL; + ui_BatteryIndicatorContainer = NULL; + ui_BatteryOutline = NULL; + ui_BatteryFill = NULL; + ui_BatteryTip = NULL; + ui_RSSIContainer = NULL; + ui_RSSI1 = NULL; + ui_RSSI2 = NULL; + ui_RSSI3 = NULL; + ui_MessageText = NULL; + ui_StatsBody = NULL; + ui_RemoteModeContainer = NULL; + ui_RemoteModeText = NULL; + ui_PrimaryStat = NULL; + ui_PrimaryStatUnit = NULL; + ui_SecondaryStatPaddingContainer = NULL; + ui_SecondaryStat = NULL; + ui_StatsFooter = NULL; + ui_BoardBatteryDisplay = NULL; + } diff --git a/firmware/src/ui/ui_StatsScreen.h b/firmware/src/ui/ui_StatsScreen.h index f75a4b84..16e9eadf 100644 --- a/firmware/src/ui/ui_StatsScreen.h +++ b/firmware/src/ui/ui_StatsScreen.h @@ -7,54 +7,47 @@ #define UI_STATSSCREEN_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif - // SCREEN: ui_StatsScreen - extern void ui_StatsScreen_screen_init(void); - extern void ui_StatsScreen_screen_destroy(void); - extern void ui_event_StatsScreen(lv_event_t *e); - extern lv_obj_t *ui_StatsScreen; - extern lv_obj_t *ui_SpeedDial; - extern lv_obj_t *ui_UtilizationDial; - extern lv_obj_t *ui_LeftSensor; - extern lv_obj_t *ui_RightSensor; - extern lv_obj_t *ui_StatsContent; - extern lv_obj_t *ui_StatsHeader; - extern lv_obj_t *ui_RemoteIndicatorContainer; - extern lv_obj_t *ui_BatteryIndicatorContainer; - extern lv_obj_t *ui_BatteryOutline; - extern lv_obj_t *ui_BatteryFill; - extern lv_obj_t *ui_BatteryTip; - extern lv_obj_t *ui_RSSIContainer; - extern lv_obj_t *ui_RSSI1; - extern lv_obj_t *ui_RSSI2; - extern lv_obj_t *ui_RSSI3; - extern lv_obj_t *ui_MessageText; - extern lv_obj_t *ui_StatsBody; - extern lv_obj_t *ui_RemoteModeContainer; - extern lv_obj_t *ui_RemoteModeText; - extern void ui_event_PrimaryStat(lv_event_t *e); - extern lv_obj_t *ui_PrimaryStat; - extern lv_obj_t *ui_PrimaryStatUnit; - extern lv_obj_t *ui_SecondaryStatPaddingContainer; - extern lv_obj_t *ui_SecondaryStatContainer; - extern lv_obj_t *ui_ConnectionStateBody; - extern lv_obj_t *ui_ConnectionStateLabel; - extern lv_obj_t *ui_DutyCycleBody; - extern lv_obj_t *ui_DutyCycleLabel; - extern lv_obj_t *ui_TempsBody; - extern lv_obj_t *ui_TempsLabel; - extern lv_obj_t *ui_TripBody; - extern lv_obj_t *ui_TripLabel; - extern void ui_event_StatsFooter(lv_event_t *e); - extern lv_obj_t *ui_StatsFooter; - extern lv_obj_t *ui_BoardBatteryDisplay; - // CUSTOM VARIABLES +// SCREEN: ui_StatsScreen +extern void ui_StatsScreen_screen_init(void); +extern void ui_StatsScreen_screen_destroy(void); +extern void ui_event_StatsScreen(lv_event_t * e); +extern lv_obj_t * ui_StatsScreen; +extern lv_obj_t * ui_SpeedDial; +extern lv_obj_t * ui_UtilizationDial; +extern lv_obj_t * ui_LeftSensor; +extern lv_obj_t * ui_RightSensor; +extern lv_obj_t * ui_StatsContent; +extern lv_obj_t * ui_StatsHeader; +extern lv_obj_t * ui_RemoteIndicatorContainer; +extern lv_obj_t * ui_BatteryIndicatorContainer; +extern lv_obj_t * ui_BatteryOutline; +extern lv_obj_t * ui_BatteryFill; +extern lv_obj_t * ui_BatteryTip; +extern lv_obj_t * ui_RSSIContainer; +extern lv_obj_t * ui_RSSI1; +extern lv_obj_t * ui_RSSI2; +extern lv_obj_t * ui_RSSI3; +extern lv_obj_t * ui_MessageText; +extern lv_obj_t * ui_StatsBody; +extern lv_obj_t * ui_RemoteModeContainer; +extern lv_obj_t * ui_RemoteModeText; +extern void ui_event_PrimaryStat(lv_event_t * e); +extern lv_obj_t * ui_PrimaryStat; +extern lv_obj_t * ui_PrimaryStatUnit; +extern void ui_event_SecondaryStatPaddingContainer(lv_event_t * e); +extern lv_obj_t * ui_SecondaryStatPaddingContainer; +extern lv_obj_t * ui_SecondaryStat; +extern void ui_event_StatsFooter(lv_event_t * e); +extern lv_obj_t * ui_StatsFooter; +extern lv_obj_t * ui_BoardBatteryDisplay; +// CUSTOM VARIABLES #ifdef __cplusplus } /*extern "C"*/ #endif #endif + diff --git a/firmware/src/ui/ui_UpdateScreen.c b/firmware/src/ui/ui_UpdateScreen.c index 17c81d77..6ddf3705 100644 --- a/firmware/src/ui/ui_UpdateScreen.c +++ b/firmware/src/ui/ui_UpdateScreen.c @@ -5,173 +5,179 @@ #include "ui.h" -lv_obj_t *ui_UpdateScreen = NULL; -lv_obj_t *ui_UpdateContent = NULL; -lv_obj_t *ui_UpdateHeader = NULL; -lv_obj_t *ui_UpdateBody = NULL; -lv_obj_t *ui_UpdateBodyLabel = NULL; -lv_obj_t *ui_UpdateBodyDropdown = NULL; -lv_obj_t *ui_UpdateFooter = NULL; -lv_obj_t *ui_UpdateSecondaryActionButton = NULL; -lv_obj_t *ui_UpdateSecondaryActionButtonLabel = NULL; -lv_obj_t *ui_UpdatePrimaryActionButton = NULL; -lv_obj_t *ui_UpdatePrimaryActionButtonLabel = NULL; +lv_obj_t * ui_UpdateScreen = NULL; +lv_obj_t * ui_UpdateContent = NULL; +lv_obj_t * ui_UpdateHeader = NULL; +lv_obj_t * ui_UpdateBody = NULL; +lv_obj_t * ui_UpdateBodyLabel = NULL; +lv_obj_t * ui_UpdateBodyDropdown = NULL; +lv_obj_t * ui_UpdateFooter = NULL; +lv_obj_t * ui_UpdateSecondaryActionButton = NULL; +lv_obj_t * ui_UpdateSecondaryActionButtonLabel = NULL; +lv_obj_t * ui_UpdatePrimaryActionButton = NULL; +lv_obj_t * ui_UpdatePrimaryActionButtonLabel = NULL; // event funtions -void ui_event_UpdateScreen(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); - - if (event_code == LV_EVENT_SCREEN_LOADED) { - update_screen_loaded(e); - } - if (event_code == LV_EVENT_SCREEN_LOAD_START) { - update_screen_load_start(e); - } - if (event_code == LV_EVENT_SCREEN_UNLOAD_START) { - update_screen_unload_start(e); - } +void ui_event_UpdateScreen(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_SCREEN_LOADED) { + update_screen_loaded(e); + } + if(event_code == LV_EVENT_SCREEN_LOAD_START) { + update_screen_load_start(e); + } + if(event_code == LV_EVENT_SCREEN_UNLOAD_START) { + update_screen_unload_start(e); + } } -void ui_event_UpdateSecondaryActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_UpdateSecondaryActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); - update_secondary_button_press(e); - } + if(event_code == LV_EVENT_CLICKED) { + _ui_screen_change(&ui_MenuScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 200, 0, &ui_MenuScreen_screen_init); + update_secondary_button_press(e); + } } -void ui_event_UpdatePrimaryActionButton(lv_event_t *e) { - lv_event_code_t event_code = lv_event_get_code(e); +void ui_event_UpdatePrimaryActionButton(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); - if (event_code == LV_EVENT_CLICKED) { - update_primary_button_press(e); - } + if(event_code == LV_EVENT_CLICKED) { + update_primary_button_press(e); + } } // build funtions -void ui_UpdateScreen_screen_init(void) { - ui_UpdateScreen = lv_obj_create(NULL); - lv_obj_clear_flag(ui_UpdateScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_add_event_cb(ui_UpdateScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_UpdateScreen); - lv_obj_set_style_bg_color(ui_UpdateScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_bg_opa(ui_UpdateScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_text_font(ui_UpdateScreen, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateContent = lv_obj_create(ui_UpdateScreen); - lv_obj_remove_style_all(ui_UpdateContent); - lv_obj_set_width(ui_UpdateContent, lv_pct(100)); - lv_obj_set_height(ui_UpdateContent, lv_pct(100)); - lv_obj_set_align(ui_UpdateContent, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_UpdateContent, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_UpdateContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_UpdateContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_UpdateContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateHeader = lv_obj_create(ui_UpdateContent); - lv_obj_remove_style_all(ui_UpdateHeader); - lv_obj_set_width(ui_UpdateHeader, lv_pct(100)); - lv_obj_set_height(ui_UpdateHeader, lv_pct(20)); - lv_obj_set_align(ui_UpdateHeader, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_UpdateHeader, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_UpdateHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_UpdateHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_left(ui_UpdateHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_UpdateHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_UpdateHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_UpdateHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateBody = lv_obj_create(ui_UpdateContent); - lv_obj_remove_style_all(ui_UpdateBody); - lv_obj_set_width(ui_UpdateBody, lv_pct(100)); - lv_obj_set_height(ui_UpdateBody, lv_pct(55)); - lv_obj_set_align(ui_UpdateBody, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_UpdateBody, LV_FLEX_FLOW_COLUMN); - lv_obj_set_flex_align(ui_UpdateBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_UpdateBody, LV_OBJ_FLAG_CLICKABLE); /// Flags - lv_obj_set_scroll_dir(ui_UpdateBody, LV_DIR_VER); - lv_obj_set_style_pad_left(ui_UpdateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_right(ui_UpdateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_top(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_bottom(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_row(ui_UpdateBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateBodyLabel = lv_label_create(ui_UpdateBody); - lv_obj_set_width(ui_UpdateBodyLabel, lv_pct(100)); - lv_obj_set_height(ui_UpdateBodyLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_x(ui_UpdateBodyLabel, 19); - lv_obj_set_y(ui_UpdateBodyLabel, 38); - lv_obj_set_align(ui_UpdateBodyLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_UpdateBodyLabel, "Click next to scan for networks"); - lv_obj_set_style_text_align(ui_UpdateBodyLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateBodyDropdown = lv_dropdown_create(ui_UpdateBody); - lv_obj_set_width(ui_UpdateBodyDropdown, lv_pct(100)); - lv_obj_set_height(ui_UpdateBodyDropdown, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_UpdateBodyDropdown, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_UpdateBodyDropdown, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - - lv_obj_set_style_text_font(ui_UpdateBodyDropdown, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); - - ui_UpdateFooter = lv_obj_create(ui_UpdateContent); - lv_obj_remove_style_all(ui_UpdateFooter); - lv_obj_set_width(ui_UpdateFooter, lv_pct(100)); - lv_obj_set_height(ui_UpdateFooter, lv_pct(25)); - lv_obj_set_align(ui_UpdateFooter, LV_ALIGN_CENTER); - lv_obj_set_flex_flow(ui_UpdateFooter, LV_FLEX_FLOW_ROW); - lv_obj_set_flex_align(ui_UpdateFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - lv_obj_clear_flag(ui_UpdateFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_pad_row(ui_UpdateFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_obj_set_style_pad_column(ui_UpdateFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateSecondaryActionButton = lv_btn_create(ui_UpdateFooter); - lv_obj_set_width(ui_UpdateSecondaryActionButton, 60); - lv_obj_set_height(ui_UpdateSecondaryActionButton, 42); - lv_obj_set_align(ui_UpdateSecondaryActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_UpdateSecondaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_UpdateSecondaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_UpdateSecondaryActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdateSecondaryActionButtonLabel = lv_label_create(ui_UpdateSecondaryActionButton); - lv_obj_set_width(ui_UpdateSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_UpdateSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_UpdateSecondaryActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_UpdateSecondaryActionButtonLabel, "Cancel"); - - ui_UpdatePrimaryActionButton = lv_btn_create(ui_UpdateFooter); - lv_obj_set_width(ui_UpdatePrimaryActionButton, 60); - lv_obj_set_height(ui_UpdatePrimaryActionButton, 42); - lv_obj_set_align(ui_UpdatePrimaryActionButton, LV_ALIGN_CENTER); - lv_obj_add_flag(ui_UpdatePrimaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags - lv_obj_clear_flag(ui_UpdatePrimaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags - lv_obj_set_style_text_font(ui_UpdatePrimaryActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); - - ui_UpdatePrimaryActionButtonLabel = lv_label_create(ui_UpdatePrimaryActionButton); - lv_obj_set_width(ui_UpdatePrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_height(ui_UpdatePrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 - lv_obj_set_align(ui_UpdatePrimaryActionButtonLabel, LV_ALIGN_CENTER); - lv_label_set_text(ui_UpdatePrimaryActionButtonLabel, "Next"); - - lv_obj_add_event_cb(ui_UpdateSecondaryActionButton, ui_event_UpdateSecondaryActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_UpdatePrimaryActionButton, ui_event_UpdatePrimaryActionButton, LV_EVENT_ALL, NULL); - lv_obj_add_event_cb(ui_UpdateScreen, ui_event_UpdateScreen, LV_EVENT_ALL, NULL); +void ui_UpdateScreen_screen_init(void) +{ + ui_UpdateScreen = lv_obj_create(NULL); + lv_obj_clear_flag(ui_UpdateScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_add_event_cb(ui_UpdateScreen, scr_unloaded_delete_cb, LV_EVENT_SCREEN_UNLOADED, &ui_UpdateScreen); + lv_obj_set_style_bg_color(ui_UpdateScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_UpdateScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_UpdateScreen, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateContent = lv_obj_create(ui_UpdateScreen); + lv_obj_remove_style_all(ui_UpdateContent); + lv_obj_set_width(ui_UpdateContent, lv_pct(100)); + lv_obj_set_height(ui_UpdateContent, lv_pct(100)); + lv_obj_set_align(ui_UpdateContent, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_UpdateContent, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_UpdateContent, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_UpdateContent, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_UpdateContent, &ui_font_Inter_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateHeader = lv_obj_create(ui_UpdateContent); + lv_obj_remove_style_all(ui_UpdateHeader); + lv_obj_set_width(ui_UpdateHeader, lv_pct(100)); + lv_obj_set_height(ui_UpdateHeader, lv_pct(20)); + lv_obj_set_align(ui_UpdateHeader, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_UpdateHeader, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_UpdateHeader, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_UpdateHeader, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_left(ui_UpdateHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_UpdateHeader, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_UpdateHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_UpdateHeader, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateBody = lv_obj_create(ui_UpdateContent); + lv_obj_remove_style_all(ui_UpdateBody); + lv_obj_set_width(ui_UpdateBody, lv_pct(100)); + lv_obj_set_height(ui_UpdateBody, lv_pct(55)); + lv_obj_set_align(ui_UpdateBody, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_UpdateBody, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(ui_UpdateBody, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_UpdateBody, LV_OBJ_FLAG_CLICKABLE); /// Flags + lv_obj_set_scroll_dir(ui_UpdateBody, LV_DIR_VER); + lv_obj_set_style_pad_left(ui_UpdateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(ui_UpdateBody, 40, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(ui_UpdateBody, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_UpdateBody, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateBodyLabel = lv_label_create(ui_UpdateBody); + lv_obj_set_width(ui_UpdateBodyLabel, lv_pct(100)); + lv_obj_set_height(ui_UpdateBodyLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_UpdateBodyLabel, 19); + lv_obj_set_y(ui_UpdateBodyLabel, 38); + lv_obj_set_align(ui_UpdateBodyLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_UpdateBodyLabel, "Click next to scan for networks"); + lv_obj_set_style_text_align(ui_UpdateBodyLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateBodyDropdown = lv_dropdown_create(ui_UpdateBody); + lv_obj_set_width(ui_UpdateBodyDropdown, lv_pct(100)); + lv_obj_set_height(ui_UpdateBodyDropdown, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_UpdateBodyDropdown, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_UpdateBodyDropdown, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + + lv_obj_set_style_text_font(ui_UpdateBodyDropdown, &lv_font_montserrat_14, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + ui_UpdateFooter = lv_obj_create(ui_UpdateContent); + lv_obj_remove_style_all(ui_UpdateFooter); + lv_obj_set_width(ui_UpdateFooter, lv_pct(100)); + lv_obj_set_height(ui_UpdateFooter, lv_pct(25)); + lv_obj_set_align(ui_UpdateFooter, LV_ALIGN_CENTER); + lv_obj_set_flex_flow(ui_UpdateFooter, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(ui_UpdateFooter, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + lv_obj_clear_flag(ui_UpdateFooter, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_pad_row(ui_UpdateFooter, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(ui_UpdateFooter, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateSecondaryActionButton = lv_btn_create(ui_UpdateFooter); + lv_obj_set_width(ui_UpdateSecondaryActionButton, 60); + lv_obj_set_height(ui_UpdateSecondaryActionButton, 42); + lv_obj_set_align(ui_UpdateSecondaryActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_UpdateSecondaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_UpdateSecondaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_UpdateSecondaryActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdateSecondaryActionButtonLabel = lv_label_create(ui_UpdateSecondaryActionButton); + lv_obj_set_width(ui_UpdateSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_UpdateSecondaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_UpdateSecondaryActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_UpdateSecondaryActionButtonLabel, "Cancel"); + + ui_UpdatePrimaryActionButton = lv_btn_create(ui_UpdateFooter); + lv_obj_set_width(ui_UpdatePrimaryActionButton, 60); + lv_obj_set_height(ui_UpdatePrimaryActionButton, 42); + lv_obj_set_align(ui_UpdatePrimaryActionButton, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_UpdatePrimaryActionButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_UpdatePrimaryActionButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_text_font(ui_UpdatePrimaryActionButton, &ui_font_Inter_Bold_14, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_UpdatePrimaryActionButtonLabel = lv_label_create(ui_UpdatePrimaryActionButton); + lv_obj_set_width(ui_UpdatePrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_UpdatePrimaryActionButtonLabel, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_UpdatePrimaryActionButtonLabel, LV_ALIGN_CENTER); + lv_label_set_text(ui_UpdatePrimaryActionButtonLabel, "Next"); + + lv_obj_add_event_cb(ui_UpdateSecondaryActionButton, ui_event_UpdateSecondaryActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_UpdatePrimaryActionButton, ui_event_UpdatePrimaryActionButton, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_UpdateScreen, ui_event_UpdateScreen, LV_EVENT_ALL, NULL); + } -void ui_UpdateScreen_screen_destroy(void) { - if (ui_UpdateScreen) - lv_obj_del(ui_UpdateScreen); - - // NULL screen variables - ui_UpdateScreen = NULL; - ui_UpdateContent = NULL; - ui_UpdateHeader = NULL; - ui_UpdateBody = NULL; - ui_UpdateBodyLabel = NULL; - ui_UpdateBodyDropdown = NULL; - ui_UpdateFooter = NULL; - ui_UpdateSecondaryActionButton = NULL; - ui_UpdateSecondaryActionButtonLabel = NULL; - ui_UpdatePrimaryActionButton = NULL; - ui_UpdatePrimaryActionButtonLabel = NULL; +void ui_UpdateScreen_screen_destroy(void) +{ + if(ui_UpdateScreen) lv_obj_del(ui_UpdateScreen); + + // NULL screen variables + ui_UpdateScreen = NULL; + ui_UpdateContent = NULL; + ui_UpdateHeader = NULL; + ui_UpdateBody = NULL; + ui_UpdateBodyLabel = NULL; + ui_UpdateBodyDropdown = NULL; + ui_UpdateFooter = NULL; + ui_UpdateSecondaryActionButton = NULL; + ui_UpdateSecondaryActionButtonLabel = NULL; + ui_UpdatePrimaryActionButton = NULL; + ui_UpdatePrimaryActionButtonLabel = NULL; + } diff --git a/firmware/src/ui/ui_UpdateScreen.h b/firmware/src/ui/ui_UpdateScreen.h index 44e8ad7b..b4755600 100644 --- a/firmware/src/ui/ui_UpdateScreen.h +++ b/firmware/src/ui/ui_UpdateScreen.h @@ -7,31 +7,31 @@ #define UI_UPDATESCREEN_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif - // SCREEN: ui_UpdateScreen - extern void ui_UpdateScreen_screen_init(void); - extern void ui_UpdateScreen_screen_destroy(void); - extern void ui_event_UpdateScreen(lv_event_t *e); - extern lv_obj_t *ui_UpdateScreen; - extern lv_obj_t *ui_UpdateContent; - extern lv_obj_t *ui_UpdateHeader; - extern lv_obj_t *ui_UpdateBody; - extern lv_obj_t *ui_UpdateBodyLabel; - extern lv_obj_t *ui_UpdateBodyDropdown; - extern lv_obj_t *ui_UpdateFooter; - extern void ui_event_UpdateSecondaryActionButton(lv_event_t *e); - extern lv_obj_t *ui_UpdateSecondaryActionButton; - extern lv_obj_t *ui_UpdateSecondaryActionButtonLabel; - extern void ui_event_UpdatePrimaryActionButton(lv_event_t *e); - extern lv_obj_t *ui_UpdatePrimaryActionButton; - extern lv_obj_t *ui_UpdatePrimaryActionButtonLabel; - // CUSTOM VARIABLES +// SCREEN: ui_UpdateScreen +extern void ui_UpdateScreen_screen_init(void); +extern void ui_UpdateScreen_screen_destroy(void); +extern void ui_event_UpdateScreen(lv_event_t * e); +extern lv_obj_t * ui_UpdateScreen; +extern lv_obj_t * ui_UpdateContent; +extern lv_obj_t * ui_UpdateHeader; +extern lv_obj_t * ui_UpdateBody; +extern lv_obj_t * ui_UpdateBodyLabel; +extern lv_obj_t * ui_UpdateBodyDropdown; +extern lv_obj_t * ui_UpdateFooter; +extern void ui_event_UpdateSecondaryActionButton(lv_event_t * e); +extern lv_obj_t * ui_UpdateSecondaryActionButton; +extern lv_obj_t * ui_UpdateSecondaryActionButtonLabel; +extern void ui_event_UpdatePrimaryActionButton(lv_event_t * e); +extern lv_obj_t * ui_UpdatePrimaryActionButton; +extern lv_obj_t * ui_UpdatePrimaryActionButtonLabel; +// CUSTOM VARIABLES #ifdef __cplusplus } /*extern "C"*/ #endif #endif + diff --git a/firmware/src/ui/ui_events.h b/firmware/src/ui/ui_events.h index 856fa086..ee5476d4 100644 --- a/firmware/src/ui/ui_events.h +++ b/firmware/src/ui/ui_events.h @@ -7,58 +7,58 @@ #define _UI_EVENTS_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif - void stats_screen_loaded(lv_event_t *e); - void stats_screen_unload_start(lv_event_t *e); - void stats_screen_load_start(lv_event_t *e); - void stat_long_press(lv_event_t *e); - void stat_swipe_left(lv_event_t *e); - void stat_swipe_right(lv_event_t *e); - void stats_footer_long_press(lv_event_t *e); - void menu_screen_loaded(lv_event_t *e); - void menu_screen_unload_start(lv_event_t *e); - void menu_screen_load_start(lv_event_t *e); - void menu_connect_press(lv_event_t *e); - void menu_pocket_mode_press(lv_event_t *e); - void shutdown_button_press(lv_event_t *e); - void shutdown_button_long_press(lv_event_t *e); - void shutdown_button_down(lv_event_t *e); - void settings_screen_loaded(lv_event_t *e); - void settings_screen_unload_start(lv_event_t *e); - void settings_screen_load_start(lv_event_t *e); - void brightness_slider_change(lv_event_t *e); - void double_press_action_select_change(lv_event_t *e); - void screen_rotation_change(lv_event_t *e); - void auto_off_select_change(lv_event_t *e); - void temp_units_select_change(lv_event_t *e); - void distance_units_select_change(lv_event_t *e); - void startup_sound_select_change(lv_event_t *e); - void theme_color_picker_change(lv_event_t *e); - void dark_text_switch_change(lv_event_t *e); - void settings_save(lv_event_t *e); - void pairing_screen_loaded(lv_event_t *e); - void pairing_screen_load_start(lv_event_t *e); - void pairing_screen_unload_start(lv_event_t *e); - void calibration_screen_loaded(lv_event_t *e); - void calibration_screen_unload_start(lv_event_t *e); - void calibration_screen_load_start(lv_event_t *e); - void expo_slider_change(lv_event_t *e); - void calibration_settings_secondary_button_press(lv_event_t *e); - void calibration_settings_primary_button_press(lv_event_t *e); - void about_screen_loaded(lv_event_t *e); - void about_screen_unload_start(lv_event_t *e); - void about_screen_load_start(lv_event_t *e); - void update_screen_loaded(lv_event_t *e); - void update_screen_load_start(lv_event_t *e); - void update_screen_unload_start(lv_event_t *e); - void update_secondary_button_press(lv_event_t *e); - void update_primary_button_press(lv_event_t *e); - void charge_screen_load_start(lv_event_t *e); - void charge_screen_loaded(lv_event_t *e); - void charge_screen_unload_start(lv_event_t *e); +void stats_screen_gesture_down(lv_event_t * e); +void stats_screen_loaded(lv_event_t * e); +void stats_screen_unload_start(lv_event_t * e); +void stats_screen_load_start(lv_event_t * e); +void primary_stat_long_press(lv_event_t * e); +void primary_stat_swipe_left(lv_event_t * e); +void primary_stat_swipe_right(lv_event_t * e); +void secondary_stat_long_press(lv_event_t * e); +void secondary_stat_swipe_left(lv_event_t * e); +void secondary_stat_swipe_right(lv_event_t * e); +void stats_footer_long_press(lv_event_t * e); +void menu_screen_loaded(lv_event_t * e); +void menu_screen_unload_start(lv_event_t * e); +void menu_screen_load_start(lv_event_t * e); +void settings_screen_loaded(lv_event_t * e); +void settings_screen_unload_start(lv_event_t * e); +void settings_screen_load_start(lv_event_t * e); +void brightness_slider_change(lv_event_t * e); +void single_press_action_select_change(lv_event_t * e); +void double_press_action_select_change(lv_event_t * e); +void long_press_action_select_change(lv_event_t * e); +void screen_rotation_change(lv_event_t * e); +void auto_off_select_change(lv_event_t * e); +void temp_units_select_change(lv_event_t * e); +void distance_units_select_change(lv_event_t * e); +void startup_sound_select_change(lv_event_t * e); +void theme_color_picker_change(lv_event_t * e); +void dark_text_switch_change(lv_event_t * e); +void settings_save(lv_event_t * e); +void pairing_screen_loaded(lv_event_t * e); +void pairing_screen_load_start(lv_event_t * e); +void pairing_screen_unload_start(lv_event_t * e); +void calibration_screen_loaded(lv_event_t * e); +void calibration_screen_unload_start(lv_event_t * e); +void calibration_screen_load_start(lv_event_t * e); +void expo_slider_change(lv_event_t * e); +void calibration_settings_secondary_button_press(lv_event_t * e); +void calibration_settings_primary_button_press(lv_event_t * e); +void about_screen_loaded(lv_event_t * e); +void about_screen_unload_start(lv_event_t * e); +void about_screen_load_start(lv_event_t * e); +void update_screen_loaded(lv_event_t * e); +void update_screen_load_start(lv_event_t * e); +void update_screen_unload_start(lv_event_t * e); +void update_secondary_button_press(lv_event_t * e); +void update_primary_button_press(lv_event_t * e); +void charge_screen_load_start(lv_event_t * e); +void charge_screen_loaded(lv_event_t * e); +void charge_screen_unload_start(lv_event_t * e); #ifdef __cplusplus } /*extern "C"*/ diff --git a/firmware/src/ui/ui_helpers.c b/firmware/src/ui/ui_helpers.c index de2b1a41..4bfa00e5 100644 --- a/firmware/src/ui/ui_helpers.c +++ b/firmware/src/ui/ui_helpers.c @@ -5,312 +5,334 @@ #include "ui_helpers.h" -void _ui_bar_set_property(lv_obj_t *target, int id, int val) { - if (id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) - lv_bar_set_value(target, val, LV_ANIM_ON); - if (id == _UI_BAR_PROPERTY_VALUE) - lv_bar_set_value(target, val, LV_ANIM_OFF); +void _ui_bar_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); + if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); } -void _ui_basic_set_property(lv_obj_t *target, int id, int val) { - if (id == _UI_BASIC_PROPERTY_POSITION_X) - lv_obj_set_x(target, val); - if (id == _UI_BASIC_PROPERTY_POSITION_Y) - lv_obj_set_y(target, val); - if (id == _UI_BASIC_PROPERTY_WIDTH) - lv_obj_set_width(target, val); - if (id == _UI_BASIC_PROPERTY_HEIGHT) - lv_obj_set_height(target, val); +void _ui_basic_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); + if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); + if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); + if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); } -void _ui_dropdown_set_property(lv_obj_t *target, int id, int val) { - if (id == _UI_DROPDOWN_PROPERTY_SELECTED) - lv_dropdown_set_selected(target, val); -} -void _ui_image_set_property(lv_obj_t *target, int id, uint8_t *val) { - if (id == _UI_IMAGE_PROPERTY_IMAGE) - lv_img_set_src(target, val); +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); } -void _ui_label_set_property(lv_obj_t *target, int id, const char *val) { - if (id == _UI_LABEL_PROPERTY_TEXT) - lv_label_set_text(target, val); +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val) +{ + if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); } -void _ui_roller_set_property(lv_obj_t *target, int id, int val) { - if (id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) - lv_roller_set_selected(target, val, LV_ANIM_ON); - if (id == _UI_ROLLER_PROPERTY_SELECTED) - lv_roller_set_selected(target, val, LV_ANIM_OFF); +void _ui_label_set_property(lv_obj_t * target, int id, const char * val) +{ + if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); } -void _ui_slider_set_property(lv_obj_t *target, int id, int val) { - if (id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) - lv_slider_set_value(target, val, LV_ANIM_ON); - if (id == _UI_SLIDER_PROPERTY_VALUE) - lv_slider_set_value(target, val, LV_ANIM_OFF); + +void _ui_roller_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); + if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); } -void _ui_screen_change(lv_obj_t **target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) { - if (*target == NULL) - target_init(); - lv_scr_load_anim(*target, fademode, spd, delay, false); +void _ui_slider_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); + if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); } -void _ui_screen_delete(lv_obj_t **target) { - if (*target == NULL) { - lv_obj_del(*target); - target = NULL; - } + +void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) +{ + if(*target == NULL) + target_init(); + lv_scr_load_anim(*target, fademode, spd, delay, false); } -void _ui_arc_increment(lv_obj_t *target, int val) { - int old = lv_arc_get_value(target); - lv_arc_set_value(target, old + val); - lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); +void _ui_screen_delete(lv_obj_t ** target) +{ + if(*target == NULL) { + lv_obj_del(*target); + target = NULL; + } } -void _ui_bar_increment(lv_obj_t *target, int val, int anm) { - int old = lv_bar_get_value(target); - lv_bar_set_value(target, old + val, anm); +void _ui_arc_increment(lv_obj_t * target, int val) +{ + int old = lv_arc_get_value(target); + lv_arc_set_value(target, old + val); + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); } -void _ui_slider_increment(lv_obj_t *target, int val, int anm) { - int old = lv_slider_get_value(target); - lv_slider_set_value(target, old + val, anm); - lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); +void _ui_bar_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_bar_get_value(target); + lv_bar_set_value(target, old + val, anm); } -void _ui_keyboard_set_target(lv_obj_t *keyboard, lv_obj_t *textarea) { - lv_keyboard_set_textarea(keyboard, textarea); +void _ui_slider_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_slider_get_value(target); + lv_slider_set_value(target, old + val, anm); + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); } -void _ui_flag_modify(lv_obj_t *target, int32_t flag, int value) { - if (value == _UI_MODIFY_FLAG_TOGGLE) { - if (lv_obj_has_flag(target, flag)) - lv_obj_clear_flag(target, flag); - else - lv_obj_add_flag(target, flag); - } - else if (value == _UI_MODIFY_FLAG_ADD) - lv_obj_add_flag(target, flag); - else - lv_obj_clear_flag(target, flag); +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea) +{ + lv_keyboard_set_textarea(keyboard, textarea); } -void _ui_state_modify(lv_obj_t *target, int32_t state, int value) { - if (value == _UI_MODIFY_STATE_TOGGLE) { - if (lv_obj_has_state(target, state)) - lv_obj_clear_state(target, state); - else - lv_obj_add_state(target, state); - } - else if (value == _UI_MODIFY_STATE_ADD) - lv_obj_add_state(target, state); - else - lv_obj_clear_state(target, state); + +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value) +{ + if(value == _UI_MODIFY_FLAG_TOGGLE) { + if(lv_obj_has_flag(target, flag)) lv_obj_clear_flag(target, flag); + else lv_obj_add_flag(target, flag); + } + else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag); + else lv_obj_clear_flag(target, flag); +} +void _ui_state_modify(lv_obj_t * target, int32_t state, int value) +{ + if(value == _UI_MODIFY_STATE_TOGGLE) { + if(lv_obj_has_state(target, state)) lv_obj_clear_state(target, state); + else lv_obj_add_state(target, state); + } + else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state); + else lv_obj_clear_state(target, state); } -void _ui_textarea_move_cursor(lv_obj_t *target, int val) + +void _ui_textarea_move_cursor(lv_obj_t * target, int val) { - if (val == UI_MOVE_CURSOR_UP) - lv_textarea_cursor_up(target); - if (val == UI_MOVE_CURSOR_RIGHT) - lv_textarea_cursor_right(target); - if (val == UI_MOVE_CURSOR_DOWN) - lv_textarea_cursor_down(target); - if (val == UI_MOVE_CURSOR_LEFT) - lv_textarea_cursor_left(target); - lv_obj_add_state(target, LV_STATE_FOCUSED); + if(val == UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); + if(val == UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); + if(val == UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); + if(val == UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); + lv_obj_add_state(target, LV_STATE_FOCUSED); } -void scr_unloaded_delete_cb(lv_event_t *e) +void scr_unloaded_delete_cb(lv_event_t * e) { - lv_obj_t **var = lv_event_get_user_data(e); - lv_obj_del(*var); - (*var) = NULL; + lv_obj_t ** var = lv_event_get_user_data(e); + lv_obj_del(*var); + (*var) = NULL; + } -void _ui_opacity_set(lv_obj_t *target, int val) { - lv_obj_set_style_opa(target, val, 0); +void _ui_opacity_set(lv_obj_t * target, int val) +{ + lv_obj_set_style_opa(target, val, 0); } -void _ui_anim_callback_free_user_data(lv_anim_t *a) { - lv_mem_free(a->user_data); - a->user_data = NULL; +void _ui_anim_callback_free_user_data(lv_anim_t * a) +{ + lv_mem_free(a->user_data); + a->user_data = NULL; } -void _ui_anim_callback_set_x(lv_anim_t *a, int32_t v) +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_x(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_x(usr->target, v); + } -void _ui_anim_callback_set_y(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_y(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_y(usr->target, v); + } -void _ui_anim_callback_set_width(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_width(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_width(usr->target, v); + } -void _ui_anim_callback_set_height(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_height(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_height(usr->target, v); + } -void _ui_anim_callback_set_opacity(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_obj_set_style_opa(usr->target, v, 0); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_style_opa(usr->target, v, 0); + } -void _ui_anim_callback_set_image_zoom(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_img_set_zoom(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_img_set_zoom(usr->target, v); + } -void _ui_anim_callback_set_image_angle(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - lv_img_set_angle(usr->target, v); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_img_set_angle(usr->target, v); + } -void _ui_anim_callback_set_image_frame(lv_anim_t *a, int32_t v) + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - usr->val = v; + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + usr->val = v; - if (v < 0) - v = 0; - if (v >= usr->imgset_size) - v = usr->imgset_size - 1; - lv_img_set_src(usr->target, usr->imgset[v]); + if(v < 0) v = 0; + if(v >= usr->imgset_size) v = usr->imgset_size - 1; + lv_img_set_src(usr->target, usr->imgset[v]); } -int32_t _ui_anim_callback_get_x(lv_anim_t *a) +int32_t _ui_anim_callback_get_x(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_x_aligned(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_x_aligned(usr->target); + } -int32_t _ui_anim_callback_get_y(lv_anim_t *a) + +int32_t _ui_anim_callback_get_y(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_y_aligned(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_y_aligned(usr->target); + } -int32_t _ui_anim_callback_get_width(lv_anim_t *a) + +int32_t _ui_anim_callback_get_width(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_width(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_width(usr->target); + } -int32_t _ui_anim_callback_get_height(lv_anim_t *a) + +int32_t _ui_anim_callback_get_height(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_height(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_height(usr->target); + } -int32_t _ui_anim_callback_get_opacity(lv_anim_t *a) + +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_obj_get_style_opa(usr->target, 0); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_style_opa(usr->target, 0); + } -int32_t _ui_anim_callback_get_image_zoom(lv_anim_t *a) +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_img_get_zoom(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_img_get_zoom(usr->target); + } -int32_t _ui_anim_callback_get_image_angle(lv_anim_t *a) +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return lv_img_get_angle(usr->target); + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_img_get_angle(usr->target); + } -int32_t _ui_anim_callback_get_image_frame(lv_anim_t *a) +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a) { - ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; - return usr->val; + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return usr->val; + } -void _ui_arc_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) { - char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; - lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); - lv_label_set_text(trg, buf); + lv_label_set_text(trg, buf); } -void _ui_slider_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) { - char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; - lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); - lv_label_set_text(trg, buf); + lv_label_set_text(trg, buf); } -void _ui_checked_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off) { - if (lv_obj_has_state(src, LV_STATE_CHECKED)) - lv_label_set_text(trg, txt_on); - else - lv_label_set_text(trg, txt_off); +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off) +{ + if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on); + else lv_label_set_text(trg, txt_off); } -void _ui_spinbox_step(lv_obj_t *target, int val) + +void _ui_spinbox_step(lv_obj_t * target, int val) { - if (val > 0) - lv_spinbox_increment(target); + if(val > 0) lv_spinbox_increment(target); - else - lv_spinbox_decrement(target); + else lv_spinbox_decrement(target); - lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); + + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); } void _ui_switch_theme(int val) @@ -318,6 +340,8 @@ void _ui_switch_theme(int val) { #ifdef UI_THEME_ACTIVE - ui_theme_set(val); + ui_theme_set(val); #endif } + + diff --git a/firmware/src/ui/ui_helpers.h b/firmware/src/ui/ui_helpers.h index 99a2cacc..f46216a5 100644 --- a/firmware/src/ui/ui_helpers.h +++ b/firmware/src/ui/ui_helpers.h @@ -7,8 +7,7 @@ #define _PUBREMOTE_UI_HELPERS_H #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif #include "ui.h" @@ -16,113 +15,131 @@ extern "C" #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 #define _UI_BAR_PROPERTY_VALUE 0 #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 - void _ui_bar_set_property(lv_obj_t *target, int id, int val); +void _ui_bar_set_property(lv_obj_t * target, int id, int val); #define _UI_BASIC_PROPERTY_POSITION_X 0 #define _UI_BASIC_PROPERTY_POSITION_Y 1 #define _UI_BASIC_PROPERTY_WIDTH 2 #define _UI_BASIC_PROPERTY_HEIGHT 3 - void _ui_basic_set_property(lv_obj_t *target, int id, int val); +void _ui_basic_set_property(lv_obj_t * target, int id, int val); #define _UI_DROPDOWN_PROPERTY_SELECTED 0 - void _ui_dropdown_set_property(lv_obj_t *target, int id, int val); +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val); #define _UI_IMAGE_PROPERTY_IMAGE 0 - void _ui_image_set_property(lv_obj_t *target, int id, uint8_t *val); +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val); #define _UI_LABEL_PROPERTY_TEXT 0 - void _ui_label_set_property(lv_obj_t *target, int id, const char *val); +void _ui_label_set_property(lv_obj_t * target, int id, const char * val); #define _UI_ROLLER_PROPERTY_SELECTED 0 #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 - void _ui_roller_set_property(lv_obj_t *target, int id, int val); +void _ui_roller_set_property(lv_obj_t * target, int id, int val); #define _UI_SLIDER_PROPERTY_VALUE 0 #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 - void _ui_slider_set_property(lv_obj_t *target, int id, int val); +void _ui_slider_set_property(lv_obj_t * target, int id, int val); - void _ui_screen_change(lv_obj_t **target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); +void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); - void _ui_screen_delete(lv_obj_t **target); +void _ui_screen_delete(lv_obj_t ** target); - void _ui_arc_increment(lv_obj_t *target, int val); +void _ui_arc_increment(lv_obj_t * target, int val); - void _ui_bar_increment(lv_obj_t *target, int val, int anm); +void _ui_bar_increment(lv_obj_t * target, int val, int anm); - void _ui_slider_increment(lv_obj_t *target, int val, int anm); +void _ui_slider_increment(lv_obj_t * target, int val, int anm); - void _ui_keyboard_set_target(lv_obj_t *keyboard, lv_obj_t *textarea); +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea); #define _UI_MODIFY_FLAG_ADD 0 #define _UI_MODIFY_FLAG_REMOVE 1 #define _UI_MODIFY_FLAG_TOGGLE 2 - void _ui_flag_modify(lv_obj_t *target, int32_t flag, int value); +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value); #define _UI_MODIFY_STATE_ADD 0 #define _UI_MODIFY_STATE_REMOVE 1 #define _UI_MODIFY_STATE_TOGGLE 2 - void _ui_state_modify(lv_obj_t *target, int32_t state, int value); +void _ui_state_modify(lv_obj_t * target, int32_t state, int value); #define UI_MOVE_CURSOR_UP 0 #define UI_MOVE_CURSOR_RIGHT 1 #define UI_MOVE_CURSOR_DOWN 2 #define UI_MOVE_CURSOR_LEFT 3 - void _ui_textarea_move_cursor(lv_obj_t *target, int val); +void _ui_textarea_move_cursor(lv_obj_t * target, int val) +; - void scr_unloaded_delete_cb(lv_event_t *e); - void _ui_opacity_set(lv_obj_t *target, int val); +void scr_unloaded_delete_cb(lv_event_t * e); - /** Describes an animation*/ - typedef struct _ui_anim_user_data_t { - lv_obj_t *target; - lv_img_dsc_t **imgset; +void _ui_opacity_set(lv_obj_t * target, int val); + +/** Describes an animation*/ +typedef struct _ui_anim_user_data_t { + lv_obj_t * target; + lv_img_dsc_t ** imgset; int32_t imgset_size; int32_t val; - } ui_anim_user_data_t; - void _ui_anim_callback_free_user_data(lv_anim_t *a); +} ui_anim_user_data_t; +void _ui_anim_callback_free_user_data(lv_anim_t * a); + +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v); + + +int32_t _ui_anim_callback_get_x(lv_anim_t * a); - void _ui_anim_callback_set_x(lv_anim_t *a, int32_t v); +int32_t _ui_anim_callback_get_y(lv_anim_t * a); - void _ui_anim_callback_set_y(lv_anim_t *a, int32_t v); +int32_t _ui_anim_callback_get_width(lv_anim_t * a); - void _ui_anim_callback_set_width(lv_anim_t *a, int32_t v); - void _ui_anim_callback_set_height(lv_anim_t *a, int32_t v); +int32_t _ui_anim_callback_get_height(lv_anim_t * a); - void _ui_anim_callback_set_opacity(lv_anim_t *a, int32_t v); - void _ui_anim_callback_set_image_zoom(lv_anim_t *a, int32_t v); +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a); - void _ui_anim_callback_set_image_angle(lv_anim_t *a, int32_t v); - void _ui_anim_callback_set_image_frame(lv_anim_t *a, int32_t v); +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a); - int32_t _ui_anim_callback_get_x(lv_anim_t *a); - int32_t _ui_anim_callback_get_y(lv_anim_t *a); +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a); - int32_t _ui_anim_callback_get_width(lv_anim_t *a); - int32_t _ui_anim_callback_get_height(lv_anim_t *a); +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a); - int32_t _ui_anim_callback_get_opacity(lv_anim_t *a); - int32_t _ui_anim_callback_get_image_zoom(lv_anim_t *a); +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); - int32_t _ui_anim_callback_get_image_angle(lv_anim_t *a); +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); - int32_t _ui_anim_callback_get_image_frame(lv_anim_t *a); +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off); - void _ui_arc_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); +void _ui_spinbox_step(lv_obj_t * target, int val) +; - void _ui_slider_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); - void _ui_checked_set_text_value(lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off); +void _ui_switch_theme(int val) +; - void _ui_spinbox_step(lv_obj_t *target, int val); - void _ui_switch_theme(int val); #ifdef __cplusplus } /*extern "C"*/ diff --git a/firmware/src/utilities/screen_utils.c b/firmware/src/utilities/screen_utils.c index 023e4d4f..995f27f2 100644 --- a/firmware/src/utilities/screen_utils.c +++ b/firmware/src/utilities/screen_utils.c @@ -279,8 +279,10 @@ lv_group_t *create_navigation_group(lv_obj_t *container) { // Iterate children of container and add them to the group uint32_t childrenCount = lv_obj_get_child_cnt(container); lv_obj_t *firstChild = NULL; + for (uint32_t i = 0; i < childrenCount; i++) { lv_obj_t *child = lv_obj_get_child(container, i); + if (child != NULL) { lv_group_add_obj(navigation_group, child); @@ -358,6 +360,7 @@ void resize_footer_buttons(lv_obj_t *footer) { lv_coord_t button_width = lv_obj_get_width(footer) / button_count; uint32_t final_button_count = 0; + // Resize each button for (uint32_t i = 0; i < button_count; i++) { lv_obj_t *button = lv_obj_get_child(footer, i); diff --git a/prebuild_hook.py b/prebuild_hook.py index f468e9a3..b4ef3bc5 100644 --- a/prebuild_hook.py +++ b/prebuild_hook.py @@ -3,8 +3,8 @@ import hashlib major_version = 0 -minor_version = 6 -patch_version = 8 +minor_version = 7 +patch_version = 0 def generate_build_id(): # Get current timestamp