wxStreamToTextRedirector fixes, define wxHAS_TEXT_WINDOW_STREAM.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -28,28 +28,26 @@
|
||||
#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 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 WXWIN_COMPATIBILITY_2_4 && !wxHAS_TEXT_WINDOW_STREAM
|
||||
// define old flag if one could use it somewhere
|
||||
#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
|
||||
#endif
|
||||
|
||||
#if defined(__WXMSW__) && defined(__MINGW32__)
|
||||
#include "wx/msw/winundef.h"
|
||||
#endif
|
||||
|
||||
class WXDLLEXPORT wxTextCtrl;
|
||||
class WXDLLEXPORT wxTextCtrlBase;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user