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()
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;
}