X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/326462ae94e4b1d4fb6a8d56875ce0fcbd9d1c33..36a0190ebd5bd9a7302f60f6dcd608b80574e21c:/interface/wx/xrc/xmlres.h diff --git a/interface/wx/xrc/xmlres.h b/interface/wx/xrc/xmlres.h index eba741549b..a264d2ab39 100644 --- a/interface/wx/xrc/xmlres.h +++ b/interface/wx/xrc/xmlres.h @@ -2,8 +2,7 @@ // Name: xrc/xmlres.h // Purpose: interface of wxXmlResource // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -89,6 +88,12 @@ public: */ void AddHandler(wxXmlResourceHandler* handler); + /** + Add a new handler at the begining of the handler list. + */ + void InsertHandler(wxXmlResourceHandler *handler); + + /** Attaches an unknown control to the given panel/window/dialog. Unknown controls are used in conjunction with \. @@ -103,6 +108,14 @@ public: */ void ClearHandlers(); + /** + Registers subclasses factory for use in XRC. This is useful only for + language bindings developers who need a way to implement subclassing in + wxWidgets ports that don't support wxRTTI (e.g. wxPython). + */ + static void AddSubclassFactory(wxXmlSubclassFactory *factory); + + /** Compares the XRC version to the argument. @@ -175,7 +188,12 @@ public: If @a value_if_not_found is @c wxID_NONE, the number is obtained via wxNewId(). Otherwise @a value_if_not_found is used. + Macro @c XRCID(name) is provided for convenient use in event tables. + + @note IDs returned by XRCID() cannot be used with the EVT_*_RANGE + macros, because the order in which they are assigned to symbolic @a name + values is not guaranteed. */ static int GetXRCID(const wxString& str_id, int value_if_not_found = wxID_NONE); @@ -255,7 +273,16 @@ public: bool LoadDialog(wxDialog* dlg, wxWindow* parent, const wxString& name); /** - Loads a frame. + Loads a frame from the resource. @a parent points to parent window (if any). + */ + wxFrame *LoadFrame(wxWindow* parent, const wxString& name); + + /** + Loads the contents of a frame onto an existing wxFrame. + + This form is used to finish creation of an already existing instance + (the main reason for this is that you may want to use derived class + with a new event table). */ bool LoadFrame(wxFrame* frame, wxWindow* parent, const wxString& name); @@ -286,6 +313,10 @@ public: The first overload lets you load nonstandard container windows and returns @NULL on failure. The second one lets you finish the creation of an existing instance and returns @false on failure. + + In either case, only the resources defined at the top level of XRC + files can be loaded by this function, use LoadObjectRecursively() if + you need to load an object defined deeper in the hierarchy. */ wxObject* LoadObject(wxWindow* parent, const wxString& name, const wxString& classname); @@ -294,6 +325,27 @@ public: const wxString& classname); //@} + //@{ + /** + Load an object from anywhere in the resource tree. + + These methods are similar to LoadObject() but may be used to load an + object from anywhere in the resource tree and not only the top level. + Note that you will very rarely need to do this as in normal use the + entire container window (defined at the top level) is loaded and not + its individual children but this method can be useful in some + particular situations. + + @since 2.9.1 + */ + wxObject* LoadObjectRecursively(wxWindow* parent, + const wxString& name, + const wxString& classname); + bool LoadObjectRecursively(wxObject* instance, wxWindow* parent, + const wxString& name, + const wxString& classname); + //@} + /** Loads a panel. @a parent points to the parent window. */ @@ -358,7 +410,7 @@ protected: @see wxXmlResourceHandler::ReportError(), DoReportError() */ - void ReportError(wxXmlNode *context, const wxString& message); + void ReportError(const wxXmlNode *context, const wxString& message); /** Implementation of XRC resources errors reporting. @@ -386,7 +438,7 @@ protected: @see ReportError() */ - virtual void DoReportError(const wxString& xrcFile, wxXmlNode *position, + virtual void DoReportError(const wxString& xrcFile, const wxXmlNode *position, const wxString& message); }; @@ -484,7 +536,7 @@ protected: /** Creates an animation (see wxAnimation) from the filename specified in @a param. */ - wxAnimation GetAnimation(const wxString& param = "animation"); + wxAnimation* GetAnimation(const wxString& param = "animation"); /** Gets a bitmap. @@ -523,6 +575,18 @@ protected: wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0, wxWindow* windowToUse = 0); + /** + Gets a direction. + + If the given @a param is not present or has empty value, @a dir is + returned by default. Otherwise the value of the parameter is parsed and + a warning is generated if it's not one of @c wxLEFT, @c wxTOP, @c + wxRIGHT or @c wxBOTTOM. + + @since 2.9.3 + */ + wxDirection GetDirection(const wxString& param, wxDirection dir = wxLEFT); + /** Gets a font. */ @@ -570,13 +634,18 @@ protected: @since 2.9.1 */ - wxImageList *GetImageList(const wxString& param = wxT("imagelist")); + wxImageList *GetImageList(const wxString& param = "imagelist"); /** Gets the integer value from the parameter. */ long GetLong(const wxString& param, long defaultv = 0); + /** + Gets a float value from the parameter. + */ + float GetFloat(const wxString& param, float defaultv = 0); + /** Returns the resource name. */ @@ -672,5 +741,55 @@ protected: @since 2.9.0 */ void ReportParamError(const wxString& param, const wxString& message); + + + /** + After CreateResource has been called this will return the current + wxXmlResource object. + + @since 2.9.5 + */ + wxXmlResource* GetResource() const; + + /** + After CreateResource has been called this will return the XML node + being processed. + + @since 2.9.5 + */ + wxXmlNode* GetNode() const; + + /** + After CreateResource has been called this will return the class name of + the XML resource node being processed. + + @since 2.9.5 + */ + wxString GetClass() const; + + /** + After CreateResource has been called this will return the current + item's parent, if any. + + @since 2.9.5 + */ + wxObject* GetParent() const; + + /** + After CreateResource has been called this will return the instance that + the XML resource content should be created upon, if it has already been + created. If @NULL then the handler should create the object itself. + + @since 2.9.5 + */ + wxObject* GetInstance() const; + + /** + After CreateResource has been called this will return the item's parent + as a wxWindow. + + @since 2.9.5 + */ + wxWindow* GetParentAsWindow() const; };