// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "mdi.h"
#endif
#include "wx/mdi.h"
#include "wx/menu.h"
#include "wx/settings.h"
+#include "wx/icon.h"
#ifdef __VMS__
#pragma message disable nosimpint
XtAddEventHandler((Widget) m_mainWidget, ExposureMask,FALSE,
wxUniversalRepaintProc, (XtPointer) this);
- SetCanAddEventHandler(TRUE);
AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
ChangeBackgroundColour();
wxMDIClientWindow* clientWindow = parentFrame->GetClientWindow();
// Remove page if still there
- if (clientWindow->RemovePage(this))
- clientWindow->Refresh();
+ {
+ int i = clientWindow->FindPage(this);
+
+ if (i != -1)
+ {
+ clientWindow->RemovePage(i);
+ clientWindow->Refresh();
+ }
+ }
// Set the selection to the first remaining page
if (clientWindow->GetPageCount() > 0)
bool wxMDIChildFrame::Show(bool show)
{
- m_visibleStatus = show; /* show-&-hide fix */
+ SetVisibleStatus( show );
return wxWindow::Show(show);
}
void wxMDIChildFrame::SetTitle(const wxString& title)
{
- m_title = title;
+ wxTopLevelWindow::SetTitle( title );
wxMDIClientWindow* clientWindow = GetMDIParentFrame()->GetClientWindow();
- int pageNo = clientWindow->FindPagePosition(this);
- if (pageNo > -1)
- clientWindow->SetPageText(pageNo, title);
+
+ // Remove page if still there
+ {
+ int i = clientWindow->FindPage(this);
+
+ if (i != -1)
+ clientWindow->SetPageText(i, title);
+ }
}
// MDI operations
if (success)
{
wxFont font(10, wxSWISS, wxNORMAL, wxNORMAL);
- wxFont selFont(10, wxSWISS, wxNORMAL, wxBOLD);
- GetTabView()->SetTabFont(font);
- GetTabView()->SetSelectedTabFont(selFont);
- GetTabView()->SetTabSize(120, 18);
- GetTabView()->SetTabSelectionHeight(20);
+ SetFont(font);
return TRUE;
}
else
return FALSE;
}
+int wxMDIClientWindow::FindPage(const wxNotebookPage* page)
+{
+ for (int i = GetPageCount() - 1; i >= 0; --i)
+ {
+ if (GetPage(i) == page)
+ return i;
+ }
+
+ return -1;
+}
+
void wxMDIClientWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
wxWindow::DoSetSize(x, y, width, height, sizeFlags);