added wxTextEntry common base class for both wxTextCtrl and wxComboBox; refactor...
[wxWidgets.git] / include / wx / gtk / textentry.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/textentry.h
3 // Purpose: wxGTK-specific wxTextEntry implementation
4 // Author: Vadim Zeitlin
5 // Created: 2007-09-24
6 // RCS-ID: $Id$
7 // Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_GTK_TEXTENTRY_H_
12 #define _WX_GTK_TEXTENTRY_H_
13
14 typedef struct _GtkEditable GtkEditable;
15
16 // ----------------------------------------------------------------------------
17 // wxTextEntry: roughly corresponds to GtkEditable
18 // ----------------------------------------------------------------------------
19
20 class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase
21 {
22 public:
23 wxTextEntry() { }
24
25 // implement wxTextEntryBase pure virtual methods
26 virtual void WriteText(const wxString& text);
27 virtual wxString GetValue() const;
28 virtual void Remove(long from, long to);
29
30 virtual void Copy();
31 virtual void Cut();
32 virtual void Paste();
33
34 virtual void Undo();
35 virtual void Redo();
36 virtual bool CanUndo() const;
37 virtual bool CanRedo() const;
38
39 virtual void SetInsertionPoint(long pos);
40 virtual long GetInsertionPoint() const;
41 virtual long GetLastPosition() const;
42
43 virtual void SetSelection(long from, long to);
44 virtual void GetSelection(long *from, long *to) const;
45
46 // status
47 virtual bool IsEditable() const;
48 virtual void SetEditable(bool editable);
49
50 // set the max number of characters which may be entered in a single line
51 // text control
52 virtual void SetMaxLength(unsigned long len);
53
54
55 // implementation only from now on
56 void SendMaxLenEvent();
57
58 private:
59 // implement this to return the associated window, it will be used for
60 // event generation
61 virtual const wxWindow *GetEditableWindow() const = 0;
62
63 // implement this to return the associated GtkEntry or another widget
64 // implementing GtkEditable
65 virtual GtkEditable *GetEditable() const = 0;
66 };
67
68 #endif // _WX_GTK_TEXTENTRY_H_
69