Commit 21c58be

Nick committed on
Scroll wheel increment/decrement
commit 21c58bee22efc79126e3947927c1df8bd9c10841 parent 45cacb0
3 changed files +56−7
Modifiedtracker.lfm +4−2
@@ -57,10 +57,10 @@ object frmTracker: TfrmTracker
57 Height = 442 57 Height = 442
58 Top = 0 58 Top = 0
59 Width = 968 59 Width = 968
60 ActivePage = PatternTabSheet 60 ActivePage = InstrumentTabSheet
61 Align = alClient 61 Align = alClient
62 ParentFont = False 62 ParentFont = False
63 TabIndex = 1 63 TabIndex = 2
64 TabOrder = 0 64 TabOrder = 0
65 object GeneralTabSheet: TTabSheet 65 object GeneralTabSheet: TTabSheet
66 Caption = 'General' 66 Caption = 'General'
@@ -214,6 +214,8 @@ object frmTracker: TfrmTracker
214 BorderStyle = bsNone 214 BorderStyle = bsNone
215 ParentFont = False 215 ParentFont = False
216 TabOrder = 1 216 TabOrder = 1
217 OnMouseWheelDown = ScrollBox1MouseWheelDown
218 OnMouseWheelUp = ScrollBox1MouseWheelUp
217 end 219 end
218 end 220 end
219 object OrderEditStringGrid: TStringGrid 221 object OrderEditStringGrid: TStringGrid
Modifiedtracker.pas +33−1
@@ -9,7 +9,7 @@ uses
9 FileUtil, math, Instruments, Waves, Song, EmulationThread, Utils, Constants, 9 FileUtil, math, Instruments, Waves, Song, EmulationThread, Utils, Constants,
10 sound, vars, machine, about_hugetracker, TrackerGrid, lclintf, lmessages, 10 sound, vars, machine, about_hugetracker, TrackerGrid, lclintf, lmessages,
11 Buttons, Grids, DBCtrls, HugeDatatypes, LCLType, RackCtls, Codegen, SymParser, 11 Buttons, Grids, DBCtrls, HugeDatatypes, LCLType, RackCtls, Codegen, SymParser,
12 options, IniFiles, bgrabitmap, effecteditor, RenderToWave, modimport; 12 options, IniFiles, bgrabitmap, effecteditor, RenderToWave, modimport, Types;
13 13
14 type 14 type
15 { TfrmTracker } 15 { TfrmTracker }
@@ -218,6 +218,10 @@ type
218 procedure EditDelete1Execute(Sender: TObject); 218 procedure EditDelete1Execute(Sender: TObject);
219 procedure FileSaveAs1BeforeExecute(Sender: TObject); 219 procedure FileSaveAs1BeforeExecute(Sender: TObject);
220 procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); 220 procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
221 procedure ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState;
222 MousePos: TPoint; var Handled: Boolean);
223 procedure ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
224 MousePos: TPoint; var Handled: Boolean);
221 procedure FormShow(Sender: TObject); 225 procedure FormShow(Sender: TObject);
222 procedure InstrumentComboBoxChange(Sender: TObject); 226 procedure InstrumentComboBoxChange(Sender: TObject);
223 procedure CopyActionExecute(Sender: TObject); 227 procedure CopyActionExecute(Sender: TObject);
@@ -1296,6 +1300,34 @@ begin
1296 CanClose := CheckUnsavedChanges; 1300 CanClose := CheckUnsavedChanges;
1297 end; 1301 end;
1298 1302
1303 procedure TfrmTracker.ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState;
1304 MousePos: TPoint; var Handled: Boolean);
1305 begin
1306 if ssCtrl in Shift then begin
1307 Handled := True;
1308 if ssShift in Shift then
1309 TrackerGrid.IncrementSelection(-12, -10, -0, -0, -$10)
1310 else
1311 TrackerGrid.IncrementSelection(-1, -1, -0, -0, -1);
1312 end
1313 else
1314 Handled := False;
1315 end;
1316
1317 procedure TfrmTracker.ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
1318 MousePos: TPoint; var Handled: Boolean);
1319 begin
1320 if ssCtrl in Shift then begin
1321 Handled := True;
1322 if ssShift in Shift then
1323 TrackerGrid.IncrementSelection(12, 10, 0, 0, $10)
1324 else
1325 TrackerGrid.IncrementSelection(1, 1, 0, 0, 1);
1326 end
1327 else
1328 Handled := False;
1329 end;
1330
1299 procedure TfrmTracker.FormShow(Sender: TObject); 1331 procedure TfrmTracker.FormShow(Sender: TObject);
1300 begin 1332 begin
1301 // HACK: This needs to be done due to a scaling bug in the LCL. 1333 // HACK: This needs to be done due to a scaling bug in the LCL.
Modifiedtrackergrid.pas +19−4
@@ -1041,11 +1041,26 @@ procedure TTrackerGrid.IncrementAt(SelectionPos: TSelectionPos; Value: Integer);
1041 begin 1041 begin
1042 with Patterns[SelectionPos.X]^[SelectionPos.Y] do 1042 with Patterns[SelectionPos.X]^[SelectionPos.Y] do
1043 case SelectionPos.SelectedPart of 1043 case SelectionPos.SelectedPart of
1044 cpNote: Note := EnsureRange(Note+Value, LOWEST_NOTE, HIGHEST_NOTE); 1044 cpNote:
1045 cpInstrument: Instrument := Max(Instrument+Value, 0); 1045 if Note <> NO_NOTE then
1046 Note := EnsureRange(Note+Value, LOWEST_NOTE, HIGHEST_NOTE);
1047
1048 cpInstrument:
1049 if Instrument <> 0 then
1050 Instrument := Max(Instrument+Value, 1);
1051
1046 cpVolume:; 1052 cpVolume:;
1047 cpEffectCode: EffectCode := EnsureRange(EffectCode+Value, $0, $F); 1053
1048 cpEffectParams: EffectParams.Value := EnsureRange(EffectParams.Value+Value, Low(Byte), High(Byte)); 1054 cpEffectCode:
1055 EffectCode := EnsureRange(EffectCode+Value, $0, $F);
1056
1057 cpEffectParams:
1058 if EffectCode = $0 then begin
1059 if EffectParams.Value <> $00 then
1060 EffectParams.Value := EnsureRange(EffectParams.Value+Value, Low(Byte)+1, High(Byte));
1061 end
1062 else
1063 EffectParams.Value := EnsureRange(EffectParams.Value+Value, Low(Byte), High(Byte));
1049 end; 1064 end;
1050 end; 1065 end;
1051 1066