]> git.saurik.com Git - wxWidgets.git/commitdiff
updates for DoGetBestSize
authorDavid Webster <Dave.Webster@bhmi.com>
Sun, 21 Nov 1999 01:03:00 +0000 (01:03 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Sun, 21 Nov 1999 01:03:00 +0000 (01:03 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

24 files changed:
include/wx/os2/button.h
include/wx/os2/checkbox.h
include/wx/os2/choice.h
include/wx/os2/control.h
include/wx/os2/listbox.h
include/wx/os2/spinbutt.h
include/wx/os2/statbmp.h
include/wx/os2/statbox.h
include/wx/os2/stattext.h
include/wx/os2/textctrl.h
include/wx/os2/window.h
src/os2/app.cpp
src/os2/button.cpp
src/os2/checkbox.cpp
src/os2/choice.cpp
src/os2/control.cpp
src/os2/listbox.cpp
src/os2/spinbutt.cpp
src/os2/statbmp.cpp
src/os2/statbox.cpp
src/os2/stattext.cpp
src/os2/textctrl.cpp
src/os2/thread.cpp
src/os2/window.cpp

index 2626a0aa9ce8d8742a9dba8850c7ca0a84bea17f..ed2c8a8f40750b3f1e77bbc984736dbd8154fb5e 100644 (file)
@@ -59,7 +59,7 @@ protected:
     // send a notification event, return TRUE if processed
     bool SendClickEvent();
 
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
 };
 
 #endif
index c3fc2e25138f35e2141ac96247a9128b73d13cd7..4b0bff34191e10068aa95a1eb1edd701a4a2186e 100644 (file)
@@ -53,7 +53,7 @@ class WXDLLEXPORT wxCheckBox: public wxControl
             WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
-  virtual wxSize DoGetBestSize();
+  virtual wxSize DoGetBestSize() const;
 };
 
 class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox
index 1e3fc5a02b95a45bc25ae0fdddd96da843cecf76..f2c7efe954dedf0fd9ae06721f2519929f299fff 100644 (file)
@@ -70,7 +70,7 @@ protected:
     virtual wxClientData* DoGetItemClientObject( int n ) const;
 
     // OS2 implementation
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
     virtual void DoSetSize(int x, int y,
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO);
index 28dd3626ec27d4b1d91abfa30ed8084303976452..9563c9e5368fdc6f05a71018f5f6d51e7302db44 100644 (file)
@@ -63,7 +63,7 @@ protected:
    // For controls like radiobuttons which are really composite
    wxList m_subControls;
 
-   virtual wxSize DoGetBestSize();
+   virtual wxSize DoGetBestSize() const;
 
    // create the control of the given class with the given style, returns FALSE
    // if creation failed
index 4bc2ade8bebb4bc91c38b49ee64d92a4e48e79a8..790d8606ace147463705851002482013bf4281b3 100644 (file)
@@ -123,7 +123,7 @@ protected:
     int m_noItems;
     int m_selected;
 
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
 
 #if wxUSE_OWNER_DRAWN
     // control items
index 12d4ecb62ae43d6db28d84027f1c9e80b2d4a59b..f46a0b23930e62c42140816c8df851c6e7e056f4 100644 (file)
@@ -49,7 +49,7 @@ public:
                           ,int maxVal
                          );
 
-    // Implementation    
+    // Implementation
     virtual bool OS2Command( WXUINT param
                             ,WXWORD id
                            );
@@ -64,7 +64,7 @@ public:
                             );
 
 protected:
-   virtual wxSize DoGetBestSize();
+   virtual wxSize DoGetBestSize() const;
 private:
     DECLARE_DYNAMIC_CLASS(wxSpinButton)
 };
index 394977fddc6c754c5693ce8d41e0348e6f545399..90721844b8e79a30e8469aac5b573d04a9a537ed 100644 (file)
@@ -71,7 +71,7 @@ protected:
       wxBitmap *bitmap;
   } m_image;
 
-  virtual wxSize DoGetBestSize();
+  virtual wxSize DoGetBestSize() const;
 };
 
 #endif
index f5a9cb5b533a322a51b45ad079739c5ff531789d..a8f504fec2f6a758b360e2df9ddbd01392f83e15 100644 (file)
@@ -58,7 +58,7 @@ class WXDLLEXPORT wxStaticBox: public wxControl
     virtual bool AcceptsFocus() const { return FALSE; }
 
 protected:
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
 
 private:
     DECLARE_EVENT_TABLE()
index bd58678f7663053fb70032c5c47e6689594e8784..b410f9787bf64d43c3a7ff4345b217ef2a6435f0 100644 (file)
@@ -56,7 +56,7 @@ class WXDLLEXPORT wxStaticText: public wxControl
     virtual MRESULT OS2WindowProc(HWND hwnd, WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
 };
 
 #endif
