]> git.saurik.com Git - wxWidgets.git/commitdiff
use char* instead of wxChar* for XRC IDs to save space; GetXRCID() takes wxString...
authorVáclav Slavík <vslavik@fastmail.fm>
Fri, 15 Jun 2007 15:12:51 +0000 (15:12 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Fri, 15 Jun 2007 15:12:51 +0000 (15:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/xmlres.tex
include/wx/xrc/xmlres.h
src/xrc/xmlres.cpp

index 0f924330d2975b120c1fe5dfe6466d026516639d..15efa2a07479bb38b6392d83d62d537da0a8d8e9 100644 (file)
@@ -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
index 6d1a49318cdfb5735feddee77f13bc0218646b2a..d5da40ca6099f32ce0166f0458f0790c61a2b3fb 100644 (file)
@@ -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
index 5aeacc477b2bd234fd145134d0f47fffa049b48f..af053770ac0b6b883d00ea117cbb4858f23eee45 100644 (file)
@@ -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);