⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlres.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
📖 第 1 页 / 共 2 页
字号:
    // Creates a resource from information in the given node    // (Uses only 'handlerToUse' if != NULL)    wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent,                                wxObject *instance = NULL,                                wxXmlResourceHandler *handlerToUse = NULL);    // Helper of Load() and Unload(): returns the URL corresponding to the    // given file if it's indeed a file, otherwise returns the original string    // unmodified    static wxString ConvertFileNameToURL(const wxString& filename);    // loading resources from archives is impossible without wxFileSystem#if wxUSE_FILESYSTEM    // Another helper: detect if the filename is a ZIP or XRS file    static bool IsArchive(const wxString& filename);#endif // wxUSE_FILESYSTEMprivate:    long m_version;    int m_flags;    wxList m_handlers;    wxXmlResourceDataRecords m_data;#if wxUSE_FILESYSTEM    wxFileSystem m_curFileSystem;    wxFileSystem& GetCurFileSystem() { return m_curFileSystem; }#endif    // domain to pass to translation functions, if any.    wxChar* m_domain;        friend class wxXmlResourceHandler;    friend class wxXmlResourceModule;    static wxXmlSubclassFactoriesList *ms_subclassFactories;    // singleton instance:    static wxXmlResource *ms_instance;};// This macro translates string identifier (as used in XML resource,// e.g. <menuitem id="my_menu">...</menuitem>) to integer id that is needed by// wxWidgets event tables.// Example://    BEGIN_EVENT_TABLE(MyFrame, wxFrame)//       EVT_MENU(XRCID("quit"), MyFrame::OnQuit)//       EVT_MENU(XRCID("about"), MyFrame::OnAbout)//       EVT_MENU(XRCID("new"), MyFrame::OnNew)//       EVT_MENU(XRCID("open"), MyFrame::OnOpen)//    END_EVENT_TABLE()#define XRCID(str_id) \    wxXmlResource::GetXRCID(wxT(str_id))// This macro returns pointer to particular control in dialog// created using XML resources. You can use it to set/get values from// controls.// Example://    wxDialog dlg;//    wxXmlResource::Get()->LoadDialog(&dlg, mainFrame, "my_dialog");//    XRCCTRL(dlg, "my_textctrl", wxTextCtrl)->SetValue(wxT("default value"));#define XRCCTRL(window, id, type) \    (wxStaticCast((window).FindWindow(XRCID(id)), type))// wxXmlResourceHandler is an abstract base class for resource handlers// capable of creating a control from an XML node.class WXDLLIMPEXP_XRC wxXmlResourceHandler : public wxObject{DECLARE_ABSTRACT_CLASS(wxXmlResourceHandler)public:    // Constructor.    wxXmlResourceHandler();    // Destructor.    virtual ~wxXmlResourceHandler() {}    // Creates an object (menu, dialog, control, ...) from an XML node.    // Should check for validity.    // parent is a higher-level object (usually window, dialog or panel)    // that is often necessary to create the resource.    // If instance is non-NULL it should not create a new instance via 'new' but    // should rather use this one, and call its Create method.    wxObject *CreateResource(wxXmlNode *node, wxObject *parent,                             wxObject *instance);    // This one is called from CreateResource after variables    // were filled.    virtual wxObject *DoCreateResource() = 0;    // Returns true if it understands this node and can create    // a resource from it, false otherwise.    virtual bool CanHandle(wxXmlNode *node) = 0;    // Sets the parent resource.    void SetParentResource(wxXmlResource *res) { m_resource = res; }protected:    wxXmlResource *m_resource;    wxArrayString m_styleNames;    wxArrayInt m_styleValues;    // Variables (filled by CreateResource)    wxXmlNode *m_node;    wxString m_class;    wxObject *m_parent, *m_instance;    wxWindow *m_parentAsWindow;    // --- Handy methods:    // Returns true if the node has a property class equal to classname,    // e.g. <object class="wxDialog">.    bool IsOfClass(wxXmlNode *node, const wxString& classname);    // Gets node content from wxXML_ENTITY_NODE    // The problem is, <tag>content<tag> is represented as    // wxXML_ENTITY_NODE name="tag", content=""    //    |-- wxXML_TEXT_NODE or    //        wxXML_CDATA_SECTION_NODE name="" content="content"    wxString GetNodeContent(wxXmlNode *node);    // Check to see if a parameter exists.    bool HasParam(const wxString& param);    // Finds the node or returns NULL.    wxXmlNode *GetParamNode(const wxString& param);    // Finds the parameter value or returns the empty string.    wxString GetParamValue(const wxString& param);    // Add a style flag (e.g. wxMB_DOCKABLE) to the list of flags    // understood by this handler.    void AddStyle(const wxString& name, int value);    // Add styles common to all wxWindow-derived classes.    void AddWindowStyles();    // Gets style flags from text in form "flag | flag2| flag3 |..."    // Only understands flags added with AddStyle    int GetStyle(const wxString& param = wxT("style"), int defaults = 0);    // Gets text from param and does some conversions:    // - replaces \n, \r, \t by respective chars (according to C syntax)    // - replaces _ by & and __ by _ (needed for _File => &File because of XML)    // - calls wxGetTranslations (unless disabled in wxXmlResource)    wxString GetText(const wxString& param, bool translate = true);    // Returns the XRCID.    int GetID();    // Returns the resource name.    wxString GetName();    // Gets a bool flag (1, t, yes, on, true are true, everything else is false).    bool GetBool(const wxString& param, bool defaultv = false);    // Gets an 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);    // Gets colour in HTML syntax (#RRGGBB).    wxColour GetColour(const wxString& param, const wxColour& defaultv = wxNullColour);    // Gets the size (may be in dialog units).    wxSize GetSize(const wxString& param = wxT("size"),                   wxWindow *windowToUse = NULL);    // Gets the position (may be in dialog units).    wxPoint GetPosition(const wxString& param = wxT("pos"));    // Gets a dimension (may be in dialog units).    wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0,                         wxWindow *windowToUse = NULL);    // Gets a bitmap.    wxBitmap GetBitmap(const wxString& param = wxT("bitmap"),                       const wxArtClient& defaultArtClient = wxART_OTHER,                       wxSize size = wxDefaultSize);    // Gets an icon.    wxIcon GetIcon(const wxString& param = wxT("icon"),                   const wxArtClient& defaultArtClient = wxART_OTHER,                   wxSize size = wxDefaultSize);#if wxUSE_ANIMATIONCTRL    // Gets an animation.    wxAnimation GetAnimation(const wxString& param = wxT("animation"));#endif    // Gets a font.    wxFont GetFont(const wxString& param = wxT("font"));    // Sets common window options.    void SetupWindow(wxWindow *wnd);    // Creates children.    void CreateChildren(wxObject *parent, bool this_hnd_only = false);    // Helper function.    void CreateChildrenPrivately(wxObject *parent, wxXmlNode *rootnode = NULL);    // Creates a resource from a node.    wxObject *CreateResFromNode(wxXmlNode *node,                                wxObject *parent, wxObject *instance = NULL)        { return m_resource->CreateResFromNode(node, parent, instance); }    // helper#if wxUSE_FILESYSTEM    wxFileSystem& GetCurFileSystem() { return m_resource->GetCurFileSystem(); }#endif};// Programmer-friendly macros for writing XRC handlers:#define XRC_ADD_STYLE(style) AddStyle(wxT(#style), style)#define XRC_MAKE_INSTANCE(variable, classname) \   classname *variable = NULL; \   if (m_instance) \       variable = wxStaticCast(m_instance, classname); \   if (!variable) \       variable = new classname;// FIXME -- remove this $%^#$%#$@# as soon as Ron checks his changes in!!WXDLLIMPEXP_XRC void wxXmlInitResourceModule();// This class is used to create instances of XRC "object" nodes with "subclass"// property. It is _not_ supposed to be used by XRC users, you should instead// register your subclasses via wxWidgets' RTTI mechanism. This class is useful// only for language bindings developer who need a way to implement subclassing// in wxWidgets ports that don't support wxRTTI (e.g. wxPython).class WXDLLIMPEXP_XRC wxXmlSubclassFactory{public:    // Try to create instance of given class and return it, return NULL on    // failure:    virtual wxObject *Create(const wxString& className) = 0;    virtual ~wxXmlSubclassFactory() {}};/* -------------------------------------------------------------------------   Backward compatibility macros. Do *NOT* use, they may disappear in future   versions of the XRC library!   ------------------------------------------------------------------------- */#if WXWIN_COMPATIBILITY_2_4    #define ADD_STYLE         XRC_ADD_STYLE    #define wxTheXmlResource  wxXmlResource::Get()    #define XMLID             XRCID    #define XMLCTRL           XRCCTRL    #define GetXMLID          GetXRCID#endif#endif // wxUSE_XRC#endif // _WX_XMLRES_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -