// Purpose: interface of wxXmlResource
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
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);
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.
*/
hasn't been found in the list of loaded resources.
*/
bool Unload(const wxString& filename);
+
+protected:
+ /**
+ Reports error in XRC resources to the user.
+
+ Any errors in XRC input files should be reported using this method
+ (or its wxXmlResourceHandler::ReportError() equivalent). Unlike
+ wxLogError(), this method presents the error to the user in a more
+ usable form. In particular, the output is compiler-like and contains
+ information about the exact location of the error.
+
+ @param context XML node the error occurred in or relates to. This can
+ be @NULL, but should be the most specific node possible,
+ as its line number is what is reported to the user.
+ @param message Text of the error message. This string should always
+ be in English (i.e. not wrapped in _()). It shouldn't
+ be a sentence -- it should start with lower-case letter
+ and shouldn't have a trailing period or exclamation
+ point.
+
+ @since 2.9.0
+
+ @see wxXmlResourceHandler::ReportError(), DoReportError()
+ */
+ void ReportError(const wxXmlNode *context, const wxString& message);
+
+ /**
+ Implementation of XRC resources errors reporting.
+
+ This method is called by ReportError() and shouldn't be called
+ directly; use ReportError() or wxXmlResourceHandler::ReportError()
+ to log errors.
+
+ Default implementation uses wxLogError().
+
+ @param xrcFile File the error occurred in or empty string if it
+ couldn't be determined.
+ @param position XML node where the error occurred or @NULL if it
+ couldn't be determined.
+ @param message Text of the error message. See ReportError()
+ documentation for details of the string's format.
+
+ @note
+ You may override this method in a derived class to customize errors
+ reporting. If you do so, you'll need to either use the derived class
+ in all your code or call wxXmlResource::Set() to change the global
+ wxXmlResource instance to your class.
+
+ @since 2.9.0
+
+ @see ReportError()
+ */
+ virtual void DoReportError(const wxString& xrcFile, const wxXmlNode *position,
+ const wxString& message);
};
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).
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 = wxT("imagelist"));
+
/**
Gets the integer value from the parameter.
*/
*/
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).
*/
Sets common window options.
*/
void SetupWindow(wxWindow* wnd);
+
+ /**
+ Reports error in XRC resources to the user.
+
+ See wxXmlResource::ReportError() for more information.
+
+ @since 2.9.0
+ */
+ void ReportError(wxXmlNode *context, const wxString& message);
+
+ /**
+ Like ReportError(wxXmlNode*, const wxString&), but uses the node
+ of currently processed object (m_node) as the context.
+
+ @since 2.9.0
+ */
+ void ReportError(const wxString& message);
+
+ /**
+ Like ReportError(wxXmlNode*, const wxString&), but uses the node
+ of parameter @a param of the currently processed object as the context.
+ This is convenience function for reporting errors in particular
+ parameters.
+
+ @since 2.9.0
+ */
+ void ReportParamError(const wxString& param, const wxString& message);
};