#ifndef BOUTON_H_
#define BOUTON_H_

/* 
==================================
	 version1="2026-08-27";
==================================
*/


#include <Arduino.h>
#include <stdint.h>
#include <Free_Fonts.h>
#include "TFT_eSPI.h"

/* 
==================================
	 version1="2026-08-28";
==================================
*/



class TOUCH_BOUTON
{
    protected:
        uint8_t dx;
        uint8_t dy;
        uint8_t dr; // rayon de courbure des angles

    public:
        uint16_t x0;
        uint16_t y0;
        uint16_t couleur;

        String label;
        boolean cliked;
        boolean selected;

        TOUCH_BOUTON(); // constructeur

        void init(uint16_t x_i, uint16_t y_i, uint8_t dx_i, uint8_t dy_i, uint8_t dr_i, uint16_t couleur_i);
        void affiche(uint16_t coul_select, uint8_t n_font, TFT_eSPI *TFTi);
        void test_clic(uint16_t x_tch_i, uint16_t y_tch_i);

    private:
};



class PANEL_BOUTONS
{
    protected:
        uint16_t dxT; // largeur totale
        uint16_t dy;
        uint8_t nb_boutons;
        String nom;
        //String libels[6];

    public:
        TOUCH_BOUTON bt_P[7]; // max, à priori; on peut en utiliser un nb < 7
        uint16_t x0;
        uint16_t y0;

        String label;

        PANEL_BOUTONS(); // constructeur

        void init(uint16_t x_i, uint16_t y_i, uint16_t dxT_i, uint16_t nb_boutons_i, String nom_i, String s_i[5], TFT_eSPI *TFTi);
        void affiche(TFT_eSPI *TFTi);
        uint8_t traite_boutons(uint16_t x_tch_i, uint16_t y_tch_i, uint8_t nb_bt, TFT_eSPI *TFTi);
        void deselecte_tous(TFT_eSPI *TFTi);

    private:
};


void test_clic_boutons(TOUCH_BOUTON *bouton_i);

#endif