]> git.saurik.com Git - wxWidgets.git/commitdiff
added SpinCtrl,
authorRobert Roebling <robert@roebling.de>
Mon, 11 Oct 1999 10:05:36 +0000 (10:05 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 11 Oct 1999 10:05:36 +0000 (10:05 +0000)
  updated a few headers,
  tried to set window size hints, no effect with KWM,

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

41 files changed:
Makefile.in
distrib/msw/tmake/filelist.txt
include/wx/gtk/accel.h
include/wx/gtk/app.h
include/wx/gtk/bmpbuttn.h
include/wx/gtk/brush.h
include/wx/gtk/button.h
include/wx/gtk/checkbox.h
include/wx/gtk/checklst.h
include/wx/gtk/choice.h
include/wx/gtk/clipbrd.h
include/wx/gtk/combobox.h
include/wx/gtk/control.h
include/wx/gtk/region.h
include/wx/gtk/spinbutt.h
include/wx/gtk/spinctrl.h [new file with mode: 0644]
include/wx/gtk1/accel.h
include/wx/gtk1/app.h
include/wx/gtk1/bmpbuttn.h
include/wx/gtk1/brush.h
include/wx/gtk1/button.h
include/wx/gtk1/checkbox.h
include/wx/gtk1/checklst.h
include/wx/gtk1/choice.h
include/wx/gtk1/clipbrd.h
include/wx/gtk1/combobox.h
include/wx/gtk1/control.h
include/wx/gtk1/region.h
include/wx/gtk1/spinbutt.h
include/wx/gtk1/spinctrl.h [new file with mode: 0644]
include/wx/spinctrl.h
include/wx/window.h
samples/controls/controls.cpp
src/gtk/dialog.cpp
src/gtk/frame.cpp
src/gtk/spinbutt.cpp
src/gtk/spinctrl.cpp [new file with mode: 0644]
src/gtk1/dialog.cpp
src/gtk1/frame.cpp
src/gtk1/spinbutt.cpp
src/gtk1/spinctrl.cpp [new file with mode: 0644]

index 3be6793df7fd711d0763b83ca5298b14d3211aac..c21bd0fca0350e51609f4d928111c6c0dea332ae 100644 (file)
@@ -1,5 +1,5 @@
 #
-# This file was automatically generated by tmake at 14:12, 1999/10/09
+# This file was automatically generated by tmake at 09:29, 1999/10/11
 # DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T!
 
 #
@@ -892,6 +892,7 @@ GTK_GUIOBJS = \
                settings.o \
                slider.o \
                spinbutt.o \
+               spinctrl.o \
                statbmp.o \
                statbox.o \
                statline.o \
@@ -951,6 +952,7 @@ GTK_GUIDEPS = \
                settings.d \
                slider.d \
                spinbutt.d \
+               spinctrl.d \
                statbmp.d \
                statbox.d \
                statline.d \
index c9c1fa335035d297509afed5261160d176faac81..04812c467931b64eee2847f58b73f81f25ed4c00 100644 (file)
@@ -326,6 +326,7 @@ scrolbar.cpp        R
 settings.cpp   R
 slider.cpp     R
 spinbutt.cpp   R
+spinctrl.cpp   R
 statbmp.cpp    R
 statbox.cpp    R
 statline.cpp   R
index 9bca3cf6f937fc92057715fd8f252efa50966994..a60eb15e981ee4d14e609dbea1ac9509655d9769 100644 (file)
@@ -56,8 +56,7 @@ extern wxAcceleratorTable wxNullAcceleratorTable;
 
 class wxAcceleratorEntry: public wxObject
 {
-  public:
-
+public:
     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
       { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
 
index 6b528f8b16f89ff46d92a8e9e122f9410e5e02e6..58083583f8ea141b041eeeaf5c72812e3ae2d493 100644 (file)
@@ -80,6 +80,7 @@ private:
     /// Set to TRUE while we are in wxYield().
     bool m_suppressIdleEvents;
 
+private:
     DECLARE_DYNAMIC_CLASS(wxApp)
     DECLARE_EVENT_TABLE()
 };
index 7126dc067527dc8fcc1ad3c9eb1f0c1bba64ebfd..dfcf70ce732b326e135f83cc42aac2e9f768cfe2 100644 (file)
@@ -43,56 +43,57 @@ extern const wxChar *wxButtonNameStr;
 
 class wxBitmapButton: public wxButton
 {
-  DECLARE_DYNAMIC_CLASS(wxBitmapButton)
-
 public:
-  wxBitmapButton();
-  inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+    wxBitmapButton();
+    inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
                          const wxPoint& pos = wxDefaultPosition,
                          const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = wxButtonNameStr )
-  {
-      Create(parent, id, bitmap, pos, size, style, validator, name);
-  }
-  bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+    {
+        Create(parent, id, bitmap, pos, size, style, validator, name);
+    }
+    bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = wxButtonNameStr);
-  virtual void SetDefault();
+    virtual void SetDefault();
     
-  void SetLabel( const wxString &label );
-  wxString GetLabel() const;
-  virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
+    void SetLabel( const wxString &label );
+    wxString GetLabel() const;
+    virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
     
-  wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
-  wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
-  wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
-  wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
+    wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
+    wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
+    wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
+    wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
     
-  void SetBitmapDisabled( const wxBitmap& bitmap );
-  void SetBitmapFocus( const wxBitmap& bitmap );
-  void SetBitmapLabel( const wxBitmap& bitmap );
-  void SetBitmapSelected( const wxBitmap& bitmap );
+    void SetBitmapDisabled( const wxBitmap& bitmap );
+    void SetBitmapFocus( const wxBitmap& bitmap );
+    void SetBitmapLabel( const wxBitmap& bitmap );
+    void SetBitmapSelected( const wxBitmap& bitmap );
     
-  virtual bool Enable(bool enable);
+    virtual bool Enable(bool enable);
   
 // implementation
 
-  void HasFocus();
-  void NotFocus();
-  void StartSelect();
-  void EndSelect();
-  void SetBitmap();
-  void ApplyWidgetStyle();    
+    void HasFocus();
+    void NotFocus();
+    void StartSelect();
+    void EndSelect();
+    void SetBitmap();
+    void ApplyWidgetStyle();    
+  
+    bool         m_hasFocus;
+    bool         m_isSelected;
+    wxBitmap     m_bitmap; 
+    wxBitmap     m_disabled;
+    wxBitmap     m_focus;
+    wxBitmap     m_selected;   
   
-  bool         m_hasFocus;
-  bool         m_isSelected;
-  wxBitmap     m_bitmap; 
-  wxBitmap     m_disabled;
-  wxBitmap     m_focus;
-  wxBitmap     m_selected;   
+private:
+    DECLARE_DYNAMIC_CLASS(wxBitmapButton)
 };
 
 #endif
index c52eb450111e90d5ce0ee078994abfb95f7ca247..d42e564a814960b851841964d08fd200930b13c2 100644 (file)
@@ -33,10 +33,7 @@ class wxBrush;
 
 class wxBrush: public wxGDIObject
 {
-  DECLARE_DYNAMIC_CLASS(wxBrush)
-
-  public:
-
+public:
     wxBrush();
     wxBrush( const wxColour &colour, int style );
     wxBrush( const wxBitmap &stippleBitmap );
@@ -58,7 +55,8 @@ class wxBrush: public wxGDIObject
 
     void Unshare();
 
-    // no data :-)
+private:
+    DECLARE_DYNAMIC_CLASS(wxBrush)
 };
 
 #endif // __GTKBRUSHH__
index af4fdac9ee02392f8af7f848758af0ff2b606b9f..051c16637cd4fe1c43566044ddf16ab44724acac 100644 (file)
@@ -7,7 +7,6 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #ifndef __GTKBUTTONH__
 #define __GTKBUTTONH__
 
@@ -38,10 +37,7 @@ extern const wxChar *wxButtonNameStr;
 
 class wxButton: public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxButton)
-
-  public:
-
+public:
     wxButton();
     inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label,
            const wxPoint& pos = wxDefaultPosition,
@@ -66,6 +62,9 @@ class wxButton: public wxControl
   // implementation        
   
     void ApplyWidgetStyle();    
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxButton)
 };
 
 #endif // __GTKBUTTONH__
index f26be094c84bf55db0a34d6e15d56115a5abec8c..1a0c0ca3993f26ad6c9029b18ad3ae0486e52a49 100644 (file)
@@ -7,7 +7,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #ifndef __GTKCHECKBOXH__
 #define __GTKCHECKBOXH__
 
@@ -41,8 +40,6 @@ extern const char *wxCheckBoxNameStr;
 
 class wxCheckBox: public wxControl
 {
-DECLARE_DYNAMIC_CLASS(wxCheckBox)
-
 public:
     wxCheckBox();
     wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label,
@@ -73,6 +70,9 @@ public:
 
     GtkWidget *m_widgetCheckbox;
     GtkWidget *m_widgetLabel;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxCheckBox)
 };
 
 #endif
index 8022f35658a92ec4886f7cda8f6571920919abb0..3290184e06a80db003d72f1195f9b71b5270a308 100644 (file)
@@ -36,8 +36,6 @@ class wxCheckListBox;
 
 class wxCheckListBox : public wxListBox
 {
-DECLARE_DYNAMIC_CLASS(wxCheckListBox)
-
 public:
     wxCheckListBox();
     wxCheckListBox(wxWindow *parent, wxWindowID id,
@@ -53,6 +51,9 @@ public:
     void Check( int index, bool check = TRUE );
 
     int GetItemHeight() const;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxCheckListBox)
 };
 
 #endif
index e405f01c72f3d55aee816a7ca6bc7ea0ff221575..7b95f490da0844fc5d391c22f1245596ad624f3b 100644 (file)
@@ -38,8 +38,6 @@ extern const wxChar *wxChoiceNameStr;
 
 class wxChoice : public wxControl
 {
-    DECLARE_DYNAMIC_CLASS(wxChoice)
-
 public:
     wxChoice();
     wxChoice( wxWindow *parent, wxWindowID id,
@@ -97,6 +95,9 @@ public:
     void EnableEvents();
     void AppendCommon( const wxString &item );
     void ApplyWidgetStyle();
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxChoice)
 };
 
 
index d940100715ed0f7970122b079eceb66e8e23c342..ebd46448d6008c2ad7ae8c6dc3ba512866555f0b 100644 (file)
@@ -44,8 +44,6 @@ extern wxClipboard* wxTheClipboard;
 
 class wxClipboard : public wxObject
 {
-    DECLARE_DYNAMIC_CLASS(wxClipboard)
-
 public:
     wxClipboard();
     ~wxClipboard();
@@ -91,6 +89,9 @@ public:
     GdkAtom           m_targetRequested;
     bool              m_usePrimary;
     wxDataObject      *m_receivedData;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxClipboard)
 };
 
 //-----------------------------------------------------------------------------
@@ -99,12 +100,13 @@ public:
 
 class wxClipboardModule: public wxModule
 {
-  DECLARE_DYNAMIC_CLASS(wxClipboardModule)
-
 public:
     wxClipboardModule() {}
     bool OnInit();
     void OnExit();
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxClipboardModule)
 };
 
 #endif
index 4fda5e81b8c79176d0422c4be93883a8c137c2dd..129321d3a4901c0443ea3dbd5dbf621058aa39b3 100644 (file)
@@ -42,12 +42,9 @@ extern const wxChar* wxEmptyString;
 
 class wxComboBox : public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxComboBox)
-
 public:
