diff --git a/help/en-US/components/LVGLWidget.md b/help/en-US/components/LVGLWidget.md index f091af5e..22ddf1b7 100644 --- a/help/en-US/components/LVGLWidget.md +++ b/help/en-US/components/LVGLWidget.md @@ -4,6 +4,8 @@ Widget name. We reference the Widget within the project by its name, for example in the LVGL action. For each Widget, we must choose a unique name within the entire project. This field is optional and does not need to be set if we do not need to reference the Widget. +## Code identifier [EMPTY] + ## Left unit The following options are available: diff --git a/help/en-US/components/actions/LVGL.md b/help/en-US/components/actions/LVGL.md index 7c6688ee..31ea675c 100644 --- a/help/en-US/components/actions/LVGL.md +++ b/help/en-US/components/actions/LVGL.md @@ -13,6 +13,7 @@ List of actions to be executed. The following actions are available: - *Fade mode*: Selection of animation when moving from the previous page to a new page - *Speed*: Animation duration in milliseconds - *Delay*: Delay in milliseconds before the animation starts. + - *Use stack*: Put active screen on the stack. - **Change to Previous Screen**: Change to the previous screen - *Fade mode*: Selection of animation when moving from the previous page to a new page diff --git a/help/en-US/components/widgets/Checkbox (LVGL).md b/help/en-US/components/widgets/Checkbox (LVGL).md index 3baba5d4..2e4a163a 100644 --- a/help/en-US/components/widgets/Checkbox (LVGL).md +++ b/help/en-US/components/widgets/Checkbox (LVGL).md @@ -10,6 +10,10 @@ Label displayed next to the checkbox. +## Text type + +Here we can choose whether the `Text` property will be calculated from the Expression. + # INPUTS [EMPTY] # OUTPUTS [EMPTY] diff --git a/help/en-US/components/widgets/Terminal.md b/help/en-US/components/widgets/Terminal.md index 0d3ab372..dacbb13f 100644 --- a/help/en-US/components/widgets/Terminal.md +++ b/help/en-US/components/widgets/Terminal.md @@ -14,6 +14,8 @@ Style used when rendering of the Widget. # INPUTS [EMPTY] +## clear + # OUTPUTS [EMPTY] ## onData diff --git a/packages/project-editor/flow/runtime/cpp/eez-framework b/packages/project-editor/flow/runtime/cpp/eez-framework index 4b8ceca5..4d56ee77 160000 --- a/packages/project-editor/flow/runtime/cpp/eez-framework +++ b/packages/project-editor/flow/runtime/cpp/eez-framework @@ -1 +1 @@ -Subproject commit 4b8ceca59dc6b0b34fefb219390e79e89c719da2 +Subproject commit 4d56ee77aa136e9b1b8bdb4c66ce286aece09938 diff --git a/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.js b/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.js index 4c546cac..b95fb92e 100644 --- a/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.js +++ b/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.js @@ -969,25 +969,25 @@ function dbg(text) { // === Body === var ASM_CONSTS = { - 1036816: ($0) => { startToDebuggerMessage($0); }, - 1036848: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, - 1036923: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, - 1036998: ($0) => { finishToDebuggerMessage($0); }, - 1037031: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); }, - 1037085: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); }, - 1037139: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); }, - 1037192: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); }, - 1037245: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); }, - 1037298: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); }, - 1037331: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); }, - 1037367: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); }, - 1037412: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); }, - 1037518: ($0, $1) => { return eez_mqtt_deinit($0, $1); }, - 1037554: ($0, $1) => { return eez_mqtt_connect($0, $1); }, - 1037591: ($0, $1) => { return eez_mqtt_disconnect($0, $1); }, - 1037631: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); }, - 1037688: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); }, - 1037747: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); } + 1036832: ($0) => { startToDebuggerMessage($0); }, + 1036864: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, + 1036939: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, + 1037014: ($0) => { finishToDebuggerMessage($0); }, + 1037047: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); }, + 1037101: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); }, + 1037155: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); }, + 1037208: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); }, + 1037261: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); }, + 1037314: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); }, + 1037347: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); }, + 1037383: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); }, + 1037428: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); }, + 1037534: ($0, $1) => { return eez_mqtt_deinit($0, $1); }, + 1037570: ($0, $1) => { return eez_mqtt_connect($0, $1); }, + 1037607: ($0, $1) => { return eez_mqtt_disconnect($0, $1); }, + 1037647: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); }, + 1037704: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); }, + 1037763: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); } }; diff --git a/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.wasm b/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.wasm index 1ed3ee2d..6600fd8a 100644 Binary files a/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.wasm and b/packages/project-editor/flow/runtime/lvgl_runtime_v8.3.wasm differ diff --git a/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.js b/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.js index 1308c530..76da8267 100644 --- a/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.js +++ b/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.js @@ -969,25 +969,25 @@ function dbg(text) { // === Body === var ASM_CONSTS = { - 1031664: ($0) => { startToDebuggerMessage($0); }, - 1031696: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, - 1031771: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, - 1031846: ($0) => { finishToDebuggerMessage($0); }, - 1031879: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); }, - 1031933: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); }, - 1031987: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); }, - 1032040: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); }, - 1032093: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); }, - 1032146: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); }, - 1032179: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); }, - 1032215: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); }, - 1032260: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); }, - 1032366: ($0, $1) => { return eez_mqtt_deinit($0, $1); }, - 1032402: ($0, $1) => { return eez_mqtt_connect($0, $1); }, - 1032439: ($0, $1) => { return eez_mqtt_disconnect($0, $1); }, - 1032479: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); }, - 1032536: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); }, - 1032595: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); } + 1031680: ($0) => { startToDebuggerMessage($0); }, + 1031712: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, + 1031787: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); }, + 1031862: ($0) => { finishToDebuggerMessage($0); }, + 1031895: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); }, + 1031949: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); }, + 1032003: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); }, + 1032056: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); }, + 1032109: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); }, + 1032162: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); }, + 1032195: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); }, + 1032231: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); }, + 1032276: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); }, + 1032382: ($0, $1) => { return eez_mqtt_deinit($0, $1); }, + 1032418: ($0, $1) => { return eez_mqtt_connect($0, $1); }, + 1032455: ($0, $1) => { return eez_mqtt_disconnect($0, $1); }, + 1032495: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); }, + 1032552: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); }, + 1032611: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); } }; diff --git a/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.wasm b/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.wasm index 589fef5f..6c6b31a8 100644 Binary files a/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.wasm and b/packages/project-editor/flow/runtime/lvgl_runtime_v9.0.wasm differ diff --git a/packages/project-editor/lvgl/actions-catalog.tsx b/packages/project-editor/lvgl/actions-catalog.tsx index f5557640..2838be18 100644 --- a/packages/project-editor/lvgl/actions-catalog.tsx +++ b/packages/project-editor/lvgl/actions-catalog.tsx @@ -33,6 +33,11 @@ registerAction({ name: "delay", type: "integer", helpText: "Delay in milliseconds before the animation starts." + }, + { + name: "useStack", + type: "boolean", + helpText: "Put active screen on the stack." } ], defaults: { @@ -41,12 +46,17 @@ registerAction({ delay: 0 }, label: ( - [screen, fadeMode, speed, delay], - [_1, _2, speedLabel, delayLabel] + [screen, fadeMode, speed, delay, useStack], + [_1, _2, speedLabel, delayLabel, useStackLabel] ) => ( <> {screen} {fadeMode} {speedLabel}={speed} {delayLabel}= {delay} + {useStack !== "ON" && ( + <> + {useStackLabel}={useStack} + + )} ), helpText: "Change the screen to the specified screen" diff --git a/packages/project-editor/lvgl/actions.tsx b/packages/project-editor/lvgl/actions.tsx index 39712876..fbad5090 100644 --- a/packages/project-editor/lvgl/actions.tsx +++ b/packages/project-editor/lvgl/actions.tsx @@ -1440,6 +1440,16 @@ export class LVGLActionComponent extends ActionComponent { break; } } + + for (const actionJs of objectJs.actions) { + if ( + actionJs.action == "changeScreen" && + actionJs.useStack === undefined + ) { + actionJs.useStack = true; + actionJs.useStackType = "literal"; + } + } }, icon: ( diff --git a/resources/eez-framework-amalgamation/eez-flow.cpp b/resources/eez-framework-amalgamation/eez-flow.cpp index 223cbaed..a4fb4549 100644 --- a/resources/eez-framework-amalgamation/eez-flow.cpp +++ b/resources/eez-framework-amalgamation/eez-flow.cpp @@ -1,4 +1,4 @@ -/* Autogenerated on November 19, 2024 2:46:06 PM from eez-framework commit 4b8ceca59dc6b0b34fefb219390e79e89c719da2 */ +/* Autogenerated on November 27, 2024 11:49:28 AM from eez-framework commit 4b8ceca59dc6b0b34fefb219390e79e89c719da2 */ /* * eez-framework * @@ -4244,7 +4244,16 @@ ACTION_START(changeScreen) INT32_PROP(fadeMode); UINT32_PROP(speed); UINT32_PROP(delay); - eez_flow_push_screen(screen, (lv_scr_load_anim_t)fadeMode, speed, delay); + if (properties.count > 4) { + BOOL_PROP(useStack); + if (useStack) { + eez_flow_push_screen(screen, (lv_scr_load_anim_t)fadeMode, speed, delay); + } else { + eez::flow::replacePageHook(screen, (lv_scr_load_anim_t)fadeMode, speed, delay); + } + } else { + eez_flow_push_screen(screen, (lv_scr_load_anim_t)fadeMode, speed, delay); + } ACTION_END ACTION_START(changeToPreviousScreen) INT32_PROP(fadeMode); diff --git a/resources/eez-framework-amalgamation/eez-flow.h b/resources/eez-framework-amalgamation/eez-flow.h index 9c399bfe..38ff5f1e 100644 --- a/resources/eez-framework-amalgamation/eez-flow.h +++ b/resources/eez-framework-amalgamation/eez-flow.h @@ -1,4 +1,4 @@ -/* Autogenerated on November 19, 2024 2:46:06 PM from eez-framework commit 4b8ceca59dc6b0b34fefb219390e79e89c719da2 */ +/* Autogenerated on November 27, 2024 11:49:28 AM from eez-framework commit 4b8ceca59dc6b0b34fefb219390e79e89c719da2 */ /* * eez-framework *