#include "wx/odcombo.h"
+#include "wx/xml/xml.h"
+
IMPLEMENT_DYNAMIC_CLASS(wxOwnerDrawnComboBoxXmlHandler, wxXmlResourceHandler)
wxOwnerDrawnComboBoxXmlHandler::wxOwnerDrawnComboBoxXmlHandler()
// 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)
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;
// 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;
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")));
#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