]> git.saurik.com Git - wxWidgets.git/blobdiff - src/ribbon/bar.cpp
adapting ownership semantics to cocoa convention
[wxWidgets.git] / src / ribbon / bar.cpp
index 9e5c6435dcd9511e2aacc91c5e89a37b6b10d192..625324fa7d324f8ca57f75b2e8f15558e4018fa8 100644 (file)
@@ -109,6 +109,14 @@ bool wxRibbonBar::DismissExpandedPanel()
     return m_pages.Item(m_current_page).page->DismissExpandedPanel();
 }
 
+void wxRibbonBar::ShowPanels(bool show)
+{
+    m_arePanelsShown = show;
+    SetMinSize(wxSize(GetSize().GetWidth(), DoGetBestSize().GetHeight()));
+    Realise();
+    GetParent()->Layout();
+}
+
 void wxRibbonBar::SetWindowStyleFlag(long style)
 {
     m_flags = style;
@@ -538,6 +546,7 @@ wxRibbonBar::wxRibbonBar()
     m_tab_scroll_left_button_state = wxRIBBON_SCROLL_BTN_NORMAL;
     m_tab_scroll_right_button_state = wxRIBBON_SCROLL_BTN_NORMAL;
     m_tab_scroll_buttons_shown = false;
+    m_arePanelsShown = true;
 }
 
 wxRibbonBar::wxRibbonBar(wxWindow* parent,
@@ -585,6 +594,7 @@ void wxRibbonBar::CommonInit(long style)
     m_tab_scroll_left_button_state = wxRIBBON_SCROLL_BTN_NORMAL;
     m_tab_scroll_right_button_state = wxRIBBON_SCROLL_BTN_NORMAL;
     m_tab_scroll_buttons_shown = false;
+    m_arePanelsShown = true;
 
     if(m_art == NULL)
     {
@@ -946,7 +956,7 @@ void wxRibbonBar::RecalculateMinSize()
     }
 
     m_minWidth = min_size.GetWidth();
-    m_minHeight = min_size.GetHeight();
+    m_minHeight = m_arePanelsShown ? min_size.GetHeight() : m_tab_height;
 }
 
 wxSize wxRibbonBar::DoGetBestSize() const
@@ -964,6 +974,10 @@ wxSize wxRibbonBar::DoGetBestSize() const
     {
         best.IncBy(0, m_tab_height);
     }
+    if(!m_arePanelsShown)
+    {
+        best.SetHeight(m_tab_height);
+    }
     return best;
 }