void EditCtrl::OnChar( KeyboardEvent const & p_event ) { eKEYBOARD_KEY l_code = p_event.GetKey(); if ( l_code >= 0x20 && l_code <= 255 && l_code != eKEY_DELETE ) { DoAddCharAtCaret( p_event.GetChar() ); m_signals[eEDIT_EVENT_UPDATED]( m_caption ); } }
void EditCtrl::OnKeyDown( KeyboardEvent const & p_event ) { if ( !p_event.IsCtrlDown() && !p_event.IsAltDown() ) { eKEYBOARD_KEY l_code = p_event.GetKey(); if ( l_code == eKEY_BACKSPACE ) { DoDeleteCharBeforeCaret(); m_signals[eEDIT_EVENT_UPDATED]( m_caption ); } else if ( l_code == eKEY_DELETE ) { DoDeleteCharAtCaret(); m_signals[eEDIT_EVENT_UPDATED]( m_caption ); } else if ( l_code == eKEY_LEFT && m_caretIt != m_caption.begin() ) { m_caretIt--; DoUpdateCaption(); } else if ( l_code == eKEY_RIGHT && m_caretIt != m_caption.end() ) { m_caretIt++; DoUpdateCaption(); } else if ( l_code == eKEY_HOME && m_caretIt != m_caption.begin() ) { m_caretIt = m_caption.begin(); DoUpdateCaption(); } else if ( l_code == eKEY_END && m_caretIt != m_caption.end() ) { m_caretIt = m_caption.end(); DoUpdateCaption(); } } }