+void wxAuiManager::MaximizePane(wxAuiPaneInfo& pane_info)
+{
+ int i, pane_count;
+
+ // un-maximize and hide all other panes
+ for (i = 0, pane_count = m_panes.GetCount(); i < pane_count; ++i)
+ {
+ wxAuiPaneInfo& p = m_panes.Item(i);
+ if(!p.IsToolbar()) {
+ p.Restore();
+ p.SaveHidden();
+ p.Hide();
+ }
+ }
+
+ // mark ourselves maximized
+ pane_info.Maximize();
+ pane_info.Show();
+ m_has_maximized = true;
+
+ // last, show the window
+ if (pane_info.window && !pane_info.window->IsShown()) {
+ pane_info.window->Show(true);
+ }
+}
+
+void wxAuiManager::RestorePane(wxAuiPaneInfo& pane_info)
+{
+ int i, pane_count;
+
+ // restore all the panes
+ for (i = 0, pane_count = m_panes.GetCount(); i < pane_count; ++i)
+ {
+ wxAuiPaneInfo& p = m_panes.Item(i);
+ if(!p.IsToolbar()) {
+ p.RestoreHidden();
+ }
+ }
+
+ // mark ourselves non-maximized
+ pane_info.Restore();
+ m_has_maximized = false;
+
+ // last, show the window
+ if (pane_info.window && !pane_info.window->IsShown()) {
+ pane_info.window->Show(true);
+ }
+}
+
+void wxAuiManager::RestoreMaximizedPane()
+{
+ int i, pane_count;
+
+ // restore all the panes
+ for (i = 0, pane_count = m_panes.GetCount(); i < pane_count; ++i)
+ {
+ wxAuiPaneInfo& p = m_panes.Item(i);
+ if(p.IsMaximized()) {
+ RestorePane(p);
+ break;
+ }
+ }
+}
+