#ifndef _WX_UNIV_INPCONS_H_
#define _WX_UNIV_INPCONS_H_
-class WXDLLEXPORT wxInputHandler;
-class WXDLLEXPORT wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxInputHandler;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
#include "wx/object.h"
#include "wx/event.h"
{
public:
wxInputConsumer() { m_inputHandler = NULL; }
- virtual ~wxInputConsumer() {}
+ virtual ~wxInputConsumer() { }
// get the input handler
wxInputHandler *GetInputHandler() const { return m_inputHandler; }
// get the window to work with (usually the class wxInputConsumer was mixed into)
virtual wxWindow *GetInputWindow() const = 0;
+ // this function must be implemented in any classes process input (i.e. not
+ // static controls) to create the standard input handler for the concrete
+ // class deriving from this mix-in
+ //
+ // the parameter is the default input handler which should receive all
+ // unprocessed input (i.e. typically handlerDef is passed to
+ // wxStdInputHandler ctor) or it may be NULL
+ //
+ // the returned pointer will not be deleted by caller so it must either
+ // point to a static object or be deleted on program termination
+ virtual wxInputHandler *DoGetStdInputHandler(wxInputHandler *handlerDef);
+
+
protected:
// event handlers
void OnMouse(wxMouseEvent& event);
void OnFocus(wxFocusEvent& event);
void OnActivate(wxActivateEvent& event);
- // create input handler by name
+ // create input handler by name, fall back to GetStdInputHandler() if
+ // the current theme doesn't define any specific handler of this type
void CreateInputHandler(const wxString& inphandler);
- // input processor (never deleted, the theme deletes it itself)
+private:
+ // the input processor (we never delete it)
wxInputHandler *m_inputHandler;
};