]> git.saurik.com Git - wxWidgets.git/commitdiff
nativedlg and some interface changes.
authorDavid Webster <Dave.Webster@bhmi.com>
Mon, 16 Sep 2002 04:56:00 +0000 (04:56 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Mon, 16 Sep 2002 04:56:00 +0000 (04:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@17216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/file.lst
src/os2/makefile.va
src/os2/nativdlg.cpp
src/os2/wx23.def

index d9b38dacc307413da8a2afe690ff0104c85d7690..8f2f4891869b34b5ce9b149481b69e6f73bed8fb 100644 (file)
@@ -1,77 +1,39 @@
-List of files yet to be implemented.  As you finish a file, delete it from the list
-
-  ..\os2\$D\accel.obj \
-  ..\os2\$D\app.obj \
-  ..\os2\$D\bitmap.obj \
-  ..\os2\$D\bmpbuttn.obj \
-  ..\os2\$D\brush.obj \
-  ..\os2\$D\button.obj \
-  ..\os2\$D\checkbox.obj \
-  ..\os2\$D\checklst.obj \
-  ..\os2\$D\choice.obj \
-  ..\os2\$D\clipbrd.obj \
-  ..\os2\$D\colour.obj \
-  ..\os2\$D\combobox.obj \
-  ..\os2\$D\control.obj \
-  ..\os2\$D\cursor.obj \
-  ..\os2\$D\data.obj \
-  ..\os2\$D\dc.obj \
-  ..\os2\$D\dcclient.obj \
-  ..\os2\$D\dcmemory.obj \
+List of files yet to be implemented.  As you finish a file, delete it from the list.
+
   ..\os2\$D\dcprint.obj \
-  ..\os2\$D\dcscreen.obj \
-  ..\os2\$D\dialog.obj \
-  ..\os2\$D\dirdlg.obj \
   ..\os2\$D\dnd.obj \
-  ..\os2\$D\filedlg.obj \
-  ..\os2\$D\font.obj \
-  ..\os2\$D\fontdlg.obj \
-  ..\os2\$D\frame.obj \
-  ..\os2\$D\gauge.obj \
-  ..\os2\$D\gdiobj.obj \
-  ..\os2\$D\gsocket.obj \
   ..\os2\$D\helpwin.obj \
-  ..\os2\$D\icon.obj \
-  ..\os2\$D\imaglist.obj \
-  ..\os2\$D\iniconf.obj \
   ..\os2\$D\joystick.obj \
-  ..\os2\$D\listbox.obj \
-  ..\os2\$D\listctrl.obj \
-  ..\os2\$D\main.obj \
-  ..\os2\$D\mdi.obj \
-  ..\os2\$D\menu.obj \
-  ..\os2\$D\menuitem.obj \
   ..\os2\$D\metafile.obj \
-  ..\os2\$D\minifram.obj \
-  ..\os2\$D\msgdlg.obj \
-  ..\os2\$D\nativdlg.obj \
-  ..\os2\$D\notebook.obj \
-  ..\os2\$D\ownerdrw.obj \
-  ..\os2\$D\palette.obj \
-  ..\os2\$D\pen.obj \
-  ..\os2\$D\pnghand.obj \
   ..\os2\$D\print.obj \
-  ..\os2\$D\radiobox.obj \
-  ..\os2\$D\radiobut.obj \
-  ..\os2\$D\region.obj \
-  ..\os2\$D\scrolbar.obj \
-  ..\os2\$D\settings.obj \
-  ..\os2\$D\slider.obj \
-  ..\os2\$D\spinbutt.obj \
-  ..\os2\$D\spinctrl.obj \
-  ..\os2\$D\statbmp.obj \
-  ..\os2\$D\statbox.obj \
-  ..\os2\$D\stattext.obj \
-  ..\os2\$D\statbrpm.obj \
-  ..\os2\$D\tabctrl.obj \
   ..\os2\$D\taskbar.obj \
-  ..\os2\$D\textctrl.obj \
-  ..\os2\$D\thread.obj \
-  ..\os2\$D\toolbar.obj \
-  ..\os2\$D\tooltip.obj \
-  ..\os2\$D\treectrl.obj \
-  ..\os2\$D\utils.obj \
-  ..\os2\$D\utilsexc.obj \
   ..\os2\$D\wave.obj \
-  ..\os2\$D\window.obj
+
+
+List of things that still need doing, include the above files.  Some are more difficult than others.
+
+DND is a needed component of the tree control.  
+
+The tree control is a component of the list and dirctrl's. These are, in turn, components of the dirdlgg.
+
+DDE isn't used much anymore as an IPC protocol, but if OS/2 needs DDE, it should be straight forward.  
+
+Printing is an untouched area, but should not be too difficult to finish.  
+
+Not sure what good a taskbar control is but the other ports have one.  
+
+The wave file is for OS/2 to be able to simply play back a .wav file.  I have not touched
+multimedia as of yet.
+
+There is a problem with TIFF right now for some reason.
+
+The color sliders in the color dialog do not seem to display correctly.
+
+Dialogs are generally not resizable, but in wxOS2, resizing a dialog leaves the title bar un-resized.
+
+Static bitmap controls need some work as they are non-wx standard, requiring a resource.  Probably need
+a "roll-our-own" control that is a simple window with an icon or bitmap drawn directly in it.
+
+
+
 
index 7f384a8e98b9ca647b9379066b1a7feb3aa3cb47..514668cd37af177648ff25af4f45653c41eb20e5 100644 (file)
@@ -515,7 +515,6 @@ OS2OBJS = \
   ..\os2\$D\menuitem.obj \
   ..\os2\$D\metafile.obj \
   ..\os2\$D\mimetype.obj \
-  ..\os2\$D\minifram.obj \
   ..\os2\$D\msgdlg.obj \
   ..\os2\$D\nativdlg.obj \
   ..\os2\$D\notebook.obj \
@@ -597,7 +596,6 @@ OS2LIBOBJS1 = \
   mimetype.obj
 
 OS2LIBOBJS2 = \
-  minifram.obj \
   msgdlg.obj \
   nativdlg.obj \
   notebook.obj \
@@ -862,6 +860,7 @@ $(GENLIBOBJS):
   copy ..\generic\$D\laywin.obj
   copy ..\generic\$D\listctrl.obj
   copy ..\generic\$D\logg.obj
+  copy ..\generic\$D\mdig.obj
   copy ..\generic\$D\numdlgg.obj
   copy ..\generic\$D\panelg.obj
   copy ..\generic\$D\printps.obj
@@ -955,7 +954,6 @@ $(OS2LIBOBJS1):
   copy ..\os2\$D\mimetype.obj
 
 $(OS2LIBOBJS2):
-  copy ..\os2\$D\minifram.obj
   copy ..\os2\$D\msgdlg.obj
   copy ..\os2\$D\nativdlg.obj
   copy ..\os2\$D\notebook.obj
index 040181cdbf7da9ae16b037786492be176af2fc74..fc6cb380f73b4713eff0aca5522603de0c05d907 100644 (file)
 // ---------------------------------------------------------------------------
 
 extern wxWindow* wxWndHook;
-extern MRESULT wxDlgProc(HWND hWnd, UINT message,
-                         MPARAM wParam, MPARAM lParam);
+extern MRESULT wxDlgProc( HWND   hWnd
+                         ,UINT   message
+                         ,MPARAM wParam
+                         ,MPARAM lParam
+                        );
 
 // ===========================================================================
 // implementation
 // ===========================================================================
 
-bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id)
+bool wxWindow::LoadNativeDialog (
+  wxWindow*                         pParent
+, wxWindowID&                       vId
+)
 {
-    m_windowId = id;
-    wxWndHook = this;
+    wxWindow*                       pChild = NULL;
+    HWND                            hWndOwner;
+    HWND                            hWndNext = NULLHANDLE;
+    HENUM                           hEnum;
 
-    m_hWnd = 0; // TODO (WXHWND)::CreateDialog((HINSTANCE)wxGetInstance(),
-                //                     MAKEINTRESOURCE(id),
-                //                     parent ? (HWND)parent->GetHWND() : 0,
-                //                     (DLGPROC) wxDlgProc);
+    if (pParent)
+        hWndOwner = GetHwndOf(pParent);
+    else
+        hWndOwner = HWND_DESKTOP;
+
+    m_windowId = vId;
+    wxWndHook  = this;
+
+    m_hWnd = ::WinLoadDlg( HWND_DESKTOP
+                          ,hWndOwner
+                          ,(PFNWP)wxDlgProc
+                          ,NULL
+                          ,(ULONG)131 // Caption dialog from the resource file
+                          ,(PVOID)this
+                         );
     wxWndHook = NULL;
 
     if ( !m_hWnd )
@@ -56,237 +75,216 @@ bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id)
 
     SubclassWin(GetHWND());
 
-    if ( parent )
-        parent->AddChild(this);
+    if (pParent)
+        pParent->AddChild(this);
     else
         wxTopLevelWindows.Append(this);
 
-    // Enumerate all children
-    HWND hWndNext = NULLHANDLE;
-// TODO    hWndNext = ::GetWindow((HWND) m_hWnd, GW_CHILD);
-
-    wxWindow* child = NULL;
-    if (hWndNext)
-        child = CreateWindowFromHWND(this, (WXHWND) hWndNext);
-
-    while (hWndNext != (HWND) NULL)
-    {
-// TODO:        hWndNext = ::GetWindow(hWndNext, GW_HWNDNEXT);
-        if (hWndNext)
-            child = CreateWindowFromHWND(this, (WXHWND) hWndNext);
-    }
-
+    //
+    // Enumerate the children
+    //
+    hEnum = ::WinBeginEnumWindows(GetHwndOf(pParent));
+    while ((hWndNext = ::WinGetNextWindow(hEnum)) != NULLHANDLE)
+        pChild = CreateWindowFromHWND( this
+                                      ,(WXHWND)hWndNext
+                                     );
+    ::WinEndEnumWindows(hEnum);
     return TRUE;
-}
+} // end of wxWindow::LoadNativeDialog
 
-bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name)
+bool wxWindow::LoadNativeDialog (
+  wxWindow*                         pParent
+, const wxString&                   rsName
+)
 {
-    SetName(name);
+    HWND                            hWndOwner;
+
+    if (pParent)
+        hWndOwner = GetHwndOf(pParent);
+    else
+        hWndOwner = HWND_DESKTOP;
+    SetName(rsName);
 
     wxWndHook = this;
-    m_hWnd = 0; //TODO: (WXHWND)::CreateDialog((HINSTANCE) wxGetInstance(),
-                //                    name.c_str(),
-                //                    parent ? (HWND)parent->GetHWND() : 0,
-                //                    (DLGPROC)wxDlgProc);
+    m_hWnd = ::WinLoadDlg( HWND_DESKTOP
+                          ,hWndOwner
+                          ,(PFNWP)wxDlgProc
+                          ,NULL
+                          ,(ULONG)131 // Caption dialog from the resource file
+                          ,(PVOID)this
+                         );
     wxWndHook = NULL;
 
-    if ( !m_hWnd )
+    if (!m_hWnd)
         return FALSE;
 
     SubclassWin(GetHWND());
 
-    if ( parent )
-        parent->AddChild(this);
+    if (pParent)
+        pParent->AddChild(this);
     else
         wxTopLevelWindows.Append(this);
-
-    // FIXME why don't we enum all children here?
-
     return TRUE;
-}
+} // end of wxWindow::LoadNativeDialog
 
 // ---------------------------------------------------------------------------
 // look for child by id
 // ---------------------------------------------------------------------------
