EditorOptions/Mouse: Merged Start/Continue Selection and added smLine mode selection

git-svn-id: trunk@20411 -
This commit is contained in:
martin 2009-06-04 22:24:44 +00:00
parent c9f080f627
commit 98e4b39c28
3 changed files with 35 additions and 30 deletions

View File

@ -2465,25 +2465,26 @@ begin
case ACommand of
emcNone: ; // do nothing, but result := true
emcStartSelections, emcStartColumnSelections:
emcStartSelections, emcStartColumnSelections, emcStartLineSelections:
begin
MoveCaret;
FBlockSelection.StartLineBytePos := AnInfo.NewCaret.LineBytePos;
if ACommand = emcStartColumnSelections then
FBlockSelection.ActiveSelectionMode := smColumn
else
FBlockSelection.ActiveSelectionMode := FBlockSelection.SelectionMode;
MouseCapture := True;
Include(fStateFlags, sfMouseSelecting);
end;
emcContinueSelections, emcContinueColumnSelections:
begin
MoveCaret;
FBlockSelection.EndLineBytePos := AnInfo.NewCaret.LineBytePos;
if ACommand = emcContinueColumnSelections then
FBlockSelection.ActiveSelectionMode := smColumn
else
FBlockSelection.ActiveSelectionMode := FBlockSelection.SelectionMode;
if AnAction.Option = emcoSelectionContinue then
FBlockSelection.EndLineBytePos := AnInfo.NewCaret.LineBytePos
else begin
MoveCaret;
FBlockSelection.StartLineBytePos := AnInfo.NewCaret.LineBytePos;
end;
case ACommand of
emcStartColumnSelections:
FBlockSelection.ActiveSelectionMode := smColumn;
emcStartLineSelections:
begin
if ACommand = emcStartLineSelections then
SetLineBlock(AnInfo.NewCaret.LineBytePos, True);
FBlockSelection.ActiveSelectionMode := smLine;
end;
else
FBlockSelection.ActiveSelectionMode := FBlockSelection.SelectionMode;
end;
MouseCapture := True;
Include(fStateFlags, sfMouseSelecting);
end;

View File

@ -42,9 +42,8 @@ const
emcNone = 0;
emcStartSelections = 1; // Start BlockSelection (Default Left Mouse Btn)
emcContinueSelections = 2; // Continue BlockSelection (Default Shift - Left Mouse Btn)
emcStartColumnSelections = 3; // Column BlockSelection (Default Alt - Left Mouse Btn)
emcContinueColumnSelections = 4; // column BlockSelection (Default Alt-Shift - Left Mouse Btn)
emcStartLineSelections = 4; // Line BlockSelection (Default Alt - Left Mouse Btn)
emcSelectWord = 6;
emcSelectLine = 7;
@ -65,6 +64,9 @@ const
emcMax = 16;
// Options
emcoSelectionStart = 0;
emcoSelectionContinue = 1;
emcoSelectLineSmart = 0;
emcoSelectLineFull = 1;
emcoMouseLinkShow = 0;
@ -194,9 +196,8 @@ begin
case emc of
emcNone: Result := SYNS_emcNone;
emcStartSelections: Result := SYNS_emcStartSelection;
emcContinueSelections: Result := SYNS_emcContinueSelections;
emcStartColumnSelections: Result := SYNS_emcStartColumnSelections;
emcContinueColumnSelections: Result := SYNS_emcContinueColumnSelections;
emcStartLineSelections: Result := SYNS_emcStartLineSelections;
emcSelectWord: Result := SYNS_emcSelectWord;
emcSelectLine: Result := SYNS_emcSelectLine;
emcSelectPara: Result := SYNS_emcSelectPara;
@ -218,6 +219,9 @@ end;
function MouseCommandConfigName(emc: TSynEditorMouseCommand): String;
begin
case emc of
emcStartSelections,
emcStartColumnSelections,
emcStartLineSelections: Result := SYNS_emcSelection_opt;
emcSelectLine: Result := SYNS_emcSelectLine_opt;
emcMouseLink: Result := SYNS_emcMouseLink_opt;
emcCodeFoldCollaps: Result := SYNS_emcCodeFoldCollaps_opt;
@ -505,10 +509,10 @@ end;
procedure TSynEditMouseTextActions.ResetDefaults;
begin
Clear;
AddCommand(emcStartSelections, True, mbLeft, ccSingle, cdDown, [], [ssShift, ssAlt]);
AddCommand(emcContinueSelections, True, mbLeft, ccSingle, cdDown, [ssShift], [ssShift, ssAlt]);
AddCommand(emcStartColumnSelections, True, mbLeft, ccSingle, cdDown, [ssAlt], [ssShift, ssAlt]);
AddCommand(emcContinueColumnSelections, True, mbLeft, ccSingle, cdDown, [ssShift, ssAlt], [ssShift, ssAlt]);
AddCommand(emcStartSelections, True, mbLeft, ccSingle, cdDown, [], [ssShift, ssAlt], emcoSelectionStart);
AddCommand(emcStartSelections, True, mbLeft, ccSingle, cdDown, [ssShift], [ssShift, ssAlt], emcoSelectionContinue);
AddCommand(emcStartColumnSelections, True, mbLeft, ccSingle, cdDown, [ssAlt], [ssShift, ssAlt], emcoSelectionStart);
AddCommand(emcStartColumnSelections, True, mbLeft, ccSingle, cdDown, [ssShift, ssAlt], [ssShift, ssAlt], emcoSelectionContinue);
AddCommand(emcContextMenu, False, mbRight, ccSingle, cdUp, [], []);
AddCommand(emcSelectWord, True, mbLeft, ccDouble, cdDown, [], []);

View File

@ -275,10 +275,10 @@ const
SYNS_emcNone = 'No Action';
SYNS_emcStartSelection = 'Start Selection';
SYNS_emcContinueSelections = 'Continue Selection';
SYNS_emcStartColumnSelections = 'Start Column Selection';
SYNS_emcContinueColumnSelections = 'Continue Column Selection';
SYNS_emcStartSelection = 'Selection';
SYNS_emcStartColumnSelections = 'Column Selection';
SYNS_emcStartLineSelections = 'Line Selection';
SYNS_emcSelection_opt = 'Mode,Begin,Continue';
SYNS_emcSelectWord = 'Select Word';
SYNS_emcSelectLine = 'Select Line';
SYNS_emcSelectLine_opt = '"Include spaces",no,yes';