noMoreFragment
This commit is contained in:
parent
ea11fa4eef
commit
a0d0533181
194
main/ihm.c
194
main/ihm.c
@ -312,35 +312,9 @@ void showMeteoIcon(const char *icon, lv_obj_t *desc_icon, int childNr)
|
|||||||
lv_image_set_src(img, result);
|
lv_image_set_src(img, result);
|
||||||
free(result);
|
free(result);
|
||||||
}
|
}
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
/* Fragment meteo journaliere (date,icone, min et max) */
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
|
|
||||||
// Structure meteo journaliere
|
|
||||||
struct weatherDay_fragment_t
|
|
||||||
{
|
|
||||||
/* IMPORTANT: don't miss this part */
|
|
||||||
lv_fragment_t base;
|
|
||||||
/* States, object references and data fields for this fragment */
|
|
||||||
int dayNr;
|
|
||||||
bool showTitle;
|
|
||||||
const char *title;
|
|
||||||
float minTemp;
|
|
||||||
float maxTemp;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Constructeur meteo journaliere
|
|
||||||
static void weatherDay_fragment_ctor(lv_fragment_t *self, void *args)
|
|
||||||
{
|
|
||||||
int dayNo = ((int *)args)[0];
|
|
||||||
bool showDate = ((int *)args)[1];
|
|
||||||
((struct weatherDay_fragment_t *)self)->dayNr = dayNo;
|
|
||||||
((struct weatherDay_fragment_t *)self)->showTitle = showDate;
|
|
||||||
ESP_LOGI(TAG, "Fragment initialisé avec le jour n°%d - Afficher la date %d", dayNo, showDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ce fragment affiche une prévision journaliere (date,icone, min et max)
|
// Ce fragment affiche une prévision journaliere (date,icone, min et max)
|
||||||
static lv_obj_t *weatherDay_fragment_create_obj(lv_fragment_t *self, lv_obj_t *parent)
|
static lv_obj_t* weatherDay_fragment_create_obj(int dayNr, lv_obj_t *parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
lv_obj_t *sup = lv_obj_create(parent);
|
lv_obj_t *sup = lv_obj_create(parent);
|
||||||
@ -401,49 +375,13 @@ static lv_obj_t *weatherDay_fragment_create_obj(lv_fragment_t *self, lv_obj_t *p
|
|||||||
lv_obj_set_style_text_color(min, lv_color_hex(0x3000FF), 0);
|
lv_obj_set_style_text_color(min, lv_color_hex(0x3000FF), 0);
|
||||||
|
|
||||||
// On positionne un observer sur le subjet correspondant au jour du widget
|
// On positionne un observer sur le subjet correspondant au jour du widget
|
||||||
lv_subject_add_observer_obj(tmpSubj[((struct weatherDay_fragment_t *)self)->dayNr], weatherdata_obs_cb, sup, NULL);
|
lv_subject_add_observer_obj(tmpSubj[dayNr], weatherdata_obs_cb, sup, NULL);
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fragment meteo journaliere
|
|
||||||
const lv_fragment_class_t meteoFragment = {
|
|
||||||
/* Initialize something needed */
|
|
||||||
.constructor_cb = weatherDay_fragment_ctor,
|
|
||||||
/* Create view objects */
|
|
||||||
.create_obj_cb = weatherDay_fragment_create_obj,
|
|
||||||
/* IMPORTANT: size of your fragment struct */
|
|
||||||
.instance_size = sizeof(struct weatherDay_fragment_t),
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
/* Fragment meteo horaire ("heure",icone, temp) */
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
|
|
||||||
// Structure meteo horaire
|
|
||||||
struct weatherH_fragment_t
|
|
||||||
{
|
|
||||||
/* IMPORTANT: don't miss this part */
|
|
||||||
lv_fragment_t base;
|
|
||||||
/* States, object references and data fields for this fragment */
|
|
||||||
int horaireNr;
|
|
||||||
bool showTitle;
|
|
||||||
const char *horaire;
|
|
||||||
float temp;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Constructeur meteo horaire
|
|
||||||
static void weatherH_fragment_ctor(lv_fragment_t *self, void *args)
|
|
||||||
{
|
|
||||||
// Represente le n° (index dans le tableau) a afficher
|
|
||||||
int horaireNr = ((int *)args)[0];
|
|
||||||
bool showDate = ((int *)args)[1];
|
|
||||||
((struct weatherH_fragment_t *)self)->horaireNr = horaireNr;
|
|
||||||
((struct weatherH_fragment_t *)self)->showTitle = showDate;
|
|
||||||
ESP_LOGI(TAG, "Fragment initialisé avec l'horaire %d", horaireNr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ce fragment affiche une prévision horaire (date,icone, temp moyenne)
|
// Ce fragment affiche une prévision horaire (date,icone, temp moyenne)
|
||||||
static lv_obj_t *weatherH_fragment_create_obj(lv_fragment_t *self, lv_obj_t *parent)
|
static lv_obj_t* weatherH_fragment_create_obj(int horaireNr, lv_obj_t *parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
lv_obj_t *sup = lv_obj_create(parent);
|
lv_obj_t *sup = lv_obj_create(parent);
|
||||||
@ -489,119 +427,12 @@ static lv_obj_t *weatherH_fragment_create_obj(lv_fragment_t *self, lv_obj_t *par
|
|||||||
lv_obj_set_style_text_font(desc, lv_theme_get_font_normal(desc), 0);
|
lv_obj_set_style_text_font(desc, lv_theme_get_font_normal(desc), 0);
|
||||||
|
|
||||||
// On positionne un observer sur le subjet correspondant a l'horaire du widget
|
// On positionne un observer sur le subjet correspondant a l'horaire du widget
|
||||||
ESP_LOGE(TAG, "on positionne obs sur horaire %d", ((struct weatherH_fragment_t *)self)->horaireNr);
|
ESP_LOGE(TAG, "on positionne obs sur horaire %d", horaireNr);
|
||||||
lv_subject_add_observer_obj(tmpHSubj[((struct weatherH_fragment_t *)self)->horaireNr], weatherdataH_obs_cb, sup, NULL);
|
lv_subject_add_observer_obj(tmpHSubj[horaireNr], weatherdataH_obs_cb, sup, NULL);
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fragment meteo horaire
|
|
||||||
const lv_fragment_class_t meteoHFragment = {
|
|
||||||
/* Initialize something needed */
|
|
||||||
.constructor_cb = weatherH_fragment_ctor,
|
|
||||||
/* Create view objects */
|
|
||||||
.create_obj_cb = weatherH_fragment_create_obj,
|
|
||||||
/* IMPORTANT: size of your fragment struct */
|
|
||||||
.instance_size = sizeof(struct weatherH_fragment_t),
|
|
||||||
};
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
|
||||||
/* Fragment 3 meteo "jour" (aujourd'hui, demain, apres demain) */
|
|
||||||
/* -------------------------------------------------------------- */
|
|
||||||
struct meteodailyforecast_fragment_t
|
|
||||||
{
|
|
||||||
/* IMPORTANT: don't miss this part */
|
|
||||||
lv_fragment_t base;
|
|
||||||
/* States, object references and data fields for this fragment */
|
|
||||||
const char *title;
|
|
||||||
bool showDate;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void meteodailyforecast_fragment_ctor(lv_fragment_t *self, void *args)
|
|
||||||
{
|
|
||||||
struct meteodailyforecast_fragment_t *myself = ((struct meteodailyforecast_fragment_t *)self);
|
|
||||||
myself->showDate = args;
|
|
||||||
}
|
|
||||||
|
|
||||||
static lv_obj_t *meteodailyforecast_fragment_create_obj(lv_fragment_t *self, lv_obj_t *parent)
|
|
||||||
{
|
|
||||||
|
|
||||||
lv_fragment_manager_t *manager = lv_fragment_manager_create(NULL);
|
|
||||||
|
|
||||||
int args[2] = {0, ((struct meteodailyforecast_fragment_t *)self)->showDate};
|
|
||||||
lv_fragment_t *fragment = lv_fragment_create(&meteoFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
args[0] = 1;
|
|
||||||
fragment = lv_fragment_create(&meteoFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
args[0] = 2;
|
|
||||||
fragment = lv_fragment_create(&meteoFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
return parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
const lv_fragment_class_t meteodailyforecast_cls = {
|
|
||||||
/* Initialize something needed */
|
|
||||||
.constructor_cb = meteodailyforecast_fragment_ctor,
|
|
||||||
/* Create view objects */
|
|
||||||
.create_obj_cb = meteodailyforecast_fragment_create_obj,
|
|
||||||
/* IMPORTANT: size of your fragment struct */
|
|
||||||
.instance_size = sizeof(struct meteodailyforecast_fragment_t),
|
|
||||||
};
|
|
||||||
/* -------------------------------------------------------------------------------- */
|
|
||||||
/* Fragment 3 meteo "horaire" - matin/midi/soir (icone, temp moyenne) */
|
|
||||||
/* -------------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
struct meteoforecast_fragment_t
|
|
||||||
{
|
|
||||||
/* IMPORTANT: don't miss this part */
|
|
||||||
lv_fragment_t base;
|
|
||||||
/* States, object references and data fields for this fragment */
|
|
||||||
const char *title;
|
|
||||||
bool showDate;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void meteoforecast_fragment_ctor(lv_fragment_t *self, void *args)
|
|
||||||
{
|
|
||||||
struct meteoforecast_fragment_t *myself = ((struct meteoforecast_fragment_t *)self);
|
|
||||||
myself->showDate = args;
|
|
||||||
}
|
|
||||||
|
|
||||||
static lv_obj_t *meteoforecast_fragment_create_obj(lv_fragment_t *self, lv_obj_t *parent)
|
|
||||||
{
|
|
||||||
|
|
||||||
lv_fragment_manager_t *manager = lv_fragment_manager_create(NULL);
|
|
||||||
|
|
||||||
// On affiche 3 fragment meteo. 1 pour chaque "horaire"
|
|
||||||
int args[2] = {0, ((struct meteoforecast_fragment_t *)self)->showDate};
|
|
||||||
lv_fragment_t *fragment = lv_fragment_create(&meteoHFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
args[0] = 1;
|
|
||||||
fragment = lv_fragment_create(&meteoHFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
args[0] = 2;
|
|
||||||
fragment = lv_fragment_create(&meteoHFragment, args);
|
|
||||||
lv_fragment_manager_add(manager, fragment, &parent);
|
|
||||||
|
|
||||||
return parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
const lv_fragment_class_t meteoforecast_cls = {
|
|
||||||
/* Initialize something needed */
|
|
||||||
.constructor_cb = meteoforecast_fragment_ctor,
|
|
||||||
/* Create view objects */
|
|
||||||
.create_obj_cb = meteoforecast_fragment_create_obj,
|
|
||||||
/* IMPORTANT: size of your fragment struct */
|
|
||||||
.instance_size = sizeof(struct meteoforecast_fragment_t),
|
|
||||||
};
|
|
||||||
|
|
||||||
uint32_t oldTab;
|
uint32_t oldTab;
|
||||||
lv_fragment_manager_t *manager2;
|
|
||||||
lv_fragment_t *fragment2;
|
|
||||||
|
|
||||||
/*void tabChgEvt(lv_event_t *event)
|
/*void tabChgEvt(lv_event_t *event)
|
||||||
{
|
{
|
||||||
@ -826,9 +657,9 @@ void draw_tabHome(lv_obj_t* parent){
|
|||||||
lv_label_set_text(label, LV_SYMBOL_DOWN);
|
lv_label_set_text(label, LV_SYMBOL_DOWN);
|
||||||
lv_obj_center(label);
|
lv_obj_center(label);
|
||||||
|
|
||||||
lv_fragment_manager_t *manager = lv_fragment_manager_create(NULL);
|
weatherH_fragment_create_obj(0,cont_col3);
|
||||||
lv_fragment_t *fragment = lv_fragment_create(&meteoforecast_cls, 0);
|
weatherH_fragment_create_obj(1,cont_col3);
|
||||||
lv_fragment_manager_add(manager, fragment, &cont_col3);
|
weatherH_fragment_create_obj(2,cont_col3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_tabCuve(lv_obj_t* parent)
|
void draw_tabCuve(lv_obj_t* parent)
|
||||||
@ -839,9 +670,12 @@ void draw_tabCuve(lv_obj_t* parent)
|
|||||||
|
|
||||||
void draw_tabMeteo(lv_obj_t * parent)
|
void draw_tabMeteo(lv_obj_t * parent)
|
||||||
{
|
{
|
||||||
manager2 = lv_fragment_manager_create(NULL);
|
weatherDay_fragment_create_obj(0,parent);
|
||||||
fragment2 = lv_fragment_create(&meteodailyforecast_cls, (void *)1);
|
weatherDay_fragment_create_obj(1,parent);
|
||||||
lv_fragment_manager_add(manager2, fragment2, &parent);
|
weatherDay_fragment_create_obj(2,parent);
|
||||||
|
//manager2 = lv_fragment_manager_create(NULL);
|
||||||
|
//fragment2 = lv_fragment_create(&meteodailyforecast_cls, (void *)1);
|
||||||
|
//lv_fragment_manager_add(manager2, fragment2, &parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_tabVolets(lv_obj_t* parent)
|
void draw_tabVolets(lv_obj_t* parent)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user