1
- /* Autogenerated on February 3, 2025 11:51:03 AM from eez-framework commit 3db93fbe5aa9a3f27d57ad064f0ba7ce83b88255 */
1
+ /* Autogenerated on February 3, 2025 3:55:56 PM from eez-framework commit 46e3fd71c9682cf60f626adbbc6c5a7821dda9f2 */
2
2
/*
3
3
* eez-framework
4
4
*
@@ -7393,7 +7393,6 @@ static void (*g_changeColorTheme)(uint32_t themeIndex);
7393
7393
static uint32_t g_selectedThemeIndex;
7394
7394
static void (*g_createScreenFunc)(int screenIndex);
7395
7395
static void (*g_deleteScreenFunc)(int screenIndex);
7396
- bool *g_deleteOnScreenUnload;
7397
7396
static lv_obj_t *getLvglObjectFromIndex (int32_t index ) {
7398
7397
if (index >= 0 && index < g_numObjects) {
7399
7398
return g_objects[index ];
@@ -7461,9 +7460,6 @@ void eez_flow_set_create_screen_func(void (*createScreenFunc)(int screenIndex))
7461
7460
void eez_flow_set_delete_screen_func (void (*deleteScreenFunc)(int screenIndex)) {
7462
7461
g_deleteScreenFunc = deleteScreenFunc;
7463
7462
}
7464
- void eez_flow_set_delete_on_screen_unload (bool *deleteOnScreenUnload) {
7465
- g_deleteOnScreenUnload = deleteOnScreenUnload;
7466
- }
7467
7463
static void lvglSetColorTheme (const char *themeName) {
7468
7464
for (uint32_t i = 0 ; i < g_numThemes; i++) {
7469
7465
if (strcmp (themeName, g_themeNames[i]) == 0 ) {
@@ -7528,6 +7524,20 @@ bool eez_flow_is_screen_created(int16_t screenId) {
7528
7524
int16_t screenIndex = screenId - 1 ;
7529
7525
return isScreenCreated (screenIndex);
7530
7526
}
7527
+ void on_screen_unloaded (lv_event_t *e) {
7528
+ if (lv_event_get_code (e) == LV_EVENT_SCREEN_UNLOADED) {
7529
+ int16_t screenIndex = (int16_t )(lv_uintptr_t )lv_event_get_user_data (e);
7530
+ deleteScreen (screenIndex);
7531
+ }
7532
+ }
7533
+ void eez_flow_delete_screen_on_unload (int screenIndex) {
7534
+ lv_obj_add_event_cb (
7535
+ eez::flow::getLvglObjectFromIndexHook (screenIndex),
7536
+ on_screen_unloaded,
7537
+ LV_EVENT_SCREEN_UNLOADED,
7538
+ (void *)(lv_uintptr_t )(screenIndex)
7539
+ );
7540
+ }
7531
7541
extern " C" void eez_flow_init (const uint8_t *assets, uint32_t assetsSize, lv_obj_t **objects, size_t numObjects, const ext_img_desc_t *images, size_t numImages, ActionExecFunc *actions) {
7532
7542
g_objects = objects;
7533
7543
g_numObjects = numObjects;
@@ -7586,12 +7596,6 @@ extern "C" bool eez_flow_is_stopped() {
7586
7596
namespace eez {
7587
7597
ActionExecFunc g_actionExecFunctions[] = { 0 };
7588
7598
}
7589
- void on_screen_unloaded (lv_event_t *e) {
7590
- if (lv_event_get_code (e) == LV_EVENT_SCREEN_UNLOADED) {
7591
- int16_t screenIndex = (int16_t )(lv_uintptr_t )lv_event_get_user_data (e);
7592
- deleteScreen (screenIndex);
7593
- }
7594
- }
7595
7599
void replacePageHook (int16_t pageId, uint32_t animType, uint32_t speed, uint32_t delay) {
7596
7600
int16_t screenIndex = pageId - 1 ;
7597
7601
createScreen (screenIndex);
@@ -7600,20 +7604,6 @@ void replacePageHook(int16_t pageId, uint32_t animType, uint32_t speed, uint32_t
7600
7604
return ;
7601
7605
}
7602
7606
eez::flow::onPageChanged (g_currentScreen + 1 , pageId);
7603
- if (
7604
- g_currentScreen != -1 &&
7605
- g_currentScreen != screenIndex &&
7606
- g_deleteScreenFunc &&
7607
- g_deleteOnScreenUnload &&
7608
- g_deleteOnScreenUnload[g_currentScreen]
7609
- ) {
7610
- lv_obj_add_event_cb (
7611
- eez::flow::getLvglObjectFromIndexHook (g_currentScreen),
7612
- on_screen_unloaded,
7613
- LV_EVENT_SCREEN_UNLOADED,
7614
- (void *)(lv_uintptr_t )(g_currentScreen)
7615
- );
7616
- }
7617
7607
g_currentScreen = screenIndex;
7618
7608
lv_scr_load_anim (screen, (lv_scr_load_anim_t )animType, speed, delay, false );
7619
7609
}
0 commit comments