]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_odcombo.cpp
Hacks for wine.
[wxWidgets.git] / src / xrc / xh_odcombo.cpp
index aa8707aecfcfbe6e691bf40b07adf5d454c18009..8f5d6d27058f7e1c52aae9ea9411a8abe0ceafa4 100644 (file)
@@ -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