// Modified by:
// Created: 13.07.99
// RCS-ID: $Id$
-// Copyright: (c) wxWidgets team
+// Copyright: (c) Vadim Zeitlin
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "textctrlbase.h"
-#endif
-
#include "wx/defs.h"
#if wxUSE_TEXTCTRL
#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;
// constants
// ----------------------------------------------------------------------------
-extern WXDLLEXPORT_DATA(const wxChar*) wxTextCtrlNameStr;
+extern WXDLLEXPORT_DATA(const wxChar) wxTextCtrlNameStr[];
// this is intentionally not enum to avoid warning fixes with
// typecasting from enum type to wxTextCoord
#define wxTEXT_ATTR_FONT_ITALIC 0x0020
#define wxTEXT_ATTR_FONT_UNDERLINE 0x0040
#define wxTEXT_ATTR_FONT \
- wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE
+ ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
+ wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE )
#define wxTEXT_ATTR_ALIGNMENT 0x0080
#define wxTEXT_ATTR_LEFT_INDENT 0x0100
#define wxTEXT_ATTR_RIGHT_INDENT 0x0200
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxTextCtrlBase : public wxControl
-#ifndef NO_TEXT_WINDOW_STREAM
+#if wxHAS_TEXT_WINDOW_STREAM
, public wxSTD streambuf
#endif
virtual void SelectAll();
virtual void SetEditable(bool editable) = 0;
- // override streambuf method
-#ifndef NO_TEXT_WINDOW_STREAM
- int overflow(int i);
-#endif // NO_TEXT_WINDOW_STREAM
-
// stream-like insertion operators: these are always available, whether we
// were, or not, compiled with streambuf support
wxTextCtrl& operator<<(const wxString& s);
virtual bool ShouldInheritColours() const { return false; }
protected:
+ // override streambuf method
+#if wxHAS_TEXT_WINDOW_STREAM
+ int overflow(int i);
+#endif // wxHAS_TEXT_WINDOW_STREAM
+
// the name of the last file loaded with LoadFile() which will be used by
// SaveFile() by default
wxString m_filename;
#include "wx/msw/textctrl.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/textctrl.h"
-#elif defined(__WXGTK__)
+#elif defined(__WXGTK20__)
#include "wx/gtk/textctrl.h"
+#elif defined(__WXGTK__)
+ #include "wx/gtk1/textctrl.h"
#elif defined(__WXMAC__)
#include "wx/mac/textctrl.h"
#elif defined(__WXCOCOA__)
#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
wxSTD streambuf *m_sbufOld;
};
-#endif // !NO_TEXT_WINDOW_STREAM
+#endif // wxHAS_TEXT_WINDOW_STREAM
#endif // wxUSE_TEXTCTRL