]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/stc.cpp.in
rtti api mods added
[wxWidgets.git] / src / stc / stc.cpp.in
index 0ab9afdc5e1390ed9d460243356de8630e84ac50..60360d977e0f607e354712e0ee6c4c37496c4a18 100644 (file)
 #include "wx/stc/stc.h"
 #include "ScintillaWX.h"
 
 #include "wx/stc/stc.h"
 #include "ScintillaWX.h"
 
+#include <wx/wx.h>
 #include <wx/tokenzr.h>
 #include <wx/tokenzr.h>
+#include <wx/mstream.h>
+#include <wx/image.h>
+#include <wx/file.h>
 
 
 //----------------------------------------------------------------------
 
 
 //----------------------------------------------------------------------
@@ -82,6 +86,10 @@ DEFINE_EVENT_TYPE( wxEVT_STC_START_DRAG )
 DEFINE_EVENT_TYPE( wxEVT_STC_DRAG_OVER )
 DEFINE_EVENT_TYPE( wxEVT_STC_DO_DROP )
 DEFINE_EVENT_TYPE( wxEVT_STC_ZOOM )
 DEFINE_EVENT_TYPE( wxEVT_STC_DRAG_OVER )
 DEFINE_EVENT_TYPE( wxEVT_STC_DO_DROP )
 DEFINE_EVENT_TYPE( wxEVT_STC_ZOOM )
+DEFINE_EVENT_TYPE( wxEVT_STC_HOTSPOT_CLICK )
+DEFINE_EVENT_TYPE( wxEVT_STC_HOTSPOT_DCLICK )
+DEFINE_EVENT_TYPE( wxEVT_STC_CALLTIP_CLICK )
+
 
 
 BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
 
 
 BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
@@ -300,15 +308,58 @@ void wxStyledTextCtrl::ScrollToColumn(int column) {
 }
 
 
 }
 
 
+bool wxStyledTextCtrl::SaveFile(const wxString& filename)
+{
+    wxFile file(filename, wxFile::write);
+
+    if (!file.IsOpened())
+        return FALSE;
+
+    bool success = file.Write(GetText());
+
+    if (success)
+        SetSavePoint();
+
+    return success;
+}
+
+bool wxStyledTextCtrl::LoadFile(const wxString& filename)
+{
+    bool success = false;
+    wxFile file(filename, wxFile::read);
+
+    if (file.IsOpened())
+    {
+        wxString contents;
+        off_t len = file.Length();
+
+        if (len > 0)
+        {
+            wxChar *buf = contents.GetWriteBuf(len);
+            success = (file.Read(buf, len) == len);
+            contents.UngetWriteBuf();
+        }
+        else
+            success = true;            // empty file is ok
+
+        if (success)
+        {
+            SetText(contents);
+            EmptyUndoBuffer();
+            SetSavePoint();
+        }
+    }
+
+    return success;
+}
+
 
 //----------------------------------------------------------------------
 // Event handlers
 
 void wxStyledTextCtrl::OnPaint(wxPaintEvent& evt) {
     wxPaintDC dc(this);
 
 //----------------------------------------------------------------------
 // Event handlers
 
 void wxStyledTextCtrl::OnPaint(wxPaintEvent& evt) {
     wxPaintDC dc(this);
-    wxRegion  region = GetUpdateRegion();
-
-    m_swx->DoPaint(&dc, region.GetBox());
+    m_swx->DoPaint(&dc, GetUpdateRegion().GetBox());
 }
 
 void wxStyledTextCtrl::OnScrollWin(wxScrollWinEvent& evt) {
 }
 
 void wxStyledTextCtrl::OnScrollWin(wxScrollWinEvent& evt) {
@@ -574,6 +625,18 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
         evt.SetEventType(wxEVT_STC_ZOOM);
         break;
 
         evt.SetEventType(wxEVT_STC_ZOOM);
         break;
 
+    case SCN_HOTSPOTCLICK:
+        evt.SetEventType(wxEVT_STC_HOTSPOT_CLICK);
+        break;
+
+    case SCN_HOTSPOTDOUBLECLICK:
+        evt.SetEventType(wxEVT_STC_HOTSPOT_DCLICK);
+        break;
+
+    case SCN_CALLTIPCLICK:
+        evt.SetEventType(wxEVT_STC_CALLTIP_CLICK);
+        break;
+
     default:
         return;
     }
     default:
         return;
     }