-
-wxWindow* wxWindow::GetWindowChild1(wxWindowID id)
+wxWindow* wxWindow::GetWindowChild1 (
+  wxWindowID                        vId
+)
 {
-    if ( m_windowId == id )
+    if (m_windowId == vId)
         return this;
 
-    wxWindowList::Node *node = GetChildren().GetFirst();
-    while ( node )
+    wxWindowList::Node*             pNode = GetChildren().GetFirst();
+
+    while (pNode)
     {
-        wxWindow* child = node->GetData();
-        wxWindow* win = child->GetWindowChild1(id);
-        if ( win )
-            return win;
+        wxWindow*                   pChild = pNode->GetData();
+        wxWindow*                   pWin   = pChild->GetWindowChild1(vId);
 
-        node = node->GetNext();
-    }
+        if (pWin)
+            return pWin;
 
+        pNode = pNode->GetNext();
+    }
     return NULL;
-}
+} // end of wxWindow::GetWindowChild1
 
-wxWindow* wxWindow::GetWindowChild(wxWindowID id)
+wxWindow* wxWindow::GetWindowChild (
+  wxWindowID                        vId
+)
 {
-    wxWindow* win = GetWindowChild1(id);
-    if ( !win )
+    wxWindow*                       pWin = GetWindowChild1(vId);
+
+    if (!pWin)
     {
-        HWND hWnd = 0; // TODO: ::GetDlgItem((HWND) GetHWND(), id);
+        HWND                        hWnd = 0; // TODO: ::GetDlgItem((HWND) GetHWND(), id);
 
         if (hWnd)
         {
-            wxWindow* child = CreateWindowFromHWND(this, (WXHWND) hWnd);
-            if (child)
+            wxWindow*               pChild = CreateWindowFromHWND( this
+                                                                  ,(WXHWND)hWnd
+                                                                 );
+            if (pChild)
             {
-                child->AddChild(this);
-                return child;
+                pChild->AddChild(this);
+                return pChild;
             }
         }
     }
-
     return NULL;
-}
+} // end of wxWindow::GetWindowChild
 
 // ---------------------------------------------------------------------------
 // create wxWin window from a native HWND
 // ---------------------------------------------------------------------------
 
-wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
+wxWindow* wxWindow::CreateWindowFromHWND (
+  wxWindow*                         pParent
+, WXHWND                            hWnd
+)
 {
-    wxString str(wxGetWindowClass(hWnd));
-    str.UpperCase();
+    wxString                        sStr(wxGetWindowClass(hWnd));
+    long                            lId    = wxGetWindowId(hWnd);
+    long                            lStyle = ::WinQueryWindowULong((HWND)hWnd
+                                                                   ,QWL_STYLE
+                                                                  );
+    wxWindow*                       pWin = NULL;
 
-    long id = wxGetWindowId(hWnd);
-    long style = 0; // TODO: GetWindowLong((HWND) hWnd, GWL_STYLE);
+    sStr.UpperCase();
 
-    wxWindow* win = NULL;
 
-// TODO:
-/*
-    if (str == wxT("BUTTON"))
+
+    if (sStr == wxT("BUTTON"))
     {
-        int style1 = (style & 0xFF);
-        if ((style1 == BS_3STATE) || (style1 == BS_AUTO3STATE) || (style1 == BS_AUTOCHECKBOX) ||
-            (style1 == BS_CHECKBOX))
-        {
-            win = new wxCheckBox;
-        }
-        else if ((style1 == BS_AUTORADIOBUTTON) || (style1 == BS_RADIOBUTTON))
+        if (lStyle == BS_AUTOCHECKBOX)
         {
-            win = new wxRadioButton;
+            pWin = new wxCheckBox;
         }
-        else if (style & BS_BITMAP)
+        else if (lStyle == BS_AUTORADIOBUTTON)
         {
-            // TODO: how to find the bitmap?
-            win = new wxBitmapButton;
-            wxLogError(wxT("Have not yet implemented bitmap button as BS_BITMAP button."));
+            pWin = new wxRadioButton;
         }
-        else if (style1 == BS_OWNERDRAW)
+        else if (lStyle & BS_BITMAP || lStyle == BS_USERBUTTON)
         {
-            // TODO: how to find the bitmap?
-            // TODO: can't distinguish between bitmap button and bitmap static.
-            // Change implementation of wxStaticBitmap to SS_BITMAP.
-            // PROBLEM: this assumes that we're using resource-based bitmaps.
-            // So maybe need 2 implementations of bitmap buttons/static controls,
-            // with a switch in the drawing code. Call default proc if BS_BITMAP.
-            win = new wxBitmapButton;
+            pWin = new wxBitmapButton;
         }
-        else if ((style1 == BS_PUSHBUTTON) || (style1 == BS_DEFPUSHBUTTON))
+        else if (lStyle == BS_PUSHBUTTON)
         {
-            win = new wxButton;
+            pWin = new wxButton;
         }
-        else if (style1 == BS_GROUPBOX)
+        else if (lStyle == SS_GROUPBOX)
         {
-            win = new wxStaticBox;
+            pWin = new wxStaticBox;
         }
         else
         {
-            wxLogError(wxT("Don't know what kind of button this is: id = %d"),
-                       id);
+            wxLogError(wxT("Don't know what kind of button this is: id = %ld"),
+                       lId);
         }
     }
-    else if (str == wxT("COMBOBOX"))
+    else if (sStr == wxT("COMBOBOX"))
     {
-        win = new wxComboBox;
+        pWin = new wxComboBox;
     }
-    // TODO: Problem if the user creates a multiline - but not rich text - text control,
-    // since wxWin assumes RichEdit control for this. Should have m_isRichText in
-    // wxTextCtrl. Also, convert as much of the window style as is necessary
-    // for correct functioning.
-    // Could have wxWindow::AdoptAttributesFromHWND(WXHWND)
-    // to be overridden by each control class.
-    else if (str == wxT("EDIT"))
+    else if (sStr == wxT("EDIT"))
     {
-        win = new wxTextCtrl;
+        pWin = new wxTextCtrl;
     }
-    else if (str == wxT("LISTBOX"))
+    else if (sStr == wxT("LISTBOX"))
     {
-        win = new wxListBox;
+        pWin = new wxListBox;
     }
-    else if (str == wxT("SCROLLBAR"))
+    else if (sStr == wxT("SCROLLBAR"))
     {
-        win = new wxScrollBar;
+        pWin = new wxScrollBar;
     }
-    else if (str == wxT("MSCTLS_UPDOWN32"))
+    else if (sStr == wxT("MSCTLS_UPDOWN32"))
     {
-        win = new wxSpinButton;
+        pWin = new wxSpinButton;
     }
-    else if (str == wxT("MSCTLS_TRACKBAR32"))
+    else if (sStr == wxT("MSCTLS_TRACKBAR32"))
     {
-        // Need to ascertain if it's horiz or vert
-        win = new wxSlider;
+        pWin = new wxSlider;
     }
-    else if (str == wxT("STATIC"))
+    else if (sStr == wxT("STATIC"))
     {
-        int style1 = (style & 0xFF);
-
-        if ((style1 == SS_LEFT) || (style1 == SS_RIGHT) || (style1 == SS_SIMPLE))
-            win = new wxStaticText;
-        else if (style1 == SS_BITMAP)
+        if (lStyle == SS_TEXT)
+            pWin = new wxStaticText;
+        else if (lStyle == SS_ICON)
         {
-            win = new wxStaticBitmap;
-
-            // Help! this doesn't correspond with the wxWin implementation.
-            wxLogError(wxT("Please make SS_BITMAP statics into owner-draw buttons."));
+            pWin = new wxStaticBitmap;
         }
     }
     else
     {
-        wxString msg(wxT("Don't know how to convert from Windows class "));
-        msg += str;
-        wxLogError(msg);
+        wxString                    sMsg(wxT("Don't know how to convert from Windows class "));
+
+        sMsg += sStr;
+        wxLogError(sMsg);
     }
-*/
-    if (win)
+    if (pWin)
     {
-        parent->AddChild(win);
-        win->SetEventHandler(win);
-        win->SetHWND(hWnd);
-        win->SetId(id);
-        win->SubclassWin(hWnd);
-        win->AdoptAttributesFromHWND();
-        win->SetupColours();
-
-        return win;
+        pParent->AddChild(pWin);
+        pWin->SetEventHandler(pWin);
+        pWin->SetHWND(hWnd);
+        pWin->SetId(lId);
+        pWin->SubclassWin(hWnd);
+        pWin->AdoptAttributesFromHWND();
+        pWin->SetupColours();
+        return pWin;
     }
     else
         return NULL;
-}
+} // end of wxWindow::CreateWindowFromHWND
 
