Informatique

Mutualiser des fonctions entre plusieurs écrans LGVL

Pour éviter les doublons de code et mutualiser les fonctions textarea et keyboard, il est préférable d'adopter une approche générique avec des paramètres dynamiques pour les événements. Voici les étapes pour mutualiser ou différencier proprement les fonctions entre connexionScreen et optionsScreen.


1. Mutualiser les événements communs

Les fonctions textarea_event_cb et keyboard_event_cb peuvent être généralisées pour accepter un contexte spécifique (par exemple, les boutons associés ou des actions spécifiques).

Code générique pour les événements

Ajoutons une structure pour stocker les objets spécifiques à chaque écran :

typedef struct {
    lv_obj_t* keyboard;       // Clavier virtuel
    lv_obj_t* btnValidate;    // Bouton "Valider"
} ui_screen_context_t;

2. Mutualiser textarea_event_cb

Voici une version générique de textarea_event_cb :

void generic_textarea_event_cb(lv_event_t* e) {
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t* textarea = lv_event_get_target(e);

    // Récupérer le contexte passé comme user_data
    ui_screen_context_t* context = (ui_screen_context_t*)lv_event_get_user_data(e);

3. Mutualiser keyboard_event_cb

Voici une version générique de keyboard_event_cb :

void generic_keyboard_event_cb(lv_event_t* e) {
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t* keyboard = lv_event_get_target(e);

    // Récupérer le contexte passé comme user_data
    ui_screen_context_t* context = (ui_screen_context_t*)lv_event_get_user_data(e);

 

4. Exemple d'intégration dans connexionScreen

Dans ui_connexionScreen_screen_init, on utilise ces fonctions génériques avec un contexte propre à l'écran.

 

Related Articles

Information

Ce site est construit autour de Joomla 5, en utilisant le template Helix Ultimate et les composants : SP Builder Pro pour la construction de certaines pages, Smart Slider 3 Free pour les slideshows, Komento Free pour les commentaires sur les articles et Ignite Gallery pour les galeries de photos.

Mentions légales

Le site est édité par Christian Sammut
130, Avenue du Général Leclerc
45800 Saint Jean de Braye
Tél.: 06.01.74.90.33
E-mail: contact@sammut.fr

Ce site est hébergé par AMEN SASU
12-14, Rond Point des Champs Elysées
75008 Paris