#ifndef EEZ_LVGL_UI_SCREENS_H
#define EEZ_LVGL_UI_SCREENS_H

#include <lvgl.h>
#include <ui/symbols.h>
#ifdef __cplusplus
extern "C" {
#endif

typedef struct _objects_t {
    lv_obj_t *mainScr;
    lv_obj_t *chartScr;
    lv_obj_t *debugScr;
    lv_obj_t *menuScr;
    lv_obj_t *rolloScr;
    lv_obj_t *rollo_posScr;
    lv_obj_t *temp_arc;
    lv_obj_t *temp_txt;
    lv_obj_t *hum_txt;
    lv_obj_t *press_txt;
    lv_obj_t *panel_arc;
    lv_obj_t *chart;
    lv_obj_t *x_scale;
    lv_obj_t *y_scale;
    lv_obj_t *chart_header;
    lv_obj_t *left_lbl;
    lv_obj_t *right_lbl;
    lv_obj_t *debugTxt;
    lv_obj_t *heaterIcn;
    lv_obj_t *bufferIcn;
    lv_obj_t *wifiIcn;
    lv_obj_t *alarmLED;
    lv_obj_t *outTemp_txt;
    lv_obj_t *time_txt;
    lv_obj_t *deviceDropdown;
    lv_obj_t *rolloPosSldr;
    lv_obj_t *lamellaContainer;
    lv_obj_t *lam[9];
    lv_chart_cursor_t *chart_cursor;
    lv_chart_series_t *chart_series;
} objects_t;

extern objects_t objects;

typedef enum ScreensEnum {
    SCREEN_ID_MAIN = 1,
    SCREEN_ID_CHART = 2,
    SCREEN_ID_DEBUG = 3,
    SCREEN_ID_MENU = 4,
    SCREEN_ID_ROLLO = 5,
    SCREEN_ID_ROLLOPOS = 6,
}ScreensEnum;

typedef enum ChartsEnum {
    CHART_ID_NONE = 0,
    CHART_ID_TEMP = 1,
    CHART_ID_HUM = 2,
    CHART_ID_PRESS = 3,
    CHART_ID_LEN
}ChartsEnum;

void create_screen_main();
void create_screen_chart();

void create_screens();


#ifdef __cplusplus
}
#endif

#endif /*EEZ_LVGL_UI_SCREENS_H*/