From 430974f8c443dcbe1616a85238ead7db5fb88e43 Mon Sep 17 00:00:00 2001
From: David Webster <Dave.Webster@bhmi.com>
Date: Mon, 13 May 2002 18:10:59 +0000
Subject: [PATCH] Weekly catch up.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 include/wx/os2/button.h   |   7 ++
 include/wx/os2/popupwin.h |  23 +++--
 include/wx/os2/setup0.h   |   4 +-
 src/os2/button.cpp        |  99 +++++++++++++++-------
 src/os2/makefile.va       |   3 +
 src/os2/window.cpp        | 100 ++++++++++++++++++++--
 src/os2/wx23.def          | 172 ++++++++++++++++++++++++++++++++------
 7 files changed, 336 insertions(+), 72 deletions(-)

diff --git a/include/wx/os2/button.h b/include/wx/os2/button.h
index ebfe1c1a35..47a0bcd504 100644
--- a/include/wx/os2/button.h
+++ b/include/wx/os2/button.h
@@ -81,6 +81,13 @@ class WXDLLEXPORT wxButton: public wxButtonBase
 protected:
 
     bool            SendClickEvent(void);
+    void            SetTmpDefault(void);
+    void            UnsetTmpDefault(void);
+
+    static void UpdateDefaultStyle( wxWindow* pWinDefault
+                                   ,wxWindow* pWinOldDefault
+                                  );
+
     virtual wxSize  DoGetBestSize(void) const;
     virtual WXDWORD OS2GetStyle( long     style
                                 ,WXDWORD* exstyle
diff --git a/include/wx/os2/popupwin.h b/include/wx/os2/popupwin.h
index 08ebecbf7f..9dbaac6564 100644
--- a/include/wx/os2/popupwin.h
+++ b/include/wx/os2/popupwin.h
@@ -21,15 +21,20 @@ class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase
 public:
     wxPopupWindow() { }
 
-    wxPopupWindow(wxWindow *parent) { (void)Create(parent); }
+    wxPopupWindow(wxWindow* pParent) { (void)Create(pParent); }
 
-    bool Create(wxWindow *parent, int flags = wxBORDER_NONE)
-    {
-        return wxPopupWindowBase::Create(parent) &&
-               wxWindow::Create(parent, -1,
-                                wxDefaultPosition, wxDefaultSize,
-                                (flags & wxBORDER_MASK) | wxPOPUP_WINDOW);
-    }
-};
+    bool Create( wxWindow* pParent
+                ,int       nFlags = wxBORDER_NONE
+               );
+protected:
+    virtual void DoGetPosition( int* pnX
+                               ,int* pny
+                              ) const;
+
+    virtual WXDWORD OS2GetStyle( long     lFlags
+                                ,WXDWORD* dwExstyle
+                               ) const;
+    DECLARE_DYNAMIC_CLASS(wxPopupWindow)
+}; // end of CLASS wxPopupWindow
 
 #endif // _WX_PM_POPUPWIN_H_
diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h
index 4efd8d7da7..c957ac5b11 100644
--- a/include/wx/os2/setup0.h
+++ b/include/wx/os2/setup0.h
@@ -77,8 +77,8 @@
                                 // 0 for no drag and drop
 
 #define wxUSE_CONTROLS     1    // Do not change
-#define wxUSE_POPUPWIN     0    // OS/2 does not use this
-#define wxUSE_TIPWINDOW    0    // hence this is unavailable
+#define wxUSE_POPUPWIN     1    //
+#define wxUSE_TIPWINDOW    1    //
 
 // Recommended setting: 1
 #define wxUSE_BUTTON       1    // wxButton
