Files
M5PaperOS/src/epdgui/epdgui_mutexswitch.h
2020-11-12 16:52:21 +08:00

31 lines
746 B
C++

#ifndef _EPDGUI_MUTEXSWITCH_H
#define _EPDGUI_MUTEXSWITCH_H
#include "epdgui_switch.h"
#include <list>
class EPDGUI_MutexSwitch : public EPDGUI_Base
{
public:
EPDGUI_MutexSwitch();
void Draw(m5epd_update_mode_t mode);
void Draw(M5EPD_Canvas* canvas);
void Bind(int16_t event, void (* func_cb)(epdgui_args_vector_t&));
void UpdateState(int16_t x, int16_t y);
void Add(EPDGUI_Switch* object) {_object_list.push_back(object);}
void SetExclusive(bool isExclusive) {_is_exclusive = isExclusive;}
void SetDefault(uint16_t idx);
private:
bool _is_exclusive = true;
uint16_t _default_idx = 0;
std::list<EPDGUI_Switch*> _object_list;
std::list<EPDGUI_Switch*>::iterator _last_pressed;
};
#endif