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,26 +28,24 @@
|
|||||||
#include "wx/dynarray.h" // wxArrayInt
|
#include "wx/dynarray.h" // wxArrayInt
|
||||||
#include "wx/gdicmn.h" // wxPoint
|
#include "wx/gdicmn.h" // wxPoint
|
||||||
|
|
||||||
// 16-bit Borland 4.0 doesn't seem to allow multiple inheritance with wxWindow
|
// Open Watcom 1.3 does allow only ios::rdbuf() while
|
||||||
// and streambuf: it complains about deriving a huge class from the huge class
|
// we want something with streambuf parameter
|
||||||
// streambuf. !! Also, can't use streambuf if making or using a DLL :-(
|
// 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)))
|
(defined(__WINDOWS__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL)))
|
||||||
#define NO_TEXT_WINDOW_STREAM
|
#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
|
#endif
|
||||||
|
|
||||||
#ifndef NO_TEXT_WINDOW_STREAM
|
#if WXWIN_COMPATIBILITY_2_4 && !wxHAS_TEXT_WINDOW_STREAM
|
||||||
#if wxUSE_STD_IOSTREAM
|
// define old flag if one could use it somewhere
|
||||||
#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
|
#define NO_TEXT_WINDOW_STREAM
|
||||||
#endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__WXMSW__) && defined(__MINGW32__)
|
|
||||||
#include "wx/msw/winundef.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class WXDLLEXPORT wxTextCtrl;
|
class WXDLLEXPORT wxTextCtrl;
|
||||||
@@ -267,7 +265,7 @@ private:
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLEXPORT wxTextCtrlBase : public wxControl
|
class WXDLLEXPORT wxTextCtrlBase : public wxControl
|
||||||
#ifndef NO_TEXT_WINDOW_STREAM
|
#if wxHAS_TEXT_WINDOW_STREAM
|
||||||
, public wxSTD streambuf
|
, public wxSTD streambuf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -384,9 +382,9 @@ public:
|
|||||||
virtual void SetEditable(bool editable) = 0;
|
virtual void SetEditable(bool editable) = 0;
|
||||||
|
|
||||||
// override streambuf method
|
// override streambuf method
|
||||||
#ifndef NO_TEXT_WINDOW_STREAM
|
#if wxHAS_TEXT_WINDOW_STREAM
|
||||||
int overflow(int i);
|
int overflow(int i);
|
||||||
#endif // NO_TEXT_WINDOW_STREAM
|
#endif // wxHAS_TEXT_WINDOW_STREAM
|
||||||
|
|
||||||
// stream-like insertion operators: these are always available, whether we
|
// stream-like insertion operators: these are always available, whether we
|
||||||
// were, or not, compiled with streambuf support
|
// 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_URL(id, fn) wx__DECLARE_TEXTURLEVT(URL, id, fn)
|
||||||
#define EVT_TEXT_MAXLEN(id, fn) wx__DECLARE_TEXTEVT(MAXLEN, 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
|
// wxStreamToTextRedirector: this class redirects all data sent to the given
|
||||||
@@ -545,7 +543,7 @@ private:
|
|||||||
wxSTD streambuf *m_sbufOld;
|
wxSTD streambuf *m_sbufOld;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // !NO_TEXT_WINDOW_STREAM
|
#endif // wxHAS_TEXT_WINDOW_STREAM
|
||||||
|
|
||||||
#endif // wxUSE_TEXTCTRL
|
#endif // wxUSE_TEXTCTRL
|
||||||
|
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/sizer.h"
|
#include "wx/sizer.h"
|
||||||
|
#include "wx/ioswrap.h"
|
||||||
|
|
||||||
#include "widgets.h"
|
#include "widgets.h"
|
||||||
|
|
||||||
@@ -554,7 +555,7 @@ wxTextCtrl *TextWidgetsPage::CreateInfoText()
|
|||||||
|
|
||||||
wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
|
wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxSize(s_maxWidth, -1),
|
wxSize(s_maxWidth, wxDefaultCoord),
|
||||||
wxTE_READONLY);
|
wxTE_READONLY);
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
@@ -887,13 +888,11 @@ void TextWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
|
|||||||
|
|
||||||
void TextWidgetsPage::OnStreamRedirector(wxCommandEvent& WXUNUSED(event))
|
void TextWidgetsPage::OnStreamRedirector(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
// Note, NO_TEXT_WINDOW_STREAM is private flag of wxWidgets header
|
#if wxHAS_TEXT_WINDOW_STREAM
|
||||||
// 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
|
|
||||||
wxStreamToTextRedirector redirect(m_text);
|
wxStreamToTextRedirector redirect(m_text);
|
||||||
wxString str( _T("Outputed to cout, appears in wxTextCtrl!") );
|
wxString str( _T("Outputed to cout, appears in wxTextCtrl!") );
|
||||||
cout << str << endl;
|
cout << str << endl;
|
||||||
|
#else
|
||||||
|
wxMessageBox(_T("This wxWidgets build does not support wxStreamToTextRedirector"));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -299,7 +299,7 @@ wxTextCtrl& wxTextCtrlBase::operator<<(const wxChar c)
|
|||||||
// streambuf methods implementation
|
// streambuf methods implementation
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef NO_TEXT_WINDOW_STREAM
|
#if wxHAS_TEXT_WINDOW_STREAM
|
||||||
|
|
||||||
int wxTextCtrlBase::overflow(int c)
|
int wxTextCtrlBase::overflow(int c)
|
||||||
{
|
{
|
||||||
@@ -309,7 +309,7 @@ int wxTextCtrlBase::overflow(int c)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NO_TEXT_WINDOW_STREAM
|
#endif // wxHAS_TEXT_WINDOW_STREAM
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// clipboard stuff
|
// clipboard stuff
|
||||||
|
Reference in New Issue
Block a user