}
#endif // wxUSE_MENUS
- wxFrame::Create(parent, id, title, pos, size, style, name);
- OnCreateClient();
- return true;
+ if ( !wxFrame::Create(parent, id, title, pos, size, style, name) )
+ return false;
+
+ m_pClientWindow = OnCreateClient();
+ return m_pClientWindow != NULL;
}
wxAuiMDIClientWindow *wxAuiMDIParentFrame::OnCreateClient()
{
- m_pClientWindow = new wxAuiMDIClientWindow( this );
- return m_pClientWindow;
+ return new wxAuiMDIClientWindow( this );
}
void wxAuiMDIParentFrame::ActivateNext()
// is, but those are the expected symantics. No style flag is passed
// onto the panel underneath.
if (style & wxMINIMIZE)
- m_activate_on_create = false;
+ m_activateOnCreate = false;
Create(parent, id, title, wxDefaultPosition, size, 0, name);
}
wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{
wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
- if (pParentFrame && pParentFrame->GetActiveChild() == this)
+ if (pParentFrame)
{
- pParentFrame->SetActiveChild(NULL);
- pParentFrame->SetChildMenuBar(NULL);
+ if (pParentFrame->GetActiveChild() == this)
+ {
+ pParentFrame->SetActiveChild(NULL);
+ pParentFrame->SetChildMenuBar(NULL);
+ }
+ wxAuiMDIClientWindow* pClientWindow = pParentFrame->GetClientWindow();
+ wxASSERT(pClientWindow);
+ int idx = pClientWindow->GetPageIndex(this);
+ if (idx != wxNOT_FOUND)
+ {
+ pClientWindow->RemovePage(idx);
+ }
}
#if wxUSE_MENUS
const wxString& name)
{
wxAuiMDIClientWindow* pClientWindow = parent->GetClientWindow();
- wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), wxT("Missing MDI client window."));
+ wxASSERT_MSG((pClientWindow != NULL), wxT("Missing MDI client window."));
// see comment in constructor
if (style & wxMINIMIZE)
- m_activate_on_create = false;
+ m_activateOnCreate = false;
wxSize cli_size = pClientWindow->GetClientSize();
m_title = title;
- pClientWindow->AddPage(this, title, m_activate_on_create);
+ pClientWindow->AddPage(this, title, m_activateOnCreate);
pClientWindow->Refresh();
return true;
{
// get icon with the system icon size
SetIcon(icons.GetIcon(-1));
- m_icon_bundle = icons;
+ m_iconBundle = icons;
}
const wxIconBundle& wxAuiMDIChildFrame::GetIcons() const
{
- return m_icon_bundle;
+ return m_iconBundle;
}
void wxAuiMDIChildFrame::SetIcon(const wxIcon& icon)
void wxAuiMDIChildFrame::Init()
{
- m_activate_on_create = true;
+ m_activateOnCreate = true;
m_pMDIParentFrame = NULL;
#if wxUSE_MENUS
m_pMenuBar = NULL;
bool wxAuiMDIChildFrame::Show(bool show)
{
- m_activate_on_create = show;
+ m_activateOnCreate = show;
// do nothing
return true;
void wxAuiMDIChildFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
- m_mdi_newrect = wxRect(x, y, width, height);
+ m_mdiNewRect = wxRect(x, y, width, height);
#ifdef __WXGTK__
wxPanel::DoSetSize(x,y,width, height, sizeFlags);
#else
void wxAuiMDIChildFrame::DoMoveWindow(int x, int y, int width, int height)
{
- m_mdi_newrect = wxRect(x, y, width, height);
+ m_mdiNewRect = wxRect(x, y, width, height);
}
void wxAuiMDIChildFrame::ApplyMDIChildFrameRect()
{
- if (m_mdi_currect != m_mdi_newrect)
+ if (m_mdiCurRect != m_mdiNewRect)
{
- wxPanel::DoMoveWindow(m_mdi_newrect.x, m_mdi_newrect.y,
- m_mdi_newrect.width, m_mdi_newrect.height);
- m_mdi_currect = m_mdi_newrect;
+ wxPanel::DoMoveWindow(m_mdiNewRect.x, m_mdiNewRect.y,
+ m_mdiNewRect.width, m_mdiNewRect.height);
+ m_mdiCurRect = m_mdiNewRect;
}
}
CreateClient(parent, style);
}
-wxAuiMDIClientWindow::~wxAuiMDIClientWindow()
-{
- DestroyChildren();
-}
-
bool wxAuiMDIClientWindow::CreateClient(wxAuiMDIParentFrame* parent, long style)
{
SetWindowStyleFlag(style);
// notify old active child that it has been deactivated
- if (old_selection != -1)
+ if ((old_selection != -1) && (old_selection < (int)GetPageCount()))
{
wxAuiMDIChildFrame* old_child = (wxAuiMDIChildFrame*)GetPage(old_selection);
wxASSERT_MSG(old_child, wxT("wxAuiMDIClientWindow::PageChanged - null page pointer"));