index a378830e5522bb1020cad8f88321a61343f7790f..7f819fe260142cffd3367116c16cf07b16de0465 100644 (file)
@@ -146,7 +146,7 @@ protected:
     // limit is big enough)
     void AdjustSpaceLimit();
 
-    virtual wxSize DoGetBestSize();
+    virtual wxSize DoGetBestSize() const;
 
 private:
     DECLARE_EVENT_TABLE()
index 96c4c084691e2dd741e1d12c8e868ab9fe055434..3688662527630fb67d9dec7e6ec385414b665511 100644 (file)
@@ -524,10 +524,6 @@ protected:
                                  ,int nHeight
                                 );
 
-    // get the size which best suits the window: e.g., for a static text it
-    // will be the width and height of the text
-    virtual wxSize DoGetBestSize(void);
-
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just call
     // ::MoveWindow() except for composite controls which will want to arrange
index aa1551b0c8fb76e9dcb83407557c4a9821b3be3c..f4f9a25d9c8b0396baf8330c7bbc70f067c6aaa2 100644 (file)
@@ -923,4 +923,3 @@ void wxSetInstance(HINSTANCE hInst)
     wxhInstance = hInst;
 }
 
-
index c4f5ac0f1066c3885281785c60174afdd75177c9..c9a6387c1ead4c8c821efa4a6a50a390e5032656 100644 (file)
@@ -72,14 +72,14 @@ wxButton::~wxButton()
 // size management including autosizing
 // ----------------------------------------------------------------------------
 
-wxSize wxButton::DoGetBestSize()
+wxSize wxButton::DoGetBestSize() const
 {
     wxString label = wxGetWindowText(GetHWND());
     int wBtn;
     GetTextExtent(label, &wBtn, NULL);
 
     int wChar, hChar;
-    wxGetCharSize(GetHWND(), &wChar, &hChar, &GetFont());
+    wxGetCharSize(GetHWND(), &wChar, &hChar, (wxFont*)&GetFont());
 
     // add a margin - the button is wider than just its label
     wBtn += 3*wChar;
index c4a3b2f099325c49151db95cc20c35d1be7bc744..84a6ab65ae7ceb8f699ef4b011a480f9f550b60c 100644 (file)
@@ -96,7 +96,7 @@ void wxCheckBox::SetLabel(const wxString& label)
     // TODO
 }
 
-wxSize wxCheckBox::DoGetBestSize()
+wxSize wxCheckBox::DoGetBestSize() const
 {
     int wCheckbox, hCheckbox;
 
index b5dc463a1e09a651c222084b803dbb7736647e14..be96555450508cbe2838ccd1be60602f8432e0c0 100644 (file)
@@ -216,7 +216,7 @@ void wxChoice::DoSetSize(int x, int y,
     wxControl::DoSetSize(x, y, width, -1, sizeFlags);
 }
 
-wxSize wxChoice::DoGetBestSize()
+wxSize wxChoice::DoGetBestSize() const
 {
     // find the widest string
     int wLine;
@@ -237,7 +237,7 @@ wxSize wxChoice::DoGetBestSize()
 
     // the combobox should be larger than the widest string
     int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, (wxFont*)&GetFont());
 
     wChoice += 5*cx;
 
index 57cfe9e6dfb7572c138d2cff21edace2e34a5629..16a0cb09ad81c44b9fe6f2286015a8130c7ad4d4 100644 (file)
@@ -81,7 +81,7 @@ bool wxControl::OS2CreateControl(const wxChar *classname, WXDWORD style)
     return TRUE;
 }
 
-wxSize wxControl::DoGetBestSize()
+wxSize wxControl::DoGetBestSize() const
 {
     return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT);
 }
index f90d2d14173f56832b992a6bc6ae489f14f73665..5408910fb3864c529f9ae32f9a58b75e425190e8 100644 (file)
@@ -606,7 +606,7 @@ void wxListBox::SetHorizontalExtent(const wxString& s)
 */
 }
 
-wxSize wxListBox::DoGetBestSize()
+wxSize wxListBox::DoGetBestSize() const
 {
     // find the widest string
     int wLine;
@@ -626,7 +626,7 @@ wxSize wxListBox::DoGetBestSize()
 
     // the listbox should be slightly larger than the widest string
     int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, (wxFont*)&GetFont());
 
     wListbox += 3*cx;
 
index 554c1a692c611ecce9b15912b1c9529b29eef3db..df775d9b3a950ca8443cbe0bb99d846826e71743 100644 (file)
@@ -65,7 +65,7 @@ wxSpinButton::~wxSpinButton()
 // size calculation
 // ----------------------------------------------------------------------------
 
