// Listens for button press Msgs dispatched from loop(). MsgResp MainMenuHandler::processMessage(Msg& msg) { MsgResp rsp = eFail; if(eButtonActionPress == msg.m_type) { // up and down buttons move the caret. // select button invokes Setup or runStack // handling. switch(msg.m_code) { case eLeft: { break; } case eRight: { break; } case eDown: { moveCaret(eMoveDown); break; } case eUp: { moveCaret(eMoveUp); break; } case eSelect: { switch(m_caretRow) { case 1: { msg.m_nextHandler = g_pSetup; rsp = eSuccess; break; } case 2: { if(nk3.isConnected()) { msg.m_nextHandler = g_pRunStack; rsp = eSuccess; } break; } case 3: { // on/off? // TODO: turn display off/on // how far to sleep can we go // and still wake? break; } default: { break; } } break; } default : { break; } } } return rsp; }
void EditableTextComponent::keyTyped(const KeyEventUnrecPtr e) { if(getEnabled() && getEditable() && !(e->getModifiers() &( KeyEvent::KEY_MODIFIER_ALT | KeyEvent::KEY_MODIFIER_CONTROL | KeyEvent::KEY_MODIFIER_META ))) { if(e->getKeyChar()>31 && e->getKeyChar() < 127) { if(hasSelection()) { deleteSelectedText(); setCaretPosition(_TextSelectionStart); } insert(std::string( 1,e->getKeyChar() ), _TextSelectionStart); _TextSelectionStart = getCaretPosition(); _TextSelectionEnd = _TextSelectionStart; } if(e->getKey()== e->KEY_BACK_SPACE) { if(hasSelection()) { deleteSelectedText(); } else { //erase at the current caret position Int32 DeleteIndex(getCaretPosition()); if(DeleteIndex != 0) { moveCaret(-1); deleteRange(DeleteIndex-1, DeleteIndex); } } } if(e->getKey()== e->KEY_DELETE) { if(hasSelection()) { deleteSelectedText(); } else if(getText().size()>0) { //erase at the current caret position deleteRange(getCaretPosition(), getCaretPosition()+1); _TextSelectionStart = getCaretPosition(); _TextSelectionEnd = _TextSelectionStart; } } } switch(e->getKey()) { case KeyEvent::KEY_RIGHT: case KeyEvent::KEY_KEYPAD_RIGHT: moveCaret(1); break; case KeyEvent::KEY_LEFT: case KeyEvent::KEY_KEYPAD_LEFT: moveCaret(-1); break; case KeyEvent::KEY_V: if(e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { paste(); } break; case KeyEvent::KEY_C: if(e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { copy(); } break; case KeyEvent::KEY_X: if(e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { cut(); } break; case KeyEvent::KEY_A: if(e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { selectAll(); } break; } Inherited::keyTyped(e); }
void LoopControl::touchMoved(ofTouchEventArgs &touch) { InterfaceObject::touchMoved(touch); moveCaret(touch); }