]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/control.cpp
Separated wxImage::FloodFill from image.cpp
[wxWidgets.git] / src / univ / control.cpp
index 8f1fb4a4d17d6d90a434bb92592c22701d61f154..6cb253344b7f6d834956ea94e9aba2bfa89bdd79 100644 (file)
 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) )
+    // Ee 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