From c560da981a3304b3fa9e4b7be61f60f3f226946b Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Fri, 15 Jun 2007 15:12:51 +0000 Subject: [PATCH] use char* instead of wxChar* for XRC IDs to save space; GetXRCID() takes wxString argument git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/xmlres.tex | 2 +- include/wx/xrc/xmlres.h | 8 ++++++-- src/xrc/xmlres.cpp | 12 ++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/latex/wx/xmlres.tex b/docs/latex/wx/xmlres.tex index 0f924330d2..15efa2a074 100644 --- a/docs/latex/wx/xmlres.tex +++ b/docs/latex/wx/xmlres.tex @@ -137,7 +137,7 @@ Returns version information (a.b.c.d = d+ 256*c + 256\textasciicircum2*b + 256\t \membersection{wxXmlResource::GetXRCID}\label{wxxmlresourcegetxmlid} -\func{int}{GetXRCID}{\param{const wxChar* }{str\_id}, \param{int }{value\_if\_not\_found = -2}} +\func{int}{GetXRCID}{\param{const wxString\& }{str\_id}, \param{int }{value\_if\_not\_found = -2}} Returns a numeric ID that is equivalent to the string ID used in an XML resource. If an unknown \arg{str\_id} is requested (i.e. other than wxID\_XXX diff --git a/include/wx/xrc/xmlres.h b/include/wx/xrc/xmlres.h index 6d1a49318c..d5da40ca60 100644 --- a/include/wx/xrc/xmlres.h +++ b/include/wx/xrc/xmlres.h @@ -226,7 +226,11 @@ public: // with a number. If value_if_not_found == wxID_NONE, the number is obtained via // wxWindow::NewControlId(). Otherwise value_if_not_found is used. // Macro XRCID(name) is provided for convenient use in event tables. - static int GetXRCID(const wxChar *str_id, int value_if_not_found = wxID_NONE); + static int GetXRCID(const wxString& str_id, int value_if_not_found = wxID_NONE) + { return DoGetXRCID(str_id.mb_str(), value_if_not_found); } + + // version for internal use only + static int DoGetXRCID(const char *str_id, int value_if_not_found = wxID_NONE); // Returns version information (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a). long GetVersion() const { return m_version; } @@ -319,7 +323,7 @@ private: // END_EVENT_TABLE() #define XRCID(str_id) \ - wxXmlResource::GetXRCID(wxT(str_id)) + wxXmlResource::DoGetXRCID(str_id) // This macro returns pointer to particular control in dialog diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp index 5aeacc477b..af053770ac 100644 --- a/src/xrc/xmlres.cpp +++ b/src/xrc/xmlres.cpp @@ -1543,17 +1543,17 @@ void wxXmlResourceHandler::CreateChildrenPrivately(wxObject *parent, wxXmlNode * struct XRCID_record { int id; - wxChar *key; + char *key; XRCID_record *next; }; static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL}; -static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE) +static int XRCID_Lookup(const char *str_id, int value_if_not_found = wxID_NONE) { int index = 0; - for (const wxChar *c = str_id; *c != wxT('\0'); c++) index += (int)*c; + for (const char *c = str_id; *c != '\0'; c++) index += (int)*c; index %= XRCID_TABLE_SIZE; XRCID_record *oldrec = NULL; @@ -1572,7 +1572,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE (*rec_var)->key = wxStrdup(str_id); (*rec_var)->next = NULL; - wxChar *end; + char *end; if (value_if_not_found != wxID_NONE) (*rec_var)->id = value_if_not_found; else @@ -1595,7 +1595,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE static void AddStdXRCID_Records(); /*static*/ -int wxXmlResource::GetXRCID(const wxChar *str_id, int value_if_not_found) +int wxXmlResource::DoGetXRCID(const char *str_id, int value_if_not_found) { static bool s_stdIDsAdded = false; @@ -1630,7 +1630,7 @@ static void CleanXRCID_Records() static void AddStdXRCID_Records() { -#define stdID(id) XRCID_Lookup(wxT(#id), id) +#define stdID(id) XRCID_Lookup(#id, id) stdID(-1); stdID(wxID_ANY); -- 2.45.2