]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/spinctrl.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / spinctrl.h
index 4314dd93ee1815ec7215dc41fd1d97151efc15ce..7a7b3a4bd9c3ceea9583b2633dff0e9a0a7935dc 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        spinctrl.h
+// Name:        wx/spinctrl.h
 // Purpose:     wxSpinCtrlBase class
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     22.07.99
-// RCS-ID:      $Id$
 // Copyright:   (c) Vadim Zeitlin
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #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 +50,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 +98,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 +116,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 +131,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_