]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/textctrl.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / gtk / textctrl.h
index da2f70bbbd6f1fa13368ab1210ff65f6dbc80b26..9fefd91975f82fca43a2b5d9bf7a0f66d01250f9 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:
 // Author:      Robert Roebling
 // Created:     01/02/97
-// Id:          $Id$
 // Copyright:   (c) 1998 Robert Roebling
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -44,6 +43,7 @@ public:
     // implement base class pure virtuals
     // ----------------------------------
 
+    virtual void WriteText(const wxString& text);
     virtual wxString GetValue() const;
     virtual bool IsEmpty() const;
 
@@ -54,31 +54,15 @@ public:
     virtual bool IsModified() const;
     virtual bool IsEditable() const;
 
-    // If the return values from and to are the same, there is no selection.
     virtual void GetSelection(long* from, long* to) const;
 
-    // operations
-    // ----------
-
-    // editing
-    virtual void Clear();
-    virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
 
-    // sets/clears the dirty flag
     virtual void MarkDirty();
     virtual void DiscardEdits();
 
-    virtual void SetMaxLength(unsigned long len);
-
-    // writing text inserts it at the current position, appending always
-    // inserts it at the end
-    virtual void WriteText(const wxString& text);
-    virtual void AppendText(const wxString& text);
-
-    // apply text attribute to the range of text (only works with richedit
-    // controls)
     virtual bool SetStyle(long start, long end, const wxTextAttr& style);
+    virtual bool GetStyle(long position, wxTextAttr& style);
 
     // translate between the position (which is just an index in the text ctrl
     // considering all its contents as a single strings) and (x, y) coordinates
@@ -101,16 +85,8 @@ public:
     virtual void Cut();
     virtual void Paste();
 
-    // Undo/redo
-    virtual void Undo();
-    virtual void Redo();
-
-    virtual bool CanUndo() const;
-    virtual bool CanRedo() const;
-
     // Insertion point
     virtual void SetInsertionPoint(long pos);
-    virtual void SetInsertionPointEnd();
     virtual long GetInsertionPoint() const;
     virtual wxTextPos GetLastPosition() const;
 
@@ -145,18 +121,8 @@ public:
 
     void SetUpdateFont(bool WXUNUSED(update)) { }
 
-    // GTK+ textctrl is so dumb that you need to freeze/thaw it manually to
-    // avoid horrible flicker/scrolling back and forth
-    virtual void Freeze();
-    virtual void Thaw();
-
     // implementation only from now on
 
-    // wxGTK-specific: called recursively by Enable,
-    // to give widgets an oppprtunity to correct their colours after they
-    // have been changed by Enable
-    virtual void OnEnabled( bool enable ) ;
-
     // tell the control to ignore next text changed signal
     void IgnoreNextTextUpdate(int n = 1) { m_countUpdatesToIgnore = n; }
 
@@ -177,16 +143,16 @@ public:
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
-    // has the control been frozen by Freeze()?
-    bool IsFrozen() const { return m_freezeCount > 0; }
-
 protected:
+    // overridden wxWindow virtual methods
     virtual wxSize DoGetBestSize() const;
     virtual void DoApplyWidgetStyle(GtkRcStyle *style);
     virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
 
-    // common part of all ctors
-    void Init();
+    virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const;
+
+    virtual void DoFreeze();
+    virtual void DoThaw();
 
     // Widgets that use the style->base colour for the BG colour should
     // override this and return true.
@@ -194,15 +160,29 @@ protected:
 
     virtual void DoSetValue(const wxString &value, int flags = 0);
 
+    // Override this to use either GtkEntry or GtkTextView IME depending on the
+    // kind of control we are.
+    virtual int GTKIMFilterKeypress(GdkEventKey* event) const;
+
+    virtual wxPoint DoPositionToCoords(long pos) const;
+
     // wrappers hiding the differences between functions doing the same thing
     // for GtkTextView and GtkEntry (all of them use current window style to
     // set the given characteristic)
     void GTKSetEditable();
     void GTKSetVisibility();
+    void GTKSetActivatesDefault();
     void GTKSetWrapMode();
     void GTKSetJustification();
 
 private:
+    void Init();
+
+    // overridden wxTextEntry virtual methods
+    virtual GtkEditable *GetEditable() const;
+    virtual GtkEntry *GetEntry() const;
+    virtual void EnableTextChangedEvents(bool enable);
+
     // change the font for everything in this control
     void ChangeFontGlobally();
 
@@ -217,8 +197,8 @@ private:
     // both
     void *GetTextObject() const
     {
-        return IsMultiLine() ? wx_static_cast(void *, m_buffer)
-                             : wx_static_cast(void *, m_text);
+        return IsMultiLine() ? static_cast<void *>(m_buffer)
+                             : static_cast<void *>(m_text);
     }
 
 
@@ -234,14 +214,11 @@ private:
     // a dummy one when frozen
     GtkTextBuffer *m_buffer;
 
-    // number of calls to Freeze() minus number of calls to Thaw()
-    unsigned m_freezeCount;
     GtkTextMark* m_showPositionOnThaw;
+    GSList* m_anonymousMarkList;
 
     // For wxTE_AUTO_URL
     void OnUrlMouseEvent(wxMouseEvent&);
-    GdkCursor *m_gdkHandCursor;
-    GdkCursor *m_gdkXTermCursor;
 
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxTextCtrl)