// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "univbutton.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#include "wx/univ/colschem.h"
#include "wx/stockitem.h"
+// ----------------------------------------------------------------------------
+// wxStdButtonInputHandler: translates SPACE and ENTER keys and the left mouse
+// click into button press/release actions
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxStdButtonInputHandler : public wxStdInputHandler
+{
+public:
+ wxStdButtonInputHandler(wxInputHandler *inphand);
+
+ virtual bool HandleKey(wxInputConsumer *consumer,
+ const wxKeyEvent& event,
+ bool pressed);
+ virtual bool HandleMouse(wxInputConsumer *consumer,
+ const wxMouseEvent& event);
+ virtual bool HandleMouseMove(wxInputConsumer *consumer,
+ const wxMouseEvent& event);
+ virtual bool HandleFocus(wxInputConsumer *consumer,
+ const wxFocusEvent& event);
+ virtual bool HandleActivation(wxInputConsumer *consumer, bool activated);
+
+private:
+ // the window (button) which has capture or NULL and the flag telling if
+ // the mouse is inside the button which captured it or not
+ wxWindow *m_winCapture;
+ bool m_winHasMouse;
+};
+
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
label = wxGetStockLabel(id);
long ctrl_style = style & ~wxBU_ALIGN_MASK;
-
- wxASSERT_MSG( (ctrl_style & wxALIGN_MASK) == 0,
- _T("Some style conflicts with align flags") );
+ ctrl_style = ctrl_style & ~wxALIGN_MASK;
if((style & wxBU_RIGHT) == wxBU_RIGHT)
ctrl_style |= wxALIGN_RIGHT;
return true;
}
+/* static */
+wxInputHandler *wxButton::GetStdInputHandler(wxInputHandler *handlerDef)
+{
+ static wxStdButtonInputHandler s_handlerBtn(handlerDef);
+
+ return &s_handlerBtn;
+}
+
// ----------------------------------------------------------------------------
// misc
// ----------------------------------------------------------------------------