]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_odcombo.cpp
Check gtk_tree_model_iter_nth_child() return value in wxChoice code.
[wxWidgets.git] / src / xrc / xh_odcombo.cpp
index ffd08373efa69719b2c0f0a62f3733d09afb3ebd..8ee6ebc034cef6cff098c26319a2a1d42f5e0066 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "wx/odcombo.h"
 
+#include "wx/xml/xml.h"
+
 IMPLEMENT_DYNAMIC_CLASS(wxOwnerDrawnComboBoxXmlHandler, wxXmlResourceHandler)
 
 wxOwnerDrawnComboBoxXmlHandler::wxOwnerDrawnComboBoxXmlHandler()
@@ -52,14 +54,6 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource()
         // need to build the list of strings from children
         m_insideBox = true;
         CreateChildrenPrivately(NULL, GetParamNode(wxT("content")));
-        wxString *strings = (wxString *) NULL;
-        if (strList.GetCount() > 0)
-        {
-            strings = new wxString[strList.GetCount()];
-            int count = strList.GetCount();
-            for (int i = 0; i < count; i++)
-                strings[i]=strList[i];
-        }
 
         XRC_MAKE_INSTANCE(control, wxOwnerDrawnComboBox)
 
@@ -67,24 +61,21 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource()
                         GetID(),
                         GetText(wxT("value")),
                         GetPosition(), GetSize(),
-                        strList.GetCount(),
-                        strings,
+                        strList,
                         GetStyle(),
                         wxDefaultValidator,
                         GetName());
 
-        wxSize ButtonSize=GetSize(wxT("buttonsize"));
+        wxSize sizeBtn=GetSize(wxT("buttonsize"));
 
-        if (ButtonSize != wxDefaultSize)
-        control->SetButtonPosition(ButtonSize.GetWidth(), ButtonSize.GetHeight());
+        if (sizeBtn != wxDefaultSize)
+            control->SetButtonPosition(sizeBtn.GetWidth(), sizeBtn.GetHeight());
 
         if (selection != -1)
             control->SetSelection(selection);
 
         SetupWindow(control);
 
-        if (strings != NULL)
-            delete[] strings;
         strList.Clear();    // dump the strings
 
         return control;
@@ -97,7 +88,7 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource()
         // add to the list
         wxString str = GetNodeContent(m_node);
         if (m_resource->GetFlags() & wxXRC_USE_LOCALE)
-            str = wxGetTranslation(str);
+            str = wxGetTranslation(str, m_resource->GetDomain());
         strList.Add(str);
 
         return NULL;
@@ -106,7 +97,7 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource()
 
 bool wxOwnerDrawnComboBoxXmlHandler::CanHandle(wxXmlNode *node)
 {
-#if wxABI_VERSION >= 20700
+#if wxCHECK_VERSION(2,7,0)
 
     return (IsOfClass(node, wxT("wxOwnerDrawnComboBox")) ||
            (m_insideBox && node->GetName() == wxT("item")));
@@ -114,12 +105,12 @@ bool wxOwnerDrawnComboBoxXmlHandler::CanHandle(wxXmlNode *node)
 #else
 
 //  Avoid GCC bug - this fails on certain GCC 3.3 and 3.4 builds for an unknown reason
-//  it is believed to be related to the fact IsOfClass is inline, and node->GetPropVal
+//  it is believed to be related to the fact IsOfClass is inline, and node->GetAttribute
 //  gets passed an invalid "this" pointer. On 2.7, the function is out of line, so the
 //  above should work fine. This code is left in here so this file can easily be used
 //  in a version backported to 2.6. All we are doing here is expanding the macro
 
-    bool fOurClass = node->GetPropVal(wxT("class"), wxEmptyString) == wxT("wxOwnerDrawnComboBox");
+    bool fOurClass = node->GetAttribute(wxT("class"), wxEmptyString) == wxT("wxOwnerDrawnComboBox");
     return (fOurClass ||
           (m_insideBox && node->GetName() == wxT("item")));
 #endif