X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cd834e7b5a80dc0b0b9782de8606bdb401824e95..3f0ff538b1190846f81e77ffc6e495201503cfe0:/wxPython/contrib/xrc/xrc.i diff --git a/wxPython/contrib/xrc/xrc.i b/wxPython/contrib/xrc/xrc.i index 6783f33e8d..2bab3a9144 100644 --- a/wxPython/contrib/xrc/xrc.i +++ b/wxPython/contrib/xrc/xrc.i @@ -14,191 +14,50 @@ %{ -#include "wxPython.h" -#include "wx/xrc/xmlres.h" -#include -#include +#include "wx/wxPython/wxPython.h" +#include "wx/wxPython/pyclasses.h" +#include "wx/wxPython/pyistream.h" + +#include +#include + + static const wxString wxPyEmptyString(wxT("")); + static const wxString wxPyUTF8String(wxT("UTF-8")); + static const wxString wxPyStyleString(wxT("style")); + static const wxString wxPySizeString(wxT("size")); + static const wxString wxPyPosString(wxT("pos")); + static const wxString wxPyBitmapString(wxT("bitmap")); + static const wxString wxPyIconString(wxT("icon")); + static const wxString wxPyFontString(wxT("font")); %} //--------------------------------------------------------------------------- -%include typemaps.i -%include my_typemaps.i +%import core.i +%pythoncode { wx = core } -%extern wx.i -%extern windows.i -%extern _defs.i -%extern events.i -%extern controls.i +%include _xrc_rename.i -//--------------------------------------------------------------------------- - -enum wxXmlResourceFlags -{ - wxXRC_USE_LOCALE = 1, - wxXRC_NO_SUBCLASSING = 2 -}; - - -// This class holds XML resources from one or more .xml files -// (or derived forms, either binary or zipped -- see manual for -// details). - -class wxXmlResource : public wxObject -{ -public: - // Ctors. - // Flags: wxXRC_USE_LOCALE - // translatable strings will be translated via _() - // wxXRC_NO_SUBCLASSING - // subclass property of object nodes will be ignored - // (useful for previews in XRC editors) - wxXmlResource(const wxString& filemask, int flags = wxXRC_USE_LOCALE); - %name(wxEmptyXmlResource) wxXmlResource(int flags = wxXRC_USE_LOCALE); - %pragma(python) addtomethod = "__init__:self.InitAllHandlers()" - %pragma(python) addtomethod = "wxEmptyXmlResource:val.InitAllHandlers()" - - ~wxXmlResource(); - - - // Loads resources from XML files that match given filemask. - // This method understands VFS (see filesys.h). - bool Load(const wxString& filemask); - - %addmethods { - bool LoadFromString(const wxString& data) { - static int s_memFileIdx = 0; - - // Check for memory FS. If not present, load the handler: - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), - wxT("dummy data")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) - delete f; - else - wxFileSystem::AddHandler(new wxMemoryFSHandler); - - // Now put the resource data into the memory FS - wxString filename(wxT("XRC_resource/data_string_")); - filename << s_memFileIdx; - s_memFileIdx += 1; - wxMemoryFSHandler::AddFile(filename, data); - - // Load the "file" into the resource object - bool retval = self->Load(wxT("memory:") + filename ); - - return retval; - } - } - - // Initialize handlers for all supported controls/windows. This will - // make the executable quite big because it forces linking against - // most of wxWin library - void InitAllHandlers(); - - // Initialize only specific handler (or custom handler). Convention says - // that handler name is equal to control's name plus 'XmlHandler', e.g. - // wxTextCtrlXmlHandler, wxHtmlWindowXmlHandler. XML resource compiler - // (xmlres) can create include file that contains initialization code for - // all controls used within the resource. - void AddHandler(wxXmlResourceHandler *handler); - - // Removes all handlers - void ClearHandlers(); - - // Loads menu from resource. Returns NULL on failure. - wxMenu *LoadMenu(const wxString& name); - - // Loads menubar from resource. Returns NULL on failure. - wxMenuBar *LoadMenuBar(const wxString& name); - %name(LoadMenuBarOnFrame) wxMenuBar *LoadMenuBar(wxWindow *parent, const wxString& name); - - - // Loads toolbar - wxToolBar *LoadToolBar(wxWindow *parent, const wxString& name); - - // Loads dialog. dlg points to parent window (if any). Second form - // is used to finish creation of already existing instance (main reason - // for this is that you may want to use derived class with new event table) - // Example (typical usage): - // MyDialog dlg; - // wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog"); - // dlg->ShowModal(); - wxDialog *LoadDialog(wxWindow *parent, const wxString& name); - %name(LoadOnDialog)bool LoadDialog(wxDialog *dlg, wxWindow *parent, const wxString& name); - - // Loads panel. panel points to parent window (if any). Second form - // is used to finish creation of already existing instance. - wxPanel *LoadPanel(wxWindow *parent, const wxString& name); - %name(LoadOnPanel)bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name); - - bool LoadFrame(wxFrame* frame, wxWindow *parent, const wxString& name); +// Include all the files that make up this module +%include _xmlres.i +%include _xmlsub.i +%include _xml.i +%include _xmlhandler.i - // Loads bitmap or icon resource from file: - wxBitmap LoadBitmap(const wxString& name); - wxIcon LoadIcon(const wxString& name); - // Attaches unknown control into given panel/window/dialog: - // (unknown controls are used in conjunction with ) - bool AttachUnknownControl(const wxString& name, wxWindow *control, - wxWindow *parent = NULL); - - // Returns numeric ID that is equivalent to string id used in XML - // resource. To be used in event tables - // Macro XMLID is provided for convenience - static int GetXRCID(const wxString& str_id); - // Returns version info (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a) - long GetVersion() const; - - // Compares resources version to argument. Returns -1 if resources version - // is less than the argument, +1 if greater and 0 if they equal. - int CompareVersion(int major, int minor, int release, int revision) const; - - - // Gets global resources object or create one if none exists - static wxXmlResource *Get(); - // Sets global resources object and returns pointer to previous one (may be NULL). - static wxXmlResource *Set(wxXmlResource *res); - -}; - -//---------------------------------------------------------------------- - -%pragma(python) code = " -def XRCID(str_id): - return wxXmlResource_GetXRCID(str_id) - -def XRCCTRL(window, str_id, *ignoreargs): - return window.FindWindowById(XRCID(str_id)) - -XMLID = XRCID -XMLCTRL = XRCCTRL -" - -//---------------------------------------------------------------------- - -// TODO: Add wxXmlResourceHandler and allow it to be derived from. - -//---------------------------------------------------------------------- +//--------------------------------------------------------------------------- %init %{ - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - wxXmlInitResourceModule(); wxXmlResource::Get()->InitAllHandlers(); %} -//---------------------------------------------------------------------- -// This file gets appended to the shadow class file. -//---------------------------------------------------------------------- -%pragma(python) include="_xrcextras.py"; +%pythoncode "_xrc_ex.py"; +//---------------------------------------------------------------------------