Add length parameter to AddTextRaw and AppendTextRaw. Closes #1358

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2012-02-07 23:55:07 +00:00
parent 49a63afbad
commit 6f67e6d2e4
5 changed files with 28 additions and 25 deletions

View File

@@ -4049,7 +4049,7 @@ public:
// what is used internally by Scintilla in unicode builds. // what is used internally by Scintilla in unicode builds.
// Add text to the document at current position. // Add text to the document at current position.
void AddTextRaw(const char* text); void AddTextRaw(const char* text, int length=-1);
// Insert string at a position. // Insert string at a position.
void InsertTextRaw(int pos, const char* text); void InsertTextRaw(int pos, const char* text);
@@ -4078,7 +4078,7 @@ public:
wxCharBuffer GetTextRaw(); wxCharBuffer GetTextRaw();
// Append a string to the end of the document without changing the selection. // Append a string to the end of the document without changing the selection.
void AppendTextRaw(const char* text); void AppendTextRaw(const char* text, int length=-1);
#ifdef SWIG #ifdef SWIG
%pythoncode "_stc_utf8_methods.py" %pythoncode "_stc_utf8_methods.py"

View File

@@ -360,14 +360,9 @@ public:
void AddText(const wxString& text); void AddText(const wxString& text);
/** /**
The following methods are nearly equivalent to their similarly named Add raw text to the document at current position.
cousins above. The difference is that these methods bypass wxString
and always use a char* even if used in a unicode build of wxWidgets.
In that case the character data will be utf-8 encoded since that is
what is used internally by Scintilla in unicode builds.
Add text to the document at current position.
*/ */
void AddTextRaw(const char* text); void AddTextRaw(const char* text, int length=-1);
/** /**
Enlarge the document to a particular size of text bytes. Enlarge the document to a particular size of text bytes.
@@ -382,7 +377,7 @@ public:
/** /**
Append a string to the end of the document without changing the selection. Append a string to the end of the document without changing the selection.
*/ */
void AppendTextRaw(const char* text); void AppendTextRaw(const char* text, int length=-1);
/** /**
Is there an auto-completion list visible? Is there an auto-completion list visible?

View File

@@ -259,7 +259,7 @@ void wxStyledTextCtrl::SetHScrollBar(wxScrollBar* bar) {
// Add text to the document at current position. // Add text to the document at current position.
void wxStyledTextCtrl::AddText(const wxString& text) { void wxStyledTextCtrl::AddText(const wxString& text) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text);
SendMsg(2001, strlen(buf), (sptr_t)(const char*)buf); SendMsg(2001, buf.length(), (sptr_t)(const char*)buf);
} }
// Add array of cells to document. // Add array of cells to document.
@@ -1709,7 +1709,7 @@ int wxStyledTextCtrl::GetTargetEnd() const
int wxStyledTextCtrl::ReplaceTarget(const wxString& text) { int wxStyledTextCtrl::ReplaceTarget(const wxString& text) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text);
return SendMsg(2194, strlen(buf), (sptr_t)(const char*)buf); return SendMsg(2194, buf.length(), (sptr_t)(const char*)buf);
} }
// Replace the target text with the argument text after \d processing. // Replace the target text with the argument text after \d processing.
@@ -1721,7 +1721,7 @@ int wxStyledTextCtrl::GetTargetEnd() const
int wxStyledTextCtrl::ReplaceTargetRE(const wxString& text) { int wxStyledTextCtrl::ReplaceTargetRE(const wxString& text) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text);
return SendMsg(2195, strlen(buf), (sptr_t)(const char*)buf); return SendMsg(2195, buf.length(), (sptr_t)(const char*)buf);
} }
// Search for a counted string in the target and set the target to the found // Search for a counted string in the target and set the target to the found
@@ -1730,7 +1730,7 @@ int wxStyledTextCtrl::GetTargetEnd() const
int wxStyledTextCtrl::SearchInTarget(const wxString& text) { int wxStyledTextCtrl::SearchInTarget(const wxString& text) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text);
return SendMsg(2197, strlen(buf), (sptr_t)(const char*)buf); return SendMsg(2197, buf.length(), (sptr_t)(const char*)buf);
} }
// Set the search flags used by SearchInTarget. // Set the search flags used by SearchInTarget.
@@ -2086,7 +2086,7 @@ bool wxStyledTextCtrl::GetUseVerticalScrollBar() const
// Append a string to the end of the document without changing the selection. // Append a string to the end of the document without changing the selection.
void wxStyledTextCtrl::AppendText(const wxString& text) { void wxStyledTextCtrl::AppendText(const wxString& text) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text);
SendMsg(2282, strlen(buf), (sptr_t)(const char*)buf); SendMsg(2282, buf.length(), (sptr_t)(const char*)buf);
} }
// Is drawing done in two phases with backgrounds drawn before foregrounds? // Is drawing done in two phases with backgrounds drawn before foregrounds?
@@ -4086,9 +4086,11 @@ bool wxStyledTextCtrl::GetUseAntiAliasing() {
void wxStyledTextCtrl::AddTextRaw(const char* text) void wxStyledTextCtrl::AddTextRaw(const char* text, int length)
{ {
SendMsg(SCI_ADDTEXT, strlen(text), (sptr_t)text); if (length == -1)
length = strlen(text);
SendMsg(SCI_ADDTEXT, length, (sptr_t)text);
} }
void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text) void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text)
@@ -4176,9 +4178,11 @@ wxCharBuffer wxStyledTextCtrl::GetTextRaw()
return buf; return buf;
} }
void wxStyledTextCtrl::AppendTextRaw(const char* text) void wxStyledTextCtrl::AppendTextRaw(const char* text, int length)
{ {
SendMsg(SCI_APPENDTEXT, strlen(text), (sptr_t)text); if (length == -1)
length = strlen(text);
SendMsg(SCI_APPENDTEXT, length, (sptr_t)text);
} }

View File

@@ -586,9 +586,11 @@ bool wxStyledTextCtrl::GetUseAntiAliasing() {
void wxStyledTextCtrl::AddTextRaw(const char* text) void wxStyledTextCtrl::AddTextRaw(const char* text, int length)
{ {
SendMsg(SCI_ADDTEXT, strlen(text), (sptr_t)text); if (length == -1)
length = strlen(text);
SendMsg(SCI_ADDTEXT, length, (sptr_t)text);
} }
void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text) void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text)
@@ -676,9 +678,11 @@ wxCharBuffer wxStyledTextCtrl::GetTextRaw()
return buf; return buf;
} }
void wxStyledTextCtrl::AppendTextRaw(const char* text) void wxStyledTextCtrl::AppendTextRaw(const char* text, int length)
{ {
SendMsg(SCI_APPENDTEXT, strlen(text), (sptr_t)text); if (length == -1)
length = strlen(text);
SendMsg(SCI_APPENDTEXT, length, (sptr_t)text);
} }

View File

@@ -247,7 +247,7 @@ public:
// what is used internally by Scintilla in unicode builds. // what is used internally by Scintilla in unicode builds.
// Add text to the document at current position. // Add text to the document at current position.
void AddTextRaw(const char* text); void AddTextRaw(const char* text, int length=-1);
// Insert string at a position. // Insert string at a position.
void InsertTextRaw(int pos, const char* text); void InsertTextRaw(int pos, const char* text);
@@ -276,7 +276,7 @@ public:
wxCharBuffer GetTextRaw(); wxCharBuffer GetTextRaw();
// Append a string to the end of the document without changing the selection. // Append a string to the end of the document without changing the selection.
void AppendTextRaw(const char* text); void AppendTextRaw(const char* text, int length=-1);
#ifdef SWIG #ifdef SWIG
%%pythoncode "_stc_utf8_methods.py" %%pythoncode "_stc_utf8_methods.py"