-
-  inline wxComboBox() {}
-  inline wxComboBox(wxWindow *parent, wxWindowID id,
+    inline wxComboBox() {}
+    inline wxComboBox(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -55,11 +52,11 @@ public:
            long style = 0,
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr)
-  {
-    Create(parent, id, value, pos, size, n, choices, style, validator, name);
-  }
-  ~wxComboBox();
-  bool Create(wxWindow *parent, wxWindowID id,
+    {
+        Create(parent, id, value, pos, size, n, choices, style, validator, name);
+    }
+    ~wxComboBox();
+    bool Create(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -68,63 +65,65 @@ public:
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr);
 
-  void Append( const wxString &item );
-  void Append( const wxString &item, void* clientData );
-  void Append( const wxString &item, wxClientData* clientData );
+    void Append( const wxString &item );
+    void Append( const wxString &item, void* clientData );
+    void Append( const wxString &item, wxClientData* clientData );
   
-  void SetClientData( int n, void* clientData );
-  void* GetClientData( int n );
-  void SetClientObject( int n, wxClientData* clientData );
-  wxClientData* GetClientObject( int n );
+    void SetClientData( int n, void* clientData );
+    void* GetClientData( int n );
+    void SetClientObject( int n, wxClientData* clientData );
+    wxClientData* GetClientObject( int n );
   
-  void SetClientObject( wxClientData *data )  { wxControl::SetClientObject( data ); }
-  wxClientData *GetClientObject() const       { return wxControl::GetClientObject(); }
-  void SetClientData( void *data )            { wxControl::SetClientData( data ); }
-  void *GetClientData() const                 { return wxControl::GetClientData(); }
+    void SetClientObject( wxClientData *data )  { wxControl::SetClientObject( data ); }
+    wxClientData *GetClientObject() const       { return wxControl::GetClientObject(); }
+    void SetClientData( void *data )            { wxControl::SetClientData( data ); }
+    void *GetClientData() const                 { return wxControl::GetClientData(); }
     
-  void Clear();
-  void Delete( int n );
-  
-  int FindString( const wxString &item );
-  int GetSelection() const;
-  wxString GetString( int n ) const;
-  wxString GetStringSelection() const;
-  int Number() const;
-  void SetSelection( int n );
-  void SetStringSelection( const wxString &string );
-
-  wxString GetValue() const;
-  void SetValue(const wxString& value);
-
-  void Copy();
-  void Cut();
-  void Paste();
-  void SetInsertionPoint( long pos );
-  void SetInsertionPointEnd();
-  long GetInsertionPoint() const;
-  long GetLastPosition() const;
-  void Replace( long from, long to, const wxString& value );
-  void Remove( long from, long to );
-  void SetSelection( long from, long to );
-  void SetEditable( bool editable );
+    void Clear();
+    void Delete( int n );
   
-  void OnSize( wxSizeEvent &event );
-  void OnChar( wxKeyEvent &event );
+    int FindString( const wxString &item );
+    int GetSelection() const;
+    wxString GetString( int n ) const;
+    wxString GetStringSelection() const;
+    int Number() const;
+    void SetSelection( int n );
+    void SetStringSelection( const wxString &string );
+
+    wxString GetValue() const;
+    void SetValue(const wxString& value);
+
+    void Copy();
+    void Cut();
+    void Paste();
+    void SetInsertionPoint( long pos );
+    void SetInsertionPointEnd();
+    long GetInsertionPoint() const;
+    long GetLastPosition() const;
+    void Replace( long from, long to, const wxString& value );
+    void Remove( long from, long to );
+    void SetSelection( long from, long to );
+    void SetEditable( bool editable );
   
-// implementation
+    // implementation
     
-  bool     m_alreadySent;
-  wxList   m_clientDataList;
-  wxList   m_clientObjectList;
-
-  void DisableEvents();
-  void EnableEvents();
-  void AppendCommon( const wxString &item );
-  GtkWidget* GetConnectWidget();
-  bool IsOwnGtkWindow( GdkWindow *window );
-  void ApplyWidgetStyle();
+    void OnSize( wxSizeEvent &event );
+    void OnChar( wxKeyEvent &event );
   
-  DECLARE_EVENT_TABLE()
+    bool     m_alreadySent;
+    wxList   m_clientDataList;
+    wxList   m_clientObjectList;
+
+    void DisableEvents();
+    void EnableEvents();
+    void AppendCommon( const wxString &item );
+    GtkWidget* GetConnectWidget();
+    bool IsOwnGtkWindow( GdkWindow *window );
+    void ApplyWidgetStyle();
+private: 
+    DECLARE_DYNAMIC_CLASS(wxComboBox)
+    DECLARE_EVENT_TABLE()
 };
 
 #endif
index f18f219d8c691229e212d30683432ae21183302e..3b19b4c98c962b7ba33d20951b6feab35cab1015 100644 (file)
@@ -31,8 +31,6 @@ class wxControl;
 
 class wxControl : public wxWindow
 {
-    DECLARE_DYNAMIC_CLASS(wxControl)
-
 public:
     wxControl();
     wxControl( wxWindow *parent,
@@ -50,6 +48,9 @@ public:
 protected:
     wxString   m_label;
     char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxControl)
 };
 
 #endif // __GTKCONTROLH__
index 2e23876d447a0be33b85297c80be90b33277f317..ac93125bd30d9f40853b14109184ea140d24faea 100644 (file)
@@ -103,10 +103,7 @@ class wxRegion : public wxGDIObject
 
 class wxRegionIterator: public wxObject 
 {
-  DECLARE_DYNAMIC_CLASS(wxRegionIterator);
-  
-  public:
-  
+public:
     wxRegionIterator();
     wxRegionIterator(const wxRegion& region);
 
@@ -127,10 +124,12 @@ class wxRegionIterator: public wxObject
     long GetHeight() const { return GetH(); }
     wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
 
-  private:
-  
-   long       m_current;
-   wxRegion   m_region;
+private:
+    long       m_current;
+    wxRegion   m_region;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxRegionIterator);
 };
 
 
index 440c26afe73dc7bf6dc2cb233e7c3b4953325d65..378b7f0f94a052a45e06a130d5beb611e16df827 100644 (file)
@@ -8,7 +8,7 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __GTKSPINPUTTH__
+#ifndef __GTKSPINBUTTH__
 #define __GTKSPINBUTTH__
 
 #ifdef __GNUG__
@@ -21,8 +21,6 @@
 
 class wxSpinButton : public wxSpinButtonBase
 {
-    DECLARE_DYNAMIC_CLASS(wxSpinButton)
-
 public:
     wxSpinButton() { }
     wxSpinButton( wxWindow *parent, wxWindowID id = -1,
@@ -31,7 +29,6 @@ public:
     {
         Create(parent, id, pos, size, style, name);
     }
-    ~wxSpinButton();
 
     bool Create( wxWindow *parent, wxWindowID id = -1,
             const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
@@ -54,6 +51,7 @@ public:
 
 private:
     DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS(wxSpinButton)
 };
 
 #endif
diff --git a/include/wx/gtk/spinctrl.h b/include/wx/gtk/spinctrl.h
new file mode 100644 (file)
index 0000000..b3a0d0c
--- /dev/null
@@ -0,0 +1,62 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        spinctrl.h
+// Purpose:     wxSpinCtrl class
+// Author:      Robert Roebling
+// Modified by:
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __GTKSPINCTRLH__
+#define __GTKSPINCTRLH__
+
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+//-----------------------------------------------------------------------------
+// wxSpinButton
+//-----------------------------------------------------------------------------
+
+class wxSpinCtrl : public wxControl
+{
+public:
+    wxSpinCtrl() {}
+    wxSpinCtrl(wxWindow *parent,
+               wxWindowID id = -1,
+               const wxPoint& pos = wxDefaultPosition,
+               const wxSize& size = wxDefaultSize,
+               long style = wxSP_ARROW_KEYS,
+               int min = 0, int max = 100, int initial = 0,
+               const wxString& name = _T("wxSpinCtrl"))
+    {
+        Create(parent, id, pos, size, style, min, max, initial, name);
+    }
+
+    bool Create(wxWindow *parent,
+                wxWindowID id = -1,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxSP_ARROW_KEYS,
+                int min = 0, int max = 100, int initial = 0,
+                const wxString& name = _T("wxSpinCtrl"));
+
+    virtual int GetValue() const;
+    virtual void SetValue( int value );
+    virtual void SetRange( int minVal, int maxVal );
+    virtual int GetMin() const;
+    virtual int GetMax() const;
+
+    bool IsOwnGtkWindow( GdkWindow *window );
+    void ApplyWidgetStyle();
+
+    GtkAdjustment  *m_adjust;
+    float           m_oldPos;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxSpinCtrl)
+};
+
+#endif
+    // __GTKSPINCTRLH__
index 9bca3cf6f937fc92057715fd8f252efa50966994..a60eb15e981ee4d14e609dbea1ac9509655d9769 100644 (file)
@@ -56,8 +56,7 @@ extern wxAcceleratorTable wxNullAcceleratorTable;
 
 class wxAcceleratorEntry: public wxObject
 {
-  public:
-
+public:
     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
       { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
 
index 6b528f8b16f89ff46d92a8e9e122f9410e5e02e6..58083583f8ea141b041eeeaf5c72812e3ae2d493 100644 (file)
@@ -80,6 +80,7 @@ private:
     /// Set to TRUE while we are in wxYield().
     bool m_suppressIdleEvents;
 
+private:
     DECLARE_DYNAMIC_CLASS(wxApp)
     DECLARE_EVENT_TABLE()
 };
index 7126dc067527dc8fcc1ad3c9eb1f0c1bba64ebfd..dfcf70ce732b326e135f83cc42aac2e9f768cfe2 100644 (file)
@@ -43,56 +43,57 @@ extern const wxChar *wxButtonNameStr;
 
 class wxBitmapButton: public wxButton
 {
-  DECLARE_DYNAMIC_CLASS(wxBitmapButton)
-
 public:
-  wxBitmapButton();
-  inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+    wxBitmapButton();
+    inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
                          const wxPoint& pos = wxDefaultPosition,
                          const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = wxButtonNameStr )
-  {
-      Create(parent, id, bitmap, pos, size, style, validator, name);
-  }
-  bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+    {
+        Create(parent, id, bitmap, pos, size, style, validator, name);
+    }
+    bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = wxButtonNameStr);
-  virtual void SetDefault();
+    virtual void SetDefault();
     
-  void SetLabel( const wxString &label );
-  wxString GetLabel() const;
-  virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
+    void SetLabel( const wxString &label );
+    wxString GetLabel() const;
+    virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
     
-  wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
-  wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
-  wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
-  wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
+    wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
+    wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
+    wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
+    wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
     
-  void SetBitmapDisabled( const wxBitmap& bitmap );
-  void SetBitmapFocus( const wxBitmap& bitmap );
-  void SetBitmapLabel( const wxBitmap& bitmap );
-  void SetBitmapSelected( const wxBitmap& bitmap );
+    void SetBitmapDisabled( const wxBitmap& bitmap );
+    void SetBitmapFocus( const wxBitmap& bitmap );
+    void SetBitmapLabel( const wxBitmap& bitmap );
+    void SetBitmapSelected( const wxBitmap& bitmap );
     
-  virtual bool Enable(bool enable);
+    virtual bool Enable(bool enable);
   
 // implementation
 
-  void HasFocus();
-  void NotFocus();
-  void StartSelect();
-  void EndSelect();
-  void SetBitmap();
-  void ApplyWidgetStyle();    
+    void HasFocus();
+    void NotFocus();
+    void StartSelect();
+    void EndSelect();
+    void SetBitmap();
+    void ApplyWidgetStyle();    
+  
+    bool         m_hasFocus;
+    bool         m_isSelected;
+    wxBitmap     m_bitmap; 
+    wxBitmap     m_disabled;
+    wxBitmap     m_focus;
+    wxBitmap     m_selected;   
   
-  bool         m_hasFocus;
-  bool         m_isSelected;
-  wxBitmap     m_bitmap; 
-  wxBitmap     m_disabled;
-  wxBitmap     m_focus;
-  wxBitmap     m_selected;   
+private:
+    DECLARE_DYNAMIC_CLASS(wxBitmapButton)
 };
 
 #endif
