]> git.saurik.com Git - wxWidgets.git/commitdiff
allow to specify the value for unknown ids in GetXRCID() (patch 1448981)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 6 May 2006 16:59:59 +0000 (16:59 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 6 May 2006 16:59:59 +0000 (16:59 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

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

index 7ef4cf75df44eff07eb5d9069594930854261cd3..8d0e7b8382c66302ececfe9324686210427a5824 100644 (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}
 
-\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
-resource. To be used in event tables.
-The macro {\tt XRCID(name)} is provided for convenience.
-
+resource. If an unknown \arg{str\_id} is requested (i.e. other than wxID\_XXX
+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}
 
index e48c0728c8f8165a39e5fa7d2c05b9918439135b..fe475b80b322bf86556ee17db59d5b52b16cccac 100644 (file)
@@ -211,10 +211,13 @@ public:
     bool AttachUnknownControl(const wxString& name, wxWindow *control,
                               wxWindow *parent = NULL);
 
-    // Returns a numeric ID that is equivalent to the string id used in an XML
-    // resource. To be used in event tables.
-    // Macro XRCID is provided for convenience
-    static int GetXRCID(const wxChar *str_id);
+    // Returns a numeric ID that is equivalent to the string ID used in an XML
+    // resource. If an unknown str_id is requested (i.e. other than wxID_XXX
+    // or integer), a new record is created which associates the given string
+    // 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).
     long GetVersion() const { return m_version; }
index e8d66785f7c45e06fc305d995597c166504f8e71..238bda8e31bbcdcf27e45433d843cf98cc54344b 100644 (file)
@@ -1497,7 +1497,7 @@ struct XRCID_record
 
 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;
 
@@ -1521,7 +1521,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = -2)
     (*rec_var)->next = NULL;
 
     wxChar *end;
-    if (value_if_not_found != -2)
+    if (value_if_not_found != wxID_NONE)
         (*rec_var)->id = value_if_not_found;
     else
     {
@@ -1542,7 +1542,8 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = -2)
 
 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;
 
@@ -1552,7 +1553,7 @@ static void AddStdXRCID_Records();
         AddStdXRCID_Records();
     }
 
-    return XRCID_Lookup(str_id);
+    return XRCID_Lookup(str_id, value_if_not_found);
 }