diff --git a/src/os2/button.cpp b/src/os2/button.cpp
index 133a6f6cd5..1a7ab387c0 100644
--- a/src/os2/button.cpp
+++ b/src/os2/button.cpp
@@ -221,27 +221,64 @@ bool wxButton::SendClickEvent()
 void wxButton::SetDefault()
 {
     wxWindow*                       pParent = GetParent();
-    wxButton*                       pBtnOldDefault = NULL;
-    wxPanel*                        pPanel = wxDynamicCast(pParent, wxPanel);
-    long                            lStyle = 0L;
 
-    if (pParent)
+    wxCHECK_RET( pParent, _T("button without parent?") );
+
+    //
+    // Set this one as the default button both for wxWindows and Windows
+    //
+    wxWindow*                       pWinOldDefault = pParent->SetDefaultItem(this);
+    UpdateDefaultStyle( this
+                       ,pWinOldDefault
+                      );
+} // end of wxButton::SetDefault
+
+void wxButton::SetTmpDefault()
+{
+    wxWindow*                       pParent = GetParent();
+
+    wxCHECK_RET( pParent, _T("button without parent?") );
+
+    wxWindow*                       pWinOldDefault = pParent->GetDefaultItem();
+    pParent->SetTmpDefaultItem(this);
+    if (pWinOldDefault != this)
     {
-        wxWindow*                   pWinOldDefault = pParent->SetDefaultItem(this);
+        UpdateDefaultStyle( this
+                           ,pWinOldDefault
+                          );
+    }
+    //else: no styles to update
+} // end of wxButton::SetTmpDefault
+
+void wxButton::UnsetTmpDefault()
+{
+    wxWindow*                       pParent = GetParent();
+
+    wxCHECK_RET( pParent, _T("button without parent?") );
 
-        pBtnOldDefault = wxDynamicCast(pWinOldDefault, wxButton);
+    pParent->SetTmpDefaultItem(NULL);
+
+    wxWindow*                       pWinOldDefault = pParent->GetDefaultItem();
+
+    if (pWinOldDefault != this)
+    {
+        UpdateDefaultStyle( pWinOldDefault
+                           ,this
+                          );
     }
-    if (pBtnOldDefault && pBtnOldDefault != this)
+    //else: we had been default before anyhow
+} // end of wxButton::UnsetTmpDefault
+
+void wxButton::UpdateDefaultStyle(
+  wxWindow*                         pWinDefault
+, wxWindow*                         pWinOldDefault)
+{
+    wxButton*                       pBtnOldDefault = wxDynamicCast(pWinOldDefault, wxButton);
+    long                            lStyle;
+
+    if ( pBtnOldDefault && pBtnOldDefault != pWinDefault )
     {
-        //
-        // Remove the BS_DEFPUSHBUTTON style from the other button
-        //
         lStyle = ::WinQueryWindowULong(GetHwndOf(pBtnOldDefault), QWL_STYLE);
-
-        //
-        // Don't do it with the owner drawn buttons because it will reset
-        // BS_OWNERDRAW style bit too (BS_OWNERDRAW & BS_DEFPUSHBUTTON != 0)!
-        //
         if ((lStyle & BS_USERBUTTON) != BS_USERBUTTON)
         {
             lStyle &= ~BS_DEFAULT;
@@ -249,24 +286,24 @@ void wxButton::SetDefault()
         }
         else
         {
-            //
-            // Redraw the button - it will notice itself that it's not the
+            // redraw the button - it will notice itself that it's not the
             // default one any longer
-            //
             pBtnOldDefault->Refresh();
         }
     }
 
-    //
-    // Set this button as the default
-    //
-    lStyle = ::WinQueryWindowULong(GetHwnd(), QWL_STYLE);
-    if ((lStyle & BS_USERBUTTON) != BS_USERBUTTON)
+    wxButton*                       pBtnDefault = wxDynamicCast(pWinDefault, wxButton);
+
+    if (pBtnDefault)
     {
-        lStyle != BS_DEFAULT;
-        ::WinSetWindowULong(GetHwnd(), QWL_STYLE, lStyle);
+        lStyle = ::WinQueryWindowULong(GetHwndOf(pBtnDefault), QWL_STYLE);
+        if ((lStyle & BS_USERBUTTON) != BS_USERBUTTON)
+        {
+            lStyle != BS_DEFAULT;
+            ::WinSetWindowULong(GetHwndOf(pBtnDefault), QWL_STYLE, lStyle);
+        }
     }
-} // end of wxButton::SetDefault
+} // end of wxButton::UpdateDefaultStyle
 
 // ----------------------------------------------------------------------------
 // event/message handlers