index c52eb450111e90d5ce0ee078994abfb95f7ca247..d42e564a814960b851841964d08fd200930b13c2 100644 (file)
@@ -33,10 +33,7 @@ class wxBrush;
 
 class wxBrush: public wxGDIObject
 {
-  DECLARE_DYNAMIC_CLASS(wxBrush)
-
-  public:
-
+public:
     wxBrush();
     wxBrush( const wxColour &colour, int style );
     wxBrush( const wxBitmap &stippleBitmap );
@@ -58,7 +55,8 @@ class wxBrush: public wxGDIObject
 
     void Unshare();
 
-    // no data :-)
+private:
+    DECLARE_DYNAMIC_CLASS(wxBrush)
 };
 
 #endif // __GTKBRUSHH__
index af4fdac9ee02392f8af7f848758af0ff2b606b9f..051c16637cd4fe1c43566044ddf16ab44724acac 100644 (file)
@@ -7,7 +7,6 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #ifndef __GTKBUTTONH__
 #define __GTKBUTTONH__
 
@@ -38,10 +37,7 @@ extern const wxChar *wxButtonNameStr;
 
 class wxButton: public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxButton)
-
-  public:
-
+public:
     wxButton();
     inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label,
            const wxPoint& pos = wxDefaultPosition,
@@ -66,6 +62,9 @@ class wxButton: public wxControl
   // implementation        
   
     void ApplyWidgetStyle();    
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxButton)
 };
 
 #endif // __GTKBUTTONH__
index f26be094c84bf55db0a34d6e15d56115a5abec8c..1a0c0ca3993f26ad6c9029b18ad3ae0486e52a49 100644 (file)
@@ -7,7 +7,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #ifndef __GTKCHECKBOXH__
 #define __GTKCHECKBOXH__
 
@@ -41,8 +40,6 @@ extern const char *wxCheckBoxNameStr;
 
 class wxCheckBox: public wxControl
 {
-DECLARE_DYNAMIC_CLASS(wxCheckBox)
-
 public:
     wxCheckBox();
     wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label,
@@ -73,6 +70,9 @@ public:
 
     GtkWidget *m_widgetCheckbox;
     GtkWidget *m_widgetLabel;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxCheckBox)
 };
 
 #endif
index 8022f35658a92ec4886f7cda8f6571920919abb0..3290184e06a80db003d72f1195f9b71b5270a308 100644 (file)
@@ -36,8 +36,6 @@ class wxCheckListBox;
 
 class wxCheckListBox : public wxListBox
 {
-DECLARE_DYNAMIC_CLASS(wxCheckListBox)
-
 public:
     wxCheckListBox();
     wxCheckListBox(wxWindow *parent, wxWindowID id,
@@ -53,6 +51,9 @@ public:
     void Check( int index, bool check = TRUE );
 
     int GetItemHeight() const;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxCheckListBox)
 };
 
 #endif
index e405f01c72f3d55aee816a7ca6bc7ea0ff221575..7b95f490da0844fc5d391c22f1245596ad624f3b 100644 (file)
@@ -38,8 +38,6 @@ extern const wxChar *wxChoiceNameStr;
 
 class wxChoice : public wxControl
 {
-    DECLARE_DYNAMIC_CLASS(wxChoice)
-
 public:
     wxChoice();
     wxChoice( wxWindow *parent, wxWindowID id,
@@ -97,6 +95,9 @@ public:
     void EnableEvents();
     void AppendCommon( const wxString &item );
     void ApplyWidgetStyle();
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxChoice)
 };
 
 
index d940100715ed0f7970122b079eceb66e8e23c342..ebd46448d6008c2ad7ae8c6dc3ba512866555f0b 100644 (file)
@@ -44,8 +44,6 @@ extern wxClipboard* wxTheClipboard;
 
 class wxClipboard : public wxObject
 {
-    DECLARE_DYNAMIC_CLASS(wxClipboard)
-
 public:
     wxClipboard();
     ~wxClipboard();
@@ -91,6 +89,9 @@ public:
     GdkAtom           m_targetRequested;
     bool              m_usePrimary;
     wxDataObject      *m_receivedData;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxClipboard)
 };
 
 //-----------------------------------------------------------------------------
@@ -99,12 +100,13 @@ public:
 
 class wxClipboardModule: public wxModule
 {
-  DECLARE_DYNAMIC_CLASS(wxClipboardModule)
-
 public:
     wxClipboardModule() {}
     bool OnInit();
     void OnExit();
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxClipboardModule)
 };
 
 #endif
