X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/582f07c2532e6e2d7d1ccb235354548e9bada9bf..24aab8e81a8627802e4111d9c99a50ece8d0026e:/src/xrc/xh_odcombo.cpp diff --git a/src/xrc/xh_odcombo.cpp b/src/xrc/xh_odcombo.cpp index aa8707aecf..8f5d6d2705 100644 --- a/src/xrc/xh_odcombo.cpp +++ b/src/xrc/xh_odcombo.cpp @@ -21,6 +21,7 @@ #ifndef WX_PRECOMP #include "wx/intl.h" + #include "wx/textctrl.h" #endif #include "wx/odcombo.h" @@ -37,6 +38,7 @@ wxOwnerDrawnComboBoxXmlHandler::wxOwnerDrawnComboBoxXmlHandler() XRC_ADD_STYLE(wxCB_DROPDOWN); XRC_ADD_STYLE(wxODCB_STD_CONTROL_PAINT); XRC_ADD_STYLE(wxODCB_DCLICK_CYCLES); + XRC_ADD_STYLE(wxTE_PROCESS_ENTER); AddWindowStyles(); } @@ -71,8 +73,6 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource() wxDefaultValidator, GetName()); - control->SetPopupControl(NULL); - wxSize ButtonSize=GetSize(wxT("buttonsize")); if (ButtonSize != wxDefaultSize) @@ -97,7 +97,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,14 +106,23 @@ wxObject *wxOwnerDrawnComboBoxXmlHandler::DoCreateResource() bool wxOwnerDrawnComboBoxXmlHandler::CanHandle(wxXmlNode *node) { -// Avoid GCC bug - this fails on certain GCC 3.x builds for an unknown reason -// return (IsOfClass(node, wxT("wxOwnerDrawnComboBox")) || -// (m_insideBox && node->GetName() == wxT("item"))); +#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 +// 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"); return (fOurClass || (m_insideBox && node->GetName() == wxT("item"))); - +#endif } #endif // wxUSE_XRC && wxUSE_ODCOMBOBOX