X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/442b35b53bf95f5c6c003ea9ddbefd17adbc2a00..2e8b69c74893bb2256e444fb358c74f3c0c50b2a:/src/univ/control.cpp diff --git a/src/univ/control.cpp b/src/univ/control.cpp index 8f1fb4a4d1..fa5cdf48a8 100644 --- a/src/univ/control.cpp +++ b/src/univ/control.cpp @@ -46,17 +46,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow) BEGIN_EVENT_TABLE(wxControl, wxControlBase) - EVT_KEY_DOWN(wxControl::OnKeyDown) - EVT_KEY_UP(wxControl::OnKeyUp) - - EVT_MOUSE_EVENTS(wxControl::OnMouse) - - EVT_SET_FOCUS(wxControl::OnFocus) - EVT_KILL_FOCUS(wxControl::OnFocus) - - EVT_ACTIVATE(wxControl::OnActivate) + WX_EVENT_TABLE_INPUT_CONSUMER(wxControl) END_EVENT_TABLE() +WX_FORWARD_TO_INPUT_CONSUMER(wxControl) + // ---------------------------------------------------------------------------- // creation // ---------------------------------------------------------------------------- @@ -65,7 +59,7 @@ void wxControl::Init() { m_indexAccel = -1; - m_handler = (wxInputHandler *)NULL; + m_inputHandler = (wxInputHandler *)NULL; } bool wxControl::Create(wxWindow *parent, @@ -76,8 +70,16 @@ bool wxControl::Create(wxWindow *parent, const wxValidator& validator, const wxString& name) { - if ( !wxControlBase::Create(parent, id, pos, size, style, validator, name) ) + // we use wxNO_FULL_REPAINT_ON_RESIZE by default as it results in much + // less flicker and none of the standard controls needs to be entirely + // repainted after resize anyhow + if ( !wxControlBase::Create(parent, id, pos, size, + style | wxNO_FULL_REPAINT_ON_RESIZE, + validator, name) ) + { + // underlying window creation failed? return FALSE; + } return TRUE; } @@ -145,75 +147,4 @@ wxString wxControl::GetLabel() const return m_label; } -// ---------------------------------------------------------------------------- -// focus/activation handling -// ---------------------------------------------------------------------------- - -void wxControl::OnFocus(wxFocusEvent& event) -{ - if ( m_handler && m_handler->HandleFocus(this, event) ) - Refresh(); - else - event.Skip(); -} - -void wxControl::OnActivate(wxActivateEvent& event) -{ - if ( m_handler && m_handler->HandleActivation(this, event.GetActive()) ) - Refresh(); - else - event.Skip(); -} - -// ---------------------------------------------------------------------------- -// input processing -// ---------------------------------------------------------------------------- - -void wxControl::CreateInputHandler(const wxString& inphandler) -{ - m_handler = wxTheme::Get()->GetInputHandler(inphandler); -} - -void wxControl::OnKeyDown(wxKeyEvent& event) -{ - if ( !m_handler || !m_handler->HandleKey(this, event, TRUE) ) - event.Skip(); -} - -void wxControl::OnKeyUp(wxKeyEvent& event) -{ - if ( !m_handler || !m_handler->HandleKey(this, event, FALSE) ) - event.Skip(); -} - -void wxControl::OnMouse(wxMouseEvent& event) -{ - if ( m_handler ) - { - if ( event.Moving() || event.Entering() || event.Leaving() ) - { - if ( m_handler->HandleMouseMove(this, event) ) - return; - } - else // a click action - { - if ( m_handler->HandleMouse(this, event) ) - return; - } - } - - event.Skip(); -} - -// ---------------------------------------------------------------------------- -// the actions -// ---------------------------------------------------------------------------- - -bool wxControl::PerformAction(const wxControlAction& action, - long numArg, - const wxString& strArg) -{ - return FALSE; -} - #endif // wxUSE_CONTROLS