X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/544fee32eeac1a4f6ca3e0c7c1b13ee24f1d1c1c..da1f0e87e2c24ad9ee7647261dd986ad3e8d60eb:/src/xrc/xh_dlg.cpp diff --git a/src/xrc/xh_dlg.cpp b/src/xrc/xh_dlg.cpp index ebeba3a831..cd50f4a96c 100644 --- a/src/xrc/xh_dlg.cpp +++ b/src/xrc/xh_dlg.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_dlg.cpp +// Name: src/xrc/xh_dlg.cpp // Purpose: XRC resource for dialogs // Author: Vaclav Slavik // Created: 2000/03/05 @@ -7,10 +7,6 @@ // Copyright: (c) 2000 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xh_dlg.h" -#endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,38 +15,52 @@ #pragma hdrstop #endif +#if wxUSE_XRC + #include "wx/xrc/xh_dlg.h" -#include "wx/dialog.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" +#endif + +IMPLEMENT_DYNAMIC_CLASS(wxDialogXmlHandler, wxXmlResourceHandler) wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler() { XRC_ADD_STYLE(wxSTAY_ON_TOP); XRC_ADD_STYLE(wxCAPTION); XRC_ADD_STYLE(wxDEFAULT_DIALOG_STYLE); - XRC_ADD_STYLE(wxTHICK_FRAME); XRC_ADD_STYLE(wxSYSTEM_MENU); XRC_ADD_STYLE(wxRESIZE_BORDER); - XRC_ADD_STYLE(wxRESIZE_BOX); - XRC_ADD_STYLE(wxDIALOG_MODAL); - XRC_ADD_STYLE(wxDIALOG_MODELESS); + XRC_ADD_STYLE(wxCLOSE_BOX); + XRC_ADD_STYLE(wxDIALOG_NO_PARENT); - XRC_ADD_STYLE(wxNO_3D); XRC_ADD_STYLE(wxTAB_TRAVERSAL); XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY); - XRC_ADD_STYLE(wxCLIP_CHILDREN); + XRC_ADD_STYLE(wxDIALOG_EX_METAL); + XRC_ADD_STYLE(wxMAXIMIZE_BOX); + XRC_ADD_STYLE(wxMINIMIZE_BOX); + XRC_ADD_STYLE(wxFRAME_SHAPED); + XRC_ADD_STYLE(wxDIALOG_EX_CONTEXTHELP); + +#if WXWIN_COMPATIBILITY_2_6 + XRC_ADD_STYLE(wxDIALOG_MODAL); + XRC_ADD_STYLE(wxTHICK_FRAME); + XRC_ADD_STYLE(wxRESIZE_BOX); + XRC_ADD_STYLE(wxDIALOG_MODELESS); + XRC_ADD_STYLE(wxNO_3D); +#endif // WXWIN_COMPATIBILITY_2_6 AddWindowStyles(); } wxObject *wxDialogXmlHandler::DoCreateResource() -{ - wxDialog *dlg = wxDynamicCast(m_instance, wxDialog); - - wxASSERT_MSG(dlg, _("XRC resource: Cannot create dialog without instance.")); - +{ + XRC_MAKE_INSTANCE(dlg, wxDialog); + dlg->Create(m_parentAsWindow, GetID(), GetText(wxT("title")), @@ -59,17 +69,19 @@ wxObject *wxDialogXmlHandler::DoCreateResource() GetName()); if (HasParam(wxT("size"))) - dlg->SetClientSize(GetSize()); + dlg->SetClientSize(GetSize(wxT("size"), dlg)); if (HasParam(wxT("pos"))) dlg->Move(GetPosition()); + if (HasParam(wxT("icon"))) + dlg->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON)); SetupWindow(dlg); CreateChildren(dlg); - - if (GetBool(wxT("centered"), FALSE)) + + if (GetBool(wxT("centered"), false)) dlg->Centre(); - + return dlg; } @@ -77,3 +89,5 @@ bool wxDialogXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxDialog")); } + +#endif // wxUSE_XRC