IDE: Update for SynEdit horizontal mouse wheel

git-svn-id: trunk@60563 -
This commit is contained in:
martin 2019-03-02 19:29:58 +00:00
parent 4075258215
commit ad6f9cffb4
7 changed files with 783 additions and 334 deletions

View File

@ -925,12 +925,21 @@ type
FWheel: TMouseOptWheelAction;
FAltWheel: TMouseOptWheelAction;
FCtrlWheel: TMouseOptWheelAction;
FAltCtrlWheel: TMouseOptWheelAction;
FShiftWheel: TMouseOptWheelAction;
FShiftAltWheel: TMouseOptWheelAction;
FShiftCtrlWheel: TMouseOptWheelAction;
FAltCtrlWheel: TMouseOptWheelAction;
FShiftAltCtrlWheel: TMouseOptWheelAction;
FHorizWheel: TMouseOptWheelAction;
FAltHorizWheel: TMouseOptWheelAction;
FCtrlHorizWheel: TMouseOptWheelAction;
FAltCtrlHorizWheel: TMouseOptWheelAction;
FShiftHorizWheel: TMouseOptWheelAction;
FShiftAltHorizWheel: TMouseOptWheelAction;
FShiftCtrlHorizWheel: TMouseOptWheelAction;
FShiftAltCtrlHorizWheel: TMouseOptWheelAction;
procedure ClearUserSchemes;
function GetUserSchemeNames(Index: Integer): String;
function GetUserSchemes(Index: String): TEditorMouseOptions;
@ -1100,6 +1109,23 @@ type
default mwaNone;
property ShiftAltCtrlWheel: TMouseOptWheelAction read FShiftAltCtrlWheel write FShiftAltCtrlWheel
default mwaNone;
//
property HorizWheel: TMouseOptWheelAction read FHorizWheel write FHorizWheel
default mwaScrollHoriz;
property CtrlHorizWheel: TMouseOptWheelAction read FCtrlHorizWheel write FCtrlHorizWheel
default mwaNone;
property AltHorizWheel: TMouseOptWheelAction read FAltHorizWheel write FAltHorizWheel
default mwaScrollHorizPageLessOne;
property ShiftHorizWheel: TMouseOptWheelAction read FShiftHorizWheel write FShiftHorizWheel
default mwaScrollHorizSingleLine;
property ShiftAltHorizWheel: TMouseOptWheelAction read FShiftAltHorizWheel write FShiftAltHorizWheel
default mwaNone;
property ShiftCtrlHorizWheel: TMouseOptWheelAction read FShiftCtrlHorizWheel write FShiftCtrlHorizWheel
default mwaNone;
property AltCtrlHorizWheel: TMouseOptWheelAction read FAltCtrlHorizWheel write FAltCtrlHorizWheel
default mwaNone;
property ShiftAltCtrlHorizWheel: TMouseOptWheelAction read FShiftAltCtrlHorizWheel write FShiftAltCtrlHorizWheel
default mwaNone;
// the flag below is set by CalcCustomSavedActions
property CustomSavedActions: Boolean read FCustomSavedActions write FCustomSavedActions;
@ -3437,6 +3463,15 @@ begin
FShiftCtrlWheel := mwaNone;
FShiftAltWheel := mwaNone;
FShiftAltCtrlWheel := mwaNone;
// wheel
FHorizWheel := mwaScrollHoriz;
FCtrlHorizWheel := mwaNone;
FAltHorizWheel := mwaScrollHorizPageLessOne;
FShiftHorizWheel := mwaScrollHorizSingleLine;
FAltCtrlHorizWheel := mwaNone;
FShiftCtrlHorizWheel := mwaNone;
FShiftAltHorizWheel := mwaNone;
FShiftAltCtrlHorizWheel := mwaNone;
// right
FTextRightClick := mbaContextMenu;
FTextAltCtrlRightClick := mbaNone;
@ -3654,11 +3689,20 @@ procedure TEditorMouseOptions.ResetTextToDefault;
end;
end;
procedure AddWheelAct(AnAction: TMouseOptWheelAction; const AShift, AShiftMask: TShiftState);
procedure AddWheelAct(AnAction: TMouseOptWheelAction; const AShift, AShiftMask: TShiftState; AnHorizontal: Boolean = False);
var
opt: TSynEditorMouseCommandOpt;
opt2: integer;
mbU, mbD: TSynMouseButton;
begin
if AnHorizontal then begin
mbD := mbXWheelLeft;
mbU := mbXWheelRight;
end
else begin
mbD := mbXWheelDown;
mbU := mbXWheelUp;
end;
opt2 := 0;
with FMainActions do begin
case AnAction of
@ -3680,18 +3724,18 @@ procedure TEditorMouseOptions.ResetTextToDefault;
opt2 := 50;
end;
mwaZoom: begin
AddCommand(emcWheelZoomOut, False, mbXWheelDown, ccAny, cdDown, AShift, AShiftMask);
AddCommand(emcWheelZoomIn, False, mbXWheelUp, ccAny, cdDown, AShift, AShiftMask);
AddCommand(emcWheelZoomOut, False, mbD, ccAny, cdDown, AShift, AShiftMask);
AddCommand(emcWheelZoomIn, False, mbU, ccAny, cdDown, AShift, AShiftMask);
end;
end;
if AnAction in [mwaScroll, mwaScrollSingleLine, mwaScrollPage, mwaScrollPageLessOne, mwaScrollHalfPage] then begin
AddCommand(emcWheelVertScrollDown, False, mbXWheelDown, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelVertScrollUp, False, mbXWheelUp, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelVertScrollDown, False, mbD, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelVertScrollUp, False, mbU, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
end;
if AnAction in [mwaScrollHoriz, mwaScrollHorizSingleLine, mwaScrollHorizPage, mwaScrollHorizPageLessOne, mwaScrollHorizHalfPage] then begin
AddCommand(emcWheelHorizScrollDown, False, mbXWheelDown, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelHorizScrollUp, False, mbXWheelUp, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelHorizScrollDown, False, mbD, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
AddCommand(emcWheelHorizScrollUp, False, mbU, ccAny, cdDown, AShift, AShiftMask, opt, 0, opt2);
end;
end;
@ -3838,6 +3882,23 @@ begin
AddWheelAct(FShiftAltWheel, [ssShift, ssAlt], ModKeys);
AddWheelAct(FShiftAltCtrlWheel, [ssShift, ssAlt, ssCtrl], ModKeys);
ModKeys := [];
if FShiftHorizWheel <> mwaNone then ModKeys := ModKeys + [ssShift];
if FCtrlHorizWheel <> mwaNone then ModKeys := ModKeys + [SYNEDIT_LINK_MODIFIER];
if FAltHorizWheel <> mwaNone then ModKeys := ModKeys + [ssAlt];
if FAltCtrlHorizWheel <> mwaNone then ModKeys := ModKeys + [ssAlt] + [SYNEDIT_LINK_MODIFIER];
if FShiftCtrlHorizWheel <> mwaNone then ModKeys := ModKeys + [ssShift] + [SYNEDIT_LINK_MODIFIER];
if FShiftAltHorizWheel <> mwaNone then ModKeys := ModKeys + [ssShift, ssAlt];
if FShiftAltCtrlHorizWheel <> mwaNone then ModKeys := ModKeys + [ssShift, ssAlt] + [SYNEDIT_LINK_MODIFIER];
AddWheelAct(FHorizWheel, [], [], True);
AddWheelAct(FCtrlHorizWheel, [ssCtrl], ModKeys, True);
AddWheelAct(FAltHorizWheel, [ssAlt], ModKeys, True);
AddWheelAct(FShiftHorizWheel, [ssShift], ModKeys, True);
AddWheelAct(FAltCtrlHorizWheel, [ssAlt, ssCtrl], ModKeys, True);
AddWheelAct(FShiftCtrlHorizWheel, [ssShift, ssCtrl], ModKeys, True);
AddWheelAct(FShiftAltHorizWheel, [ssShift, ssAlt], ModKeys, True);
AddWheelAct(FShiftAltCtrlHorizWheel, [ssShift, ssAlt, ssCtrl], ModKeys, True);
if FTextDrag then
with FSelActions do begin
AddCommand(emcStartDragMove, False, mbXLeft, ccSingle, cdDown, [], [], emcoNotDragedNoCaretOnUp);
@ -3932,6 +3993,15 @@ begin
FShiftCtrlWheel := Src.ShiftCtrlWheel;
FShiftAltWheel := Src.ShiftAltWheel;
FShiftAltCtrlWheel := Src.ShiftAltCtrlWheel;
// wheel
FHorizWheel := Src.HorizWheel;
FCtrlHorizWheel := Src.CtrlHorizWheel;
FAltHorizWheel := Src.AltHorizWheel;
FShiftHorizWheel := Src.ShiftHorizWheel;
FAltCtrlHorizWheel := Src.AltCtrlHorizWheel;
FShiftCtrlHorizWheel := Src.ShiftCtrlHorizWheel;
FShiftAltHorizWheel := Src.ShiftAltHorizWheel;
FShiftAltCtrlHorizWheel := Src.ShiftAltCtrlHorizWheel;
// right
FTextAltCtrlRightClick := Src.TextAltCtrlRightClick;
FTextAltRightClick := Src.TextAltRightClick;
@ -4117,6 +4187,8 @@ begin
try
FMainActions.AddCommand(emcWheelVertScrollDown, False, mbXWheelDown, ccAny, cdDown, [], []);
FMainActions.AddCommand(emcWheelVertScrollUp, False, mbXWheelUp, ccAny, cdDown, [], []);
FMainActions.AddCommand(emcWheelHorizScrollDown, False, mbXWheelLeft, ccAny, cdDown, [], []);
FMainActions.AddCommand(emcWheelHorizScrollUp, False, mbXWheelRight,ccAny, cdDown, [], []);
except
end;
end;

View File

@ -1298,6 +1298,8 @@ begin
PreviewEdits[a].MouseActions.Clear;
PreviewEdits[a].MouseActions.AddCommand(emcWheelVertScrollDown, False, mbXWheelDown, ccAny, cdDown, [], []);
PreviewEdits[a].MouseActions.AddCommand(emcWheelVertScrollUp, False, mbXWheelUp, ccAny, cdDown, [], []);
PreviewEdits[a].MouseActions.AddCommand(emcWheelHorizScrollUp, False, mbXWheelLeft, ccAny, cdDown, [], []);
PreviewEdits[a].MouseActions.AddCommand(emcWheelHorizScrollDown,False, mbXWheelRight,ccAny, cdDown, [], []);
PreviewEdits[a].SetBookMark(1, 1, 2);
PreviewEdits[a].SetBookMark(2, 1, 5);
end;
@ -1342,7 +1344,7 @@ end;
function TEditorColorOptionsFrame.DoSynEditMouse(var AnInfo: TSynEditMouseActionInfo;
HandleActionProc: TSynEditMouseActionHandler): Boolean;
begin
Result := not(AnInfo.Button in [mbXWheelDown, mbXWheelUp]);
Result := not(AnInfo.Button in [mbXWheelDown, mbXWheelUp, mbXWheelLeft, mbXWheelRight]);
end;
procedure TEditorColorOptionsFrame.LanguageMenuItemClick(Sender: TObject);

File diff suppressed because it is too large Load Diff

View File

@ -43,13 +43,28 @@ type
TEditorMouseOptionsFrame = class(TAbstractIDEOptionsEditor)
chkGutterTextLines: TCheckBox;
dropWheelHoriz: TComboBox;
dropWheelAltHoriz: TComboBox;
dropWheelAltCtrlHoriz: TComboBox;
dropWheelCtrlHoriz: TComboBox;
dropWheelShiftHoriz: TComboBox;
dropWheelShiftAltHoriz: TComboBox;
dropWheelShiftAltCtrlHoriz: TComboBox;
dropWheelShiftCtrlHoriz: TComboBox;
GutterLeftRadio3: TRadioButton;
lblWheel: TLabel;
lblWheelHoriz: TLabel;
lblWheelAlt: TLabel;
lblWheelAltHoriz: TLabel;
lblWheelAltCtrlHoriz: TLabel;
lblWheelCtrl: TLabel;
lblWheelCtrlHoriz: TLabel;
lblWheelShift: TLabel;
lblWheelAltCtrl: TLabel;
lblWheelShiftHoriz: TLabel;
lblWheelShiftAlt: TLabel;
lblWheelShiftAltHoriz: TLabel;
lblWheelShiftAltCtrlHoriz: TLabel;
lblWheelShiftCtrl: TLabel;
lblWheelShiftAltCtrl: TLabel;
dropWheel: TComboBox;
@ -136,12 +151,15 @@ type
dropLeftShiftDouble: TComboBox;
dropLeftAltDouble: TComboBox;
dropLeftCtrlDouble: TComboBox;
lblWheelShiftCtrlHoriz: TLabel;
PageHorizWheel: TPage;
PageExtra2: TPage;
PageExtra1: TPage;
PageRight: TPage;
ScrollBoxExtra2: TScrollBox;
ScrollBoxExtra1: TScrollBox;
ScrollBoxRight: TScrollBox;
ScrollBoxWheelHoriz: TScrollBox;
ShiftLeftLabel: TLabel;
AltCtrlLeftLabel: TLabel;
CtrLLeftLabel: TLabel;
@ -198,6 +216,7 @@ type
TextLeft: TCheckGroup;
TextMiddle: TRadioGroup;
GutterLeft: TRadioGroup;
ToolBtnHorizWheel: TToolButton;
WarnLabel: TLabel;
procedure CheckOrRadioChange(Sender: TObject);
procedure chkPredefinedSchemeChange(Sender: TObject);
@ -405,7 +424,16 @@ begin
(FTempMouseSettings.AltCtrlWheel = TMouseOptWheelAction(dropWheelAltCtrl.ItemIndex)) and
(FTempMouseSettings.ShiftAltWheel = TMouseOptWheelAction(dropWheelShiftAlt.ItemIndex)) and
(FTempMouseSettings.ShiftCtrlWheel = TMouseOptWheelAction(dropWheelShiftCtrl.ItemIndex)) and
(FTempMouseSettings.ShiftAltCtrlWheel = TMouseOptWheelAction(dropWheelShiftAltCtrl.ItemIndex))
(FTempMouseSettings.ShiftAltCtrlWheel = TMouseOptWheelAction(dropWheelShiftAltCtrl.ItemIndex)) and
(FTempMouseSettings.HorizWheel = TMouseOptWheelAction(dropWheelHoriz.ItemIndex)) and
(FTempMouseSettings.CtrlHorizWheel = TMouseOptWheelAction(dropWheelCtrlHoriz.ItemIndex)) and
(FTempMouseSettings.AltHorizWheel = TMouseOptWheelAction(dropWheelAltHoriz.ItemIndex)) and
(FTempMouseSettings.ShiftHorizWheel = TMouseOptWheelAction(dropWheelShiftHoriz.ItemIndex)) and
(FTempMouseSettings.AltCtrlHorizWheel = TMouseOptWheelAction(dropWheelAltCtrlHoriz.ItemIndex)) and
(FTempMouseSettings.ShiftAltHorizWheel = TMouseOptWheelAction(dropWheelShiftAltHoriz.ItemIndex)) and
(FTempMouseSettings.ShiftCtrlHorizWheel = TMouseOptWheelAction(dropWheelShiftCtrlHoriz.ItemIndex)) and
(FTempMouseSettings.ShiftAltCtrlHorizWheel = TMouseOptWheelAction(dropWheelShiftAltCtrlHoriz.ItemIndex))
);
end;
@ -499,6 +527,15 @@ begin
FTempMouseSettings.ShiftCtrlWheel := TMouseOptWheelAction(dropWheelShiftCtrl.ItemIndex);
FTempMouseSettings.ShiftAltCtrlWheel := TMouseOptWheelAction(dropWheelShiftAltCtrl.ItemIndex);
FTempMouseSettings.HorizWheel := TMouseOptWheelAction(dropWheelHoriz.ItemIndex);
FTempMouseSettings.CtrlHorizWheel := TMouseOptWheelAction(dropWheelCtrlHoriz.ItemIndex);
FTempMouseSettings.AltHorizWheel := TMouseOptWheelAction(dropWheelAltHoriz.ItemIndex);
FTempMouseSettings.ShiftHorizWheel := TMouseOptWheelAction(dropWheelShiftHoriz.ItemIndex);
FTempMouseSettings.AltCtrlHorizWheel := TMouseOptWheelAction(dropWheelAltCtrlHoriz.ItemIndex);
FTempMouseSettings.ShiftAltHorizWheel := TMouseOptWheelAction(dropWheelShiftAltHoriz.ItemIndex);
FTempMouseSettings.ShiftCtrlHorizWheel := TMouseOptWheelAction(dropWheelShiftCtrlHoriz.ItemIndex);
FTempMouseSettings.ShiftAltCtrlHorizWheel := TMouseOptWheelAction(dropWheelShiftAltCtrlHoriz.ItemIndex);
FTempMouseSettings.ResetTextToDefault;
if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then
TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings;
@ -631,6 +668,7 @@ begin
ToolBtnLeftMulti.Caption := dlfMouseSimpleTextSectPageLMulti;
ToolBtnMiddle.Caption := dlfMouseSimpleTextSectPageBtn;
ToolBtnWheel.Caption := dlfMouseSimpleTextSectPageWheel;
ToolBtnHorizWheel.Caption := dlfMouseSimpleTextSectPageHorizWheel;
ToolBtnRight.Caption := dlfMouseSimpleTextSectPageRight;
ToolBtnExtra1.Caption := dlfMouseSimpleTextSectPageExtra1;
ToolBtnExtra2.Caption := dlfMouseSimpleTextSectPageExtra2;
@ -695,6 +733,15 @@ begin
lblWheelShiftAlt.Caption := dlfMouseSimpleTextSectShiftAltWheelLabel;
lblWheelShiftCtrl.Caption := dlfMouseSimpleTextSectShiftCtrlWheelLabel;
lblWheelShiftAltCtrl.Caption := dlfMouseSimpleTextSectShiftAltCtrlWheelLabel;
// Horiz wheel
lblWheelHoriz.Caption := dlfMouseSimpleTextSectWheelLabel;
lblWheelCtrlHoriz.Caption := dlfMouseSimpleTextSectCtrlWheelLabel;
lblWheelAltHoriz.Caption := dlfMouseSimpleTextSectAltWheelLabel;
lblWheelShiftHoriz.Caption := dlfMouseSimpleTextShiftSectWheelLabel;
lblWheelAltCtrlHoriz.Caption := dlfMouseSimpleTextSectAltCtrlWheelLabel;
lblWheelShiftAltHoriz.Caption := dlfMouseSimpleTextSectShiftAltWheelLabel;
lblWheelShiftCtrlHoriz.Caption := dlfMouseSimpleTextSectShiftCtrlWheelLabel;
lblWheelShiftAltCtrlHoriz.Caption := dlfMouseSimpleTextSectShiftAltCtrlWheelLabel;
// left multi click
SetupButtonCombo(dropLeftDouble, True);
@ -756,6 +803,15 @@ begin
SetupWheelCombo(dropWheelShiftAlt);
SetupWheelCombo(dropWheelShiftCtrl);
SetupWheelCombo(dropWheelShiftAltCtrl);
// Horiz wheel
SetupWheelCombo(dropWheelHoriz);
SetupWheelCombo(dropWheelCtrlHoriz);
SetupWheelCombo(dropWheelAltHoriz);
SetupWheelCombo(dropWheelShiftHoriz);
SetupWheelCombo(dropWheelAltCtrlHoriz);
SetupWheelCombo(dropWheelShiftAltHoriz);
SetupWheelCombo(dropWheelShiftCtrlHoriz);
SetupWheelCombo(dropWheelShiftAltCtrlHoriz);
WarnLabel.Caption := dlfMouseSimpleWarning;
DiffLabel.Caption := dlfMouseSimpleDiff;
@ -857,6 +913,15 @@ begin
dropWheelShiftCtrl.ItemIndex := ord(FTempMouseSettings.ShiftCtrlWheel);
dropWheelShiftAltCtrl.ItemIndex := ord(FTempMouseSettings.ShiftAltCtrlWheel);
dropWheelHoriz.ItemIndex := ord(FTempMouseSettings.HorizWheel);
dropWheelCtrlHoriz.ItemIndex := ord(FTempMouseSettings.CtrlHorizWheel);
dropWheelAltHoriz.ItemIndex := ord(FTempMouseSettings.AltHorizWheel);
dropWheelShiftHoriz.ItemIndex := ord(FTempMouseSettings.ShiftHorizWheel);
dropWheelAltCtrlHoriz.ItemIndex := ord(FTempMouseSettings.AltHorizWheel);
dropWheelShiftAltHoriz.ItemIndex := ord(FTempMouseSettings.ShiftAltHorizWheel);
dropWheelShiftCtrlHoriz.ItemIndex := ord(FTempMouseSettings.ShiftCtrlHorizWheel);
dropWheelShiftAltCtrlHoriz.ItemIndex := ord(FTempMouseSettings.ShiftAltCtrlHorizWheel);
Dec(FInClickHandler);
UpdateButtons;

View File

@ -1726,6 +1726,7 @@ resourcestring
dlfMouseSimpleTextSectPageLMulti = 'Left 2';
dlfMouseSimpleTextSectPageBtn = 'Middle';
dlfMouseSimpleTextSectPageWheel = 'Wheel';
dlfMouseSimpleTextSectPageHorizWheel = 'Horizontal-Wheel';
dlfMouseSimpleTextSectPageRight = 'Right';
dlfMouseSimpleTextSectPageExtra1 = 'Extra 1';
dlfMouseSimpleTextSectPageExtra2 = 'Extra 2';
@ -1821,6 +1822,8 @@ resourcestring
dlgMouseOptBtnExtra2 = 'Extra 2';
dlgMouseOptBtnWheelUp = 'Wheel up';
dlgMouseOptBtnWheelDown = 'Wheel down';
dlgMouseOptBtnWheelLeft = 'Wheel left';
dlgMouseOptBtnWheelRight = 'Wheel right';
dlgMouseOptBtn1 = 'Single';
dlgMouseOptBtn2 = 'Double';
dlgMouseOptBtn3 = 'Triple';

View File

@ -10,13 +10,13 @@ object MouseaActionDialog: TMouseaActionDialog
ClientWidth = 627
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '1.5'
LCLVersion = '2.1.0.0'
object BtnLabel: TLabel
AnchorSideLeft.Control = Owner
AnchorSideRight.Control = ActionLabel
AnchorSideRight.Side = asrBottom
Left = 6
Height = 17
Height = 15
Top = 159
Width = 90
Anchors = [akTop, akLeft, akRight]
@ -29,8 +29,8 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = ActionBox
AnchorSideTop.Side = asrCenter
Left = 6
Height = 17
Top = 13
Height = 15
Top = 10
Width = 90
BorderSpacing.Left = 6
Caption = 'ActionLabel'
@ -45,7 +45,7 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Side = asrBottom
Left = 102
Height = 16
Top = 73
Top = 60
Width = 519
Anchors = [akTop, akLeft, akRight]
AutoSize = False
@ -59,9 +59,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = PriorSpin
AnchorSideTop.Side = asrCenter
Left = 6
Height = 17
Top = 131
Width = 71
Height = 15
Top = 109
Width = 53
BorderSpacing.Left = 6
Caption = 'PriorLabel'
ParentColor = False
@ -74,13 +74,13 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonPanel1
Left = 255
Height = 65
Height = 68
Top = 335
Width = 368
Anchors = [akTop, akLeft, akRight, akBottom]
BevelOuter = bvLowered
BevelWidth = 2
ClientHeight = 65
ClientHeight = 68
ClientWidth = 368
Color = clBtnShadow
ParentColor = False
@ -88,13 +88,14 @@ object MouseaActionDialog: TMouseaActionDialog
OnMouseDown = CapturePanelMouseDown
object PaintBox1: TPaintBox
Left = 2
Height = 61
Height = 64
Top = 2
Width = 364
Align = alClient
Anchors = [akTop, akRight, akBottom]
OnMouseDown = CapturePanelMouseDown
OnMouseWheel = PaintBox1MouseWheel
OnMouseWheelHorz = PaintBox1MouseWheelHorz
end
end
object ShiftCheck: TCheckBox
@ -102,9 +103,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = DirCheck
AnchorSideTop.Side = asrBottom
Left = 102
Height = 24
Top = 257
Width = 98
Height = 19
Top = 236
Width = 77
AllowGrayed = True
Caption = 'ShiftCheck'
TabOrder = 8
@ -114,9 +115,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = ShiftCheck
AnchorSideTop.Side = asrBottom
Left = 102
Height = 24
Top = 281
Width = 86
Height = 19
Top = 255
Width = 68
AllowGrayed = True
Caption = 'AltCheck'
TabOrder = 9
@ -126,9 +127,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = AltCheck
AnchorSideTop.Side = asrBottom
Left = 102
Height = 24
Top = 305
Width = 91
Height = 19
Top = 274
Width = 72
AllowGrayed = True
Caption = 'CtrlCheck'
TabOrder = 10
@ -141,9 +142,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 102
Height = 29
Top = 335
Width = 85
Height = 25
Top = 299
Width = 82
AutoSize = True
BorderSpacing.Top = 6
Caption = 'BtnDefault'
@ -155,9 +156,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = ActionBox
AnchorSideTop.Side = asrBottom
Left = 102
Height = 24
Top = 43
Width = 103
Height = 19
Top = 35
Width = 81
BorderSpacing.Top = 6
Caption = 'CaretCheck'
TabOrder = 1
@ -169,12 +170,12 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 102
Height = 31
Height = 23
Top = 6
Width = 519
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 0
ItemHeight = 15
OnChange = ActionBoxChange
Style = csDropDownList
TabOrder = 0
@ -185,8 +186,8 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 37
Top = 406
Height = 34
Top = 409
Width = 615
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
@ -206,13 +207,13 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 102
Height = 31
Top = 89
Height = 23
Top = 76
Width = 519
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 6
Enabled = False
ItemHeight = 0
ItemHeight = 15
Style = csDropDownList
TabOrder = 2
end
@ -221,8 +222,8 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = OptBox
AnchorSideTop.Side = asrBottom
Left = 102
Height = 27
Top = 126
Height = 23
Top = 105
Width = 60
BorderSpacing.Top = 6
MaxValue = 3
@ -235,8 +236,8 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 561
Height = 27
Top = 126
Height = 23
Top = 105
Width = 60
Anchors = [akTop, akRight]
BorderSpacing.Top = 6
@ -249,10 +250,10 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = Opt2Spin
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Opt2Spin
Left = 484
Height = 17
Top = 131
Width = 71
Left = 501
Height = 15
Top = 109
Width = 54
Anchors = [akTop, akRight]
BorderSpacing.Left = 6
BorderSpacing.Right = 6
@ -271,18 +272,17 @@ object MouseaActionDialog: TMouseaActionDialog
BorderSpacing.Around = 6
ItemHeight = 0
TabOrder = 12
TopIndex = -1
end
object ButtonBox: TComboBox
AnchorSideLeft.Control = PriorSpin
AnchorSideTop.Control = chkUpRestrict
AnchorSideRight.Control = chkUpRestrict
Left = 102
Height = 31
Height = 23
Top = 159
Width = 147
Anchors = [akTop, akLeft, akRight]
ItemHeight = 0
ItemHeight = 15
OnChange = ButtonBoxChange
Style = csDropDownList
TabOrder = 5
@ -294,12 +294,12 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideRight.Control = ButtonBox
AnchorSideRight.Side = asrBottom
Left = 102
Height = 31
Top = 196
Height = 23
Top = 188
Width = 147
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
ItemHeight = 0
ItemHeight = 15
Style = csDropDownList
TabOrder = 6
end
@ -308,9 +308,9 @@ object MouseaActionDialog: TMouseaActionDialog
AnchorSideTop.Control = ClickBox
AnchorSideTop.Side = asrBottom
Left = 102
Height = 24
Top = 233
Width = 86
Height = 19
Top = 217
Width = 68
BorderSpacing.Top = 6
Caption = 'DirCheck'
OnChange = DirCheckChange

View File

@ -48,6 +48,8 @@ type
procedure FormCreate(Sender: TObject);
procedure PaintBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
{%H-}MousePos: TPoint; var {%H-}Handled: Boolean);
procedure PaintBox1MouseWheelHorz(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
private
FKeyMap: TKeyCommandRelationList;
procedure AddMouseCmd(const S: string);
@ -69,9 +71,9 @@ uses Math;
{$R *.lfm}
const
BtnToIndex: array [TSynMouseButton] of Integer = (0, 1, 2, 3, 4, 5, 6);
BtnToIndex: array [TSynMouseButton] of Integer = (0, 1, 2, 3, 4, 5, 6, 7 ,8);
ClickToIndex: array [ccSingle..ccAny] of Integer = (0, 1, 2, 3, 4);
IndexToBtn: array [0..6] of TSynMouseButton = (mbXLeft, mbXRight, mbXMiddle, mbXExtra1, mbXExtra2, mbXWheelUp, mbXWheelDown);
IndexToBtn: array [0..8] of TSynMouseButton = (mbXLeft, mbXRight, mbXMiddle, mbXExtra1, mbXExtra2, mbXWheelUp, mbXWheelDown, mbXWheelLeft, mbXWheelRight);
IndexToClick: array [0..4] of TSynMAClickCount = (ccSingle, ccDouble, ccTriple, ccQuad, ccAny);
function KeyMapIndexOfCommand(AKeyMap: TKeyCommandRelationList; ACmd: Word): Integer;
@ -143,6 +145,8 @@ begin
ButtonName[mbXExtra2]:=dlgMouseOptBtnExtra2;
ButtonName[mbXWheelUp]:=dlgMouseOptBtnWheelUp;
ButtonName[mbXWheelDown]:=dlgMouseOptBtnWheelDown;
ButtonName[mbXWheelLeft]:=dlgMouseOptBtnWheelLeft;
ButtonName[mbXWheelRight]:=dlgMouseOptBtnWheelRight;
ClickName[ccSingle]:=dlgMouseOptBtn1;
ClickName[ccDouble]:=dlgMouseOptBtn2;
@ -205,7 +209,7 @@ end;
procedure TMouseaActionDialog.ButtonBoxChange(Sender: TObject);
begin
DirCheck.Enabled := not(IndexToBtn[ButtonBox.ItemIndex] in [mbXWheelUp, mbXWheelDown]);
DirCheck.Enabled := not(IndexToBtn[ButtonBox.ItemIndex] in [mbXWheelUp, mbXWheelDown, mbXWheelLeft, mbXWheelRight]);
chkUpRestrict.Enabled := DirCheck.Enabled and DirCheck.Checked;
end;
@ -273,6 +277,19 @@ begin
CtrlCheck.Checked := ssCtrl in Shift;
end;
procedure TMouseaActionDialog.PaintBox1MouseWheelHorz(Sender: TObject;
Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
var Handled: Boolean);
begin
if WheelDelta < 0
then ButtonBox.ItemIndex := BtnToIndex[mbXWheelLeft]
else ButtonBox.ItemIndex := BtnToIndex[mbXWheelRight];
ClickBox.ItemIndex := 4;
ShiftCheck.Checked := ssShift in Shift;
AltCheck.Checked := ssAlt in Shift;
CtrlCheck.Checked := ssCtrl in Shift;
end;
procedure TMouseaActionDialog.ReadFromAction(MAct: TSynEditMouseAction);
var
r: TSynMAUpRestriction;