diff options
Diffstat (limited to 'win32')
| -rw-r--r-- | win32/ScintillaWin.cxx | 31 | ||||
| -rw-r--r-- | win32/makefile | 4 | ||||
| -rw-r--r-- | win32/scintilla.mak | 18 | 
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 \ | 