index 4fda5e81b8c79176d0422c4be93883a8c137c2dd..129321d3a4901c0443ea3dbd5dbf621058aa39b3 100644 (file)
@@ -42,12 +42,9 @@ extern const wxChar* wxEmptyString;
 
 class wxComboBox : public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxComboBox)
-
 public:
-
-  inline wxComboBox() {}
-  inline wxComboBox(wxWindow *parent, wxWindowID id,
+    inline wxComboBox() {}
+    inline wxComboBox(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -55,11 +52,11 @@ public:
            long style = 0,
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr)
-  {
-    Create(parent, id, value, pos, size, n, choices, style, validator, name);
-  }
-  ~wxComboBox();
-  bool Create(wxWindow *parent, wxWindowID id,
+    {
+        Create(parent, id, value, pos, size, n, choices, style, validator, name);
+    }
+    ~wxComboBox();
+    bool Create(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -68,63 +65,65 @@ public:
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr);
 
-  void Append( const wxString &item );
-  void Append( const wxString &item, void* clientData );
-  void Append( const wxString &item, wxClientData* clientData );
+    void Append( const wxString &item );
+    void Append( const wxString &item, void* clientData );
+    void Append( const wxString &item, wxClientData* clientData );
   
-  void SetClientData( int n, void* clientData );
-  void* GetClientData( int n );
-  void SetClientObject( int n, wxClientData* clientData );
-  wxClientData* GetClientObject( int n );
+    void SetClientData( int n, void* clientData );
+    void* GetClientData( int n );
+    void SetClientObject( int n, wxClientData* clientData );
+    wxClientData* GetClientObject( int n );
   
-  void SetClientObject( wxClientData *data )  { wxControl::SetClientObject( data ); }
-  wxClientData *GetClientObject() const       { return wxControl::GetClientObject(); }
-  void SetClientData( void *data )            { wxControl::SetClientData( data ); }
-  void *GetClientData() const                 { return wxControl::GetClientData(); }
+    void SetClientObject( wxClientData *data )  { wxControl::SetClientObject( data ); }
+    wxClientData *GetClientObject() const       { return wxControl::GetClientObject(); }
+    void SetClientData( void *data )            { wxControl::SetClientData( data ); }
+    void *GetClientData() const                 { return wxControl::GetClientData(); }
     
-  void Clear();
-  void Delete( int n );
-  
-  int FindString( const wxString &item );
-  int GetSelection() const;
-  wxString GetString( int n ) const;
-  wxString GetStringSelection() const;
-  int Number() const;
-  void SetSelection( int n );
-  void SetStringSelection( const wxString &string );
-
-  wxString GetValue() const;
-  void SetValue(const wxString& value);
-
-  void Copy();
-  void Cut();
-  void Paste();
-  void SetInsertionPoint( long pos );
-  void SetInsertionPointEnd();
-  long GetInsertionPoint() const;
-  long GetLastPosition() const;
-  void Replace( long from, long to, const wxString& value );
-  void Remove( long from, long to );
-  void SetSelection( long from, long to );
-  void SetEditable( bool editable );
+    void Clear();
+    void Delete( int n );
   
-  void OnSize( wxSizeEvent &event );
-  void OnChar( wxKeyEvent &event );
+    int FindString( const wxString &item );
+    int GetSelection() const;
+    wxString GetString( int n ) const;
+    wxString GetStringSelection() const;
+    int Number() const;
+    void SetSelection( int n );
+    void SetStringSelection( const wxString &string );
+
+    wxString GetValue() const;
+    void SetValue(const wxString& value);
+
+    void Copy();
+    void Cut();
+    void Paste();
+    void SetInsertionPoint( long pos );
+    void SetInsertionPointEnd();
+    long GetInsertionPoint() const;
+    long GetLastPosition() const;
+    void Replace( long from, long to, const wxString& value );
+    void Remove( long from, long to );
+    void SetSelection( long from, long to );
+    void SetEditable( bool editable );
   
-// implementation
+    // implementation
     
-  bool     m_alreadySent;
-  wxList   m_clientDataList;
-  wxList   m_clientObjectList;
-
-  void DisableEvents();
-  void EnableEvents();
-  void AppendCommon( const wxString &item );
-  GtkWidget* GetConnectWidget();
-  bool IsOwnGtkWindow( GdkWindow *window );
-  void ApplyWidgetStyle();
+    void OnSize( wxSizeEvent &event );
+    void OnChar( wxKeyEvent &event );
   
-  DECLARE_EVENT_TABLE()
+    bool     m_alreadySent;
+    wxList   m_clientDataList;
+    wxList   m_clientObjectList;
+
+    void DisableEvents();
+    void EnableEvents();
+    void AppendCommon( const wxString &item );
+    GtkWidget* GetConnectWidget();
+    bool IsOwnGtkWindow( GdkWindow *window );
+    void ApplyWidgetStyle();
+private: 
+    DECLARE_DYNAMIC_CLASS(wxComboBox)
+    DECLARE_EVENT_TABLE()
 };
 
 #endif
index f18f219d8c691229e212d30683432ae21183302e..3b19b4c98c962b7ba33d20951b6feab35cab1015 100644 (file)
@@ -31,8 +31,6 @@ class wxControl;
 
 class wxControl : public wxWindow
 {
-    DECLARE_DYNAMIC_CLASS(wxControl)
-
 public:
     wxControl();
     wxControl( wxWindow *parent,
@@ -50,6 +48,9 @@ public:
 protected:
     wxString   m_label;
     char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxControl)
 };
 
 #endif // __GTKCONTROLH__
index 2e23876d447a0be33b85297c80be90b33277f317..ac93125bd30d9f40853b14109184ea140d24faea 100644 (file)
@@ -103,10 +103,7 @@ class wxRegion : public wxGDIObject
 
 class wxRegionIterator: public wxObject 
 {
-  DECLARE_DYNAMIC_CLASS(wxRegionIterator);
-  
-  public:
-  
+public:
     wxRegionIterator();
     wxRegionIterator(const wxRegion& region);
 
@@ -127,10 +124,12 @@ class wxRegionIterator: public wxObject
     long GetHeight() const { return GetH(); }
     wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
 
-  private:
-  
-   long       m_current;
-   wxRegion   m_region;
+private:
+    long       m_current;
+    wxRegion   m_region;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxRegionIterator);
 };
 
 
index 440c26afe73dc7bf6dc2cb233e7c3b4953325d65..378b7f0f94a052a45e06a130d5beb611e16df827 100644 (file)
@@ -8,7 +8,7 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __GTKSPINPUTTH__
+#ifndef __GTKSPINBUTTH__
 #define __GTKSPINBUTTH__
 
 #ifdef __GNUG__
@@ -21,8 +21,6 @@
 
 class wxSpinButton : public wxSpinButtonBase
 {
-    DECLARE_DYNAMIC_CLASS(wxSpinButton)
-
 public:
     wxSpinButton() { }
     wxSpinButton( wxWindow *parent, wxWindowID id = -1,
@@ -31,7 +29,6 @@ public:
     {
         Create(parent, id, pos, size, style, name);
     }
-    ~wxSpinButton();
 
     bool Create( wxWindow *parent, wxWindowID id = -1,
             const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
@@ -54,6 +51,7 @@ public:
 
 private:
     DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS(wxSpinButton)
 };
 
 #endif
diff --git a/include/wx/gtk1/spinctrl.h b/include/wx/gtk1/spinctrl.h
new file mode 100644 (file)
index 0000000..b3a0d0c
--- /dev/null
@@ -0,0 +1,62 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        spinctrl.h
+// Purpose:     wxSpinCtrl class
+// Author:      Robert Roebling
+// Modified by:
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __GTKSPINCTRLH__
+#define __GTKSPINCTRLH__
+
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+//-----------------------------------------------------------------------------
+// wxSpinButton
+//-----------------------------------------------------------------------------
+
+class wxSpinCtrl : public wxControl
+{
+public:
+    wxSpinCtrl() {}
+    wxSpinCtrl(wxWindow *parent,
+               wxWindowID id = -1,
+               const wxPoint& pos = wxDefaultPosition,
+               const wxSize& size = wxDefaultSize,
+               long style = wxSP_ARROW_KEYS,
+               int min = 0, int max = 100, int initial = 0,
+               const wxString& name = _T("wxSpinCtrl"))
+    {
+        Create(parent, id, pos, size, style, min, max, initial, name);
+    }
+
+    bool Create(wxWindow *parent,
+                wxWindowID id = -1,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxSP_ARROW_KEYS,
+                int min = 0, int max = 100, int initial = 0,
+                const wxString& name = _T("wxSpinCtrl"));
+
+    virtual int GetValue() const;
+    virtual void SetValue( int value );
+    virtual void SetRange( int minVal, int maxVal );
+    virtual int GetMin() const;
+    virtual int GetMax() const;
+
+    bool IsOwnGtkWindow( GdkWindow *window );
+    void ApplyWidgetStyle();
+
+    GtkAdjustment  *m_adjust;
+    float           m_oldPos;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxSpinCtrl)
+};
+
+#endif
+    // __GTKSPINCTRLH__
index 59deb9ab80bc37e9f8b21f582ef5330759cde424..84e20dc8404b0cd96587da79b7b341c625c52d72 100644 (file)
@@ -52,6 +52,8 @@ protected:
 
 #if defined(__WXMSW__) && defined(__WIN32__)
     #include "wx/msw/spinctrl.h"
+#elif defined(__WXGTK__)
+    #include "wx/gtk/spinctrl.h"
 #else // Win16 || !Win
     #include "wx/generic/spinctrl.h"
 #endif // platform
index caf8db3444c82be6f0a1dc59eeb5fb093452f111..a265f57e52810c501abb9e786eeb3902652e6ddd 100644 (file)
@@ -277,6 +277,11 @@ public:
                                int maxW = -1, int maxH = -1,
                                int incW = -1, int incH = -1 );
 
+    int GetMinWidth() const { return m_minWidth; }
+    int GetMinHeight() const { return m_minHeight; }
+    int GetMaxWidth() const { return m_maxWidth; }
+    int GetMaxHeight() const { return m_maxHeight; }
+    
     // window state
     // ------------
 
index e14e8215e15f3bfc00763daa8d0a0907198f59f5..91ee748916f0ff2d64c71656b92e82b8d0aa2ff6 100644 (file)
@@ -484,16 +484,16 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     s << initialSpinValue;
     m_spintext = new wxTextCtrl( panel, -1, s, wxPoint(20,160), wxSize(80,-1) );
 #if wxUSE_SPINBUTTON
-    m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,159), wxSize(80, -1) );
+    m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,160), wxSize(80, -1) );
     m_spinbutton->SetRange(-10,30);
     m_spinbutton->SetValue(initialSpinValue);
 
     m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, "Show progress dialog",
-                                  wxPoint(408, 159) );
+                                  wxPoint(300, 160) );
 #endif // wxUSE_SPINBUTTON
 
 #if wxUSE_SPINCTRL
-    m_spinctrl = new wxSpinCtrl( panel, -1, wxPoint(200, 159), wxSize(80, 20) );
+    m_spinctrl = new wxSpinCtrl( panel, -1, wxPoint(200, 160), wxSize(80, -1) );
     m_spinctrl->SetRange(10,30);
     m_spinctrl->SetValue(15);
 #endif // wxUSE_SPINCTRL
index 138fb5e769864fe9c47ddc12d8b4cea15feb588c..75852bf9681f9633b28fcc3315ba248499913b6f 100644 (file)
@@ -38,33 +38,6 @@ extern bool g_isIdle;
 
 extern wxList wxPendingDelete;
 
-/*
-//-----------------------------------------------------------------------------
-// instruct X to set the WM hint for positioning
-//-----------------------------------------------------------------------------
-
-extern "C" {
-
-static void gdk_window_set_position_hint( GdkWindow *window, gint x, gint y )
-{
-  GdkWindowPrivate *priv;
-  XSizeHints size_hints;
-  
-  g_return_if_fail (window != NULL);
-  
-  priv = (GdkWindowPrivate*) window;
-  if (priv->destroyed) return;
-  
-  size_hints.flags = PPosition;
-  size_hints.x = x;
-  size_hints.y = y;
-   
-  XSetWMNormalHints (priv->xdisplay, priv->xwindow, &size_hints);
-}
-
-}
-*/
-
 //-----------------------------------------------------------------------------
 // "delete_event"
 //-----------------------------------------------------------------------------
@@ -150,9 +123,18 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
        position in "realize" and "map" */
     gtk_widget_set_uposition( widget, win->m_x, win->m_y );
 
-/*
-    gdk_window_set_position_hint( widget->window, win->m_x, win->m_y );
-*/
+    /* set size hints */
+    gint flag =        GDK_HINT_POS;
+    if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
+    if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
+    if (flag)
+    {
+        gdk_window_set_hints( win->m_widget->window, 
+                             win->m_x, win->m_y,
+                             win->GetMinWidth(), win->GetMinHeight(),
+                             win->GetMaxWidth(), win->GetMaxHeight(),
+                             flag );
+    }
 
     /* reset the icon */
     if (win->m_icon != wxNullIcon)
index c0d27bd46447dda5bb78c90a4b18dc3fba1d77ec..780a098659bd5e888f05436506685144d6d5c0a7 100644 (file)
@@ -233,6 +233,19 @@ gtk_frame_realized_callback( GtkWidget *WXUNUSED(widget), wxFrame *win )
     else
         gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
 
