X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5d6954b87d910969226ffade9714db7429211f3..9d5cfd0e64a2c09d957517405758de680806e674:/src/xrc/xh_frame.cpp diff --git a/src/xrc/xh_frame.cpp b/src/xrc/xh_frame.cpp index c8168e6e2b..892a9e38aa 100644 --- a/src/xrc/xh_frame.cpp +++ b/src/xrc/xh_frame.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_frame.cpp +// Name: src/xrc/xh_frame.cpp // Purpose: XRC resource for dialogs // Author: Vaclav Slavik & Aleks. // Created: 2000/03/05 @@ -7,10 +7,6 @@ // Copyright: (c) 2000 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xh_frame.h" -#endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,67 +15,85 @@ #pragma hdrstop #endif +#if wxUSE_XRC + #include "wx/xrc/xh_frame.h" -#include "wx/frame.h" -#include "wx/log.h" -#include "wx/intl.h" +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/frame.h" + #include "wx/dialog.h" // to get wxDEFAULT_DIALOG_STYLE +#endif + +IMPLEMENT_DYNAMIC_CLASS(wxFrameXmlHandler, wxXmlResourceHandler) wxFrameXmlHandler::wxFrameXmlHandler() : wxXmlResourceHandler() { - ADD_STYLE(wxSTAY_ON_TOP); - ADD_STYLE(wxCAPTION); - ADD_STYLE(wxDEFAULT_DIALOG_STYLE); - ADD_STYLE(wxDEFAULT_FRAME_STYLE); - ADD_STYLE(wxTHICK_FRAME); - ADD_STYLE(wxSYSTEM_MENU); - ADD_STYLE(wxRESIZE_BORDER); - ADD_STYLE(wxRESIZE_BOX); - - ADD_STYLE(wxFRAME_TOOL_WINDOW); - ADD_STYLE(wxFRAME_FLOAT_ON_PARENT); - ADD_STYLE(wxMAXIMIZE_BOX); - ADD_STYLE(wxMINIMIZE_BOX); - ADD_STYLE(wxSTAY_ON_TOP); - - ADD_STYLE(wxNO_3D); - ADD_STYLE(wxTAB_TRAVERSAL); - ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY); - ADD_STYLE(wxCLIP_CHILDREN); + XRC_ADD_STYLE(wxSTAY_ON_TOP); + XRC_ADD_STYLE(wxCAPTION); + XRC_ADD_STYLE(wxDEFAULT_DIALOG_STYLE); + XRC_ADD_STYLE(wxDEFAULT_FRAME_STYLE); +#if WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxTHICK_FRAME); +#endif // WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxSYSTEM_MENU); + XRC_ADD_STYLE(wxRESIZE_BORDER); +#if WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxRESIZE_BOX); +#endif // WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxCLOSE_BOX); + + XRC_ADD_STYLE(wxFRAME_NO_TASKBAR); + XRC_ADD_STYLE(wxFRAME_SHAPED); + XRC_ADD_STYLE(wxFRAME_TOOL_WINDOW); + XRC_ADD_STYLE(wxFRAME_FLOAT_ON_PARENT); + XRC_ADD_STYLE(wxMAXIMIZE_BOX); + XRC_ADD_STYLE(wxMINIMIZE_BOX); + XRC_ADD_STYLE(wxSTAY_ON_TOP); + +#if WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxNO_3D); +#endif // WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxTAB_TRAVERSAL); + XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY); + XRC_ADD_STYLE(wxFRAME_EX_METAL); + XRC_ADD_STYLE(wxFRAME_EX_CONTEXTHELP); + AddWindowStyles(); } - - wxObject *wxFrameXmlHandler::DoCreateResource() -{ - wxFrame *frame = wxDynamicCast(m_instance, wxFrame); - - wxASSERT_MSG(frame, _("XRC resource: Cannot create dialog without instance.")); - +{ + XRC_MAKE_INSTANCE(frame, wxFrame); + frame->Create(m_parentAsWindow, - GetID(), - GetText(_T("title")), - wxDefaultPosition, wxDefaultSize, - GetStyle(_T("style"), wxDEFAULT_FRAME_STYLE), - GetName()); - frame->SetClientSize(GetSize()); - frame->Move(GetPosition()); + GetID(), + GetText(wxT("title")), + wxDefaultPosition, wxDefaultSize, + GetStyle(wxT("style"), wxDEFAULT_FRAME_STYLE), + GetName()); + + if (HasParam(wxT("size"))) + frame->SetClientSize(GetSize(wxT("size"), frame)); + if (HasParam(wxT("pos"))) + frame->Move(GetPosition()); + if (HasParam(wxT("icon"))) + frame->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON)); + SetupWindow(frame); CreateChildren(frame); - - if (GetBool(_("centered"), FALSE)) + + if (GetBool(wxT("centered"), false)) frame->Centre(); - + return frame; } - - bool wxFrameXmlHandler::CanHandle(wxXmlNode *node) { - return IsOfClass(node, _T("wxFrame")); + return IsOfClass(node, wxT("wxFrame")); } - +#endif // wxUSE_XRC