// Name: xrc/xmlres.h
// Purpose: interface of wxXmlResource
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
*/
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 \<object class="unknown"\>.
*/
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.
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 <tt>EVT_*_RANGE</tt>
+ 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);
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);
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);
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.
*/
@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.
@see ReportError()
*/
- virtual void DoReportError(const wxString& xrcFile, wxXmlNode *position,
+ virtual void DoReportError(const wxString& xrcFile, const wxXmlNode *position,
const wxString& message);
};
/**
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.
wxBitmap GetBitmap(const wxString& param = "bitmap",
const wxArtClient& defaultArtClient = wxART_OTHER,
wxSize size = wxDefaultSize);
+ /**
+ Gets a bitmap from an XmlNode.
+
+ @since 2.9.1
+ */
+ wxBitmap GetBitmap(const wxXmlNode* node,
+ const wxArtClient& defaultArtClient = wxART_OTHER,
+ wxSize size = wxDefaultSize);
/**
Gets a bool flag (1, t, yes, on, true are @true, everything else is @false).
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 dirDefault 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 dirDefault = wxLEFT);
+
/**
Gets a font.
*/
const wxArtClient& defaultArtClient = wxART_OTHER,
wxSize size = wxDefaultSize);
+ /**
+ Gets an icon from an XmlNode.
+
+ @since 2.9.1
+ */
+ wxIcon GetIcon(const wxXmlNode* node,
+ const wxArtClient& defaultArtClient = wxART_OTHER,
+ wxSize size = wxDefaultSize);
+
+ /**
+ Returns an icon bundle.
+
+ @note
+ Bundles can be loaded either with stock IDs or from files that contain
+ more than one image (e.g. Windows icon files). If a file contains only
+ single image, a bundle with only one icon will be created.
+
+ @since 2.9.0
+ */
+ wxIconBundle GetIconBundle(const wxString& param,
+ const wxArtClient& defaultArtClient = wxART_OTHER);
+
+ /**
+ Creates an image list from the @a param markup data.
+
+ @return
+ The new instance of wxImageList or @NULL if no data is found.
+
+ @since 2.9.1
+ */
+ 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.
*/
*/
wxString GetParamValue(const wxString& param);
+ /**
+ Returns the node parameter value.
+
+ @since 2.9.1
+ */
+ wxString GetParamValue(const wxXmlNode* node);
+
/**
Gets the position (may be in dialog units).
*/
@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;
};