X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cd6a9ad50c00a94e62558a3b55e814028d81100..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/spinctrl.h diff --git a/include/wx/spinctrl.h b/include/wx/spinctrl.h index 4314dd93ee..d63d13ce62 100644 --- a/include/wx/spinctrl.h +++ b/include/wx/spinctrl.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: spinctrl.h +// Name: wx/spinctrl.h // Purpose: wxSpinCtrlBase class // Author: Vadim Zeitlin // Modified by: @@ -18,13 +18,19 @@ #include "wx/spinbutt.h" // should make wxSpinEvent visible to the app +// Events +class WXDLLIMPEXP_FWD_CORE wxSpinDoubleEvent; + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRL, wxSpinEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRLDOUBLE, wxSpinDoubleEvent); + // ---------------------------------------------------------------------------- // A spin ctrl is a text control with a spin button which is usually used to // prompt the user for a numeric input. // There are two kinds for number types T=integer or T=double. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxSpinCtrlBase : public wxControl +class WXDLLIMPEXP_CORE wxSpinCtrlBase : public wxControl { public: wxSpinCtrlBase() {} @@ -45,18 +51,22 @@ public: virtual void SetSnapToTicks(bool snap_to_ticks) = 0; // void SetDigits(unsigned digits) - wxSpinCtrlDouble only + // The base for numbers display, e.g. 10 or 16. + virtual int GetBase() const = 0; + virtual bool SetBase(int base) = 0; + // Select text in the textctrl virtual void SetSelection(long from, long to) = 0; private: - DECLARE_NO_COPY_CLASS(wxSpinCtrlBase) + wxDECLARE_NO_COPY_CLASS(wxSpinCtrlBase); }; // ---------------------------------------------------------------------------- // wxSpinDoubleEvent - a wxSpinEvent for double valued controls // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxSpinDoubleEvent : public wxNotifyEvent +class WXDLLIMPEXP_CORE wxSpinDoubleEvent : public wxNotifyEvent { public: wxSpinDoubleEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, @@ -89,15 +99,15 @@ private: typedef void (wxEvtHandler::*wxSpinDoubleEventFunction)(wxSpinDoubleEvent&); #define wxSpinDoubleEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSpinDoubleEventFunction, &func) + wxEVENT_HANDLER_CAST(wxSpinDoubleEventFunction, func) // macros for handling spinctrl events #define EVT_SPINCTRL(id, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_SPINCTRL_UPDATED, id, wxSpinEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_SPINCTRL, id, wxSpinEventHandler(fn)) #define EVT_SPINCTRLDOUBLE(id, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, id, wxSpinDoubleEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_SPINCTRLDOUBLE, id, wxSpinDoubleEventHandler(fn)) // ---------------------------------------------------------------------------- // include the platform-dependent class implementation @@ -107,9 +117,7 @@ typedef void (wxEvtHandler::*wxSpinDoubleEventFunction)(wxSpinDoubleEvent&); // wxSpinCtrlDouble implementations or neither, define the appropriate symbols // and include the generic version if necessary to provide the missing class(es) -#if defined(__WXUNIVERSAL__) || \ - defined(__WXMOTIF__) || \ - defined(__WXCOCOA__) +#if defined(__WXUNIVERSAL__) // nothing, use generic controls #elif defined(__WXMSW__) #define wxHAS_NATIVE_SPINCTRL @@ -124,15 +132,25 @@ typedef void (wxEvtHandler::*wxSpinDoubleEventFunction)(wxSpinDoubleEvent&); #elif defined(__WXGTK__) #define wxHAS_NATIVE_SPINCTRL #include "wx/gtk1/spinctrl.h" -#elif defined(__WXMAC__) - #define wxHAS_NATIVE_SPINCTRL - #include "wx/mac/spinctrl.h" #endif // platform #if !defined(wxHAS_NATIVE_SPINCTRL) || !defined(wxHAS_NATIVE_SPINCTRLDOUBLE) #include "wx/generic/spinctlg.h" #endif +namespace wxPrivate +{ + +// This is an internal helper function currently used by all ports: return the +// string containing hexadecimal representation of the given number. +extern wxString wxSpinCtrlFormatAsHex(long val, long maxVal); + +} // namespace wxPrivate + +// old wxEVT_COMMAND_* constants +#define wxEVT_COMMAND_SPINCTRL_UPDATED wxEVT_SPINCTRL +#define wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED wxEVT_SPINCTRLDOUBLE + #endif // wxUSE_SPINCTRL #endif // _WX_SPINCTRL_H_