-wxSize wxSpinButton::DoGetBestSize()
+wxSize wxSpinButton::DoGetBestSize() const
 {
     // TODO:
 /*
index 8a6baa82ee4508145ecd8a6e92fbcc9583a8fe80..bc19e866feb778aeb9c09fe1d7b54f194dfb82a8 100644 (file)
@@ -100,7 +100,7 @@ void wxStaticBitmap::Free()
     m_image.icon = NULL;
 }
 
-wxSize wxStaticBitmap::DoGetBestSize()
+wxSize wxStaticBitmap::DoGetBestSize() const
 {
     // reuse the current size (as wxWindow does) instead of using some
     // arbitrary default size (as wxControl, our immediate base class, does)
index 97f0152e573e5b04bd870997409c6712ad20ef8d..1911f67045bf19c31536a725e4bdf53fe38256fe 100644 (file)
@@ -93,10 +93,10 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id,
   return FALSE;
 }
 
-wxSize wxStaticBox::DoGetBestSize()
+wxSize wxStaticBox::DoGetBestSize() const
 {
     int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, (wxFont*)&GetFont());
 
     int wBox;
     GetTextExtent(wxGetWindowText(m_hWnd), &wBox, &cy);
index 91b15ada8fb3ded7fe3846394a205497ca59b142..524cd0d9ba190d8e01d4d31ba89cfc5f2f7a88d2 100644 (file)
@@ -60,20 +60,33 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
     return FALSE;
 }
 
-wxSize wxStaticText::DoGetBestSize()
+wxSize wxStaticText::DoGetBestSize() const
 {
     wxString text(wxGetWindowText(GetHWND()));
 
     int widthTextMax = 0, widthLine,
-        heightTextTotal = 0, heightLine;
+        heightTextTotal = 0, heightLineDefault = 0, heightLine = 0;
 
     wxString curLine;
     for ( const wxChar *pc = text; ; pc++ ) {
         if ( *pc == wxT('\n') || *pc == wxT('\0') ) {
-            GetTextExtent(curLine, &widthLine, &heightLine);
-            if ( widthLine > widthTextMax )
-                widthTextMax = widthLine;
-            heightTextTotal += heightLine;
+            if ( !curLine ) {
+                // we can't use GetTextExtent - it will return 0 for both width
+                // and height and an empty line should count in height
+                // calculation
+                if ( !heightLineDefault )
+                    heightLineDefault = heightLine;
+                if ( !heightLineDefault )
+                    GetTextExtent(_T("W"), NULL, &heightLineDefault);
+
+                heightTextTotal += heightLineDefault;
+            }
+            else {
+                GetTextExtent(curLine, &widthLine, &heightLine);
+                if ( widthLine > widthTextMax )
+                    widthTextMax = widthLine;
+                heightTextTotal += heightLine;
+            }
 
             if ( *pc == wxT('\n') ) {
                curLine.Empty();
index 20aeec6bb9a46bf5ed0300c8e6cfa330be63c21a..1069c438821ef32825729007e4a767a8a933b1e9 100644 (file)
@@ -798,10 +798,10 @@ bool wxTextCtrl::AcceptsFocus() const
     return IsEditable() && wxControl::AcceptsFocus();
 }
 
-wxSize wxTextCtrl::DoGetBestSize()
+wxSize wxTextCtrl::DoGetBestSize() const
 {
     int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, (wxFont*)&GetFont());
 
     int wText = DEFAULT_ITEM_WIDTH;
 
index 51c3dd4f424d66b929da4ed132472beef5b2b470..a26fbf6e4ba7a6ce73b2b4ec06bb096a7739e837 100644 (file)
@@ -239,48 +239,6 @@ void wxCondition::Broadcast()
     }
 }
 
-// ----------------------------------------------------------------------------
-// wxCriticalSection implementation
-// ----------------------------------------------------------------------------
-
-class wxCriticalSectionInternal
-{
-public:
-    // init the critical section object
-    wxCriticalSectionInternal()
-        { }
-
-    // free the associated ressources
-    ~wxCriticalSectionInternal()
-        { }
-
-private:
-};
-
-// ----------------------------------------------------------------------------
-// wxCriticalSection implementation
-// ----------------------------------------------------------------------------
-
-wxCriticalSection::wxCriticalSection()
-{
-    m_critsect = new wxCriticalSectionInternal;
-}
-
-wxCriticalSection::~wxCriticalSection()
-{
-    delete m_critsect;
-}
-
-void wxCriticalSection::Enter()
-{
-    ::DosEnterCritSec();
-}
-
-void wxCriticalSection::Leave()
-{
-    ::DosExitCritSec();
-}
-
 // ----------------------------------------------------------------------------
 // wxThread implementation
 // ----------------------------------------------------------------------------
index ebb2c611d22734c65e1ab149b401361727497cfd..8d2385f4d1cf0d9a585064c31b1035c1d19ec072 100644 (file)
@@ -814,12 +814,6 @@ void wxWindow::DoSetSize(int x, int y,
     // TODO:
 }
 
-// for a generic window there is no natural best size - just use the current one
-wxSize wxWindow::DoGetBestSize()
-{
-    return GetSize();
-}
-
 void wxWindow::DoSetClientSize(int width, int height)
 {
     // TODO: