X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/949750de631b2c2ee59c6e9080e7d38fa66c0167..0534259ab803b0edd8692e966947b202cd9e10c0:/src/stc/stc.cpp.in diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index 45f5db364b..fa51a690f7 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -47,13 +47,13 @@ #include "wx/tokenzr.h" #include "wx/mstream.h" #include "wx/image.h" -#include "wx/file.h" +#include "wx/ffile.h" #include "ScintillaWX.h" //---------------------------------------------------------------------- -const wxChar* wxSTCNameStr = wxT("stcwindow"); +const char wxSTCNameStr[] = "stcwindow"; #ifdef MAKELONG #undef MAKELONG @@ -96,34 +96,34 @@ static wxColour wxColourFromSpec(const wxString& spec) { //---------------------------------------------------------------------- -DEFINE_EVENT_TYPE( wxEVT_STC_CHANGE ) -DEFINE_EVENT_TYPE( wxEVT_STC_STYLENEEDED ) -DEFINE_EVENT_TYPE( wxEVT_STC_CHARADDED ) -DEFINE_EVENT_TYPE( wxEVT_STC_SAVEPOINTREACHED ) -DEFINE_EVENT_TYPE( wxEVT_STC_SAVEPOINTLEFT ) -DEFINE_EVENT_TYPE( wxEVT_STC_ROMODIFYATTEMPT ) -DEFINE_EVENT_TYPE( wxEVT_STC_KEY ) -DEFINE_EVENT_TYPE( wxEVT_STC_DOUBLECLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_UPDATEUI ) -DEFINE_EVENT_TYPE( wxEVT_STC_MODIFIED ) -DEFINE_EVENT_TYPE( wxEVT_STC_MACRORECORD ) -DEFINE_EVENT_TYPE( wxEVT_STC_MARGINCLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_NEEDSHOWN ) -DEFINE_EVENT_TYPE( wxEVT_STC_PAINTED ) -DEFINE_EVENT_TYPE( wxEVT_STC_USERLISTSELECTION ) -DEFINE_EVENT_TYPE( wxEVT_STC_URIDROPPED ) -DEFINE_EVENT_TYPE( wxEVT_STC_DWELLSTART ) -DEFINE_EVENT_TYPE( wxEVT_STC_DWELLEND ) -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_HOTSPOT_CLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_HOTSPOT_DCLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_CALLTIP_CLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_AUTOCOMP_SELECTION ) -DEFINE_EVENT_TYPE( wxEVT_STC_INDICATOR_CLICK ) -DEFINE_EVENT_TYPE( wxEVT_STC_INDICATOR_RELEASE ) +wxDEFINE_EVENT( wxEVT_STC_CHANGE, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_STYLENEEDED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_CHARADDED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_SAVEPOINTREACHED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_SAVEPOINTLEFT, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_ROMODIFYATTEMPT, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_KEY, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_DOUBLECLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_UPDATEUI, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_MODIFIED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_MACRORECORD, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_MARGINCLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_NEEDSHOWN, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_PAINTED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_USERLISTSELECTION, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_URIDROPPED, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_DWELLSTART, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_DWELLEND, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_START_DRAG, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_DRAG_OVER, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_DO_DROP, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_ZOOM, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_HOTSPOT_CLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_HOTSPOT_DCLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_CALLTIP_CLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_AUTOCOMP_SELECTION, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_INDICATOR_CLICK, wxStyledTextEvent ); +wxDEFINE_EVENT( wxEVT_STC_INDICATOR_RELEASE, wxStyledTextEvent ); @@ -224,7 +224,7 @@ wxStyledTextCtrl::~wxStyledTextCtrl() { //---------------------------------------------------------------------- -long wxStyledTextCtrl::SendMsg(int msg, long wp, long lp) const +wxIntPtr wxStyledTextCtrl::SendMsg(int msg, wxUIntPtr wp, wxIntPtr lp) const { return m_swx->WndProc(msg, wp, lp); } @@ -489,15 +489,6 @@ void wxStyledTextCtrl::SetMargins(int left, int right) { } -// Retrieve the start and end positions of the current selection. -void wxStyledTextCtrl::GetSelection(int* startPos, int* endPos) { - if (startPos != NULL) - *startPos = SendMsg(SCI_GETSELECTIONSTART); - if (endPos != NULL) - *endPos = SendMsg(SCI_GETSELECTIONEND); -} - - // Retrieve the point in the window where a position is displayed. wxPoint wxStyledTextCtrl::PointFromPosition(int pos) { int x = SendMsg(SCI_POINTXFROMPOSITION, 0, pos); @@ -518,74 +509,57 @@ void wxStyledTextCtrl::ScrollToColumn(int column) { #if wxUSE_TEXTCTRL -bool wxStyledTextCtrl::DoSaveFile(const wxString& filename, int WXUNUSED(fileType)) +bool wxStyledTextCtrl::DoSaveFile(const wxString& filename, int fileType) +{ + bool ok = wxTextAreaBase::DoSaveFile(filename, fileType); #else bool wxStyledTextCtrl::SaveFile(const wxString& filename) -#endif { - wxFile file(filename, wxFile::write); - - if (!file.IsOpened()) - return false; - - bool success = file.Write(GetText(), *wxConvCurrent); - - if (success) +#if wxUSE_FFILE + wxFFile file(filename, wxT("w")); + bool ok = file.IsOpened() && file.Write(GetValue(), *wxConvCurrent); +#else + bool ok = false; +#endif // wxUSE_FFILE +#endif + if (ok) + { SetSavePoint(); - - return success; + } + return ok; } #if wxUSE_TEXTCTRL -bool wxStyledTextCtrl::DoLoadFile(const wxString& filename, int WXUNUSED(fileType)) +bool wxStyledTextCtrl::DoLoadFile(const wxString& filename, int fileType) +{ + bool ok = wxTextAreaBase::DoLoadFile(filename, fileType); #else bool wxStyledTextCtrl::LoadFile(const wxString& filename) -#endif { - bool success = false; - wxFile file(filename, wxFile::read); - - if (file.IsOpened()) +#if wxUSE_FFILE + wxFFile file(filename); + bool ok = file.IsOpened(); + if (ok) { - wxString contents; - // get the file size (assume it is not huge file...) - ssize_t len = (ssize_t)file.Length(); - - if (len > 0) - { -#if wxUSE_UNICODE - wxMemoryBuffer buffer(len+1); - success = (file.Read(buffer.GetData(), len) == len); - if (success) { - ((char*)buffer.GetData())[len] = 0; - contents = wxString(buffer, *wxConvCurrent, len); - } -#else - wxString buffer; - success = (file.Read(wxStringBuffer(buffer, len), len) == len); - contents = buffer; -#endif - } - else + wxString text; + ok = file.ReadAll(&text, *wxConvCurrent); + if (ok) { - if (len == 0) - success = true; // empty file is ok - else - success = false; // len == wxInvalidOffset - } - - if (success) - { - SetText(contents); - EmptyUndoBuffer(); - SetSavePoint(); + SetValue(text); } } - - return success; +#else + bool ok = false; +#endif // wxUSE_FFILE +#endif + if (ok) + { + EmptyUndoBuffer(); + SetSavePoint(); + } + return ok; } - #if wxUSE_DRAG_AND_DROP wxDragResult wxStyledTextCtrl::DoDragOver(wxCoord x, wxCoord y, wxDragResult def) { return m_swx->DoDragOver(x, y, def); @@ -612,12 +586,12 @@ bool wxStyledTextCtrl::GetUseAntiAliasing() { void wxStyledTextCtrl::AddTextRaw(const char* text) { - SendMsg(SCI_ADDTEXT, strlen(text), (long)text); + SendMsg(SCI_ADDTEXT, strlen(text), (sptr_t)text); } void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text) { - SendMsg(SCI_INSERTTEXT, pos, (long)text); + SendMsg(SCI_INSERTTEXT, pos, (sptr_t)text); } wxCharBuffer wxStyledTextCtrl::GetCurLineRaw(int* linePos) @@ -630,7 +604,7 @@ wxCharBuffer wxStyledTextCtrl::GetCurLineRaw(int* linePos) } wxCharBuffer buf(len); - int pos = SendMsg(SCI_GETCURLINE, len, (long)buf.data()); + int pos = SendMsg(SCI_GETCURLINE, len, (sptr_t)buf.data()); if (linePos) *linePos = pos; return buf; } @@ -644,14 +618,14 @@ wxCharBuffer wxStyledTextCtrl::GetLineRaw(int line) } wxCharBuffer buf(len); - SendMsg(SCI_GETLINE, line, (long)buf.data()); + SendMsg(SCI_GETLINE, line, (sptr_t)buf.data()); return buf; } wxCharBuffer wxStyledTextCtrl::GetSelectedTextRaw() { - int start; - int end; + long start; + long end; GetSelection(&start, &end); int len = end - start; @@ -661,7 +635,7 @@ wxCharBuffer wxStyledTextCtrl::GetSelectedTextRaw() } wxCharBuffer buf(len); - SendMsg(SCI_GETSELTEXT, 0, (long)buf.data()); + SendMsg(SCI_GETSELTEXT, 0, (sptr_t)buf.data()); return buf; } @@ -683,26 +657,26 @@ wxCharBuffer wxStyledTextCtrl::GetTextRangeRaw(int startPos, int endPos) tr.lpstrText = buf.data(); tr.chrg.cpMin = startPos; tr.chrg.cpMax = endPos; - SendMsg(SCI_GETTEXTRANGE, 0, (long)&tr); + SendMsg(SCI_GETTEXTRANGE, 0, (sptr_t)&tr); return buf; } void wxStyledTextCtrl::SetTextRaw(const char* text) { - SendMsg(SCI_SETTEXT, 0, (long)text); + SendMsg(SCI_SETTEXT, 0, (sptr_t)text); } wxCharBuffer wxStyledTextCtrl::GetTextRaw() { int len = GetTextLength(); wxCharBuffer buf(len); // adds 1 for NUL automatically - SendMsg(SCI_GETTEXT, len + 1, (long)buf.data()); + SendMsg(SCI_GETTEXT, len + 1, (sptr_t)buf.data()); return buf; } void wxStyledTextCtrl::AppendTextRaw(const char* text) { - SendMsg(SCI_APPENDTEXT, strlen(text), (long)text); + SendMsg(SCI_APPENDTEXT, strlen(text), (sptr_t)text); }