From 3a12b404f849a8ce2d28290899379a1f934a9af1 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Wed, 27 Jun 2001 17:19:49 +0000 Subject: [PATCH] Now wxFrame derives from wxFrameMSW/GTK in non-wxUniv mode. Fixes RTTI problems. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/frame.h | 48 ++++++++++++++++++++++++++++++++++++++++------ src/gtk/frame.cpp | 3 ++- src/gtk1/frame.cpp | 3 ++- src/msw/frame.cpp | 3 ++- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/include/wx/frame.h b/include/wx/frame.h index 039d1f258e..7277261c83 100644 --- a/include/wx/frame.h +++ b/include/wx/frame.h @@ -239,19 +239,55 @@ protected: // include the real class declaration #if defined(__WXMSW__) + #include "wx/msw/frame.h" #ifndef __WXUNIVERSAL__ - #define wxFrameMSW wxFrame - #define sm_classwxFrameMSW sm_classwxFrame + + class WXDLLEXPORT wxFrame : public wxFrameMSW + { + public: + // construction + wxFrame() { Init(); } + wxFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr) + { + Init(); + Create(parent, id, title, pos, size, style, name); + } + DECLARE_DYNAMIC_CLASS(wxFrame) + }; + #endif - #include "wx/msw/frame.h" #elif defined(__WXMOTIF__) #include "wx/motif/frame.h" #elif defined(__WXGTK__) + #include "wx/gtk/frame.h" #ifndef __WXUNIVERSAL__ - #define wxFrameGTK wxFrame - #define sm_classwxFrameGTK sm_classwxFrame + + class WXDLLEXPORT wxFrame : public wxFrameGTK + { + public: + // construction + wxFrame() { Init(); } + wxFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr) + { + Init(); + Create(parent, id, title, pos, size, style, name); + } + DECLARE_DYNAMIC_CLASS(wxFrame) + }; + #endif - #include "wx/gtk/frame.h" #elif defined(__WXMGL__) #include "wx/mgl/frame.h" #elif defined(__WXQT__) diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 18d58ae61e..81e73bdc1d 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -67,7 +67,8 @@ extern int g_openDialogs; #ifdef __WXUNIVERSAL__ IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow) #else - IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) + IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameGTK) + IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow) #endif // ---------------------------------------------------------------------------- diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 18d58ae61e..81e73bdc1d 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -67,7 +67,8 @@ extern int g_openDialogs; #ifdef __WXUNIVERSAL__ IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow) #else - IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) + IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameGTK) + IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow) #endif // ---------------------------------------------------------------------------- diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 6ff16e1ff8..2a738679e0 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -81,6 +81,7 @@ BEGIN_EVENT_TABLE(wxFrameMSW, wxFrameBase) END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxFrameMSW, wxWindow) +IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameMSW) // ============================================================================ // implementation @@ -403,7 +404,7 @@ void wxFrameMSW::SetIcon(const wxIcon& icon) } // generate an artificial resize event -void wxFrame::SendSizeEvent() +void wxFrameMSW::SendSizeEvent() { RECT r; #ifdef __WIN16__ -- 2.45.2