1///////////////////////////////////////////////////////////////////////////// 2// Name: src/xrc/xh_frame.cpp 3// Purpose: XRC resource for dialogs 4// Author: Vaclav Slavik & Aleks. 5// Created: 2000/03/05 6// RCS-ID: $Id: xh_frame.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_frame.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" // to get wxDEFAULT_DIALOG_STYLE 27#endif 28 29IMPLEMENT_DYNAMIC_CLASS(wxFrameXmlHandler, wxXmlResourceHandler) 30 31wxFrameXmlHandler::wxFrameXmlHandler() : 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(wxDEFAULT_FRAME_STYLE); 37#if WXWIN_COMPATIBILITY_2_6 38 XRC_ADD_STYLE(wxTHICK_FRAME); 39#endif // WXWIN_COMPATIBILITY_2_6 40 XRC_ADD_STYLE(wxSYSTEM_MENU); 41 XRC_ADD_STYLE(wxRESIZE_BORDER); 42#if WXWIN_COMPATIBILITY_2_6 43 XRC_ADD_STYLE(wxRESIZE_BOX); 44#endif // WXWIN_COMPATIBILITY_2_6 45 XRC_ADD_STYLE(wxCLOSE_BOX); 46 47 XRC_ADD_STYLE(wxFRAME_NO_TASKBAR); 48 XRC_ADD_STYLE(wxFRAME_SHAPED); 49 XRC_ADD_STYLE(wxFRAME_TOOL_WINDOW); 50 XRC_ADD_STYLE(wxFRAME_FLOAT_ON_PARENT); 51 XRC_ADD_STYLE(wxMAXIMIZE_BOX); 52 XRC_ADD_STYLE(wxMINIMIZE_BOX); 53 XRC_ADD_STYLE(wxSTAY_ON_TOP); 54 55#if WXWIN_COMPATIBILITY_2_6 56 XRC_ADD_STYLE(wxNO_3D); 57#endif // WXWIN_COMPATIBILITY_2_6 58 XRC_ADD_STYLE(wxTAB_TRAVERSAL); 59 XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY); 60 XRC_ADD_STYLE(wxFRAME_EX_METAL); 61 XRC_ADD_STYLE(wxFRAME_EX_CONTEXTHELP); 62 63 AddWindowStyles(); 64} 65 66wxObject *wxFrameXmlHandler::DoCreateResource() 67{ 68 XRC_MAKE_INSTANCE(frame, wxFrame); 69 70 frame->Create(m_parentAsWindow, 71 GetID(), 72 GetText(wxT("title")), 73 wxDefaultPosition, wxDefaultSize, 74 GetStyle(wxT("style"), wxDEFAULT_FRAME_STYLE), 75 GetName()); 76 77 if (HasParam(wxT("size"))) 78 frame->SetClientSize(GetSize(wxT("size"), frame)); 79 if (HasParam(wxT("pos"))) 80 frame->Move(GetPosition()); 81 if (HasParam(wxT("icon"))) 82 frame->SetIcon(GetIcon(wxT("icon"), wxART_FRAME_ICON)); 83 84 SetupWindow(frame); 85 86 CreateChildren(frame); 87 88 if (GetBool(wxT("centered"), false)) 89 frame->Centre(); 90 91 return frame; 92} 93 94bool wxFrameXmlHandler::CanHandle(wxXmlNode *node) 95{ 96 return IsOfClass(node, wxT("wxFrame")); 97} 98 99#endif // wxUSE_XRC 100