change the event management
This commit is contained in:
parent
165b3da4d3
commit
3c468e612c
@ -122,41 +122,7 @@ bool ewol::Widget::CalculateSize(etkFloat_t availlableX, etkFloat_t availlableY)
|
||||
|
||||
bool ewol::Widget::GenEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
bool ended = false;
|
||||
//EWOL_WARNING("Input event : " << IdInput << " pos(" << x << "," << y << ")");
|
||||
for(int32_t iii=m_inputAreaEvent.Size()-1; iii>=0; iii--) {
|
||||
if( m_inputAreaEvent[iii].origin.x <= x
|
||||
&& m_inputAreaEvent[iii].origin.y <= y
|
||||
&& m_inputAreaEvent[iii].origin.x + m_inputAreaEvent[iii].size.x > x
|
||||
&& m_inputAreaEvent[iii].origin.y + m_inputAreaEvent[iii].size.y > y )
|
||||
{
|
||||
if( (m_inputAreaEvent[iii].flags & (1<<(IdInput-1)) )
|
||||
&& ( ( (FLAG_EVENT_INPUT_MOTION & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_MOVE == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_ENTER & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_ENTER == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_LEAVE & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_LEAVE == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_DOWN & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_DOWN == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_UP & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_UP == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_CLICKED & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_SINGLE == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_CLICKED_DOUBLE & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_DOUBLE == typeEvent)
|
||||
|| ( (FLAG_EVENT_INPUT_CLICKED_TRIPLE & m_inputAreaEvent[iii].flags) && EVENT_INPUT_TYPE_TRIPLE == typeEvent)
|
||||
)
|
||||
)
|
||||
{
|
||||
ended = OnEventArea(m_inputAreaEvent[iii].generateEventId, x, y);
|
||||
if (true == ended) {
|
||||
break;
|
||||
}
|
||||
if (true == GenEventInputExternal(m_inputAreaEvent[iii].generateEventId, x, y)) {
|
||||
ended = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (false == ended) {
|
||||
return OnEventInput(IdInput, typeEvent, x, y);
|
||||
}
|
||||
return ended;
|
||||
return OnEventInput(IdInput, typeEvent, x, y);
|
||||
}
|
||||
|
||||
bool ewol::Widget::GenEventInputExternal(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
@ -193,12 +159,6 @@ bool ewol::Widget::GenEventShortCut(bool shift, bool control, bool alt, bool met
|
||||
&& m_inputShortCutEvent[iii].meta == meta
|
||||
&& m_inputShortCutEvent[iii].UnicodeValue == unicodeValue)
|
||||
{
|
||||
/*
|
||||
ended = OnEventArea(m_inputShortCutEvent[iii].generateEventId, -1, -1);
|
||||
if (true == ended) {
|
||||
break;
|
||||
}
|
||||
*/
|
||||
if (true == GenEventInputExternal(m_inputShortCutEvent[iii].generateEventId, -1, -1)) {
|
||||
ended = true;
|
||||
break;
|
||||
@ -214,46 +174,6 @@ bool ewol::Widget::GenEventShortCut(bool shift, bool control, bool alt, bool met
|
||||
}
|
||||
|
||||
|
||||
bool ewol::Widget::AddEventArea(coord origin, coord size, uint64_t flags, const char * generateEventId)
|
||||
{
|
||||
/*
|
||||
if( origin.x < 0.0
|
||||
|| origin.y < 0.0)
|
||||
{
|
||||
EWOL_WARNING("origin under 0.0 ... out of range");
|
||||
return false;
|
||||
}
|
||||
if( size.x < 0.0
|
||||
|| size.y < 0.0)
|
||||
{
|
||||
EWOL_WARNING("size under 0.0 ... out of range");
|
||||
return false;
|
||||
}
|
||||
if( origin.x > m_size.x
|
||||
|| origin.y > m_size.y)
|
||||
{
|
||||
EWOL_WARNING("origin out of range");
|
||||
return false;
|
||||
}
|
||||
if( origin.x + size.x > m_size.x
|
||||
|| origin.y + size.y > m_size.y)
|
||||
{
|
||||
EWOL_WARNING("end area out of size");
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
eventArea_ts newEvent;
|
||||
newEvent.generateEventId = generateEventId;
|
||||
newEvent.origin.x = origin.x + m_origin.x;
|
||||
newEvent.origin.y = origin.y + m_origin.y;
|
||||
newEvent.size = size;
|
||||
newEvent.flags = flags;
|
||||
m_inputAreaEvent.PushBack(newEvent);
|
||||
//EWOL_DEBUG("Add an area event...");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool ewol::Widget::AddEventShortCut(bool shift, bool control, bool alt, bool meta, uint32_t unicodeValue, const char * generateEventId)
|
||||
{
|
||||
eventShortCut_ts newEvent;
|
||||
|
@ -98,7 +98,7 @@ namespace ewol {
|
||||
} eventKbMoveType_te;
|
||||
|
||||
char* GetCharTypeMoveEvent(eventKbMoveType_te type);
|
||||
|
||||
/*
|
||||
enum {
|
||||
FLAG_EVENT_INPUT_1 = 1 << 0,
|
||||
FLAG_EVENT_INPUT_2 = 1 << 1,
|
||||
@ -134,7 +134,7 @@ namespace ewol {
|
||||
#define FLAG_EVENT_INPUT_BT_RIGHT (FLAG_EVENT_INPUT_3)
|
||||
#define FLAG_EVENT_INPUT_BT_SCROOL_UP (FLAG_EVENT_INPUT_4)
|
||||
#define FLAG_EVENT_INPUT_BT_SCROOL_DOWN (FLAG_EVENT_INPUT_5)
|
||||
|
||||
*/
|
||||
|
||||
#define UTF8_MAX_SIZE (8)
|
||||
#define EWOL_EVENT_AREA (0)
|
||||
@ -248,7 +248,6 @@ namespace ewol {
|
||||
// -- Shortcut: (only for computer) ==> must be manage otherwise for tablette pc
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
private:
|
||||
etk::VectorType<eventArea_ts> m_inputAreaEvent; //!< generic area event
|
||||
etk::VectorType<eventShortCut_ts> m_inputShortCutEvent; //!< generic short-cut event
|
||||
etk::VectorType<eventExtern_ts> m_externEvent; //!< Generic list of event generation for output link
|
||||
etk::VectorType<const char*> m_ListEventAvaillable; //!< List of all event availlable for this widget
|
||||
@ -263,8 +262,7 @@ namespace ewol {
|
||||
m_ListEventAvaillable.PushBack(generateEventId);
|
||||
}
|
||||
}
|
||||
void EventAreaRemoveAll(void) { m_inputAreaEvent.Clear();m_inputShortCutEvent.Clear(); };
|
||||
bool AddEventArea(coord origin, coord size, uint64_t flags, const char * generateEventId);
|
||||
//void EventAreaRemoveAll(void) { m_inputAreaEvent.Clear();m_inputShortCutEvent.Clear(); };
|
||||
bool AddEventShortCut(bool shift, bool control, bool alt, bool pomme, uint32_t unicodeValue, const char * generateEventId);
|
||||
bool AddEventShortCut(char * descriptiveString, const char * generateEventId);
|
||||
public:
|
||||
@ -272,9 +270,9 @@ namespace ewol {
|
||||
bool ExternLinkOnEvent(const char * eventName, int32_t widgetId, const char * eventExternId = NULL);
|
||||
protected:
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t X, etkFloat_t Y) { return false; };
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y) { return false; };
|
||||
public:
|
||||
// when an event arrive from an other widget, it will arrive here:
|
||||
// TODO : change name ...
|
||||
virtual bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y) { return false; };
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
|
@ -149,44 +149,21 @@ void ewol::Button::OnRegenerateDisplay(void)
|
||||
AddOObject(tmpOObjects, "BouttonDecoration");
|
||||
|
||||
AddOObject(tmpText, "BouttonText");
|
||||
|
||||
// Regenerate the event Area:
|
||||
EventAreaRemoveAll();
|
||||
coord origin;
|
||||
coord size;
|
||||
origin.x = tmpOriginX;
|
||||
origin.y = tmpOriginY;
|
||||
size.x = tmpSizeX;
|
||||
size.y = tmpSizeY;
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_1 | FLAG_EVENT_INPUT_CLICKED_ALL, ewolEventButtonPressed);
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_ENTER, ewolEventButtonEnter);
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_LEAVE, ewolEventButtonLeave);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
bool ewol::Button::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
EWOL_DEBUG("Event on BT ...");
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
bool ewol::Button::OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
//bool eventIsOK = false;
|
||||
//EWOL_DEBUG("Receive event : \"" << generateEventId << "\"");
|
||||
if(ewolEventButtonPressed == generateEventId) {
|
||||
EWOL_INFO("BT pressed ... " << m_label);
|
||||
//eventIsOK = true;
|
||||
ewol::widgetManager::FocusKeep(this);
|
||||
} else if(ewolEventButtonEnter == generateEventId) {
|
||||
MarkToReedraw();
|
||||
if (1 == IdInput) {
|
||||
if (ewol::EVENT_INPUT_TYPE_SINGLE == typeEvent) {
|
||||
// nothing to do ...
|
||||
GenEventInputExternal(ewolEventButtonPressed, x, y);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//return eventIsOK;
|
||||
// in every case this not stop the propagation of the event
|
||||
return false;
|
||||
// if overwrited... you can ...
|
||||
}
|
||||
|
||||
|
||||
@ -196,9 +173,8 @@ bool ewol::Button::OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_S
|
||||
if( UTF8_data != NULL
|
||||
&& typeEvent == ewol::EVENT_KB_TYPE_DOWN
|
||||
&& UTF8_data[0] == '\r') {
|
||||
return OnEventArea(ewolEventButtonPressed, -1, -1);
|
||||
GenEventInputExternal(ewolEventButtonEnter, -1, -1);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -57,8 +57,8 @@ namespace ewol {
|
||||
public:
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
//virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
//virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_SIZE]);
|
||||
};
|
||||
};
|
||||
|
@ -132,45 +132,29 @@ void ewol::CheckBox::OnRegenerateDisplay(void)
|
||||
|
||||
AddOObject(tmpOObjects, "Decoration");
|
||||
AddOObject(tmpText, "Text");
|
||||
|
||||
// Regenerate the event Area:
|
||||
EventAreaRemoveAll();
|
||||
coord origin;
|
||||
coord size;
|
||||
origin.x = 3.0;
|
||||
origin.y = 3.0;
|
||||
size.x = m_size.x-6;
|
||||
size.y = m_size.y-6;
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_1 | FLAG_EVENT_INPUT_CLICKED_ALL, ewolEventCheckBoxClicked);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
bool ewol::CheckBox::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
EWOL_DEBUG("Event on BT ...");
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
bool ewol::CheckBox::OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
bool eventIsOK = false;
|
||||
//EWOL_DEBUG("Receive event : \"" << generateEventId << "\"");
|
||||
if(ewolEventCheckBoxClicked == generateEventId) {
|
||||
ewol::widgetManager::FocusKeep(this);
|
||||
EWOL_INFO("CB pressed ... " << m_label);
|
||||
if(true == m_value) {
|
||||
m_value = false;
|
||||
} else {
|
||||
m_value = true;
|
||||
EWOL_DEBUG("Event on checkbox ...");
|
||||
if (1 == IdInput) {
|
||||
if (ewol::EVENT_INPUT_TYPE_SINGLE == typeEvent) {
|
||||
if(true == m_value) {
|
||||
m_value = false;
|
||||
} else {
|
||||
m_value = true;
|
||||
}
|
||||
GenEventInputExternal(ewolEventCheckBoxClicked, x, y);
|
||||
ewol::widgetManager::FocusKeep(this);
|
||||
return true;
|
||||
}
|
||||
MarkToReedraw();
|
||||
eventIsOK = true;
|
||||
}
|
||||
return eventIsOK;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool ewol::CheckBox::OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_SIZE])
|
||||
{
|
||||
//EWOL_DEBUG("BT PRESSED : \"" << UTF8_data << "\" size=" << strlen(UTF8_data));
|
||||
@ -179,7 +163,12 @@ bool ewol::CheckBox::OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX
|
||||
&& ( UTF8_data[0] == '\r'
|
||||
|| UTF8_data[0] == ' ')
|
||||
) {
|
||||
return OnEventArea(ewolEventCheckBoxClicked, -1, -1);
|
||||
if(true == m_value) {
|
||||
m_value = false;
|
||||
} else {
|
||||
m_value = true;
|
||||
}
|
||||
return GenEventInputExternal(ewolEventCheckBoxClicked, -1,-1);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ namespace ewol {
|
||||
public:
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
//virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
//virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_SIZE]);
|
||||
};
|
||||
};
|
||||
|
@ -152,38 +152,25 @@ void ewol::Entry::OnRegenerateDisplay(void)
|
||||
int32_t XCursorPos = fontWidth + m_borderSize + 2*m_paddingSize;
|
||||
tmpOObjects->Line(XCursorPos, tmpTextOriginY, XCursorPos, tmpTextOriginY + fontHeight, 1);
|
||||
}
|
||||
|
||||
AddOObject(tmpOObjects, "BouttonDecoration");
|
||||
|
||||
AddOObject(tmpText, "BouttonText");
|
||||
|
||||
// Regenerate the event Area:
|
||||
EventAreaRemoveAll();
|
||||
coord origin;
|
||||
coord size;
|
||||
origin.x = tmpOriginX;
|
||||
origin.y = tmpOriginY;
|
||||
size.x = tmpSizeX;
|
||||
size.y = tmpSizeY;
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_1 | FLAG_EVENT_INPUT_CLICKED_ALL, ewolEventEntryClick);
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_ENTER, ewolEventEntryEnter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ewol::Entry::OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
bool ewol::Entry::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
bool eventIsOK = false;
|
||||
//EWOL_DEBUG("Receive event : \"" << generateEventId << "\"");
|
||||
if(ewolEventEntryClick == generateEventId) {
|
||||
EWOL_INFO("Entry Clicked ... " << m_data);
|
||||
eventIsOK = true;
|
||||
ewol::widgetManager::FocusKeep(this);
|
||||
ewol::KeyboardShow(KEYBOARD_MODE_CODE);
|
||||
} else if(ewolEventEntryEnter == generateEventId) {
|
||||
//MarkToReedraw();
|
||||
EWOL_DEBUG("Event on Entry ...");
|
||||
if (1 == IdInput) {
|
||||
if (ewol::EVENT_INPUT_TYPE_SINGLE == typeEvent) {
|
||||
// nothing to do ...
|
||||
GenEventInputExternal(ewolEventEntryClick, x, y);
|
||||
ewol::widgetManager::FocusKeep(this);
|
||||
ewol::KeyboardShow(KEYBOARD_MODE_CODE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return eventIsOK;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -192,7 +179,7 @@ bool ewol::Entry::OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_SI
|
||||
if( UTF8_data != NULL
|
||||
&& typeEvent == ewol::EVENT_KB_TYPE_DOWN) {
|
||||
//EWOL_DEBUG("Entry input data ... : \"" << UTF8_data << "\" size=" << strlen(UTF8_data) << " data=" << (int32_t)UTF8_data[0] );
|
||||
//return OnEventArea(ewolEventButtonPressed, -1, -1);
|
||||
return GenEventInputExternal(ewolEventEntryEnter, -1, -1);
|
||||
if (0x7F == UTF8_data[0]) {
|
||||
if (m_data.Size() > 0) {
|
||||
// SUPPR
|
||||
|
@ -61,8 +61,8 @@ namespace ewol {
|
||||
public:
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
//virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
//virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventKb(eventKbType_te typeEvent, char UTF8_data[UTF8_MAX_SIZE]);
|
||||
protected:
|
||||
virtual void OnGetFocus(void);
|
||||
|
@ -105,7 +105,7 @@ void ewol::Label::OnRegenerateDisplay(void)
|
||||
tmpText->Text(tmpOriginX, tmpOriginY, m_label.c_str(), m_size.x - 2*paddingSize);
|
||||
|
||||
AddOObject(tmpText, "LabelText");
|
||||
|
||||
/*
|
||||
// Regenerate the event Area:
|
||||
EventAreaRemoveAll();
|
||||
coord origin;
|
||||
@ -115,9 +115,26 @@ void ewol::Label::OnRegenerateDisplay(void)
|
||||
size.x = m_minSize.x;
|
||||
size.y = m_minSize.y;
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_1 | FLAG_EVENT_INPUT_CLICKED_ALL, ewolEventLabelPressed);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ewol::Label::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
EWOL_DEBUG("Event on Label ...");
|
||||
if (1 == IdInput) {
|
||||
if (ewol::EVENT_INPUT_TYPE_SINGLE == typeEvent) {
|
||||
// nothing to do ...
|
||||
GenEventInputExternal(ewolEventLabelPressed, x, y);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
bool ewol::Label::OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
bool eventIsOK = false;
|
||||
@ -128,5 +145,5 @@ bool ewol::Label::OnEventArea(const char * generateEventId, etkFloat_t x, etkFlo
|
||||
}
|
||||
return eventIsOK;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
@ -47,8 +47,7 @@ namespace ewol {
|
||||
public:
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
//virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -143,30 +143,21 @@ void ewol::Test::OnRegenerateDisplay(void)
|
||||
ewol::theme::Generate(0, 0, *tmpOObjects, 50, 50, m_size.x*0.75, m_size.y*0.75);
|
||||
AddOObject(tmpOObjects, "themeObject");
|
||||
*/
|
||||
|
||||
// Regenerate the event Area:
|
||||
EventAreaRemoveAll();
|
||||
coord origin;
|
||||
coord size;
|
||||
origin.x = 3.0;
|
||||
origin.y = 3.0;
|
||||
size.x = m_size.x-6;
|
||||
size.y = m_size.y-6;
|
||||
AddEventArea(origin, size, FLAG_EVENT_INPUT_1 | FLAG_EVENT_INPUT_CLICKED_ALL, ewolEventTestPressed);
|
||||
}
|
||||
}
|
||||
|
||||
bool ewol::Test::OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y)
|
||||
bool ewol::Test::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y)
|
||||
{
|
||||
bool eventIsOK = false;
|
||||
//EWOL_DEBUG("Receive event : \"" << generateEventId << "\"");
|
||||
if(ewolEventTestPressed == generateEventId) {
|
||||
m_elementID++;
|
||||
if (m_elementID > 7 ) {
|
||||
m_elementID = 0;
|
||||
EWOL_DEBUG("Event on Test ...");
|
||||
if (1 == IdInput) {
|
||||
if (ewol::EVENT_INPUT_TYPE_SINGLE == typeEvent) {
|
||||
m_elementID++;
|
||||
if (m_elementID > 7 ) {
|
||||
m_elementID = 0;
|
||||
}
|
||||
MarkToReedraw();
|
||||
return true;
|
||||
}
|
||||
MarkToReedraw();
|
||||
eventIsOK = true;
|
||||
}
|
||||
return eventIsOK;
|
||||
return false;
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ namespace ewol {
|
||||
public:
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
virtual bool OnEventArea(const char * generateEventId, etkFloat_t x, etkFloat_t y);
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkFloat_t x, etkFloat_t y);
|
||||
private:
|
||||
int32_t m_elementID;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user