]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/mdi.cpp
Added implementations for two cases of wxSystemSettingsNative::GetMetric to
[wxWidgets.git] / src / motif / mdi.cpp
index 4ee31d8bbc6adb2f832cf2ccea72c3d75131287e..c4ad44a11ae69a328b4379b3bf35ba5960fd2b87 100644 (file)
@@ -21,6 +21,7 @@
 #include "wx/mdi.h"
 #include "wx/menu.h"
 #include "wx/settings.h"
 #include "wx/mdi.h"
 #include "wx/menu.h"
 #include "wx/settings.h"
+#include "wx/icon.h"
 
 #ifdef __VMS__
 #pragma message disable nosimpint
 
 #ifdef __VMS__
 #pragma message disable nosimpint
@@ -390,7 +391,6 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
     XtAddEventHandler((Widget) m_mainWidget, ExposureMask,FALSE,
         wxUniversalRepaintProc, (XtPointer) this);
 
     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();
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
 
     ChangeBackgroundColour();
@@ -425,8 +425,15 @@ wxMDIChildFrame::~wxMDIChildFrame()
         wxMDIClientWindow* clientWindow = parentFrame->GetClientWindow();
 
         // Remove page if still there
         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)
 
         // Set the selection to the first remaining page
         if (clientWindow->GetPageCount() > 0)
@@ -545,9 +552,14 @@ void wxMDIChildFrame::SetTitle(const wxString& title)
 {
     wxTopLevelWindow::SetTitle( title );
     wxMDIClientWindow* clientWindow = GetMDIParentFrame()->GetClientWindow();
 {
     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
 }
 
 // MDI operations
@@ -633,17 +645,24 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
     if (success)
     {
         wxFont font(10, wxSWISS, wxNORMAL, wxNORMAL);
     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;
 }
 
         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);
 void wxMDIClientWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 {
     wxWindow::DoSetSize(x, y, width, height, sizeFlags);