/////////////////////////////////////////////////////////////////////////////
-// Name: spinbutt.h
+// Name: wx/gtk/spinbutt.h
// Purpose: wxSpinButton class
// Author: Robert Roebling
// Modified by:
// RCS-ID: $Id$
// Copyright: (c) Robert Roebling
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __GTKSPINPUTTH__
-#define __GTKSPINBUTTH__
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "wx/defs.h"
-
-#ifdef wxUSE_SPINBTN
-
-#include "wx/object.h"
-#include "wx/control.h"
-
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
-
-class wxSpinButton;
-class wxSpinEvent;
+#ifndef _WX_GTK_SPINBUTT_H_
+#define _WX_GTK_SPINBUTT_H_
//-----------------------------------------------------------------------------
// wxSpinButton
//-----------------------------------------------------------------------------
-class wxSpinButton : public wxControl
-{
- DECLARE_DYNAMIC_CLASS(wxSpinButton)
-
-public:
- wxSpinButton();
- inline wxSpinButton( wxWindow *parent, wxWindowID id = -1,
- const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton")
- {
- Create(parent, id, pos, size, style, name);
- }
- ~wxSpinButton();
- bool Create( wxWindow *parent, wxWindowID id = -1,
- const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton" );
-
- int GetValue() const;
- void SetValue( int value );
- void SetRange( int minVal, int maxVal );
- int GetMin() const;
- int GetMax() const;
-
-// implementation
-
- void OnSize( wxSizeEvent &event );
-
- bool IsOwnGtkWindow( GdkWindow *window );
- void ApplyWidgetStyle();
-
- GtkAdjustment *m_adjust;
- float m_oldPos;
-
- DECLARE_EVENT_TABLE()
-};
-
-//-----------------------------------------------------------------------------
-// wxSpinEvent
-//-----------------------------------------------------------------------------
-
-class wxSpinEvent : public wxScrollEvent
+class WXDLLIMPEXP_CORE wxSpinButton : public wxSpinButtonBase
{
- DECLARE_DYNAMIC_CLASS(wxSpinEvent)
-
public:
- wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+ wxSpinButton();
+ wxSpinButton(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_VERTICAL,
+ const wxString& name = wxSPIN_BUTTON_NAME)
+ {
+ Create(parent, id, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_VERTICAL,
+ const wxString& name = wxSPIN_BUTTON_NAME);
+
+ virtual int GetValue() const;
+ virtual void SetValue( int value );
+ virtual void SetRange( int minVal, int maxVal );
+ virtual int GetMin() const;
+ virtual int GetMax() const;
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+ virtual bool Enable( bool enable = true );
+
+ // implementation
+ void OnSize( wxSizeEvent &event );
+
+ int m_pos;
+
+protected:
+ void GtkDisableEvents() const;
+ void GtkEnableEvents() const;
+
+ virtual wxSize DoGetBestSize() const;
+ virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
+
+private:
+ typedef wxSpinButtonBase base_type;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxSpinButton)
};
-typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&);
-
-// Spin events
-
-#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }
-#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }
-
-#define EVT_SPIN(id, func) \
- { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
- { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },
-
-#endif
-
#endif
- // __GTKSPINBUTTH__
+ // _WX_GTK_SPINBUTT_H_