1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Wrappers for the XML based Resource system
7 // Created: 4-June-2001
9 // Copyright: (c) 2001 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
18 #include "wx/xrc/xmlres.h"
21 //---------------------------------------------------------------------------
24 %include my_typemaps.i
33 //---------------------------------------------------------------------------
35 enum wxXmlResourceFlags
38 wxXRC_NO_SUBCLASSING = 2
42 // This class holds XML resources from one or more .xml files
43 // (or derived forms, either binary or zipped -- see manual for
46 class wxXmlResource : public wxObject
50 // Flags: wxXRC_USE_LOCALE
51 // translatable strings will be translated via _()
52 // wxXRC_NO_SUBCLASSING
53 // subclass property of object nodes will be ignored
54 // (useful for previews in XRC editors)
55 %name(wxXmlResourceEmpty)wxXmlResource(int flags = wxXRC_USE_LOCALE); // TODO, a better %name
58 wxXmlResource(const wxString* filemask, int flags = wxXRC_USE_LOCALE) {
59 wxXmlResource* res = new wxXmlResource(*filemask, flags);
60 res->InitAllHandlers();
68 // Loads resources from XML files that match given filemask.
69 // This method understands VFS (see filesys.h).
70 bool Load(const wxString& filemask);
72 // Initialize handlers for all supported controls/windows. This will
73 // make the executable quite big because it forces linking against
74 // most of wxWin library
75 void InitAllHandlers();
77 // Initialize only specific handler (or custom handler). Convention says
78 // that handler name is equal to control's name plus 'XmlHandler', e.g.
79 // wxTextCtrlXmlHandler, wxHtmlWindowXmlHandler. XML resource compiler
80 // (xmlres) can create include file that contains initialization code for
81 // all controls used within the resource.
82 void AddHandler(wxXmlResourceHandler *handler);
84 // Removes all handlers
87 // Loads menu from resource. Returns NULL on failure.
88 wxMenu *LoadMenu(const wxString& name);
90 // Loads menubar from resource. Returns NULL on failure.
91 wxMenuBar *LoadMenuBar(const wxString& name);
94 wxToolBar *LoadToolBar(wxWindow *parent, const wxString& name);
96 // Loads dialog. dlg points to parent window (if any). Second form
97 // is used to finish creation of already existing instance (main reason
98 // for this is that you may want to use derived class with new event table)
99 // Example (typical usage):
101 // wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog");
103 wxDialog *LoadDialog(wxWindow *parent, const wxString& name);
104 %name(LoadOnDialog)bool LoadDialog(wxDialog *dlg, wxWindow *parent, const wxString& name);
106 // Loads panel. panel points to parent window (if any). Second form
107 // is used to finish creation of already existing instance.
108 wxPanel *LoadPanel(wxWindow *parent, const wxString& name);
109 %name(LoadOnPanel)bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name);
111 bool LoadFrame(wxFrame* frame, wxWindow *parent, const wxString& name);
113 // Loads bitmap or icon resource from file:
114 wxBitmap LoadBitmap(const wxString& name);
115 wxIcon LoadIcon(const wxString& name);
117 // Attaches unknown control into given panel/window/dialog:
118 // (unknown controls are used in conjunction with <object class="unknown">)
119 bool AttachUnknownControl(const wxString& name, wxWindow *control,
120 wxWindow *parent = NULL);
122 // Returns numeric ID that is equivalent to string id used in XML
123 // resource. To be used in event tables
124 // Macro XMLID is provided for convenience
125 static int GetXRCID(const char *str_id);
127 // Returns version info (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a)
128 long GetVersion() const;
130 // Compares resources version to argument. Returns -1 if resources version
131 // is less than the argument, +1 if greater and 0 if they equal.
132 int CompareVersion(int major, int minor, int release, int revision) const;
135 // Gets global resources object or create one if none exists
136 static wxXmlResource *Get();
137 // Sets global resources object and returns pointer to previous one (may be NULL).
138 static wxXmlResource *Set(wxXmlResource *res);
142 //----------------------------------------------------------------------
144 %pragma(python) code = "
146 return wxXmlResource_GetXRCID(str_id)
148 def XRCCTRL(window, str_id, *ignoreargs):
149 return window.FindWindowById(XRCID(str_id))
155 //----------------------------------------------------------------------
157 // TODO: Add wxXmlResourceHandler and allow it to be derived from.
159 //----------------------------------------------------------------------
163 wxClassInfo::CleanUpClasses();
164 wxClassInfo::InitializeClasses();
166 wxXmlInitResourceModule();
167 wxXmlResource::Get()->InitAllHandlers();
171 //----------------------------------------------------------------------
172 // This file gets appended to the shadow class file.
173 //----------------------------------------------------------------------
175 %pragma(python) include="_xrcextras.py";