wxDELETE(m_pClientWindow);
#if wxUSE_MENUS
+ wxDELETE(m_pMyMenuBar);
RemoveWindowMenu(GetMenuBar());
- delete m_pWindowMenu;
+ wxDELETE(m_pWindowMenu);
#endif // wxUSE_MENUS
}
AddWindowMenu(pMenuBar);
wxFrame::SetMenuBar(pMenuBar);
- m_pMyMenuBar = GetMenuBar();
+ //m_pMyMenuBar = GetMenuBar();
}
#endif // wxUSE_MENUS
SetMenuBar(m_pMyMenuBar);
// Make sure we know our menu bar is in use
- //m_pMyMenuBar = NULL;
+ m_pMyMenuBar = NULL;
}
else
{
wxFrame::DoGetClientSize(width, height);
}
+void wxAuiMDIParentFrame::Tile(wxOrientation orient)
+{
+ wxAuiMDIClientWindow* client_window = GetClientWindow();
+ wxASSERT_MSG(client_window, wxT("Missing MDI Client Window"));
+
+ int cur_idx = client_window->GetSelection();
+ if (cur_idx == -1)
+ return;
+
+ if (orient == wxVERTICAL)
+ {
+ client_window->Split(cur_idx, wxLEFT);
+ }
+ else if (orient == wxHORIZONTAL)
+ {
+ client_window->Split(cur_idx, wxTOP);
+ }
+}
+
+
//-----------------------------------------------------------------------------
// wxAuiMDIChildFrame
//-----------------------------------------------------------------------------
const wxString& name)
{
Init();
- Create(parent, id, title, wxDefaultPosition, size, style, name);
+
+ // There are two ways to create an tabbed mdi child fram without
+ // making it the active document. Either Show(false) can be called
+ // before Create() (as is customary on some ports with wxFrame-type
+ // windows), or wxMINIMIZE can be passed in the style flags. Note that
+ // wxAuiMDIChildFrame is not really derived from wxFrame, as wxMDIChildFrame
+ // is, but those are the expected symantics. No style flag is passed
+ // onto the panel underneath.
+ if (style & wxMINIMIZE)
+ m_activate_on_create = false;
+
+ Create(parent, id, title, wxDefaultPosition, size, 0, name);
}
wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{
+ wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
+ if (pParentFrame && pParentFrame->GetActiveChild() == this)
+ {
+ pParentFrame->SetActiveChild(NULL);
+ pParentFrame->SetChildMenuBar(NULL);
+ }
+
#if wxUSE_MENUS
wxDELETE(m_pMenuBar);
#endif // wxUSE_MENUS
wxAuiMDIClientWindow* pClientWindow = parent->GetClientWindow();
wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), wxT("Missing MDI client window."));
+ // see comment in constructor
+ if (style & wxMINIMIZE)
+ m_activate_on_create = false;
+
wxSize cli_size = pClientWindow->GetClientSize();
// create the window off-screen to prevent flicker
id,
wxPoint(cli_size.x+1, cli_size.y+1),
size,
- style|wxNO_BORDER, name);
+ wxNO_BORDER, name);
+
+ DoShow(false);
SetMDIParentFrame(parent);
m_title = title;
- pClientWindow->AddPage(this, title, true);
+ pClientWindow->AddPage(this, title, m_activate_on_create);
pClientWindow->Refresh();
-
+
return true;
}
wxBitmap bmp;
bmp.CopyFromIcon(m_icon);
-
+
wxAuiMDIClientWindow* pClientWindow = pParentFrame->GetClientWindow();
if (pClientWindow != NULL)
{
void wxAuiMDIChildFrame::Init()
{
+ m_activate_on_create = true;
m_pMDIParentFrame = NULL;
#if wxUSE_MENUS
m_pMenuBar = NULL;
#endif // wxUSE_MENUS
}
-bool wxAuiMDIChildFrame::Show(bool WXUNUSED(show))
+bool wxAuiMDIChildFrame::Show(bool show)
{
+ m_activate_on_create = show;
+
// do nothing
return true;
}
{
SetWindowStyleFlag(style);
+ wxSize caption_icon_size =
+ wxSize(wxSystemSettings::GetMetric(wxSYS_SMALLICON_X),
+ wxSystemSettings::GetMetric(wxSYS_SMALLICON_Y));
+ SetUniformBitmapSize(caption_icon_size);
+
if (!wxAuiNotebook::Create(parent,
wxID_ANY,
wxPoint(0,0),
}
wxColour bkcolour = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
- SetBackgroundColour(bkcolour);
+ SetOwnBackgroundColour(bkcolour);
- m_mgr.GetArtProvider()->SetColour(wxAUI_ART_BACKGROUND_COLOUR, bkcolour);
+ m_mgr.GetArtProvider()->SetColour(wxAUI_DOCKART_BACKGROUND_COLOUR, bkcolour);
return true;
}