]> git.saurik.com Git - wxWidgets.git/commitdiff
wxStreamToTextRedirector fixes, define wxHAS_TEXT_WINDOW_STREAM.
authorWłodzimierz Skiba <abx@abx.art.pl>
Wed, 13 Apr 2005 17:51:16 +0000 (17:51 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Wed, 13 Apr 2005 17:51:16 +0000 (17:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/textctrl.h
samples/widgets/textctrl.cpp
src/common/textcmn.cpp

index 0693fca9a457e815ff433ec6a5f90b323c4bd851..0f5ed157472dfee1bda8a7fca2876da296bc12e8 100644 (file)
 #include "wx/dynarray.h"        // wxArrayInt
 #include "wx/gdicmn.h"          // wxPoint
 
-// 16-bit Borland 4.0 doesn't seem to allow multiple inheritance with wxWindow
-// and streambuf: it complains about deriving a huge class from the huge class
-// streambuf. !! Also, can't use streambuf if making or using a DLL :-(
+// Open Watcom 1.3 does allow only ios::rdbuf() while
+// we want something with streambuf parameter
+// Also, can't use streambuf if making or using a DLL :-(
 
-#if (defined(__BORLANDC__)) || defined(__MWERKS__) || \
+#if defined(__WATCOMC__) || \
+    defined(__MWERKS__) || \
     (defined(__WINDOWS__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL)))
-    #define NO_TEXT_WINDOW_STREAM
-#endif
-
-#ifndef NO_TEXT_WINDOW_STREAM
-    #if wxUSE_STD_IOSTREAM
-        #include "wx/ioswrap.h"    // derivation: we need the full decls.
-    #else // !wxUSE_STD_IOSTREAM
-        // can't compile this feature in if we don't use streams at all
-        #define NO_TEXT_WINDOW_STREAM
-    #endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM
+    #define wxHAS_TEXT_WINDOW_STREAM 0
+#elif wxUSE_STD_IOSTREAM
+    #include "wx/ioswrap.h"
+    #define wxHAS_TEXT_WINDOW_STREAM 1
+#else
+    #define wxHAS_TEXT_WINDOW_STREAM 0
 #endif
 
-#if defined(__WXMSW__) && defined(__MINGW32__)
-    #include "wx/msw/winundef.h"
+#if WXWIN_COMPATIBILITY_2_4 && !wxHAS_TEXT_WINDOW_STREAM
+    // define old flag if one could use it somewhere
+    #define NO_TEXT_WINDOW_STREAM
 #endif
 
 class WXDLLEXPORT wxTextCtrl;
@@ -267,7 +265,7 @@ private:
 // ----------------------------------------------------------------------------
 
 class WXDLLEXPORT wxTextCtrlBase : public wxControl
-#ifndef NO_TEXT_WINDOW_STREAM
+#if wxHAS_TEXT_WINDOW_STREAM
                                  , public wxSTD streambuf
 #endif
 
@@ -384,9 +382,9 @@ public:
     virtual void SetEditable(bool editable) = 0;
 
     // override streambuf method
-#ifndef NO_TEXT_WINDOW_STREAM
+#if wxHAS_TEXT_WINDOW_STREAM
     int overflow(int i);
-#endif // NO_TEXT_WINDOW_STREAM
+#endif // wxHAS_TEXT_WINDOW_STREAM
 
     // stream-like insertion operators: these are always available, whether we
     // were, or not, compiled with streambuf support
@@ -503,7 +501,7 @@ typedef void (wxEvtHandler::*wxTextUrlEventFunction)(wxTextUrlEvent&);
 #define EVT_TEXT_URL(id, fn) wx__DECLARE_TEXTURLEVT(URL, id, fn)
 #define EVT_TEXT_MAXLEN(id, fn) wx__DECLARE_TEXTEVT(MAXLEN, id, fn)
 
-#ifndef NO_TEXT_WINDOW_STREAM
+#if wxHAS_TEXT_WINDOW_STREAM
 
 // ----------------------------------------------------------------------------
 // wxStreamToTextRedirector: this class redirects all data sent to the given
@@ -545,7 +543,7 @@ private:
     wxSTD streambuf *m_sbufOld;
 };
 
-#endif // !NO_TEXT_WINDOW_STREAM
+#endif // wxHAS_TEXT_WINDOW_STREAM
 
 #endif // wxUSE_TEXTCTRL
 
index 8377e4c0794ed7949c7fcc20e356a600ac3df3f0..e9282d977f659283a8b977a5e21c1ba92b9536eb 100644 (file)
@@ -40,6 +40,7 @@
 #endif
 
 #include "wx/sizer.h"
+#include "wx/ioswrap.h"
 
 #include "widgets.h"
 
@@ -554,7 +555,7 @@ wxTextCtrl *TextWidgetsPage::CreateInfoText()
 
     wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
                                       wxDefaultPosition,
-                                      wxSize(s_maxWidth, -1),
+                                      wxSize(s_maxWidth, wxDefaultCoord),
                                       wxTE_READONLY);
     return text;
 }
@@ -887,13 +888,11 @@ void TextWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
 
 void TextWidgetsPage::OnStreamRedirector(wxCommandEvent& WXUNUSED(event))
 {
-// Note, NO_TEXT_WINDOW_STREAM is private flag of wxWidgets header
-// it's simpler to check it rather than duplicate whole
-#ifdef NO_TEXT_WINDOW_STREAM
-    wxMessageBox(_T("This wxWidgets build does not support wxStreamToTextRedirector"));
-#else
+#if wxHAS_TEXT_WINDOW_STREAM
     wxStreamToTextRedirector redirect(m_text);
     wxString str( _T("Outputed to cout, appears in wxTextCtrl!") );
     cout << str << endl;
+#else
+    wxMessageBox(_T("This wxWidgets build does not support wxStreamToTextRedirector"));
 #endif
 }
index 977de53640d86688e1414db8ecf5fce69ae8e4cb..a9f1f0b34d169a0027749e674291b7ce579dd9e7 100644 (file)
@@ -299,7 +299,7 @@ wxTextCtrl& wxTextCtrlBase::operator<<(const wxChar c)
 // streambuf methods implementation
 // ----------------------------------------------------------------------------
 
-#ifndef NO_TEXT_WINDOW_STREAM
+#if wxHAS_TEXT_WINDOW_STREAM
 
 int wxTextCtrlBase::overflow(int c)
 {
@@ -309,7 +309,7 @@ int wxTextCtrlBase::overflow(int c)
     return 0;
 }
 
-#endif // NO_TEXT_WINDOW_STREAM
+#endif // wxHAS_TEXT_WINDOW_STREAM
 
 // ----------------------------------------------------------------------------
 // clipboard stuff