+//
 // Make sure the window style (etc.) reflects the HWND style (roughly)
-void wxWindow::AdoptAttributesFromHWND(void)
+//
+void wxWindow::AdoptAttributesFromHWND()
 {
-    HWND hWnd = (HWND) GetHWND();
-// TODO:
-/*
-    long style = GetWindowLong((HWND) hWnd, GWL_STYLE);
-
-    if (style & WS_VSCROLL)
-        m_windowStyle |= wxVSCROLL;
-    if (style & WS_HSCROLL)
-        m_windowStyle |= wxHSCROLL;
-*/
-}
+  // Does nothing under OS/2
+} // end of wxWindow::AdoptAttributesFromHWND
 
index fefe5ab4c42be76e36e612c0b95fadfe7e0e5193..769f6100cc9c622876f79f2a0e8f66de6c891094 100644 (file)
@@ -9795,6 +9795,141 @@ EXPORTS
       __ct__10wxLogFrameFP7wxFrameP11wxLogWindowPCc
       ;wxLogWindow::wxLogWindow(wxFrame*,const char*,unsigned long,unsigned long)
       __ct__11wxLogWindowFP7wxFramePCcUlT3
+  ;From object file:  ..\generic\mdig.cpp
+    ;PUBDEFs (Symbols available from object file):
+      ;wxGenericMDIClientWindow::CreateClient(wxGenericMDIParentFrame*,long)
+      CreateClient__24wxGenericMDIClientWindowFP23wxGenericMDIParentFramel
+      ;wxGenericMDIChildFrame::DoMoveWindow(int,int,int,int)
+      DoMoveWindow__22wxGenericMDIChildFrameFiN31
+      ;wxConstructorForwxGenericMDIParentFrame()
+      wxConstructorForwxGenericMDIParentFrame__Fv
+      ;wxGenericMDIParentFrame::RemoveWindowMenu(wxMenuBar*)
+      RemoveWindowMenu__23wxGenericMDIParentFrameFP9wxMenuBar
+      ;wxGenericMDIParentFrame::OnCreateClient()
+      OnCreateClient__23wxGenericMDIParentFrameFv
+      ;wxGenericMDIParentFrame::ActivatePrevious()
+      ActivatePrevious__23wxGenericMDIParentFrameFv
+      ;wxGenericMDIParentFrame::ActivateNext()
+      ActivateNext__23wxGenericMDIParentFrameFv
+      ;wxMDIClientWindow::sm_classwxMDIClientWindow
+      sm_classwxMDIClientWindow__17wxMDIClientWindow
+      ;wxGenericMDIClientWindow::sm_eventTable
+      sm_eventTable__24wxGenericMDIClientWindow
+      ;wxGenericMDIClientWindow::wxGenericMDIClientWindow(wxGenericMDIParentFrame*,long)
+      __ct__24wxGenericMDIClientWindowFP23wxGenericMDIParentFramel
+      __vft24wxGenericMDIClientWindow8wxObject
+      ;wxGenericMDIClientWindow::OnPageChanged(wxNotebookEvent&)
+      OnPageChanged__24wxGenericMDIClientWindowFR15wxNotebookEvent
+      ;wxGenericMDIParentFrame::SetChildMenuBar(wxGenericMDIChildFrame*)
+      SetChildMenuBar__23wxGenericMDIParentFrameFP22wxGenericMDIChildFrame
+      ;wxGenericMDIChildFrame::sm_eventTableEntries
+      sm_eventTableEntries__22wxGenericMDIChildFrame
+      ;wxMDIParentFrame::sm_classwxMDIParentFrame
+      sm_classwxMDIParentFrame__16wxMDIParentFrame
+      ;wxGenericMDIParentFrame::sm_classwxGenericMDIParentFrame
+      sm_classwxGenericMDIParentFrame__23wxGenericMDIParentFrame
+      ;wxGenericMDIClientWindow::SetSelection(int)
+      SetSelection__24wxGenericMDIClientWindowFi
+      ;wxGenericMDIChildFrame::wxGenericMDIChildFrame()
+      __ct__22wxGenericMDIChildFrameFv
+      ;wxGenericMDIClientWindow::wxGenericMDIClientWindow()
+      __ct__24wxGenericMDIClientWindowFv
+      ;wxGenericMDIParentFrame::SetMenuBar(wxMenuBar*)
+      SetMenuBar__23wxGenericMDIParentFrameFP9wxMenuBar
+      ;wxGenericMDIParentFrame::AddWindowMenu(wxMenuBar*)
+      AddWindowMenu__23wxGenericMDIParentFrameFP9wxMenuBar
+      ;wxGenericMDIParentFrame::ProcessEvent(wxEvent&)
+      ProcessEvent__23wxGenericMDIParentFrameFR7wxEvent
+      __vft23wxGenericMDIParentFrame8wxObject
+      ;wxGenericMDIParentFrame::DoHandleMenu(wxCommandEvent&)
+      DoHandleMenu__23wxGenericMDIParentFrameFR14wxCommandEvent
+      ;wxGenericMDIChildFrame::sm_classwxGenericMDIChildFrame
+      sm_classwxGenericMDIChildFrame__22wxGenericMDIChildFrame
+      ;wxGenericMDIChildFrame::sm_eventTable
+      sm_eventTable__22wxGenericMDIChildFrame
+      ;wxMDIChildFrame::sm_classwxMDIChildFrame
+      sm_classwxMDIChildFrame__15wxMDIChildFrame
+      ;wxGenericMDIChildFrame::~wxGenericMDIChildFrame()
+      __dt__22wxGenericMDIChildFrameFv
+      ;wxGenericMDIClientWindow::~wxGenericMDIClientWindow()
+      __dt__24wxGenericMDIClientWindowFv
+      ;wxGenericMDIChildFrame::SetMenuBar(wxMenuBar*)
+      SetMenuBar__22wxGenericMDIChildFrameFP9wxMenuBar
+      ;wxGenericMDIChildFrame::GetMenuBar() const
+      GetMenuBar__22wxGenericMDIChildFrameCFv
+      ;wxGenericMDIParentFrame::GetActiveChild() const
+      GetActiveChild__23wxGenericMDIParentFrameCFv
+      ;wxGenericMDIChildFrame::Activate()
+      Activate__22wxGenericMDIChildFrameFv
+      ;wxGenericMDIParentFrame::wxGenericMDIParentFrame(wxWindow*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
+      __ct__23wxGenericMDIParentFrameFP8wxWindowiRC8wxStringRC7wxPointRC6wxSizelT3
+      ;wxGenericMDIClientWindow::sm_classwxGenericMDIClientWindow
+      sm_classwxGenericMDIClientWindow__24wxGenericMDIClientWindow
+      ;wxGenericMDIChildFrame::OnSize(wxSizeEvent&)
+      OnSize__22wxGenericMDIChildFrameFR11wxSizeEvent
+      __vft22wxGenericMDIChildFrame8wxObject
+      ;wxGenericMDIClientWindow::OnSize(wxSizeEvent&)
+      OnSize__24wxGenericMDIClientWindowFR11wxSizeEvent
+      ;wxGenericMDIChildFrame::OnCloseWindow(wxCloseEvent&)
+      OnCloseWindow__22wxGenericMDIChildFrameFR12wxCloseEvent
+      ;wxGenericMDIParentFrame::SetWindowMenu(wxMenu*)
+      SetWindowMenu__23wxGenericMDIParentFrameFP6wxMenu
+      ;wxGenericMDIParentFrame::sm_eventTableEntries
+      sm_eventTableEntries__23wxGenericMDIParentFrame
+      ;wxGenericMDIChildFrame::SetMDIParentFrame(wxGenericMDIParentFrame*)
+      SetMDIParentFrame__22wxGenericMDIChildFrameFP23wxGenericMDIParentFrame
+      ;wxGenericMDIParentFrame::DoGetClientSize(int*,int*) const
+      DoGetClientSize__23wxGenericMDIParentFrameCFPiT1
+      ;wxGenericMDIParentFrame::wxGenericMDIParentFrame()
+      __ct__23wxGenericMDIParentFrameFv
+      ;wxConstructorForwxGenericMDIClientWindow()
+      wxConstructorForwxGenericMDIClientWindow__Fv
+      ;wxConstructorForwxGenericMDIChildFrame()
+      wxConstructorForwxGenericMDIChildFrame__Fv
+      ;wxGenericMDIParentFrame::Init()
+      Init__23wxGenericMDIParentFrameFv
+      ;wxGenericMDIChildFrame::GetMDIParentFrame() const
+      GetMDIParentFrame__22wxGenericMDIChildFrameCFv
+      ;wxGenericMDIClientWindow::GetEventTable() const
+      GetEventTable__24wxGenericMDIClientWindowCFv
+      ;wxGenericMDIParentFrame::GetEventTable() const
+      GetEventTable__23wxGenericMDIParentFrameCFv
+      ;wxGenericMDIParentFrame::GetClientWindow() const
+      GetClientWindow__23wxGenericMDIParentFrameCFv
+      ;wxGenericMDIChildFrame::Create(wxGenericMDIParentFrame*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
+      Create__22wxGenericMDIChildFrameFP23wxGenericMDIParentFrameiRC8wxStringRC7wxPointRC6wxSizelT3
+      ;wxGenericMDIChildFrame::OnMenuHighlight(wxMenuEvent&)
+      OnMenuHighlight__22wxGenericMDIChildFrameFR11wxMenuEvent
+      ;wxGenericMDIChildFrame::OnActivate(wxActivateEvent&)
+      OnActivate__22wxGenericMDIChildFrameFR15wxActivateEvent
+      ;wxGenericMDIClientWindow::PageChanged(int,int)
+      PageChanged__24wxGenericMDIClientWindowFiT1
+      ;wxGenericMDIParentFrame::sm_eventTable
+      sm_eventTable__23wxGenericMDIParentFrame
+      ;wxGenericMDIParentFrame::~wxGenericMDIParentFrame()
+      __dt__23wxGenericMDIParentFrameFv
+      ;wxConstructorForwxMDIParentFrame()
+      wxConstructorForwxMDIParentFrame__Fv
+      ;wxConstructorForwxMDIClientWindow()
+      wxConstructorForwxMDIClientWindow__Fv
+      ;wxConstructorForwxMDIChildFrame()
+      wxConstructorForwxMDIChildFrame__Fv
+      ;wxGenericMDIChildFrame::Init()
+      Init__22wxGenericMDIChildFrameFv
+      ;wxGenericMDIChildFrame::GetTitle() const
+      GetTitle__22wxGenericMDIChildFrameCFv
+      ;wxGenericMDIChildFrame::GetEventTable() const
+      GetEventTable__22wxGenericMDIChildFrameCFv
+      ;wxGenericMDIChildFrame::ApplyMDIChildFrameRect()
+      ApplyMDIChildFrameRect__22wxGenericMDIChildFrameFv
+      ;wxGenericMDIChildFrame::wxGenericMDIChildFrame(wxGenericMDIParentFrame*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
+      __ct__22wxGenericMDIChildFrameFP23wxGenericMDIParentFrameiRC8wxStringRC7wxPointRC6wxSizelT3
+      ;wxGenericMDIClientWindow::sm_eventTableEntries
+      sm_eventTableEntries__24wxGenericMDIClientWindow
+      ;wxGenericMDIChildFrame::SetTitle(const wxString&)
+      SetTitle__22wxGenericMDIChildFrameFRC8wxString
+      ;wxGenericMDIParentFrame::Create(wxWindow*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
+      Create__23wxGenericMDIParentFrameFP8wxWindowiRC8wxStringRC7wxPointRC6wxSizelT3
   ;From object file:  ..\generic\numdlgg.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxGetNumberFromUser(const wxString&,const wxString&,const wxString&,long,long,long,wxWindow*,const wxPoint&)
@@ -13369,111 +13504,6 @@ EXPORTS
   ;From object file:  ..\os2\main.cpp
     ;PUBDEFs (Symbols available from object file):
       main
-  ;From object file:  ..\os2\mdi.cpp
-    ;PUBDEFs (Symbols available from object file):
-      ;wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent&)
-      OnSysColourChanged__16wxMDIParentFrameFR23wxSysColourChangedEvent
-      ;wxMDIClientWindow::GetEventTable() const
-      GetEventTable__17wxMDIClientWindowCFv
-      ;wxMDIChildFrame::~wxMDIChildFrame()
-      __dt__15wxMDIChildFrameFv
-      ;wxMDIParentFrame::ArrangeIcons()
-      ArrangeIcons__16wxMDIParentFrameFv
-      ;wxMDIParentFrame::ActivatePrevious()
-      ActivatePrevious__16wxMDIParentFrameFv
-      ;wxMDIClientWindow::sm_classwxMDIClientWindow
-      sm_classwxMDIClientWindow__17wxMDIClientWindow
-      ;wxMDIParentFrame::OnSize(wxSizeEvent&)
-      OnSize__16wxMDIParentFrameFR11wxSizeEvent
-      ;wxMDIChildFrame::Maximize(unsigned long)
-      Maximize__15wxMDIChildFrameFUl
-      ;wxMDIClientWindow::CreateClient(wxMDIParentFrame*,long)
-      CreateClient__17wxMDIClientWindowFP16wxMDIParentFramel
-      ;wxMDIChildFrame::DoSetClientSize(int,int)
-      DoSetClientSize__15wxMDIChildFrameFiT1
-      ;wxMDIParentFrame::sm_classwxMDIParentFrame
-      sm_classwxMDIParentFrame__16wxMDIParentFrame
-      ;wxMDIParentFrame::GetEventTable() const
-      GetEventTable__16wxMDIParentFrameCFv
-      ;wxMDIParentFrame::~wxMDIParentFrame()
-      __dt__16wxMDIParentFrameFv
-      ;wxMDIParentFrame::Tile()
-      Tile__16wxMDIParentFrameFv
-      ;wxMDIChildFrame::Restore()
-      Restore__15wxMDIChildFrameFv
-      ;wxMDIParentFrame::OS2WindowProc(unsigned int,void*,void*)
-      OS2WindowProc__16wxMDIParentFrameFUiPvT2
-      ;wxMDIParentFrame::OS2TranslateMessage(void**)
-      OS2TranslateMessage__16wxMDIParentFrameFPPv
-      ;wxMDIParentFrame::OS2DefWindowProc(unsigned int,void*,void*)
-      OS2DefWindowProc__16wxMDIParentFrameFUiPvT2
-      ;wxMDIParentFrame::InternalSetMenuBar()
-      InternalSetMenuBar__16wxMDIParentFrameFv
-      ;wxMDIChildFrame::HandleWindowPosChanging(void*)
-      HandleWindowPosChanging__15wxMDIChildFrameFPv
-      ;wxMDIParentFrame::Cascade()
-      Cascade__16wxMDIParentFrameFv
-      ;wxMDIParentFrame::HandleCommand(unsigned short,unsigned short,unsigned long)
-      HandleCommand__16wxMDIParentFrameFUsT1Ul
-      ;wxMDIClientWindow::OnScroll(wxScrollEvent&)
-      OnScroll__17wxMDIClientWindowFR13wxScrollEvent
-      ;wxMDIChildFrame::HandleCommand(unsigned short,unsigned short,unsigned long)
-      HandleCommand__15wxMDIChildFrameFUsT1Ul
-      ;wxMDIChildFrame::sm_classwxMDIChildFrame
-      sm_classwxMDIChildFrame__15wxMDIChildFrame
-      ;wxMDIParentFrame::wxMDIParentFrame()
-      __ct__16wxMDIParentFrameFv
-      ;wxMDIChildFrame::OS2TranslateMessage(void**)
-      OS2TranslateMessage__15wxMDIChildFrameFPPv
-      ;wxMDIChildFrame::InternalSetMenuBar()
-      InternalSetMenuBar__15wxMDIChildFrameFv
-      ;wxMDIParentFrame::Create(wxWindow*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
-      Create__16wxMDIParentFrameFP8wxWindowiRC8wxStringRC7wxPointRC6wxSizelT3
-      __vft16wxMDIParentFrame8wxObject
-      ;wxMDIChildFrame::HandleSize(int,int,unsigned int)
-      HandleSize__15wxMDIChildFrameFiT1Ui
-      ;wxMDIParentFrame::sm_eventTable
-      sm_eventTable__16wxMDIParentFrame
-      ;wxMDIParentFrame::sm_eventTableEntries
-      sm_eventTableEntries__16wxMDIParentFrame
-      ;wxMDIParentFrame::GetActiveChild() const
-      GetActiveChild__16wxMDIParentFrameCFv
-      ;wxMDIParentFrame::OnCreateClient()
-      OnCreateClient__16wxMDIParentFrameFv
-      ;wxMDIChildFrame::OS2WindowProc(unsigned int,void*,void*)
-      OS2WindowProc__15wxMDIChildFrameFUiPvT2
-      ;wxMDIChildFrame::OS2DestroyWindow()
-      OS2DestroyWindow__15wxMDIChildFrameFv
-      ;wxMDIParentFrame::HandleActivate(int,unsigned long,unsigned long)
-      HandleActivate__16wxMDIParentFrameFiUlT2
-      ;wxMDIClientWindow::sm_eventTableEntries
-      sm_eventTableEntries__17wxMDIClientWindow
-      __vft15wxMDIChildFrame8wxObject
-      __vft17wxMDIClientWindow8wxObject
-      ;wxMDIChildFrame::DoGetPosition(int*,int*) const
-      DoGetPosition__15wxMDIChildFrameCFPiT1
-      ;wxConstructorForwxMDIParentFrame()
-      wxConstructorForwxMDIParentFrame__Fv
-      ;wxConstructorForwxMDIClientWindow()
-      wxConstructorForwxMDIClientWindow__Fv
-      ;wxConstructorForwxMDIChildFrame()
-      wxConstructorForwxMDIChildFrame__Fv
-      ;wxMDIChildFrame::wxMDIChildFrame()
-      __ct__15wxMDIChildFrameFv
-      ;wxMDIChildFrame::ResetWindowStyle(void*)
-      ResetWindowStyle__15wxMDIChildFrameFPv
-      ;wxMDIChildFrame::OS2DefWindowProc(unsigned int,void*,void*)
-      OS2DefWindowProc__15wxMDIChildFrameFUiPvT2
-      ;wxMDIChildFrame::HandleMDIActivate(long,unsigned long,unsigned long)
-      HandleMDIActivate__15wxMDIChildFrameFlUlT2
-      ;wxMDIChildFrame::Activate()
-      Activate__15wxMDIChildFrameFv
-      ;wxMDIParentFrame::ActivateNext()
-      ActivateNext__16wxMDIParentFrameFv
-      ;wxMDIChildFrame::Create(wxMDIParentFrame*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
-      Create__15wxMDIChildFrameFP16wxMDIParentFrameiRC8wxStringRC7wxPointRC6wxSizelT3
-      ;wxMDIClientWindow::sm_eventTable
-      sm_eventTable__17wxMDIClientWindow
   ;From object file:  ..\os2\menu.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxMenuBar::wxMenuBar(long)
@@ -13665,12 +13695,6 @@ EXPORTS
       GetFileTypeFromMimeType__22wxMimeTypesManagerImplFRC8wxString
       ;wxFileTypeImpl::GetExtensions(wxArrayString&)
       GetExtensions__14wxFileTypeImplFR13wxArrayString
-  ;From object file:  ..\os2\minifram.cpp
-    ;PUBDEFs (Symbols available from object file):
-      ;wxMiniFrame::sm_classwxMiniFrame
-      sm_classwxMiniFrame__11wxMiniFrame
-      ;wxConstructorForwxMiniFrame()
-      wxConstructorForwxMiniFrame__Fv
   ;From object file:  ..\os2\msgdlg.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxMessageDialog::ShowModal()