1///////////////////////////////////////////////////////////////////////////// 2// Name: src/xrc/xh_dlg.cpp 3// Purpose: XRC resource for dialogs 4// Author: Vaclav Slavik 5// Created: 2000/03/05 6// RCS-ID: $Id: xh_dlg.cpp 39273 2006-05-22 20:54:04Z ABX $ 7// Copyright: (c) 2000 Vaclav Slavik 8// Licence: wxWindows licence 9///////////////////////////////////////////////////////////////////////////// 10 11// For compilers that support precompilation, includes "wx.h". 12#include "wx/wxprec.h" 13 14#ifdef __BORLANDC__ 15 #pragma hdrstop 16#endif 17 18#if wxUSE_XRC 19 20#include "wx/xrc/xh_dlg.h" 21 22#ifndef WX_PRECOMP 23 #include "wx/intl.h" 24 #include "wx/log.h" 25 #include "wx/frame.h" 26 #include "wx/dialog.h" 27#endif 28 29IMPLEMENT_DYNAMIC_CLASS(wxDialogXmlHandler, wxXmlResourceHandler) 30 31wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler() 32{ 33 XRC_ADD_STYLE(wxSTAY_ON_TOP); 34 XRC_ADD_STYLE(wxCAPTION); 35 XRC_ADD_STYLE(wxDEFAULT_DIALOG_STYLE); 36 XRC_ADD_STYLE(wxSYSTEM_MENU); 37 XRC_ADD_STYLE(wxRESIZE_BORDER); 38 XRC_ADD_STYLE(wxCLOSE_BOX); 39 XRC_ADD_STYLE(wxDIALOG_NO_PARENT); 40 41 XRC_ADD_STYLE(wxTAB_TRAVERSAL); 42 XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY); 43 XRC_ADD_STYLE(wxDIALOG_EX_METAL); 44 XRC_ADD_STYLE(wxMAXIMIZE_BOX); 45 XRC_ADD_STYLE(wxMINIMIZE_BOX); 46 XRC_ADD_STYLE(wxFRAME_SHAPED); 47 XRC_ADD_STYLE(wxDIALOG_EX_CONTEXTHELP); 48 49#if WXWIN_COMPATIBILITY_2_6 50 XRC_ADD_STYLE(wxDIALOG_MODAL); 51 XRC_ADD_STYLE(wxTHICK_FRAME); 52 XRC_ADD_STYLE(wxRESIZE_BOX); 53 XRC_ADD_STYLE(wxDIALOG_MODELESS); 54 XRC_ADD_STYLE(wxNO_3D); 55#endif // WXWIN_COMPATIBILITY_2_6 56 57 AddWindowStyles(); 58} 59 60wxObject *wxDialogXmlHandler::DoCreateResource() 61{ 62 XRC_MAKE_INSTANCE(dlg, wxDialog); 63 64 dlg->Create(m_parentAsWindow, 65 GetID(), 66 GetText(wxT("title")), 67 wxDefaultPosition, wxDefaultSize, 68 GetStyle(wxT("style"), wxDEFAULT_DIALOG_STYLE), 69 GetName()); 70 71 if (HasParam(wxT("size"))) 72 dlg->SetClientSize(GetSize(wxT("size"), dlg)); 73 if (HasParam(wxT("pos"))) 74 dlg->Move(GetPosition()); 75 if (HasParam(wxT("icon"))) 76 dlg->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON)); 77 78 SetupWindow(dlg); 79 80 CreateChildren(dlg); 81 82 if (GetBool(wxT("centered"), false)) 83 dlg->Centre(); 84 85 return dlg; 86} 87 88bool wxDialogXmlHandler::CanHandle(wxXmlNode *node) 89{ 90 return IsOfClass(node, wxT("wxDialog")); 91} 92 93#endif // wxUSE_XRC 94