]> git.saurik.com Git - wxWidgets.git/commitdiff
Improve sizer support in generic wxNotebook. Fix the widgets sample
authorMattia Barbon <mbarbon@cpan.org>
Sun, 28 Aug 2005 08:00:25 +0000 (08:00 +0000)
committerMattia Barbon <mbarbon@cpan.org>
Sun, 28 Aug 2005 08:00:25 +0000 (08:00 +0000)
to take advantage of it.

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

include/wx/generic/notebook.h
samples/widgets/widgets.cpp
src/generic/notebook.cpp

index 7ee6f3467f004066ff3b8ca7b7f459d73fa21bfd..dae3342fbb98c60a8feeac7fbae91144e5a34453 100644 (file)
@@ -126,6 +126,8 @@ public:
   virtual void SetConstraintSizes(bool recurse = true);
   virtual bool DoPhase(int nPhase);
 
+  virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
+
   // Implementation
 
   // wxNotebook on Motif uses a generic wxTabView to implement itself.
index c93a10a1d637778e1f17270c0db5a03fb6656fa0..d5758b005e2e7a6ec3a2b46d3484962621a7507b 100644 (file)
@@ -327,7 +327,12 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
     //style |= wxNB_NOPAGETHEME;
 
     m_book = new wxBookCtrl(m_panel, wxID_ANY, wxDefaultPosition,
-        wxDefaultSize, style);
+#ifdef __WXMOTIF__
+        wxSize(500, -1), // under Motif, height is a function of the width...
+#else
+        wxDefaultSize,
+#endif
+        style);
     InitBook();
 
 #ifndef __SMARTPHONE__
index 11b4abfe09bc52e2d3295edc925ea6c659f0238d..ec05ba70b4f967934ca7f60f86bcf3e5c9657ec2 100644 (file)
@@ -622,6 +622,17 @@ void wxNotebook::OnPaint(wxPaintEvent& WXUNUSED(event) )
         m_tabView->Draw(dc);
 }
 
+wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const
+{
+    // MBN: since the total tab height is really a function of the
+    // width, this should really call
+    // GetTotalTabHeightPretendingWidthIs(), but the current
+    // implementation will suffice, provided the wxNotebook has been
+    // created with a sensible initial width.
+    return wxSize( sizePage.x + 12,
+                   sizePage.y + m_tabView->GetTotalTabHeight() + 6 + 4 );
+}
+
 wxRect wxNotebook::GetAvailableClientSize()
 {
     int cw, ch;