]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
changed return type of RGBColor to const Reference (avoiding compiler warnings)
[wxWidgets.git] / src / msw / textctrl.cpp
index b8b44e6c6d3a4b2c8bb006c39fac51681136386b..27a8a374621a0924f03e9cbfd1fb5fac58bc2248 100644 (file)
     } ENLINK;
 #endif // ENLINK
 
+#ifndef SF_UNICODE
+    #define SF_UNICODE 0x0010
+#endif
+
 // ----------------------------------------------------------------------------
 // private functions
 // ----------------------------------------------------------------------------
@@ -433,10 +437,13 @@ void wxTextCtrl::SetValue(const wxString& value)
         Clear();
 
         WriteText(value);
+
+        // for compatibility, don't move the cursor when doing SetValue()
+        SetInsertionPoint(0);
     }
 }
 
-#if wxUSE_RICHEDIT
+#if wxUSE_RICHEDIT && !wxUSE_UNICODE
 
 DWORD CALLBACK wxRichEditStreamIn(DWORD dwCookie, BYTE *buf, LONG cb, LONG *pcb)
 {
@@ -488,7 +495,8 @@ bool wxTextCtrl::StreamIn(const wxString& value, wxFontEncoding encoding)
     EDITSTREAM eds;
     wxZeroMemory(eds);
     eds.dwCookie = (DWORD)&wpc;
-    eds.pfnCallback = wxRichEditStreamIn;
+    // the cast below is needed for broken (very) old mingw32 headers
+    eds.pfnCallback = (EDITSTREAMCALLBACK)wxRichEditStreamIn;
 
     if ( !::SendMessage(GetHwnd(), EM_STREAMIN,
                         SF_TEXT | SF_UNICODE | SFF_SELECTION,
@@ -521,6 +529,7 @@ void wxTextCtrl::WriteText(const wxString& value)
             SetStyle(start, end, m_defaultStyle );
         }
 
+#if !wxUSE_UNICODE
         // next check if the text we're inserting must be shown in a non
         // default charset -- this only works for RichEdit > 1.0
         if ( GetRichVersion() > 1 )
@@ -538,6 +547,7 @@ void wxTextCtrl::WriteText(const wxString& value)
                }
             }
         }
+#endif // !wxUSE_UNICODE
     }
 
     if ( !done )