allow to specify the value for unknown ids in GetXRCID() (patch 1448981)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2006-05-06 16:59:59 +00:00
parent 5625d0d4ca
commit 9b2a74693e
3 changed files with 18 additions and 12 deletions

View File

@ -121,12 +121,14 @@ 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}} \func{int}{GetXRCID}{\param{const wxChar* }{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. To be used in event tables. resource. If an unknown \arg{str\_id} is requested (i.e. other than wxID\_XXX
The macro {\tt XRCID(name)} is provided for convenience. or integer), a new record is created which associates the given string with
a number. If \arg{value\_if\_not\_found} is \texttt{wxID\_NONE}, the number is obtained via
\helpref{wxNewId()}{wxnewid}. Otherwise \arg{value\_if\_not\_found} is used.
Macro {\tt XRCID(name)} is provided for convenient use in event tables.
\membersection{wxXmlResource::InitAllHandlers}\label{wxxmlresourceinitallhandlers} \membersection{wxXmlResource::InitAllHandlers}\label{wxxmlresourceinitallhandlers}

View File

@ -211,10 +211,13 @@ public:
bool AttachUnknownControl(const wxString& name, wxWindow *control, bool AttachUnknownControl(const wxString& name, wxWindow *control,
wxWindow *parent = NULL); wxWindow *parent = NULL);
// 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. To be used in event tables. // resource. If an unknown str_id is requested (i.e. other than wxID_XXX
// Macro XRCID is provided for convenience // or integer), a new record is created which associates the given string
static int GetXRCID(const wxChar *str_id); // with a number. If value_if_not_found == wxID_NONE, the number is obtained via
// wxNewId(). 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);
// 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; }

View File

@ -1497,7 +1497,7 @@ struct XRCID_record
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 = -2) static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE)
{ {
int index = 0; int index = 0;
@ -1521,7 +1521,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = -2)
(*rec_var)->next = NULL; (*rec_var)->next = NULL;
wxChar *end; wxChar *end;
if (value_if_not_found != -2) if (value_if_not_found != wxID_NONE)
(*rec_var)->id = value_if_not_found; (*rec_var)->id = value_if_not_found;
else else
{ {
@ -1542,7 +1542,8 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = -2)
static void AddStdXRCID_Records(); static void AddStdXRCID_Records();
/*static*/ int wxXmlResource::GetXRCID(const wxChar *str_id) /*static*/
int wxXmlResource::GetXRCID(const wxChar *str_id, int value_if_not_found)
{ {
static bool s_stdIDsAdded = false; static bool s_stdIDsAdded = false;
@ -1552,7 +1553,7 @@ static void AddStdXRCID_Records();
AddStdXRCID_Records(); AddStdXRCID_Records();
} }
return XRCID_Lookup(str_id); return XRCID_Lookup(str_id, value_if_not_found);
} }