]> git.saurik.com Git - wxWidgets.git/commitdiff
Make SetMinSize() and SetMaxSize() virtual so they
authorRobert Roebling <robert@roebling.de>
Mon, 30 Oct 2006 13:18:35 +0000 (13:18 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 30 Oct 2006 13:18:35 +0000 (13:18 +0000)
    can be overridden in wxTLW to set WM hints.
  Actually did that for wxGTK, nothing required for
    wxMSW, no idea about wxMac.
  Documented this in tlw.tex.

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

docs/latex/wx/tlw.tex
include/wx/gtk/toplevel.h
include/wx/window.h
src/gtk/toplevel.cpp

index 75320a9040afbdf41e74a927e8c385a6fbf092d0..a62ba361a446bae35d394ab2eeba6f1fb3c98922 100644 (file)
@@ -280,6 +280,20 @@ Unavailable on full keyboard machines.
 \helpref{wxTopLevelWindow::SetRightMenu}{wxtoplevelwindowsetrightmenu}.
 
 
+\membersection{wxTopLevelWindow::SetMaxSize}\label{wxtoplevelwindowsetmaxsize}
+
+\func{void}{SetMaxSize}{\param{const wxSize\& }{size}}
+
+A simpler interface for setting the size hints than
+\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints}.
+
+\membersection{wxTopLevelWindow::SetMinSize}\label{wxtoplevelwindowsetminsize}
+
+\func{void}{SetMinSize}{\param{const wxSize\& }{size}}
+
+A simpler interface for setting the size hints than
+\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints}.
+
 \membersection{wxTopLevelWindow::SetSizeHints}\label{wxtoplevelwindowsetsizehints}
 
 \func{virtual void}{SetSizeHints}{\param{int}{ minW}, \param{int}{ minH}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1},
index 9886b2a8b1f7c4717a299e790915059d5e5456b6..6ebb2001c829dc8d2f08685e7574b6b92546e170 100644 (file)
@@ -121,6 +121,12 @@ protected:
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO);
 
+    // a different API for SetSizeHints
+    virtual void SetMinSize(const wxSize& minSize);
+    virtual void SetMaxSize(const wxSize& maxSize);
+
+    // give hints to the Window Manager for how the size
+    // of the TLW can be changed by dragging
     virtual void DoSetSizeHints( int minW, int minH,
                                  int maxW = wxDefaultCoord, int maxH = wxDefaultCoord,
                                  int incW = wxDefaultCoord, int incH = wxDefaultCoord );
index c545e576a0cb2f7acef5b74dcec64902b4b42314..a9179c5d270f849b082a6c36f064e2d1cf50b455 100644 (file)
@@ -420,17 +420,24 @@ public:
         SetVirtualSizeHints(minSize.x, minSize.y, maxSize.x, maxSize.y);
     }
 
-    int GetMinWidth() const { return GetMinSize().x; }
-    int GetMinHeight() const { return GetMinSize().y; }
-    int GetMaxWidth() const { return GetMaxSize().x; }
-    int GetMaxHeight() const { return GetMaxSize().y; }
 
-        // Override these methods to impose restrictions on min/max size
+        // Call these to override what GetBestSize() returns. This 
+        // method is only virtual because it is overriden in wxTLW
+        // as a different API for SetSizeHints().
+    virtual void SetMinSize(const wxSize& minSize) { m_minWidth = minSize.x; m_minHeight = minSize.y; }
+    virtual void SetMaxSize(const wxSize& maxSize) { m_maxWidth = maxSize.x; m_maxHeight = maxSize.y; }
+
+        // Override these methods to impose restrictions on min/max size.
+        // The easier way is to call SetMinSize() and SetMaxSize() which  
+        // will have the same effect. Doing both is non-sense.
     virtual wxSize GetMinSize() const { return wxSize(m_minWidth, m_minHeight); }
     virtual wxSize GetMaxSize() const { return wxSize(m_maxWidth, m_maxHeight); }
 
-    void SetMinSize(const wxSize& minSize) { m_minWidth = minSize.x; m_minHeight = minSize.y; }
-    void SetMaxSize(const wxSize& maxSize) { m_maxWidth = maxSize.x; m_maxHeight = maxSize.y; }
+        // Get the min and max values one by one
+    int GetMinWidth() const { return GetMinSize().x; }
+    int GetMinHeight() const { return GetMinSize().y; }
+    int GetMaxWidth() const { return GetMaxSize().x; }
+    int GetMaxHeight() const { return GetMaxSize().y; }
 
 
         // Methods for accessing the virtual size of a window.  For most
index 85f4b536dd1f9949cff890da5a1b9552d189bb57..a0d2574eb5d5a863a3df4ec4f7257c2ac64b657b 100644 (file)
@@ -958,6 +958,16 @@ void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )
               width + m_miniEdge*2, height  + m_miniEdge*2 + m_miniTitle, 0);
 }
 
+void wxTopLevelWindowGTK::SetMinSize(const wxSize& minSize)
+{
+    SetSizeHints( minSize.x, minSize.y, GetMaxWidth(), GetMaxHeight() );    
+}
+
+void wxTopLevelWindowGTK::SetMaxSize(const wxSize& maxSize)
+{
+    SetSizeHints( GetMinWidth(), GetMinHeight(), maxSize.x, maxSize.y );
+}
+
 void wxTopLevelWindowGTK::DoSetSizeHints( int minW, int minH,
                                           int maxW, int maxH,
                                           int incW, int incH )