void TextField::keyPressed(KeyEvent& keyEvent) { Key key = keyEvent.getKey(); if (key.getValue() == Key::Left) mText->setCaretPosition(mText->getCaretPosition() - 1); else if (key.getValue() == Key::Right) mText->setCaretPosition(mText->getCaretPosition() + 1); else if (key.getValue() == Key::Delete && mEditable) mText->remove(1); else if (key.getValue() == Key::Backspace && mEditable) mText->remove(-1); else if (key.getValue() == Key::Enter) distributeActionEvent(); else if (key.getValue() == Key::Home) mText->setCaretColumn(0); else if (key.getValue() == Key::End) mText->setCaretColumn(mText->getNumberOfCharacters(0)); else if (key.isCharacter() && key.getValue() != Key::Tab && mEditable) mText->insert(key.getValue()); if (key.getValue() != Key::Tab) keyEvent.consume(); fixScroll(); }
void TextField::adjustSize() { setWidth(getFont()->getWidth(mText) + 6); adjustHeight(); fixScroll(); }
void TextField::adjustSize() { const Rectangle& dim = mText->getDimension(getFont()); setWidth(dim.width + 8); adjustHeight(); fixScroll(); }
void TextField::mousePressed(MouseEvent& mouseEvent) { if (mouseEvent.getButton() == MouseEvent::Left) { mText->setCaretPosition(mouseEvent.getX() + mXScroll, mouseEvent.getY(), getFont()); fixScroll(); } }
void TextField::mousePressed(MouseEvent& mouseEvent) { if (mouseEvent.getButton() == MouseEvent::Left) { mCaretPosition = getFont()->getStringIndexAt(mText, mouseEvent.getX() + mXScroll); fixScroll(); } }
void TextField::keyPressed(KeyEvent& keyEvent) { Key key = keyEvent.getKey(); if (key.getValue() == Key::Left && mCaretPosition > 0) { --mCaretPosition; } else if (key.getValue() == Key::Right && mCaretPosition < mText.size()) { ++mCaretPosition; } else if (key.getValue() == Key::Delete && mCaretPosition < mText.size() && mEditable) { mText.erase(mCaretPosition, 1); } else if (key.getValue() == Key::Backspace && mCaretPosition > 0 && mEditable) { mText.erase(mCaretPosition - 1, 1); --mCaretPosition; } else if (key.getValue() == Key::Enter) { distributeActionEvent(); } else if (key.getValue() == Key::Home) { mCaretPosition = 0; } else if (key.getValue() == Key::End) { mCaretPosition = mText.size(); } else if (key.isCharacter() && key.getValue() != Key::Tab && mEditable) { mText.insert(mCaretPosition, std::string(1,(char)key.getValue())); ++mCaretPosition; } if (key.getValue() != Key::Tab) { keyEvent.consume(); } fixScroll(); }
void TextField::keyPressed(KeyEvent& keyEvent) { Key key = keyEvent.getKey(); if (key.getValue() == Key::LEFT && mCaretPosition > 0) { --mCaretPosition; } else if (key.getValue() == Key::RIGHT && mCaretPosition < mText.size()) { ++mCaretPosition; } else if (key.getValue() == Key::_DELETE && mCaretPosition < mText.size()) { mText.erase(mCaretPosition, 1); } else if (key.getValue() == Key::BACKSPACE && mCaretPosition > 0) { mText.erase(mCaretPosition - 1, 1); --mCaretPosition; } else if (key.getValue() == Key::ENTER) { generateAction(); } else if (key.getValue() == Key::HOME) { mCaretPosition = 0; } else if (key.getValue() == Key::END) { mCaretPosition = mText.size(); } else if (key.isCharacter() && key.getValue() != Key::TAB) { mText.insert(mCaretPosition, std::string(1,(char)key.getValue())); ++mCaretPosition; } if (key.getValue() != Key::TAB) { keyEvent.consume(); } fixScroll(); }
void TextField::setCaretPosition(unsigned int position) { if (position > mText.size()) { mCaretPosition = mText.size(); } else { mCaretPosition = position; } fixScroll(); }
void TextField::fontChanged() { fixScroll(); }