bool TextBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex) { if (!isEnabled()) { return false; } switch (evt) { case Touch::TOUCH_PRESS: if (x > _clipBounds.x && x <= _clipBounds.x + _clipBounds.width && y > _clipBounds.y && y <= _clipBounds.y + _clipBounds.height) { _contactIndex = (int) contactIndex; if (_state == NORMAL) Game::getInstance()->displayKeyboard(true); setCaretLocation(x, y); _state = ACTIVE; _dirty = true; } else { _contactIndex = INVALID_CONTACT_INDEX; _state = NORMAL; Game::getInstance()->displayKeyboard(false); _dirty = true; return false; } break; case Touch::TOUCH_MOVE: if (_state == ACTIVE && x > _clipBounds.x && x <= _clipBounds.x + _clipBounds.width && y > _clipBounds.y && y <= _clipBounds.y + _clipBounds.height) { setCaretLocation(x, y); _dirty = true; } break; case Touch::TOUCH_RELEASE: if (x > _clipBounds.x && x <= _clipBounds.x + _clipBounds.width && y > _clipBounds.y && y <= _clipBounds.y + _clipBounds.height) { setCaretLocation(x, y); _state = FOCUS; } else { _state = NORMAL; Game::getInstance()->displayKeyboard(false); } _contactIndex = INVALID_CONTACT_INDEX; _dirty = true; break; } return _consumeInputEvents; }
bool TextBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex) { if (getState() == ACTIVE) { switch (evt) { case Touch::TOUCH_PRESS: setCaretLocation(x, y); break; case Touch::TOUCH_MOVE: setCaretLocation(x, y); break; default: break; } } return Label::touchEvent(evt, x, y, contactIndex); }