+    /* set size hints */
+    gint flag =        GDK_HINT_POS;
+    if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
+    if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
+    if (flag)
+    {
+        gdk_window_set_hints( win->m_widget->window, 
+                             win->m_x, win->m_y,
+                             win->GetMinWidth(), win->GetMinHeight(),
+                             win->GetMaxWidth(), win->GetMaxHeight(),
+                             flag );
+    }
+    
     /* reset the icon */
     if (win->m_icon != wxNullIcon)
     {
index 1901da14bfae646b99610b6e5c793629e0837b2d..3d75387d4dbeafde3f23f8319d80fab9d726b2ef 100644 (file)
@@ -35,7 +35,7 @@ extern bool g_isIdle;
 
 extern bool   g_blockEventsOnDrag;
 
-static const float sensitivity = 0.2;
+static const float sensitivity = 0.02;
 
 //-----------------------------------------------------------------------------
 // "value_changed"
@@ -101,7 +101,7 @@ bool wxSpinButton::Create(wxWindow *parent,
     wxSize new_size = size;
     new_size.x = 15;
     if (new_size.y == -1)
-        new_size.y = 30;
+        new_size.y = 26;
 
     if (!PreCreation( parent, pos, new_size ) ||
         !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
@@ -134,10 +134,6 @@ bool wxSpinButton::Create(wxWindow *parent,
     return TRUE;
 }
 
-wxSpinButton::~wxSpinButton()
-{
-}
-
 int wxSpinButton::GetMin() const
 {
     wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
diff --git a/src/gtk/spinctrl.cpp b/src/gtk/spinctrl.cpp
new file mode 100644 (file)
index 0000000..bf19e51
--- /dev/null
@@ -0,0 +1,199 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        spinbutt.cpp
+// Purpose:     wxSpinCtrl
+// Author:      Robert
+// Modified by:
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "spinctrl.h"
+#endif
+
+#include "wx/spinctrl.h"
+
+#ifdef wxUSE_SPINBTN
+
+#include "wx/utils.h"
+#include "wx/spinbutt.h"
+#include <math.h>
+
+#include "gdk/gdk.h"
+#include "gtk/gtk.h"
+
+//-----------------------------------------------------------------------------
+// idle system
+//-----------------------------------------------------------------------------
+
+extern void wxapp_install_idle_handler();
+extern bool g_isIdle;
+
+//-----------------------------------------------------------------------------
+// data
+//-----------------------------------------------------------------------------
+
+extern bool   g_blockEventsOnDrag;
+
+static const float sensitivity = 0.02;
+
+//-----------------------------------------------------------------------------
+// "value_changed"
+//-----------------------------------------------------------------------------
+
+static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
+{
+    if (g_isIdle) wxapp_install_idle_handler();
+
+    if (!win->m_hasVMT) return;
+    if (g_blockEventsOnDrag) return;
+
+    float diff = win->m_adjust->value - win->m_oldPos;
+    if (fabs(diff) < sensitivity) return;
+    win->m_oldPos = win->m_adjust->value;
+
+    wxEventType command = wxEVT_NULL;
+
+    float line_step = win->m_adjust->step_increment;
+
+    if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN;
+    else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP;
+    else command = wxEVT_SCROLL_THUMBTRACK;
+
+    int value = (int)ceil(win->m_adjust->value);
+
+    wxSpinEvent event( command, win->GetId());
+    event.SetPosition( value );
+    event.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( event );
+    
+    /* always send a thumbtrack event */
+    if (command != wxEVT_SCROLL_THUMBTRACK)
+    {
+        command = wxEVT_SCROLL_THUMBTRACK;
+        wxSpinEvent event2( command, win->GetId());
+        event2.SetPosition( value );
+        event2.SetEventObject( win );
+        win->GetEventHandler()->ProcessEvent( event2 );
+    }
+}
+
+//-----------------------------------------------------------------------------
+// wxSpinCtrl
+//-----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl,wxControl)
+
+bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
+                          const wxPoint& pos,  const wxSize& size,
+                          long style,
+                          int min, int max, int initial,
+                          const wxString& name)
+{
+    m_needParent = TRUE;
+
+    wxSize new_size = size;
+    if (new_size.y == -1)
+        new_size.y = 26;
+
+    if (!PreCreation( parent, pos, new_size ) ||
+        !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
+    {
+        wxFAIL_MSG( wxT("wxSpinCtrl creation failed") );
+       return FALSE;
+    }
+
+    m_oldPos = initial;
+
+    m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
+
+    m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
+
+    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
+
+    gtk_signal_connect( GTK_OBJECT (m_adjust),
+                        "value_changed",
+                        (GtkSignalFunc) gtk_spinctrl_callback,
+                        (gpointer) this );
+
+    m_parent->DoAddChild( this );
+
+    PostCreation();
+
+    SetBackgroundColour( parent->GetBackgroundColour() );
+
+    Show( TRUE );
+
+    return TRUE;
+}
+
+int wxSpinCtrl::GetMin() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->lower);
+}
+
+int wxSpinCtrl::GetMax() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->upper);
+}
+
+int wxSpinCtrl::GetValue() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->value);
+}
+
+void wxSpinCtrl::SetValue( int value )
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    float fpos = (float)value;
+    m_oldPos = fpos;
+    if (fabs(fpos-m_adjust->value) < sensitivity) return;
+
+    m_adjust->value = fpos;
+
+    gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
+}
+
+void wxSpinCtrl::SetRange(int minVal, int maxVal)
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    float fmin = (float)minVal;
+    float fmax = (float)maxVal;
+
+    if ((fabs(fmin-m_adjust->lower) < sensitivity) &&
+        (fabs(fmax-m_adjust->upper) < sensitivity))
+    {
+        return;
+    }
+
+    m_adjust->lower = fmin;
+    m_adjust->upper = fmax;
+
+    gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
+    
+    // these two calls are required due to some bug in GTK
+    Refresh();
+    SetFocus();
+}
+
+bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
+{
+    return GTK_SPIN_BUTTON(m_widget)->panel == window;
+}
+
+void wxSpinCtrl::ApplyWidgetStyle()
+{
+    SetWidgetStyle();
+    gtk_widget_set_style( m_widget, m_widgetStyle );
+}
+
+#endif
index 138fb5e769864fe9c47ddc12d8b4cea15feb588c..75852bf9681f9633b28fcc3315ba248499913b6f 100644 (file)
@@ -38,33 +38,6 @@ extern bool g_isIdle;
 
 extern wxList wxPendingDelete;
 
-/*
-//-----------------------------------------------------------------------------
-// instruct X to set the WM hint for positioning
-//-----------------------------------------------------------------------------
-
-extern "C" {
-
-static void gdk_window_set_position_hint( GdkWindow *window, gint x, gint y )
-{
-  GdkWindowPrivate *priv;
-  XSizeHints size_hints;
-  
-  g_return_if_fail (window != NULL);
-  
-  priv = (GdkWindowPrivate*) window;
-  if (priv->destroyed) return;
-  
-  size_hints.flags = PPosition;
-  size_hints.x = x;
-  size_hints.y = y;
-   
-  XSetWMNormalHints (priv->xdisplay, priv->xwindow, &size_hints);
-}
-
-}
-*/
-
 //-----------------------------------------------------------------------------
 // "delete_event"
 //-----------------------------------------------------------------------------
@@ -150,9 +123,18 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
        position in "realize" and "map" */
     gtk_widget_set_uposition( widget, win->m_x, win->m_y );
 
