]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/stc.h.in
add wxScrollHelper::ShowScrollbars() (implemented for GTK only right now, generic...
[wxWidgets.git] / src / stc / stc.h.in
index 8a6abafc25155b7dbb26ad8484c7cb3329633e0b..d15a2c08224b81323298d837d0fcfb420286b40e 100644 (file)
@@ -39,6 +39,7 @@
 #include "wx/dnd.h"
 #include "wx/stopwatch.h"
 
+#include "wx/textentry.h"
 #if wxUSE_TEXTCTRL
     #include "wx/textctrl.h"
 #endif // wxUSE_TEXTCTRL
@@ -76,7 +77,7 @@ class  WordList;
 struct SCNotification;
 
 #ifndef SWIG
-extern WXDLLIMPEXP_STC const wxChar* wxSTCNameStr;
+extern WXDLLIMPEXP_DATA_STC(const char) wxSTCNameStr[];
 class  WXDLLIMPEXP_FWD_STC wxStyledTextCtrl;
 class  WXDLLIMPEXP_FWD_STC wxStyledTextEvent;
 #endif
@@ -84,6 +85,7 @@ class  WXDLLIMPEXP_FWD_STC wxStyledTextEvent;
 //----------------------------------------------------------------------
 
 class WXDLLIMPEXP_STC wxStyledTextCtrl : public wxControl
+                                       , public wxTextEntryBase
 #if wxUSE_TEXTCTRL
                                        , public wxTextAreaBase
 #endif // wxUSE_TEXTCTRL
@@ -178,13 +180,6 @@ public:
     void SetMargins(int left, int right);
 
 
-    // Retrieve the start and end positions of the current selection.
-#ifdef SWIG
-    void GetSelection(int* OUTPUT, int* OUTPUT);
-#else
-    void GetSelection(int* startPos, int* endPos);
-#endif
-
     // Retrieve the point in the window where a position is displayed.
     wxPoint PointFromPosition(int pos);
 
@@ -202,7 +197,7 @@ public:
     // NB: this method is not really const as it can modify the control but it
     //     has to be declared as such as it's called from both const and
     //     non-const methods and we can't distinguish between the two
-    long SendMsg(int msg, long wp=0, long lp=0) const;
+    wxIntPtr SendMsg(int msg, wxUIntPtr wp=0, wxIntPtr lp=0) const;
 
 
     // Set the vertical scrollbar to use instead of the ont that's built-in.
@@ -286,6 +281,80 @@ public:
 #endif
 
 
+    // implement wxTextEntryBase pure virtual methods
+    // ----------------------------------------------
+
+    virtual void WriteText(const wxString& text) { AddText(text); }
+    virtual wxString GetValue() const { return GetText(); }
+    virtual void Remove(long from, long to)
+    {
+        Replace(from, to, "");
+    }
+    virtual void Replace(long from, long to, const wxString& text)
+    {
+        SetTargetStart(from);
+        SetTargetEnd(to);
+        ReplaceTarget(text);
+    }
+
+    /*
+        These functions are already declared in the generated section.
+
+    virtual void Copy();
+    virtual void Cut();
+    virtual void Paste();
+
+    virtual void Undo();
+    virtual void Redo();
+
+    virtual bool CanUndo() const;
+    virtual bool CanRedo() const;
+
+    */
+
+    virtual void SetInsertionPoint(long pos) { SetCurrentPos(pos); }
+    virtual long GetInsertionPoint() const { return GetCurrentPos(); }
+    virtual long GetLastPosition() const { return GetTextLength(); }
+
+    virtual void SetSelection(long from, long to)
+    {
+        if ( from == -1 && to == -1 )
+        {
+            SelectAll();
+        }
+        else
+        {
+            SetSelectionStart(from);
+            SetSelectionEnd(to);
+        }
+    }
+
+#ifdef SWIG
+    void GetSelection(long* OUTPUT, long* OUTPUT) const;
+#else
+    virtual void GetSelection(long *from, long *to) const
+    {
+        if ( from )
+            *from = GetSelectionStart();
+        if ( to )
+            *to = GetSelectionEnd();
+    }
+
+    // kept for compatibility only
+    void GetSelection(int *from, int *to)
+    {
+        long f, t;
+        GetSelection(&f, &t);
+        if ( from )
+            *from = f;
+        if ( to )
+            *to = t;
+    }
+#endif
+
+    virtual bool IsEditable() const { return !GetReadOnly(); }
+    virtual void SetEditable(bool editable) { SetReadOnly(!editable); }
+
     // implement wxTextAreaBase pure virtual methods
     // ---------------------------------------------
 
@@ -342,12 +411,12 @@ public:
         return true;
     }
 
-    virtual void ShowPosition(long pos)
-    {
-        EnsureVisible(LineFromPosition(pos));
-    }
+    virtual void ShowPosition(long pos) { GotoPos(pos); }
 
-    using wxWindow::HitTest;
+    // FIXME-VC6: can't use wxWindow here because of "error C2603: illegal
+    //            access declaration: 'wxWindow' is not a direct base of
+    //            'wxStyledTextCtrl'" with VC6
+    using wxControl::HitTest;
 
     virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const
     {
@@ -407,6 +476,10 @@ protected:
 
     bool                m_lastKeyDownConsumed;
 
+    // the timestamp that consists of the last wheel event
+    // added to the time taken to process that event.
+    long m_lastWheelTimestamp;
+
     friend class ScintillaWX;
     friend class Platform;
 #endif // !SWIG