aboutsummaryrefslogtreecommitdiffhomepage
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/ScintillaWin.cxx31
-rw-r--r--win32/makefile4
-rw-r--r--win32/scintilla.mak18
3 files changed, 29 insertions, 24 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 502dca7dd..9c8036aa9 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -45,6 +45,7 @@
#include "CharClassify.h"
#include "Decoration.h"
#include "Document.h"
+#include "Selection.h"
#include "PositionCache.h"
#include "Editor.h"
#include "ScintillaBase.h"
@@ -238,7 +239,7 @@ class ScintillaWin :
virtual bool GetScrollInfo(int nBar, LPSCROLLINFO lpsi);
void ChangeScrollPos(int barType, int pos);
- void InsertPasteText(const char *text, int len, int selStart, bool isRectangular, bool isLine);
+ void InsertPasteText(const char *text, int len, SelectionPosition selStart, bool isRectangular, bool isLine);
public:
// Public for benefit of Scintilla_DirectFunction
@@ -523,7 +524,7 @@ sptr_t ScintillaWin::HandleComposition(uptr_t wParam, sptr_t lParam) {
}
}
// Set new position after converted
- Point pos = LocationFromPosition(currentPos);
+ Point pos = LocationFromPosition(sel.MainCaret());
COMPOSITIONFORM CompForm;
CompForm.dwStyle = CFS_POINT;
CompForm.ptCurrentPos.x = pos.x;
@@ -903,7 +904,7 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
Point pt = Point::FromLong(lParam);
if ((pt.x == -1) && (pt.y == -1)) {
// Caused by keyboard so display menu near caret
- pt = LocationFromPosition(currentPos);
+ pt = LocationFromPosition(sel.MainCaret());
POINT spt = {pt.x, pt.y};
::ClientToScreen(MainHWND(), &spt);
pt = Point(spt.x, spt.y);
@@ -996,7 +997,7 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
return 0;
}
Sci_CharacterRange *pCR = reinterpret_cast<Sci_CharacterRange *>(lParam);
- selType = selStream;
+ sel.selType = Selection::selStream;
if (pCR->cpMin == 0 && pCR->cpMax == -1) {
SetSelection(pCR->cpMin, pdoc->Length());
} else {
@@ -1135,7 +1136,7 @@ void ScintillaWin::UpdateSystemCaret() {
DestroySystemCaret();
CreateSystemCaret();
}
- Point pos = LocationFromPosition(currentPos);
+ Point pos = LocationFromPosition(sel.MainCaret());
::SetCaretPos(pos.x, pos.y);
}
}
@@ -1259,7 +1260,7 @@ void ScintillaWin::NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt)
void ScintillaWin::Copy() {
//Platform::DebugPrintf("Copy\n");
- if (currentPos != anchor) {
+ if (!sel.Empty()) {
SelectionText selectedText;
CopySelectionRange(&selectedText);
CopyToClipboard(selectedText);
@@ -1321,7 +1322,7 @@ public:
}
};
-void ScintillaWin::InsertPasteText(const char *text, int len, int selStart, bool isRectangular, bool isLine) {
+void ScintillaWin::InsertPasteText(const char *text, int len, SelectionPosition selStart, bool isRectangular, bool isLine) {
if (isRectangular) {
PasteRectangular(selStart, text, len);
} else {
@@ -1332,7 +1333,7 @@ void ScintillaWin::InsertPasteText(const char *text, int len, int selStart, bool
text = convertedText;
}
if (isLine) {
- int insertPos = pdoc->LineStart(pdoc->LineFromPosition(currentPos));
+ int insertPos = pdoc->LineStart(pdoc->LineFromPosition(sel.MainCaret()));
pdoc->InsertString(insertPos, text, len);
// add the newline if necessary
if ((len > 0) && (text[len-1] != '\n' && text[len-1] != '\r')) {
@@ -1340,11 +1341,11 @@ void ScintillaWin::InsertPasteText(const char *text, int len, int selStart, bool
pdoc->InsertString(insertPos + len, endline, strlen(endline));
len += strlen(endline);
}
- if (currentPos == insertPos) {
- SetEmptySelection(currentPos + len);
+ if (sel.MainCaret() == insertPos) {
+ SetEmptySelection(sel.MainCaret() + len);
}
- } else if (pdoc->InsertString(currentPos, text, len)) {
- SetEmptySelection(currentPos + len);
+ } else if (pdoc->InsertString(sel.MainCaret(), text, len)) {
+ SetEmptySelection(sel.MainCaret() + len);
}
delete []convertedText;
}
@@ -1356,7 +1357,7 @@ void ScintillaWin::Paste() {
pdoc->BeginUndoAction();
bool isLine = SelectionEmpty() && (::IsClipboardFormatAvailable(cfLineSelect) != 0);
ClearSelection();
- int selStart = SelectionStart();
+ SelectionPosition selStart = sel.Range(sel.Main()).Start();
bool isRectangular = ::IsClipboardFormatAvailable(cfColumnSelect) != 0;
// Always use CF_UNICODETEXT if available
@@ -1816,7 +1817,7 @@ void ScintillaWin::ImeStartComposition() {
if (caret.active) {
// Move IME Window to current caret position
HIMC hIMC = ::ImmGetContext(MainHWND());
- Point pos = LocationFromPosition(currentPos);
+ Point pos = LocationFromPosition(sel.MainCaret());
COMPOSITIONFORM CompForm;
CompForm.dwStyle = CFS_POINT;
CompForm.ptCurrentPos.x = pos.x;
@@ -1828,7 +1829,7 @@ void ScintillaWin::ImeStartComposition() {
if (stylesValid) {
// Since the style creation code has been made platform independent,
// The logfont for the IME is recreated here.
- int styleHere = (pdoc->StyleAt(currentPos)) & 31;
+ int styleHere = (pdoc->StyleAt(sel.MainCaret())) & 31;
LOGFONTA lf = {0,0,0,0,0,0,0,0,0,0,0,0,0, ""};
int sizeZoomed = vs.styles[styleHere].size + vs.zoomLevel;
if (sizeZoomed <= 2) // Hangs if sizeZoomed <= 1
diff --git a/win32/makefile b/win32/makefile
index 143be32e0..5f495c7a4 100644
--- a/win32/makefile
+++ b/win32/makefile
@@ -67,14 +67,14 @@ LexTADS3.o LexTAL.o LexTCL.o LexTeX.o LexVB.o LexVerilog.o LexVHDL.o LexYAML.o
SOBJS = ScintillaWin.o ScintillaBase.o Editor.o CharClassify.o Decoration.o \
Document.o ContractionState.o CellBuffer.o CallTip.o \
ScintRes.o PlatWin.o PositionCache.o KeyMap.o Indicator.o LineMarker.o RESearch.o RunStyles.o \
- Style.o ViewStyle.o AutoComplete.o UniConversion.o PropSet.o XPM.o PerLine.o
+ Selection.o Style.o ViewStyle.o AutoComplete.o UniConversion.o PropSet.o XPM.o PerLine.o
$(COMPONENT): $(SOBJS) Scintilla.def
$(DLLWRAP) --add-stdcall-alias --target i386-mingw32 -o $@ $(SOBJS) $(LDFLAGS) -s --relocatable
LOBJS = ScintillaWinL.o ScintillaBaseL.o Editor.o CharClassify.o Decoration.o \
Document.o ContractionState.o CellBuffer.o CallTip.o \
ScintRes.o PlatWin.o PositionCache.o KeyMap.o Indicator.o LineMarker.o RESearch.o RunStyles.o \
- Style.o ViewStyle.o AutoComplete.o UniConversion.o KeyWords.o \
+ Selection.o Style.o ViewStyle.o AutoComplete.o UniConversion.o KeyWords.o \
DocumentAccessor.o PropSet.o ExternalLexer.o StyleContext.o XPM.o PerLine.o $(LEXOBJS)
$(LEXCOMPONENT): $(LOBJS) Scintilla.def
$(DLLWRAP) --add-stdcall-alias --target i386-mingw32 -o $@ $(LOBJS) $(LDFLAGS) -s --relocatable
diff --git a/win32/scintilla.mak b/win32/scintilla.mak
index ff8dc8f57..4e715e02b 100644
--- a/win32/scintilla.mak
+++ b/win32/scintilla.mak
@@ -105,6 +105,7 @@ SOBJS=\
$(DIR_O)\RunStyles.obj \
$(DIR_O)\ScintillaBase.obj \
$(DIR_O)\ScintillaWin.obj \
+ $(DIR_O)\Selection.obj \
$(DIR_O)\Style.obj \
$(DIR_O)\UniConversion.obj \
$(DIR_O)\ViewStyle.obj \
@@ -216,6 +217,7 @@ LOBJS=\
$(DIR_O)\RunStyles.obj \
$(DIR_O)\ScintillaBaseL.obj \
$(DIR_O)\ScintillaWinL.obj \
+ $(DIR_O)\Selection.obj \
$(DIR_O)\Style.obj \
$(DIR_O)\StyleContext.obj \
$(DIR_O)\UniConversion.obj \
@@ -299,7 +301,7 @@ $(DIR_O)\Editor.obj: ../src/Editor.cxx ../include/Platform.h ../include/Scintill
../src/Partitioning.h ../src/CellBuffer.h ../src/KeyMap.h \
../src/RunStyles.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \
../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \
- ../src/Decoration.h ../src/Document.h ../src/Editor.h ../src/PositionCache.h
+ ../src/Decoration.h ../src/Document.h ../src/Editor.h ../src/Selection.h ../src/PositionCache.h
$(DIR_O)\ExternalLexer.obj: ../src/ExternalLexer.cxx ../include/Platform.h \
../include/Scintilla.h ../include/SciLexer.h ../include/PropSet.h \
../include/SString.h ../include/Accessor.h ../src/DocumentAccessor.h \
@@ -484,7 +486,7 @@ $(DIR_O)\PositionCache.obj: ../src/Editor.cxx ../include/Platform.h ../include/S
../src/Partitioning.h ../src/CellBuffer.h ../src/KeyMap.h \
../src/RunStyles.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \
../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \
- ../src/Decoration.h ../src/Document.h ../src/Editor.h ../src/PositionCache.h
+ ../src/Decoration.h ../src/Document.h ../src/Editor.h ../src/Selection.h ../src/PositionCache.h
$(DIR_O)\PropSet.obj: ../src/PropSet.cxx ../include/Platform.h ../include/PropSet.h \
../include/SString.h
$(DIR_O)\RESearch.obj: ../src/RESearch.cxx ../src/CharClassify.h ../src/RESearch.h
@@ -498,7 +500,7 @@ $(DIR_O)\ScintillaBase.obj: ../src/ScintillaBase.cxx ../include/Platform.h \
../src/CallTip.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \
../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \
../src/AutoComplete.h ../src/CharClassify.h ../src/Decoration.h \
- ../src/Document.h ../src/Editor.h ../src/ScintillaBase.h
+ ../src/Document.h ../src/Editor.h ../src/Selection.h ../src/ScintillaBase.h
$(DIR_O)\ScintillaBaseL.obj: ../src/ScintillaBase.cxx ../include/Platform.h \
../include/Scintilla.h ../include/PropSet.h ../include/SString.h \
../src/ContractionState.h ../src/SVector.h ../src/SplitVector.h \
@@ -506,7 +508,7 @@ $(DIR_O)\ScintillaBaseL.obj: ../src/ScintillaBase.cxx ../include/Platform.h \
../src/CallTip.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \
../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \
../src/AutoComplete.h ../src/CharClassify.h ../src/Decoration.h \
- ../src/Document.h ../src/Editor.h ../src/ScintillaBase.h
+ ../src/Document.h ../src/Editor.h ../src/Selection.h ../src/ScintillaBase.h
$(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \
../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \
../src/SVector.h ../src/SplitVector.h ../src/Partitioning.h \
@@ -514,7 +516,7 @@ $(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \
../src/Indicator.h ../src/XPM.h ../src/LineMarker.h ../src/Style.h \
../src/AutoComplete.h ../src/ViewStyle.h ../src/CharClassify.h \
../src/Decoration.h ../src/Document.h ../src/Editor.h \
- ../src/ScintillaBase.h ../src/UniConversion.h
+ ../src/ScintillaBase.h ../src/Selection.h ../src/UniConversion.h
$(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ../include/Platform.h \
../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \
../src/SVector.h ../src/SplitVector.h ../src/Partitioning.h \
@@ -522,7 +524,7 @@ $(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ../include/Platform.h \
../src/Indicator.h ../src/XPM.h ../src/LineMarker.h ../src/Style.h \
../src/AutoComplete.h ../src/ViewStyle.h ../src/CharClassify.h \
../src/Decoration.h ../src/Document.h ../src/Editor.h \
- ../src/ScintillaBase.h ../src/UniConversion.h
+ ../src/ScintillaBase.h ../src/Selection.h ../src/UniConversion.h
$(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ../include/Platform.h \
../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \
../src/SVector.h ../src/SplitVector.h ../src/Partitioning.h \
@@ -530,7 +532,9 @@ $(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ../include/Platform.h \
../src/Indicator.h ../src/XPM.h ../src/LineMarker.h ../src/Style.h \
../src/AutoComplete.h ../src/ViewStyle.h ../src/CharClassify.h \
../src/Decoration.h ../src/Document.h ../src/Editor.h \
- ../src/ScintillaBase.h ../src/UniConversion.h
+ ../src/ScintillaBase.h ../src/Selection.h ../src/UniConversion.h
+$(DIR_O)\Selection.obj: ../src/Selection.cxx ../include/Platform.h ../include/Scintilla.h \
+ ../src/Selection.h
$(DIR_O)\Style.obj: ../src/Style.cxx ../include/Platform.h ../include/Scintilla.h \
../src/Style.h
$(DIR_O)\StyleContext.obj: ../src/StyleContext.cxx ../include/Platform.h \