-/*
-    gdk_window_set_position_hint( widget->window, win->m_x, win->m_y );
-*/
+    /* set size hints */
+    gint flag =        GDK_HINT_POS;
+    if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
+    if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
+    if (flag)
+    {
+        gdk_window_set_hints( win->m_widget->window, 
+                             win->m_x, win->m_y,
+                             win->GetMinWidth(), win->GetMinHeight(),
+                             win->GetMaxWidth(), win->GetMaxHeight(),
+                             flag );
+    }
 
     /* reset the icon */
     if (win->m_icon != wxNullIcon)
index c0d27bd46447dda5bb78c90a4b18dc3fba1d77ec..780a098659bd5e888f05436506685144d6d5c0a7 100644 (file)
@@ -233,6 +233,19 @@ gtk_frame_realized_callback( GtkWidget *WXUNUSED(widget), wxFrame *win )
     else
         gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
 
+    /* set size hints */
+    gint flag =        GDK_HINT_POS;
+    if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
+    if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
+    if (flag)
+    {
+        gdk_window_set_hints( win->m_widget->window, 
+                             win->m_x, win->m_y,
+                             win->GetMinWidth(), win->GetMinHeight(),
+                             win->GetMaxWidth(), win->GetMaxHeight(),
+                             flag );
+    }
+    
     /* reset the icon */
     if (win->m_icon != wxNullIcon)
     {
index 1901da14bfae646b99610b6e5c793629e0837b2d..3d75387d4dbeafde3f23f8319d80fab9d726b2ef 100644 (file)
@@ -35,7 +35,7 @@ extern bool g_isIdle;
 
 extern bool   g_blockEventsOnDrag;
 
-static const float sensitivity = 0.2;
+static const float sensitivity = 0.02;
 
 //-----------------------------------------------------------------------------
 // "value_changed"
@@ -101,7 +101,7 @@ bool wxSpinButton::Create(wxWindow *parent,
     wxSize new_size = size;
     new_size.x = 15;
     if (new_size.y == -1)
-        new_size.y = 30;
+        new_size.y = 26;
 
     if (!PreCreation( parent, pos, new_size ) ||
         !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
@@ -134,10 +134,6 @@ bool wxSpinButton::Create(wxWindow *parent,
     return TRUE;
 }
 
-wxSpinButton::~wxSpinButton()
-{
-}
-
 int wxSpinButton::GetMin() const
 {
     wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
diff --git a/src/gtk1/spinctrl.cpp b/src/gtk1/spinctrl.cpp
new file mode 100644 (file)
index 0000000..bf19e51
--- /dev/null
@@ -0,0 +1,199 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        spinbutt.cpp
+// Purpose:     wxSpinCtrl
+// Author:      Robert
+// Modified by:
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "spinctrl.h"
+#endif
+
+#include "wx/spinctrl.h"
+
+#ifdef wxUSE_SPINBTN
+
+#include "wx/utils.h"
+#include "wx/spinbutt.h"
+#include <math.h>
+
+#include "gdk/gdk.h"
+#include "gtk/gtk.h"
+
+//-----------------------------------------------------------------------------
+// idle system
+//-----------------------------------------------------------------------------
+
+extern void wxapp_install_idle_handler();
+extern bool g_isIdle;
+
+//-----------------------------------------------------------------------------
+// data
+//-----------------------------------------------------------------------------
+
+extern bool   g_blockEventsOnDrag;
+
+static const float sensitivity = 0.02;
+
+//-----------------------------------------------------------------------------
+// "value_changed"
+//-----------------------------------------------------------------------------
+
+static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
+{
+    if (g_isIdle) wxapp_install_idle_handler();
+
+    if (!win->m_hasVMT) return;
+    if (g_blockEventsOnDrag) return;
+
+    float diff = win->m_adjust->value - win->m_oldPos;
+    if (fabs(diff) < sensitivity) return;
+    win->m_oldPos = win->m_adjust->value;
+
+    wxEventType command = wxEVT_NULL;
+
+    float line_step = win->m_adjust->step_increment;
+
+    if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN;
+    else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP;
+    else command = wxEVT_SCROLL_THUMBTRACK;
+
+    int value = (int)ceil(win->m_adjust->value);
+
+    wxSpinEvent event( command, win->GetId());
+    event.SetPosition( value );
+    event.SetEventObject( win );
+    win->GetEventHandler()->ProcessEvent( event );
+    
+    /* always send a thumbtrack event */
+    if (command != wxEVT_SCROLL_THUMBTRACK)
+    {
+        command = wxEVT_SCROLL_THUMBTRACK;
+        wxSpinEvent event2( command, win->GetId());
+        event2.SetPosition( value );
+        event2.SetEventObject( win );
+        win->GetEventHandler()->ProcessEvent( event2 );
+    }
+}
+
+//-----------------------------------------------------------------------------
+// wxSpinCtrl
+//-----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl,wxControl)
+
+bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
+                          const wxPoint& pos,  const wxSize& size,
+                          long style,
+                          int min, int max, int initial,
+                          const wxString& name)
+{
+    m_needParent = TRUE;
+
+    wxSize new_size = size;
+    if (new_size.y == -1)
+        new_size.y = 26;
+
+    if (!PreCreation( parent, pos, new_size ) ||
+        !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
+    {
+        wxFAIL_MSG( wxT("wxSpinCtrl creation failed") );
+       return FALSE;
+    }
+
+    m_oldPos = initial;
+
+    m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
+
+    m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
+
+    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
+
+    gtk_signal_connect( GTK_OBJECT (m_adjust),
+                        "value_changed",
+                        (GtkSignalFunc) gtk_spinctrl_callback,
+                        (gpointer) this );
+
+    m_parent->DoAddChild( this );
+
+    PostCreation();
+
+    SetBackgroundColour( parent->GetBackgroundColour() );
+
+    Show( TRUE );
+
+    return TRUE;
+}
+
+int wxSpinCtrl::GetMin() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->lower);
+}
+
+int wxSpinCtrl::GetMax() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->upper);
+}
+
+int wxSpinCtrl::GetValue() const
+{
+    wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
+
+    return (int)ceil(m_adjust->value);
+}
+
+void wxSpinCtrl::SetValue( int value )
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    float fpos = (float)value;
+    m_oldPos = fpos;
+    if (fabs(fpos-m_adjust->value) < sensitivity) return;
+
+    m_adjust->value = fpos;
+
+    gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
+}
+
+void wxSpinCtrl::SetRange(int minVal, int maxVal)
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    float fmin = (float)minVal;
+    float fmax = (float)maxVal;
+
+    if ((fabs(fmin-m_adjust->lower) < sensitivity) &&
+        (fabs(fmax-m_adjust->upper) < sensitivity))
+    {
+        return;
+    }
+
+    m_adjust->lower = fmin;
+    m_adjust->upper = fmax;
+
+    gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
+    
+    // these two calls are required due to some bug in GTK
+    Refresh();
+    SetFocus();
+}
+
+bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
+{
+    return GTK_SPIN_BUTTON(m_widget)->panel == window;
+}
+
+void wxSpinCtrl::ApplyWidgetStyle()
+{
+    SetWidgetStyle();
+    gtk_widget_set_style( m_widget, m_widgetStyle );
+}
+
+#endif