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

View File

@ -1298,6 +1298,8 @@ begin
PreviewEdits[a].MouseActions.Clear; PreviewEdits[a].MouseActions.Clear;
PreviewEdits[a].MouseActions.AddCommand(emcWheelVertScrollDown, False, mbXWheelDown, ccAny, cdDown, [], []); PreviewEdits[a].MouseActions.AddCommand(emcWheelVertScrollDown, False, mbXWheelDown, ccAny, cdDown, [], []);
PreviewEdits[a].MouseActions.AddCommand(emcWheelVertScrollUp, False, mbXWheelUp, 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(1, 1, 2);
PreviewEdits[a].SetBookMark(2, 1, 5); PreviewEdits[a].SetBookMark(2, 1, 5);
end; end;
@ -1342,7 +1344,7 @@ end;
function TEditorColorOptionsFrame.DoSynEditMouse(var AnInfo: TSynEditMouseActionInfo; function TEditorColorOptionsFrame.DoSynEditMouse(var AnInfo: TSynEditMouseActionInfo;
HandleActionProc: TSynEditMouseActionHandler): Boolean; HandleActionProc: TSynEditMouseActionHandler): Boolean;
begin begin
Result := not(AnInfo.Button in [mbXWheelDown, mbXWheelUp]); Result := not(AnInfo.Button in [mbXWheelDown, mbXWheelUp, mbXWheelLeft, mbXWheelRight]);
end; end;
procedure TEditorColorOptionsFrame.LanguageMenuItemClick(Sender: TObject); 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) TEditorMouseOptionsFrame = class(TAbstractIDEOptionsEditor)
chkGutterTextLines: TCheckBox; chkGutterTextLines: TCheckBox;
dropWheelHoriz: TComboBox;
dropWheelAltHoriz: TComboBox;
dropWheelAltCtrlHoriz: TComboBox;
dropWheelCtrlHoriz: TComboBox;
dropWheelShiftHoriz: TComboBox;
dropWheelShiftAltHoriz: TComboBox;
dropWheelShiftAltCtrlHoriz: TComboBox;
dropWheelShiftCtrlHoriz: TComboBox;
GutterLeftRadio3: TRadioButton; GutterLeftRadio3: TRadioButton;
lblWheel: TLabel; lblWheel: TLabel;
lblWheelHoriz: TLabel;
lblWheelAlt: TLabel; lblWheelAlt: TLabel;
lblWheelAltHoriz: TLabel;
lblWheelAltCtrlHoriz: TLabel;
lblWheelCtrl: TLabel; lblWheelCtrl: TLabel;
lblWheelCtrlHoriz: TLabel;
lblWheelShift: TLabel; lblWheelShift: TLabel;
lblWheelAltCtrl: TLabel; lblWheelAltCtrl: TLabel;
lblWheelShiftHoriz: TLabel;
lblWheelShiftAlt: TLabel; lblWheelShiftAlt: TLabel;
lblWheelShiftAltHoriz: TLabel;
lblWheelShiftAltCtrlHoriz: TLabel;
lblWheelShiftCtrl: TLabel; lblWheelShiftCtrl: TLabel;
lblWheelShiftAltCtrl: TLabel; lblWheelShiftAltCtrl: TLabel;
dropWheel: TComboBox; dropWheel: TComboBox;
@ -136,12 +151,15 @@ type
dropLeftShiftDouble: TComboBox; dropLeftShiftDouble: TComboBox;
dropLeftAltDouble: TComboBox; dropLeftAltDouble: TComboBox;
dropLeftCtrlDouble: TComboBox; dropLeftCtrlDouble: TComboBox;
lblWheelShiftCtrlHoriz: TLabel;
PageHorizWheel: TPage;
PageExtra2: TPage; PageExtra2: TPage;
PageExtra1: TPage; PageExtra1: TPage;
PageRight: TPage; PageRight: TPage;
ScrollBoxExtra2: TScrollBox; ScrollBoxExtra2: TScrollBox;
ScrollBoxExtra1: TScrollBox; ScrollBoxExtra1: TScrollBox;
ScrollBoxRight: TScrollBox; ScrollBoxRight: TScrollBox;
ScrollBoxWheelHoriz: TScrollBox;
ShiftLeftLabel: TLabel; ShiftLeftLabel: TLabel;
AltCtrlLeftLabel: TLabel; AltCtrlLeftLabel: TLabel;
CtrLLeftLabel: TLabel; CtrLLeftLabel: TLabel;
@ -198,6 +216,7 @@ type
TextLeft: TCheckGroup; TextLeft: TCheckGroup;
TextMiddle: TRadioGroup; TextMiddle: TRadioGroup;
GutterLeft: TRadioGroup; GutterLeft: TRadioGroup;
ToolBtnHorizWheel: TToolButton;
WarnLabel: TLabel; WarnLabel: TLabel;
procedure CheckOrRadioChange(Sender: TObject); procedure CheckOrRadioChange(Sender: TObject);
procedure chkPredefinedSchemeChange(Sender: TObject); procedure chkPredefinedSchemeChange(Sender: TObject);
@ -405,7 +424,16 @@ begin
(FTempMouseSettings.AltCtrlWheel = TMouseOptWheelAction(dropWheelAltCtrl.ItemIndex)) and (FTempMouseSettings.AltCtrlWheel = TMouseOptWheelAction(dropWheelAltCtrl.ItemIndex)) and
(FTempMouseSettings.ShiftAltWheel = TMouseOptWheelAction(dropWheelShiftAlt.ItemIndex)) and (FTempMouseSettings.ShiftAltWheel = TMouseOptWheelAction(dropWheelShiftAlt.ItemIndex)) and
(FTempMouseSettings.ShiftCtrlWheel = TMouseOptWheelAction(dropWheelShiftCtrl.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; end;
@ -499,6 +527,15 @@ begin
FTempMouseSettings.ShiftCtrlWheel := TMouseOptWheelAction(dropWheelShiftCtrl.ItemIndex); FTempMouseSettings.ShiftCtrlWheel := TMouseOptWheelAction(dropWheelShiftCtrl.ItemIndex);
FTempMouseSettings.ShiftAltCtrlWheel := TMouseOptWheelAction(dropWheelShiftAltCtrl.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; FTempMouseSettings.ResetTextToDefault;
if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then
TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings; TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings;
@ -631,6 +668,7 @@ begin
ToolBtnLeftMulti.Caption := dlfMouseSimpleTextSectPageLMulti; ToolBtnLeftMulti.Caption := dlfMouseSimpleTextSectPageLMulti;
ToolBtnMiddle.Caption := dlfMouseSimpleTextSectPageBtn; ToolBtnMiddle.Caption := dlfMouseSimpleTextSectPageBtn;
ToolBtnWheel.Caption := dlfMouseSimpleTextSectPageWheel; ToolBtnWheel.Caption := dlfMouseSimpleTextSectPageWheel;
ToolBtnHorizWheel.Caption := dlfMouseSimpleTextSectPageHorizWheel;
ToolBtnRight.Caption := dlfMouseSimpleTextSectPageRight; ToolBtnRight.Caption := dlfMouseSimpleTextSectPageRight;
ToolBtnExtra1.Caption := dlfMouseSimpleTextSectPageExtra1; ToolBtnExtra1.Caption := dlfMouseSimpleTextSectPageExtra1;
ToolBtnExtra2.Caption := dlfMouseSimpleTextSectPageExtra2; ToolBtnExtra2.Caption := dlfMouseSimpleTextSectPageExtra2;
@ -695,6 +733,15 @@ begin
lblWheelShiftAlt.Caption := dlfMouseSimpleTextSectShiftAltWheelLabel; lblWheelShiftAlt.Caption := dlfMouseSimpleTextSectShiftAltWheelLabel;
lblWheelShiftCtrl.Caption := dlfMouseSimpleTextSectShiftCtrlWheelLabel; lblWheelShiftCtrl.Caption := dlfMouseSimpleTextSectShiftCtrlWheelLabel;
lblWheelShiftAltCtrl.Caption := dlfMouseSimpleTextSectShiftAltCtrlWheelLabel; 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 // left multi click
SetupButtonCombo(dropLeftDouble, True); SetupButtonCombo(dropLeftDouble, True);
@ -756,6 +803,15 @@ begin
SetupWheelCombo(dropWheelShiftAlt); SetupWheelCombo(dropWheelShiftAlt);
SetupWheelCombo(dropWheelShiftCtrl); SetupWheelCombo(dropWheelShiftCtrl);
SetupWheelCombo(dropWheelShiftAltCtrl); SetupWheelCombo(dropWheelShiftAltCtrl);
// Horiz wheel
SetupWheelCombo(dropWheelHoriz);
SetupWheelCombo(dropWheelCtrlHoriz);
SetupWheelCombo(dropWheelAltHoriz);
SetupWheelCombo(dropWheelShiftHoriz);
SetupWheelCombo(dropWheelAltCtrlHoriz);
SetupWheelCombo(dropWheelShiftAltHoriz);
SetupWheelCombo(dropWheelShiftCtrlHoriz);
SetupWheelCombo(dropWheelShiftAltCtrlHoriz);
WarnLabel.Caption := dlfMouseSimpleWarning; WarnLabel.Caption := dlfMouseSimpleWarning;
DiffLabel.Caption := dlfMouseSimpleDiff; DiffLabel.Caption := dlfMouseSimpleDiff;
@ -857,6 +913,15 @@ begin
dropWheelShiftCtrl.ItemIndex := ord(FTempMouseSettings.ShiftCtrlWheel); dropWheelShiftCtrl.ItemIndex := ord(FTempMouseSettings.ShiftCtrlWheel);
dropWheelShiftAltCtrl.ItemIndex := ord(FTempMouseSettings.ShiftAltCtrlWheel); 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); Dec(FInClickHandler);
UpdateButtons; UpdateButtons;

View File

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

View File

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

View File

@ -48,6 +48,8 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure PaintBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; procedure PaintBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
{%H-}MousePos: TPoint; var {%H-}Handled: Boolean); {%H-}MousePos: TPoint; var {%H-}Handled: Boolean);
procedure PaintBox1MouseWheelHorz(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
private private
FKeyMap: TKeyCommandRelationList; FKeyMap: TKeyCommandRelationList;
procedure AddMouseCmd(const S: string); procedure AddMouseCmd(const S: string);
@ -69,9 +71,9 @@ uses Math;
{$R *.lfm} {$R *.lfm}
const 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); 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); IndexToClick: array [0..4] of TSynMAClickCount = (ccSingle, ccDouble, ccTriple, ccQuad, ccAny);
function KeyMapIndexOfCommand(AKeyMap: TKeyCommandRelationList; ACmd: Word): Integer; function KeyMapIndexOfCommand(AKeyMap: TKeyCommandRelationList; ACmd: Word): Integer;
@ -143,6 +145,8 @@ begin
ButtonName[mbXExtra2]:=dlgMouseOptBtnExtra2; ButtonName[mbXExtra2]:=dlgMouseOptBtnExtra2;
ButtonName[mbXWheelUp]:=dlgMouseOptBtnWheelUp; ButtonName[mbXWheelUp]:=dlgMouseOptBtnWheelUp;
ButtonName[mbXWheelDown]:=dlgMouseOptBtnWheelDown; ButtonName[mbXWheelDown]:=dlgMouseOptBtnWheelDown;
ButtonName[mbXWheelLeft]:=dlgMouseOptBtnWheelLeft;
ButtonName[mbXWheelRight]:=dlgMouseOptBtnWheelRight;
ClickName[ccSingle]:=dlgMouseOptBtn1; ClickName[ccSingle]:=dlgMouseOptBtn1;
ClickName[ccDouble]:=dlgMouseOptBtn2; ClickName[ccDouble]:=dlgMouseOptBtn2;
@ -205,7 +209,7 @@ end;
procedure TMouseaActionDialog.ButtonBoxChange(Sender: TObject); procedure TMouseaActionDialog.ButtonBoxChange(Sender: TObject);
begin 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; chkUpRestrict.Enabled := DirCheck.Enabled and DirCheck.Checked;
end; end;
@ -273,6 +277,19 @@ begin
CtrlCheck.Checked := ssCtrl in Shift; CtrlCheck.Checked := ssCtrl in Shift;
end; 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); procedure TMouseaActionDialog.ReadFromAction(MAct: TSynEditMouseAction);
var var
r: TSynMAUpRestriction; r: TSynMAUpRestriction;