@@ -348,12 +385,16 @@ MRESULT wxButton::WindowProc(
 )
 {
     //
-    // When we receive focus, we want to become the default button in our
-    // parent panel
+    // When we receive focus, we want to temporary become the default button in
+    // our parent panel so that pressing "Enter" would activate us -- and when
+    // losing it we should restore the previous default button as well
     //
     if (uMsg == WM_SETFOCUS)
     {
-        SetDefault();
+        if (SHORT1FROMMP(lParam) == TRUE)
+            SetTmpDefault();
+        else
+            UnsetTmpDefault();
 
         //
         // Let the default processign take place too
diff --git a/src/os2/makefile.va b/src/os2/makefile.va
index 67b7fd9d92..e7e4ba9039 100644
--- a/src/os2/makefile.va
+++ b/src/os2/makefile.va
@@ -522,6 +522,7 @@ OS2OBJS = \
   ..\os2\$D\palette.obj \
   ..\os2\$D\pen.obj \
   ..\os2\$D\pnghand.obj \
+  ..\os2\$D\popupwin.obj \
   ..\os2\$D\print.obj \
   ..\os2\$D\radiobox.obj \
   ..\os2\$D\radiobut.obj \
@@ -605,6 +606,7 @@ OS2LIBOBJS2 = \
   palette.obj \
   pen.obj \
   pnghand.obj \
+  popupwin.obj \
   print.obj \
   radiobox.obj \
   radiobut.obj \
@@ -964,6 +966,7 @@ $(OS2LIBOBJS2):
   copy ..\os2\$D\palette.obj
   copy ..\os2\$D\pen.obj
   copy ..\os2\$D\pnghand.obj
+  copy ..\os2\$D\popupwin.obj
   copy ..\os2\$D\print.obj
   copy ..\os2\$D\radiobox.obj
   copy ..\os2\$D\radiobut.obj
diff --git a/src/os2/window.cpp b/src/os2/window.cpp
index dc57ab1911..42c6c75783 100644
--- a/src/os2/window.cpp
+++ b/src/os2/window.cpp
@@ -138,10 +138,14 @@ MRESULT EXPENTRY wxWndProc( HWND hWnd
     const char *wxGetMessageName(int message);
 #endif  //__WXDEBUG__
 
-void      wxRemoveHandleAssociation(wxWindowOS2* pWin);
-void      wxAssociateWinWithHandle( HWND         hWnd
-                                   ,wxWindowOS2* pWin
-                                  );
+wxWindowOS2* FindWindowForMouseEvent( wxWindow* pWin
+                                     ,short*    pnX
+                                     ,short*    pnY
+                                    );
+void         wxRemoveHandleAssociation(wxWindowOS2* pWin);
+void         wxAssociateWinWithHandle( HWND         hWnd
+                                      ,wxWindowOS2* pWin
+                                     );
 wxWindow* wxFindWinFromHandle(WXHWND hWnd);
 
 //
@@ -2657,12 +2661,38 @@ MRESULT wxWindowOS2::OS2WindowProc(
         case WM_BUTTON3MOTIONEND:
         case WM_BUTTON3MOTIONSTART:
             {
-                short x = LOWORD(wParam);
-                short y = HIWORD(wParam);
+                if (uMsg == WM_BUTTON1DOWN && AcceptsFocus())
+                    SetFocus();
+
+                short               nX = LOWORD(wParam);
+                short               nY = HIWORD(wParam);
 
-                bProcessed = HandleMouseEvent(uMsg, x, y, (WXUINT)wParam);
+                //
+                // Redirect the event to a static control if necessary
+                //
+                if (this == GetCapture())
+                {
+                    bProcessed = HandleMouseEvent( uMsg
+                                                  ,nX
+                                                  ,nY
+                                                  ,(WXUINT)SHORT1FROMMP(wParam)
+                                                 );
+                }
+                else
+                {
+                    wxWindow*       pWin = FindWindowForMouseEvent( this
+                                                                   ,&nX
+                                                                   ,&nY
+                                                                  );
+                    bProcessed = pWin->HandleMouseEvent( uMsg
+                                                        ,nX
+                                                        ,nY
+                                                        ,(WXUINT)SHORT1FROMMP(wParam)
+                                                       );
+                }
             }
             break;
+
         case WM_SYSCOMMAND:
             bProcessed = HandleSysCommand(wParam, lParam);
             break;
@@ -5109,3 +5139,59 @@ wxPoint wxGetMousePosition()
     return wxPoint(vPt.x, vPt.y);
 }
 
+wxWindowOS2* FindWindowForMouseEvent(
+  wxWindow*                         pWin
+, short*                            pnX
+, short*                            pnY
+)
+{
+    wxCHECK_MSG( pnX && pnY, pWin, _T("NULL pointer in FindWindowForMouseEvent") );
+    POINTL                          vPoint = { *pnX, *pnY };
+    HWND                            hWnd = GetHwndOf(pWin);
+    HWND                            hWndUnderMouse;
+
+    //
+    // First try to find a non transparent child: this allows us to send events
+    // to a static text which is inside a static box, for example
+    //
+
+    hWndUnderMouse = ::WinWindowFromPoint( hWnd
+                                          ,&vPoint
+                                          ,TRUE
+                                         );
+    if (!hWndUnderMouse || hWndUnderMouse == hWnd)
+    {
+        //
+        // Now try any child window at all
+        //
+        hWndUnderMouse = ::WinWindowFromPoint( HWND_DESKTOP
+                                              ,&vPoint
+                                              ,TRUE
+                                             );
+
+    }
+
+    //
+    // Check that we have a child window which is susceptible to receive mouse
+    // events: for this it must be shown and enabled
+    if ( hWndUnderMouse &&
+         hWndUnderMouse != hWnd &&
+         ::WinIsWindowVisible(hWndUnderMouse) &&
+         ::WinIsWindowEnabled(hWndUnderMouse))
+    {
+        wxWindow*                   pWinUnderMouse = wxFindWinFromHandle((WXHWND)hWndUnderMouse);
+        if (pWinUnderMouse)
+        {
+            // translate the mouse coords to the other window coords
+            pWin->ClientToScreen( (int*)pnX
+                                 ,(int*)pnY
+                                );
+            pWinUnderMouse->ScreenToClient( (int*)pnX
+                                           ,(int*)pnY
+                                          );
+            pWin = pWinUnderMouse;
+        }
+    }
+    return pWin;
+} // end of FindWindowForMouseEvent
+
diff --git a/src/os2/wx23.def b/src/os2/wx23.def
index 8331fff75d..a58a128459 100644
--- a/src/os2/wx23.def
+++ b/src/os2/wx23.def
@@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
 CODE LOADONCALL
 
 EXPORTS
-;From library:  F:\DEV\WX2\WXWINDOWS\LIB\wx.lib
+;From library:  H:\Dev\Wx2\WxWindows\lib\wx.lib
   ;From object file:  dummy.cpp
     ;PUBDEFs (Symbols available from object file):
       wxDummyChar
@@ -61,6 +61,10 @@ EXPORTS
       OnInitCmdLine__9wxAppBaseFR15wxCmdLineParser
       ;wxAppBase::OnCmdLineParsed(wxCmdLineParser&)
       OnCmdLineParsed__9wxAppBaseFR15wxCmdLineParser
+      ;wxAppBase::CheckBuildOptions(const wxBuildOptions&)
+      CheckBuildOptions__9wxAppBaseFRC14wxBuildOptions
+      ;wxAppBase::FilterEvent(wxEvent&)
+      FilterEvent__9wxAppBaseFR7wxEvent
       __vft9wxAppBase8wxObject
       ;wxAppBase::OnCmdLineHelp(wxCmdLineParser&)
       OnCmdLineHelp__9wxAppBaseFR15wxCmdLineParser
@@ -231,6 +235,8 @@ EXPORTS
       wxConstructorForwxPageSetupDialogData__Fv
       ;wxPrintDialogData::~wxPrintDialogData()
       __dt__17wxPrintDialogDataFv
+      ;wxFontDialogBase::~wxFontDialogBase()
+      __dt__16wxFontDialogBaseFv
       ;wxColourData::wxColourData()
       __ct__12wxColourDataFv
       ;wxPageSetupDialogData::CalculatePaperSizeFromId()
@@ -245,12 +251,12 @@ EXPORTS
       sm_classwxFontData__10wxFontData
       ;wxPageSetupDialogData::SetPaperSize(wxPaperSize)
       SetPaperSize__21wxPageSetupDialogDataF11wxPaperSize
+      ;wxFontData::~wxFontData()
+      __dt__10wxFontDataFv
       ;wxConstructorForwxColourData()
       wxConstructorForwxColourData__Fv
       ;wxColourData::~wxColourData()
       __dt__12wxColourDataFv
-      ;wxFontData::~wxFontData()
-      __dt__10wxFontDataFv
       ;wxPrintData::wxPrintData(const wxPrintData&)
       __ct__11wxPrintDataFRC11wxPrintData
       ;wxPrintDialogData::sm_classwxPrintDialogData
@@ -265,17 +271,20 @@ EXPORTS
       __as__17wxPrintDialogDataFRC17wxPrintDialogData
       ;wxPrintDialogData::operator=(const wxPrintData&)
       __as__17wxPrintDialogDataFRC11wxPrintData
-      ;wxConstructorForwxFontData()
-      wxConstructorForwxFontData__Fv
       ;wxFontData::wxFontData()
       __ct__10wxFontDataFv
-      __vft12wxColourData8wxObject
-      __vft17wxPrintDialogData8wxObject
+      ;wxConstructorForwxFontData()
+      wxConstructorForwxFontData__Fv
       __vft10wxFontData8wxObject
+      __vft17wxPrintDialogData8wxObject
+      __vft16wxFontDialogBase8wxObject
+      __vft12wxColourData8wxObject
       ;wxColourData::operator=(const wxColourData&)
       __as__12wxColourDataFRC12wxColourData
       ;wxPrintDialogData::wxPrintDialogData(const wxPrintDialogData&)
       __ct__17wxPrintDialogDataFRC17wxPrintDialogData
+      ;wxPrintData::Ok() const
+      Ok__11wxPrintDataCFv
       ;wxConstructorForwxPrintData()
       wxConstructorForwxPrintData__Fv
       ;wxPageSetupDialogData::~wxPageSetupDialogData()
@@ -510,15 +519,19 @@ EXPORTS
       GetClientObject__15wxItemContainerCFi
       ;wxItemContainer::SetClientData(int,void*)
       SetClientData__15wxItemContainerFiPv
+      __vft18wxControlWithItems8wxObject
       ;wxItemContainer::Append(const wxArrayString&)
       Append__15wxItemContainerFRC13wxArrayString
       ;wxItemContainer::~wxItemContainer()
       __dt__15wxItemContainerFv
+      ;wxControlWithItems::~wxControlWithItems()
+      __dt__18wxControlWithItemsFv
       ;wxItemContainer::GetStringSelection() const
       GetStringSelection__15wxItemContainerCFv
       ;wxItemContainer::SetClientObject(int,wxClientData*)
       SetClientObject__15wxItemContainerFiP12wxClientData
       __vft15wxItemContainer
+      __vft18wxControlWithItems15wxItemContainer
   ;From object file:  ..\common\datetime.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxDateTime::wxDateTime(double)
@@ -967,6 +980,8 @@ EXPORTS
       RemoveChild__12wxDialogBaseFP12wxWindowBase
       ;wxDialogBase::GetEventTable() const
       GetEventTable__12wxDialogBaseCFv
+      ;wxDialogBase::SetTmpDefaultItem(wxWindow*)
+      SetTmpDefaultItem__12wxDialogBaseFP8wxWindow
   ;From object file:  ..\common\dobjcmn.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxDataObjectComposite::GetDataSize(const wxDataFormat&) const
@@ -1925,7 +1940,7 @@ EXPORTS
       wxEVT_NC_LEFT_DCLICK
       wxEVT_INIT_DIALOG
       wxEVT_COMMAND_SET_FOCUS
-  ;From object file:  F:\DEV\WX2\WXWINDOWS\src\common\extended.c
+  ;From object file:  H:\DEV\WX2\WXWINDOWS\src\common\extended.c
     ;PUBDEFs (Symbols available from object file):
       ConvertToIeeeExtended
       ConvertFromIeeeExtended
@@ -3688,6 +3703,8 @@ EXPORTS
       SetActiveTarget__5wxLogFP5wxLog
       ;wxLogWarning(const char*,...)
       wxLogWarning__FPCce
+      ;wxSafeShowMessage(const wxString&,const wxString&)
+      wxSafeShowMessage__FRC8wxStringT1
       ;wxLogVerbose(const char*,...)
       wxLogVerbose__FPCce
       ;wxLogTrace(unsigned long,const char*,...)
@@ -4353,6 +4370,8 @@ EXPORTS
       CreateRefData__8wxObjectCFv
       ;wxClassInfo::sm_classTable
       sm_classTable__11wxClassInfo
+      ;wxObject::InitFrom(const wxObject&)
+      InitFrom__8wxObjectFRC8wxObject
       ;wxObject::operator new(unsigned int,const char*,int)
       __nw__8wxObjectFUiPCci
       ;wxObject::CloneRefData(const wxObjectRefData*) const
@@ -4430,6 +4449,57 @@ EXPORTS
       ;wxPrintPaperDatabase::AddPaperType(wxPaperSize,const wxString&,int,int)
       AddPaperType__20wxPrintPaperDatabaseF11wxPaperSizeRC8wxStringiT3
   ;From object file:  ..\common\popupcmn.cpp
+    ;PUBDEFs (Symbols available from object file):
+      ;wxPopupWindowHandler::OnLeftDown(wxMouseEvent&)
+      OnLeftDown__20wxPopupWindowHandlerFR12wxMouseEvent
+      __vft20wxPopupWindowHandler8wxObject
+      __vft19wxPopupFocusHandler8wxObject
+      __vft17wxPopupWindowBase8wxObject
+      ;wxPopupWindowHandler::sm_eventTableEntries
+      sm_eventTableEntries__20wxPopupWindowHandler
+      ;wxConstructorForwxPopupTransientWindow()
+      wxConstructorForwxPopupTransientWindow__Fv
+      ;wxPopupWindowHandler::sm_eventTable
+      sm_eventTable__20wxPopupWindowHandler
+      ;wxPopupWindowHandler::GetEventTable() const
+      GetEventTable__20wxPopupWindowHandlerCFv
+      ;wxPopupTransientWindow::Dismiss()
+      Dismiss__22wxPopupTransientWindowFv
+      ;wxPopupTransientWindow::sm_classwxPopupTransientWindow
+      sm_classwxPopupTransientWindow__22wxPopupTransientWindow
+      __vft22wxPopupTransientWindow8wxObject
+      ;wxPopupFocusHandler::GetEventTable() const
+      GetEventTable__19wxPopupFocusHandlerCFv
+      ;wxPopupFocusHandler::sm_eventTable
+      sm_eventTable__19wxPopupFocusHandler
+      ;wxPopupFocusHandler::sm_eventTableEntries
+      sm_eventTableEntries__19wxPopupFocusHandler
+      ;wxPopupTransientWindow::Popup(wxWindow*)
+      Popup__22wxPopupTransientWindowFP8wxWindow
+      ;wxPopupTransientWindow::ProcessLeftDown(wxMouseEvent&)
+      ProcessLeftDown__22wxPopupTransientWindowFR12wxMouseEvent
+      ;wxPopupFocusHandler::OnKillFocus(wxFocusEvent&)
+      OnKillFocus__19wxPopupFocusHandlerFR12wxFocusEvent
+      ;wxPopupFocusHandler::OnKeyDown(wxKeyEvent&)
+      OnKeyDown__19wxPopupFocusHandlerFR10wxKeyEvent
+      ;wxPopupWindowBase::Create(wxWindow*,int)
+      Create__17wxPopupWindowBaseFP8wxWindowi
+      ;wxPopupWindowBase::~wxPopupWindowBase()
+      __dt__17wxPopupWindowBaseFv
+      ;wxPopupTransientWindow::OnDismiss()
+      OnDismiss__22wxPopupTransientWindowFv
+      ;wxPopupTransientWindow::DismissAndNotify()
+      DismissAndNotify__22wxPopupTransientWindowFv
+      ;wxPopupWindowBase::Position(const wxPoint&,const wxSize&)
+      Position__17wxPopupWindowBaseFRC7wxPointRC6wxSize
+      ;wxPopupTransientWindow::wxPopupTransientWindow(wxWindow*,int)
+      __ct__22wxPopupTransientWindowFP8wxWindowi
+      ;wxPopupTransientWindow::Init()
+      Init__22wxPopupTransientWindowFv
+      ;wxPopupTransientWindow::~wxPopupTransientWindow()
+      __dt__22wxPopupTransientWindowFv
+      ;wxPopupTransientWindow::PopHandlers()
+      PopHandlers__22wxPopupTransientWindowFv
   ;From object file:  ..\common\prntbase.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxPreviewControlBar::OnZoom(wxCommandEvent&)
@@ -6068,7 +6138,7 @@ EXPORTS
       Read32__17wxTextInputStreamFv
       ;wxTextInputStream::SkipIfEndOfLine(char)
       SkipIfEndOfLine__17wxTextInputStreamFc
-  ;From object file:  F:\DEV\WX2\WXWINDOWS\src\common\unzip.c
+  ;From object file:  H:\DEV\WX2\WXWINDOWS\src\common\unzip.c
     ;PUBDEFs (Symbols available from object file):
       unzReadCurrentFile
       unzGetCurrentFileInfo
@@ -9201,8 +9271,6 @@ EXPORTS
       GetEventTable__14wxListTextCtrlCFv
       ;wxListMainWindow::DoDeleteAllItems()
       DoDeleteAllItems__16wxListMainWindowFv
-      ;wxListItem::ClearAttributes()
-      ClearAttributes__10wxListItemFv
       ;wxListLineData::wxListLineData(wxListMainWindow*)
       __ct__14wxListLineDataFP16wxListMainWindow
       wxEVT_COMMAND_LIST_SET_INFO
@@ -9412,8 +9480,8 @@ EXPORTS
       DeleteColumn__16wxListMainWindowFi
       ;wxListLineData::CalculateSize(wxDC*,int)
       CalculateSize__14wxListLineDataFP4wxDCi
-      ;wxListItem::wxListItem()
-      __ct__10wxListItemFv
+      ;wxListCtrl::~wxListCtrl()
+      __dt__10wxListCtrlFv
       wxSizeTCmpFn
       ;wxConstructorForwxListItem()
       wxConstructorForwxListItem__Fv
@@ -9421,8 +9489,6 @@ EXPORTS
       __dt__19wxListLineDataArrayFv
       ;wxListItemData::~wxListItemData()
       __dt__14wxListItemDataFv
-      ;wxListCtrl::~wxListCtrl()
-      __dt__10wxListCtrlFv
       ;wxListCtrl::SetItemImage(long,int,int)
       SetItemImage__10wxListCtrlFliT2
       ;wxListCtrl::SetForegroundColour(const wxColour&)
@@ -9575,8 +9641,6 @@ EXPORTS
       DoEmpty__19wxListLineDataArrayFv
       ;wxListCtrl::DeleteAllItems()
       DeleteAllItems__10wxListCtrlFv
-      ;wxListItem::Clear()
-      Clear__10wxListItemFv
       ;wxListCtrl::ClearAll()
       ClearAll__10wxListCtrlFv
       ;wxListItemData::wxListItemData(wxListMainWindow*)
@@ -9703,6 +9767,8 @@ EXPORTS
       Init__7wxPanelFv
       ;wxPanel::Create(wxWindow*,int,const wxPoint&,const wxSize&,long,const wxString&)
       Create__7wxPanelFP8wxWindowiRC7wxPointRC6wxSizelRC8wxString
+      ;wxPanel::SetTmpDefaultItem(wxWindow*)
+      SetTmpDefaultItem__7wxPanelFP8wxWindow
       ;wxPanel::SetDefaultItem(wxWindow*)
       SetDefaultItem__7wxPanelFP8wxWindow
       __vft7wxPanel8wxObject
@@ -10019,6 +10085,8 @@ EXPORTS
       InitColours__16wxSplitterWindowFv
       ;wxSplitterWindow::SetDefaultItem(wxWindow*)
       SetDefaultItem__16wxSplitterWindowFP8wxWindow
+      ;wxSplitterWindow::SetTmpDefaultItem(wxWindow*)
+      SetTmpDefaultItem__16wxSplitterWindowFP8wxWindow
       ;wxSplitterWindow::OnFocus(wxFocusEvent&)
       OnFocus__16wxSplitterWindowFR12wxFocusEvent
       wxEVT_COMMAND_SPLITTER_UNSPLIT
@@ -10287,6 +10355,43 @@ EXPORTS
       ;wxTipDialog::wxTipDialog(wxWindow*,wxTipProvider*,unsigned long)
       __ct__11wxTipDialogFP8wxWindowP13wxTipProviderUl
   ;From object file:  ..\generic\tipwin.cpp
+    ;PUBDEFs (Symbols available from object file):
+      ;wxTipWindow::SetBoundingRect(const wxRect&)
+      SetBoundingRect__11wxTipWindowFRC6wxRect
+      ;wxTipWindowView::OnMouseMove(wxMouseEvent&)
+      OnMouseMove__15wxTipWindowViewFR12wxMouseEvent
+      ;wxTipWindow::OnDismiss()
+      OnDismiss__11wxTipWindowFv
+      ;wxTipWindowView::sm_eventTable
+      sm_eventTable__15wxTipWindowView
+      ;wxTipWindowView::OnMouseClick(wxMouseEvent&)
+      OnMouseClick__15wxTipWindowViewFR12wxMouseEvent
+      __vft11wxTipWindow8wxObject
+      ;wxTipWindowView::GetEventTable() const
+      GetEventTable__15wxTipWindowViewCFv
+      ;wxTipWindow::Close()
+      Close__11wxTipWindowFv
+      ;wxTipWindow::OnMouseClick(wxMouseEvent&)
+      OnMouseClick__11wxTipWindowFR12wxMouseEvent
+      ;wxTipWindow::GetEventTable() const
+      GetEventTable__11wxTipWindowCFv
+      ;wxTipWindow::~wxTipWindow()
+      __dt__11wxTipWindowFv
+      ;wxTipWindow::sm_eventTable
+      sm_eventTable__11wxTipWindow
+      ;wxTipWindow::wxTipWindow(wxWindow*,const wxString&,int,wxTipWindow**,wxRect*)
+      __ct__11wxTipWindowFP8wxWindowRC8wxStringiPP11wxTipWindowP6wxRect
+      __vft15wxTipWindowView8wxObject
+      ;wxTipWindowView::OnPaint(wxPaintEvent&)
+      OnPaint__15wxTipWindowViewFR12wxPaintEvent
+      ;wxTipWindowView::wxTipWindowView(wxWindow*)
+      __ct__15wxTipWindowViewFP8wxWindow
+      ;wxTipWindow::sm_eventTableEntries
+      sm_eventTableEntries__11wxTipWindow
+      ;wxTipWindowView::Adjust(const wxString&,int)
+      Adjust__15wxTipWindowViewFRC8wxStringi
+      ;wxTipWindowView::sm_eventTableEntries
+      sm_eventTableEntries__15wxTipWindowView
   ;From object file:  ..\generic\treectlg.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxTreeRenameTimer::wxTreeRenameTimer(wxGenericTreeCtrl*)
@@ -11662,18 +11767,24 @@ EXPORTS
     ;PUBDEFs (Symbols available from object file):
       ;wxButton::Command(wxCommandEvent&)
       Command__8wxButtonFR14wxCommandEvent
-      ;wxButton::MakeOwnerDrawn()
-      MakeOwnerDrawn__8wxButtonFv
+      ;wxButton::SetTmpDefault()
+      SetTmpDefault__8wxButtonFv
       ;wxButton::WindowProc(unsigned int,void*,void*)
       WindowProc__8wxButtonFUiPvT2
+      ;wxButton::MakeOwnerDrawn()
+      MakeOwnerDrawn__8wxButtonFv
       ;wxButton::OS2GetStyle(long,unsigned long*) const
       OS2GetStyle__8wxButtonCFlPUl
       ;wxButton::OnCtlColor(unsigned long,unsigned long,unsigned int,unsigned int,void*,void*)
       OnCtlColor__8wxButtonFUlT1UiT3PvT5
+      ;wxButton::UnsetTmpDefault()
+      UnsetTmpDefault__8wxButtonFv
       ;wxButton::~wxButton()
       __dt__8wxButtonFv
       ;wxButton::SendClickEvent()
       SendClickEvent__8wxButtonFv
+      ;wxButton::UpdateDefaultStyle(wxWindow*,wxWindow*)
+      UpdateDefaultStyle__8wxButtonFP8wxWindowT1
       ;wxConstructorForwxButton()
       wxConstructorForwxButton__Fv
       ;wxButton::GetDefaultSize()
@@ -11859,10 +11970,10 @@ EXPORTS
     ;PUBDEFs (Symbols available from object file):
       ;wxColour::Set(unsigned char,unsigned char,unsigned char)
       Set__8wxColourFUcN21
-      ;wxColour::wxColour()
-      __ct__8wxColourFv
       ;wxColour::operator=(const wxColour&)
       __as__8wxColourFRC8wxColour
+      ;wxColour::wxColour()
+      __ct__8wxColourFv
       ;wxColour::InitFromName(const wxString&)
       InitFromName__8wxColourFRC8wxString
       ;wxConstructorForwxColour()
@@ -11870,12 +11981,12 @@ EXPORTS
       __vft8wxColour8wxObject
       ;wxColour::wxColour(unsigned char,unsigned char,unsigned char)
       __ct__8wxColourFUcN21
-      ;wxColour::~wxColour()
-      __dt__8wxColourFv
-      ;wxColour::sm_classwxColour
-      sm_classwxColour__8wxColour
       ;wxColour::wxColour(const wxColour&)
       __ct__8wxColourFRC8wxColour
+      ;wxColour::sm_classwxColour
+      sm_classwxColour__8wxColour
+      ;wxColour::~wxColour()
+      __dt__8wxColourFv
   ;From object file:  ..\os2\combobox.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxComboBox::sm_classwxComboBox
@@ -13727,6 +13838,15 @@ EXPORTS
       GetBitmap__11wxPNGReaderFv
       ;wxPNGReader::CreateMask()
       CreateMask__11wxPNGReaderFv
+  ;From object file:  ..\os2\popupwin.cpp
+    ;PUBDEFs (Symbols available from object file):
+      __vft13wxPopupWindow8wxObject
+      ;wxPopupWindow::DoGetPosition(int*,int*) const
+      DoGetPosition__13wxPopupWindowCFPiT1
+      ;wxPopupWindow::OS2GetStyle(long,unsigned long*) const
+      OS2GetStyle__13wxPopupWindowCFlPUl
+      ;wxPopupWindow::Create(wxWindow*,int)
+      Create__13wxPopupWindowFP8wxWindowi
   ;From object file:  ..\os2\print.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxPrintPreview::Print(unsigned long)
@@ -14982,6 +15102,8 @@ EXPORTS
       GetEventTable__8wxWindowCFv
       ;wxWindow::GetClientAreaOrigin() const
       GetClientAreaOrigin__8wxWindowCFv
+      ;FindWindowForMouseEvent(wxWindow*,short*,short*)
+      FindWindowForMouseEvent__FP8wxWindowPsT2
       ;wxWindow::Create(wxWindow*,int,const wxPoint&,const wxSize&,long,const wxString&)
       Create__8wxWindowFP8wxWindowiRC7wxPointRC6wxSizelRC8wxString
       ;wxAssociateWinWithHandle(unsigned long,wxWindow*)
-- 
2.50.0

