#include "wx/control.h"
-#if USE_IOSTREAMH
+#if wxUSE_IOSTREAMH
#include <iostream.h>
#else
#include <iostream>
// Single-line text item
class WXDLLEXPORT wxTextCtrl: public wxControl
-// 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 :-(
+// TODO Some platforms/compilers don't like inheritance from streambuf.
#if (defined(__BORLANDC__) && !defined(__WIN32__)) || defined(__MWERKS__)
#define NO_TEXT_WINDOW_STREAM
virtual void Cut();
virtual void Paste();
+ virtual bool CanCopy() const;
+ virtual bool CanCut() const;
+ virtual bool CanPaste() const;
+
+ // Undo/redo
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual bool CanUndo() const;
+ virtual bool CanRedo() const;
+
virtual void SetInsertionPoint(long pos);
virtual void SetInsertionPointEnd();
virtual long GetInsertionPoint() const ;
virtual void Remove(long from, long to);
virtual void SetSelection(long from, long to);
virtual void SetEditable(bool editable);
-
+
+ // If the return values from and to are the same, there is no
+ // selection.
+ virtual void GetSelection(long* from, long* to) const;
+ virtual bool IsEditable() const ;
+
// streambuf implementation
#ifndef NO_TEXT_WINDOW_STREAM
int overflow(int i);
virtual bool LoadFile(const wxString& file);
virtual bool SaveFile(const wxString& file);
virtual void WriteText(const wxString& text);
+ virtual void AppendText(const wxString& text);
virtual void DiscardEdits();
virtual bool IsModified() const;
// callbacks
// ---------
void OnDropFiles(wxDropFilesEvent& event);
- void OnChar(wxKeyEvent& event); // Process 'enter' if required
- void OnEraseBackground(wxEraseEvent& event);
-
+// void OnChar(wxKeyEvent& event); // Process 'enter' if required
+// void OnEraseBackground(wxEraseEvent& event);
+ void OnCut(wxCommandEvent& event);
+ void OnCopy(wxCommandEvent& event);
+ void OnPaste(wxCommandEvent& event);
+ void OnUndo(wxCommandEvent& event);
+ void OnRedo(wxCommandEvent& event);
+
+ void OnUpdateCut(wxUpdateUIEvent& event);
+ void OnUpdateCopy(wxUpdateUIEvent& event);
+ void OnUpdatePaste(wxUpdateUIEvent& event);
+ void OnUpdateUndo(wxUpdateUIEvent& event);
+ void OnUpdateRedo(wxUpdateUIEvent& event);
+
// Implementation
// --------------
virtual void Command(wxCommandEvent& event);
protected:
- wxString fileName;
+ wxString m_fileName;
DECLARE_EVENT_TABLE()
};