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
This commit is contained in:
parent
5d88a6b579
commit
c560da981a
@ -137,7 +137,7 @@ Returns version information (a.b.c.d = d+ 256*c + 256\textasciicircum2*b + 256\t
|
|||||||
|
|
||||||
\membersection{wxXmlResource::GetXRCID}\label{wxxmlresourcegetxmlid}
|
\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
|
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
|
resource. If an unknown \arg{str\_id} is requested (i.e. other than wxID\_XXX
|
||||||
|
@ -226,7 +226,11 @@ public:
|
|||||||
// with a number. If value_if_not_found == wxID_NONE, the number is obtained via
|
// with a number. If value_if_not_found == wxID_NONE, the number is obtained via
|
||||||
// wxWindow::NewControlId(). Otherwise value_if_not_found is used.
|
// wxWindow::NewControlId(). Otherwise value_if_not_found is used.
|
||||||
// Macro XRCID(name) is provided for convenient use in event tables.
|
// 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).
|
// Returns version information (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a).
|
||||||
long GetVersion() const { return m_version; }
|
long GetVersion() const { return m_version; }
|
||||||
@ -319,7 +323,7 @@ private:
|
|||||||
// END_EVENT_TABLE()
|
// END_EVENT_TABLE()
|
||||||
|
|
||||||
#define XRCID(str_id) \
|
#define XRCID(str_id) \
|
||||||
wxXmlResource::GetXRCID(wxT(str_id))
|
wxXmlResource::DoGetXRCID(str_id)
|
||||||
|
|
||||||
|
|
||||||
// This macro returns pointer to particular control in dialog
|
// This macro returns pointer to particular control in dialog
|
||||||
|
@ -1543,17 +1543,17 @@ void wxXmlResourceHandler::CreateChildrenPrivately(wxObject *parent, wxXmlNode *
|
|||||||
struct XRCID_record
|
struct XRCID_record
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
wxChar *key;
|
char *key;
|
||||||
XRCID_record *next;
|
XRCID_record *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL};
|
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;
|
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;
|
index %= XRCID_TABLE_SIZE;
|
||||||
|
|
||||||
XRCID_record *oldrec = NULL;
|
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)->key = wxStrdup(str_id);
|
||||||
(*rec_var)->next = NULL;
|
(*rec_var)->next = NULL;
|
||||||
|
|
||||||
wxChar *end;
|
char *end;
|
||||||
if (value_if_not_found != wxID_NONE)
|
if (value_if_not_found != wxID_NONE)
|
||||||
(*rec_var)->id = value_if_not_found;
|
(*rec_var)->id = value_if_not_found;
|
||||||
else
|
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 void AddStdXRCID_Records();
|
||||||
|
|
||||||
/*static*/
|
/*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;
|
static bool s_stdIDsAdded = false;
|
||||||
|
|
||||||
@ -1630,7 +1630,7 @@ static void CleanXRCID_Records()
|
|||||||
|
|
||||||
static void AddStdXRCID_Records()
|
static void AddStdXRCID_Records()
|
||||||
{
|
{
|
||||||
#define stdID(id) XRCID_Lookup(wxT(#id), id)
|
#define stdID(id) XRCID_Lookup(#id, id)
|
||||||
stdID(-1);
|
stdID(-1);
|
||||||
|
|
||||||
stdID(wxID_ANY);
|
stdID(wxID_ANY);
|
||||||
|
Loading…
Reference in New Issue
Block a user