aboutsummaryrefslogtreecommitdiffhomepage
path: root/gtk/ScintillaGTK.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2013-05-26 18:23:09 +1000
committernyamatongwe <unknown>2013-05-26 18:23:09 +1000
commit25ff1ad0d0811ba9167580bcc6d3587f75efae3f (patch)
tree28bdb8a91e1c752bfa50505015b82472f5fcf5a2 /gtk/ScintillaGTK.cxx
parent501509cbec9a2746f84416a0cbe715bc7a504474 (diff)
downloadscintilla-mirror-25ff1ad0d0811ba9167580bcc6d3587f75efae3f.tar.gz
Switch SelectionText to use a std::string to hold the data and to provide accessors to this data.
Add a length argument to DropAt, although previous signature still available.
Diffstat (limited to 'gtk/ScintillaGTK.cxx')
-rw-r--r--gtk/ScintillaGTK.cxx29
1 files changed, 15 insertions, 14 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
index f0fc63310..7b039dc3c 100644
--- a/gtk/ScintillaGTK.cxx
+++ b/gtk/ScintillaGTK.cxx
@@ -14,6 +14,7 @@
#include <string>
#include <vector>
#include <map>
+#include <algorithm>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
@@ -1449,14 +1450,14 @@ void ScintillaGTK::ClaimSelection() {
primarySelection = true;
gtk_selection_owner_set(GTK_WIDGET(PWidget(wMain)),
GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME);
- primary.Free();
+ primary.Clear();
} else if (OwnPrimarySelection()) {
primarySelection = true;
- if (primary.s == NULL)
+ if (primary.Empty())
gtk_selection_owner_set(NULL, GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME);
} else {
primarySelection = false;
- primary.Free();
+ primary.Clear();
}
}
@@ -1480,7 +1481,7 @@ void ScintillaGTK::GetGtkSelectionText(GtkSelectionData *selectionData, Selectio
// Return empty string if selection is not a string
if ((selectionTypeData != GDK_TARGET_STRING) && (selectionTypeData != atomUTF8)) {
- selText.Copy("", 1, SC_CP_UTF8, 0, false, false);
+ selText.Clear();
return;
}
@@ -1540,9 +1541,9 @@ void ScintillaGTK::ReceivedSelection(GtkSelectionData *selection_data) {
sel.Range(sel.Main()).Start();
if (selText.rectangular) {
- PasteRectangular(selStart, selText.s, selText.len-1);
+ PasteRectangular(selStart, selText.Data(), selText.Length());
} else {
- InsertPaste(selStart, selText.s, selText.len-1);
+ InsertPaste(selStart, selText.Data(), selText.Length());
}
EnsureCaretVisible();
}
@@ -1566,7 +1567,7 @@ void ScintillaGTK::ReceivedDrop(GtkSelectionData *selection_data) {
if (TypeOfGSD(selection_data) > 0) {
SelectionText selText;
GetGtkSelectionText(selection_data, selText);
- DropAt(posDrop, selText.s, false, selText.rectangular);
+ DropAt(posDrop, selText.Data(), selText.Length(), false, selText.rectangular);
}
} else if (LengthOfGSD(selection_data) > 0) {
//~ fprintf(stderr, "ReceivedDrop other %p\n", static_cast<void *>(selection_data->type));
@@ -1583,7 +1584,7 @@ void ScintillaGTK::GetSelection(GtkSelectionData *selection_data, guint info, Se
// from code below
SelectionText *newline_normalized = NULL;
{
- std::string tmpstr = Document::TransformLineEnds(text->s, text->len, SC_EOL_LF);
+ std::string tmpstr = Document::TransformLineEnds(text->Data(), text->Length(), SC_EOL_LF);
newline_normalized = new SelectionText();
newline_normalized->Copy(tmpstr, SC_CP_UTF8, 0, text->rectangular, false);
text = newline_normalized;
@@ -1595,7 +1596,7 @@ void ScintillaGTK::GetSelection(GtkSelectionData *selection_data, guint info, Se
if ((text->codePage != SC_CP_UTF8) && (info == TARGET_UTF8_STRING)) {
const char *charSet = ::CharacterSetID(text->characterSet);
if (*charSet) {
- std::string tmputf = ConvertText(text->s, text->len-1, "UTF-8", charSet, false);
+ std::string tmputf = ConvertText(text->Data(), text->Length(), "UTF-8", charSet, false);
converted = new SelectionText();
converted->Copy(tmputf, SC_CP_UTF8, 0, text->rectangular, false);
text = converted;
@@ -1609,8 +1610,8 @@ void ScintillaGTK::GetSelection(GtkSelectionData *selection_data, guint info, Se
// All other tested aplications behave benignly by ignoring the \0.
// The #if is here because on Windows cfColumnSelect clip entry is used
// instead as standard indicator of rectangularness (so no need to kludge)
- const char *textData = text->s ? text->s : "";
- int len = strlen(textData);
+ const char *textData = text->Data();
+ int len = text->Length();
#if PLAT_GTK_WIN32 == 0
if (text->rectangular)
len++;
@@ -1657,7 +1658,7 @@ void ScintillaGTK::UnclaimSelection(GdkEventSelection *selection_event) {
if (selection_event->selection == GDK_SELECTION_PRIMARY) {
//Platform::DebugPrintf("UnclaimPrimarySelection\n");
if (!OwnPrimarySelection()) {
- primary.Free();
+ primary.Clear();
primarySelection = false;
FullPaint();
}
@@ -1798,7 +1799,7 @@ gint ScintillaGTK::PressThis(GdkEventButton *event) {
} else if (event->button == 2) {
// Grab the primary selection if it exists
SelectionPosition pos = SPositionFromLocation(pt, false, false, UserVirtualSpace());
- if (OwnPrimarySelection() && primary.s == NULL)
+ if (OwnPrimarySelection() && primary.Empty())
CopySelectionRange(&primary);
sel.Clear();
@@ -2544,7 +2545,7 @@ void ScintillaGTK::SelectionGet(GtkWidget *widget,
try {
//Platform::DebugPrintf("Selection get\n");
if (SelectionOfGSD(selection_data) == GDK_SELECTION_PRIMARY) {
- if (sciThis->primary.s == NULL) {
+ if (sciThis->primary.Empty()) {
sciThis->CopySelectionRange(&sciThis->primary);
}
sciThis->GetSelection(selection_data, info, &sciThis->primary);