mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-20 10:59:23 +01:00
EditorOptions/Mouse: Added Config for Line-Number-Gutter => End users can add option to select line
git-svn-id: trunk@20410 -
This commit is contained in:
parent
3332a54674
commit
c9f080f627
@ -1706,7 +1706,7 @@ begin
|
||||
if assigned(Owner) and not (csLoading in Owner.ComponentState) then begin
|
||||
SetDefaultKeystrokes;
|
||||
end;
|
||||
FMouseActions := TSynEditMouseActions.Create(Self);
|
||||
FMouseActions := TSynEditMouseTextActions.Create(Self);
|
||||
FMouseSelActions := TSynEditMouseSelActions.Create(Self);
|
||||
FMouseActions.ResetDefaults;
|
||||
FMouseSelActions.ResetDefaults;
|
||||
|
||||
@ -167,6 +167,13 @@ type
|
||||
write SetItem; default;
|
||||
end;
|
||||
|
||||
{ TSynEditMouseTextActions }
|
||||
|
||||
TSynEditMouseTextActions = class(TSynEditMouseActions)
|
||||
public
|
||||
procedure ResetDefaults; override;
|
||||
end;
|
||||
|
||||
{ TSynEditSelMouseActions }
|
||||
|
||||
TSynEditMouseSelActions = class(TSynEditMouseActions)
|
||||
@ -463,19 +470,6 @@ end;
|
||||
procedure TSynEditMouseActions.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(emcContextMenu, False, mbRight, ccSingle, cdUp, [], []);
|
||||
|
||||
AddCommand(emcSelectWord, True, mbLeft, ccDouble, cdDown, [], []);
|
||||
AddCommand(emcSelectLine, True, mbLeft, ccTriple, cdDown, [], []);
|
||||
AddCommand(emcSelectPara, True, mbLeft, ccQuad, cdDown, [], []);
|
||||
|
||||
AddCommand(emcPasteSelection, True, mbMiddle, ccSingle, cdDown, [], []);
|
||||
|
||||
AddCommand(emcMouseLink, False, mbLeft, ccSingle, cdUp, [SYNEDIT_LINK_MODIFIER], [ssShift, ssAlt, ssCtrl]);
|
||||
end;
|
||||
|
||||
procedure TSynEditMouseActions.IncAssertLock;
|
||||
@ -506,5 +500,25 @@ begin
|
||||
AddCommand(emcStartDragMove, False, mbLeft, ccSingle, cdDown, [], []);
|
||||
end;
|
||||
|
||||
{ TSynEditMouseTextActions }
|
||||
|
||||
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(emcContextMenu, False, mbRight, ccSingle, cdUp, [], []);
|
||||
|
||||
AddCommand(emcSelectWord, True, mbLeft, ccDouble, cdDown, [], []);
|
||||
AddCommand(emcSelectLine, True, mbLeft, ccTriple, cdDown, [], []);
|
||||
AddCommand(emcSelectPara, True, mbLeft, ccQuad, cdDown, [], []);
|
||||
|
||||
AddCommand(emcPasteSelection, True, mbMiddle, ccSingle, cdDown, [], []);
|
||||
|
||||
AddCommand(emcMouseLink, False, mbLeft, ccSingle, cdUp, [SYNEDIT_LINK_MODIFIER], [ssShift, ssAlt, ssCtrl]);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
@ -420,7 +420,7 @@ end;
|
||||
procedure TSynEditMouseActionsGutter.ResetDefaults;
|
||||
begin
|
||||
Clear;
|
||||
AddCommand(emcOnMainGutterClick, False, mbLeft, ccSingle, cdDown, [], []);
|
||||
AddCommand(emcOnMainGutterClick, False, mbLeft, ccAny, cdDown, [], []);
|
||||
AddCommand(emcContextMenu, False, mbRight, ccSingle, cdUp, [], []);
|
||||
end;
|
||||
|
||||
|
||||
@ -341,6 +341,8 @@ function TSynGutterPartBase.MaybeHandleMouseAction(var AnInfo: TSynEditMouseActi
|
||||
HandleActionProc: TSynEditMouseActionHandler): Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
if assigned(FMouseActions) then
|
||||
Result := HandleActionProc(MouseActions.FindCommand(AnInfo), AnInfo);
|
||||
end;
|
||||
|
||||
function TSynGutterPartBase.DoHandleMouseAction(AnAction: TSynEditMouseAction;
|
||||
|
||||
@ -6,10 +6,14 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Graphics, LCLType, LCLIntf, SynGutterBase,
|
||||
SynEditMiscProcs, SynTextDrawer, SynEditFoldedView;
|
||||
SynEditMiscProcs, SynTextDrawer, SynEditFoldedView, SynEditMouseCmds;
|
||||
|
||||
type
|
||||
|
||||
TSynEditMouseActionsLineNum = class(TSynEditMouseActions)
|
||||
public // empty by default
|
||||
end;
|
||||
|
||||
{ TSynGutterLineNumber }
|
||||
|
||||
TSynGutterLineNumber = class(TSynGutterPartBase)
|
||||
@ -59,6 +63,8 @@ begin
|
||||
inherited Create(AOwner);
|
||||
FFoldView := Gutter.FoldView;
|
||||
FTextDrawer := Gutter.TextDrawer;
|
||||
FMouseActions := TSynEditMouseActionsLineNum.Create(self);
|
||||
FMouseActions.ResetDefaults;
|
||||
|
||||
FDigitCount := 2;
|
||||
FAutoSizeDigitCount := FDigitCount;
|
||||
@ -70,6 +76,7 @@ end;
|
||||
|
||||
destructor TSynGutterLineNumber.Destroy;
|
||||
begin
|
||||
FreeAndNil(FMouseActions);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
|
||||
@ -649,6 +649,7 @@ type
|
||||
FMouseGutterActionsFold: TSynEditMouseActions;
|
||||
FMouseGutterActionsFoldCol: TSynEditMouseActions;
|
||||
FMouseGutterActionsFoldExp: TSynEditMouseActions;
|
||||
FMouseGutterActionsLines: TSynEditMouseActions;
|
||||
|
||||
// Color options
|
||||
fHighlighterList: TEditOptLangList;
|
||||
@ -795,6 +796,7 @@ type
|
||||
property MouseGutterActionsFold: TSynEditMouseActions read FMouseGutterActionsFold;
|
||||
property MouseGutterActionsFoldExp: TSynEditMouseActions read FMouseGutterActionsFoldExp;
|
||||
property MouseGutterActionsFoldCol: TSynEditMouseActions read FMouseGutterActionsFoldCol;
|
||||
property MouseGutterActionsLines: TSynEditMouseActions read FMouseGutterActionsLines;
|
||||
|
||||
// Color options
|
||||
property HighlighterList: TEditOptLangList
|
||||
@ -1943,7 +1945,7 @@ begin
|
||||
fKeyMap := TKeyCommandRelationList.Create;
|
||||
|
||||
// Mouse Mappings
|
||||
fMouseMap := TSynEditMouseActions.Create(nil);
|
||||
fMouseMap := TSynEditMouseTextActions.Create(nil);
|
||||
fMouseMap.ResetDefaults;
|
||||
fMouseSelMap := TSynEditMouseSelActions.Create(nil);
|
||||
fMouseSelMap.ResetDefaults;
|
||||
@ -1955,7 +1957,8 @@ begin
|
||||
FMouseGutterActionsFoldCol.ResetDefaults;
|
||||
FMouseGutterActionsFoldExp := TSynEditMouseActionsGutterFoldExpanded.Create(nil);
|
||||
FMouseGutterActionsFoldExp.ResetDefaults;
|
||||
|
||||
FMouseGutterActionsLines := TSynEditMouseActionsLineNum.Create(nil);
|
||||
FMouseGutterActionsLines.ResetDefaults;
|
||||
// Color options
|
||||
fHighlighterList := TEditOptLangList.Create;
|
||||
|
||||
@ -1997,6 +2000,7 @@ begin
|
||||
FMouseGutterActionsFold.Free;
|
||||
FMouseGutterActionsFoldCol.Free;
|
||||
FMouseGutterActionsFoldExp.Free;
|
||||
FMouseGutterActionsLines.Free;
|
||||
fKeyMap.Free;
|
||||
XMLConfig.Free;
|
||||
inherited Destroy;
|
||||
@ -2244,6 +2248,7 @@ begin
|
||||
LoadMouseAct('EditorOptions/Mouse/GutterFold/', MouseGutterActionsFold);
|
||||
LoadMouseAct('EditorOptions/Mouse/GutterFoldExp/', MouseGutterActionsFoldExp);
|
||||
LoadMouseAct('EditorOptions/Mouse/GutterFoldCol/', MouseGutterActionsFoldCol);
|
||||
LoadMouseAct('EditorOptions/Mouse/GutterLineNum/', MouseGutterActionsLines);
|
||||
|
||||
// update depricated values
|
||||
if not XMLConfig.GetValue('EditorOptions/General/Editor/DragDropEditing', True) then
|
||||
@ -2459,6 +2464,7 @@ begin
|
||||
SaveMouseAct('EditorOptions/Mouse/GutterFold/', MouseGutterActionsFold);
|
||||
SaveMouseAct('EditorOptions/Mouse/GutterFoldExp/', MouseGutterActionsFoldExp);
|
||||
SaveMouseAct('EditorOptions/Mouse/GutterFoldCol/', MouseGutterActionsFoldCol);
|
||||
SaveMouseAct('EditorOptions/Mouse/GutterLineNum/', MouseGutterActionsLines);
|
||||
|
||||
InvalidateFileStateCache;
|
||||
XMLConfig.Flush;
|
||||
@ -3264,6 +3270,9 @@ begin
|
||||
ASynEdit.Gutter.CodeFoldPart.MouseActionsCollapsed.Assign(MouseGutterActionsFoldCol);
|
||||
ASynEdit.Gutter.CodeFoldPart.MouseActionsExpanded.Assign(MouseGutterActionsFoldExp);
|
||||
end;
|
||||
if ASynEdit.Gutter.LineNumberPart <> nil then begin
|
||||
ASynEdit.Gutter.LineNumberPart.MouseActions.Assign(MouseGutterActionsLines);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.SetSynEditSettings(ASynEdit: TSynEdit);
|
||||
|
||||
@ -58,11 +58,15 @@ type
|
||||
FMainNode, FSelNode: TTreeNode;
|
||||
FGutterNode: TTreeNode;
|
||||
FGutterFoldNode, FGutterFoldExpNode, FGutterFoldColNode: TTreeNode;
|
||||
FGutterLinesNode: TTreeNode;
|
||||
FCurNode: TTreeNode;
|
||||
|
||||
FMainActions, FSelActions: TSynEditMouseActions;
|
||||
FGutterActions: TSynEditMouseActions;
|
||||
FGutterActionsFold, FGutterActionsFoldExp, FGutterActionsFoldCol: TSynEditMouseActions;
|
||||
FGutterActionsLines: TSynEditMouseActions;
|
||||
FCurActions: TSynEditMouseActions;
|
||||
|
||||
ChangeDlg: TMouseaActionDialog;
|
||||
FColWidths: Array of Integer;
|
||||
FLastWidth: Integer;
|
||||
@ -254,6 +258,7 @@ begin
|
||||
FGutterActionsFold := TSynEditMouseActions.Create(nil);
|
||||
FGutterActionsFoldExp := TSynEditMouseActions.Create(nil);
|
||||
FGutterActionsFoldCol := TSynEditMouseActions.Create(nil);
|
||||
FGutterActionsLines := TSynEditMouseActions.Create(nil);
|
||||
ChangeDlg := TMouseaActionDialog.Create(self);
|
||||
end;
|
||||
|
||||
@ -265,6 +270,7 @@ begin
|
||||
FGutterActionsFold.Free;
|
||||
FGutterActionsFoldExp.Free;
|
||||
FGutterActionsFoldCol.Free;
|
||||
FGutterActionsLines.Free;
|
||||
ChangeDlg.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
@ -292,6 +298,9 @@ begin
|
||||
FGutterFoldColNode.Data := FGutterActionsFoldCol;
|
||||
FGutterFoldExpNode := ContextTree.Items.AddChild(FGutterFoldNode, dlgMouseOptNodeGutterFoldExp);
|
||||
FGutterFoldExpNode.Data := FGutterActionsFoldExp;
|
||||
// LineNum
|
||||
FGutterLinesNode := ContextTree.Items.AddChild(FGutterNode, dlgMouseOptNodeGutterLines);
|
||||
FGutterLinesNode.Data := FGutterActionsLines;
|
||||
|
||||
ActionGrid.Constraints.MinWidth := ActionGrid.ColCount * MinGridColSize;
|
||||
Splitter1.MinSize := ActionGrid.ColCount * MinGridColSize;
|
||||
@ -324,6 +333,7 @@ begin
|
||||
FGutterActionsFold.Assign(MouseGutterActionsFold);
|
||||
FGutterActionsFoldExp.Assign(MouseGutterActionsFoldExp);
|
||||
FGutterActionsFoldCol.Assign(MouseGutterActionsFoldCol);
|
||||
FGutterActionsLines.Assign(MouseGutterActionsLines);
|
||||
end;
|
||||
ContextTree.Selected := FMainNode;
|
||||
end;
|
||||
@ -339,6 +349,7 @@ begin
|
||||
MouseGutterActionsFold.Assign(FGutterActionsFold);
|
||||
MouseGutterActionsFoldExp.Assign(FGutterActionsFoldExp);
|
||||
MouseGutterActionsFoldCol.Assign(FGutterActionsFoldCol);
|
||||
MouseGutterActionsLines.Assign(FGutterActionsLines);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -1170,6 +1170,7 @@ resourcestring
|
||||
dlgMouseOptNodeGutterFold = 'Fold Tree';
|
||||
dlgMouseOptNodeGutterFoldCol = 'Fold Collapsed [+]';
|
||||
dlgMouseOptNodeGutterFoldExp = 'Fold Expanded [-]';
|
||||
dlgMouseOptNodeGutterLines = 'Line Numbers';
|
||||
dlgMouseOptHeadDesc = 'Action';
|
||||
dlgMouseOptHeadBtn = 'Button';
|
||||
dlgMouseOptHeadCount = 'Click';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user