@@ -202,6 +202,8 @@ type |
| 202 |
procedure Button1Click(Sender: TObject); |
202 |
procedure Button1Click(Sender: TObject); |
| 203 |
procedure Duty1VisualizerClick(Sender: TObject); |
203 |
procedure Duty1VisualizerClick(Sender: TObject); |
| 204 |
procedure EditDelete1Execute(Sender: TObject); |
204 |
procedure EditDelete1Execute(Sender: TObject); |
|
|
205 |
procedure FileSaveAs1BeforeExecute(Sender: TObject); |
|
|
206 |
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); |
| 205 |
procedure FormShow(Sender: TObject); |
207 |
procedure FormShow(Sender: TObject); |
| 206 |
procedure InstrumentComboBoxChange(Sender: TObject); |
208 |
procedure InstrumentComboBoxChange(Sender: TObject); |
| 207 |
procedure CopyActionExecute(Sender: TObject); |
209 |
procedure CopyActionExecute(Sender: TObject); |
@@ -239,6 +241,7 @@ type |
| 239 |
procedure DebugShiteButtonClick(Sender: TObject); |
241 |
procedure DebugShiteButtonClick(Sender: TObject); |
| 240 |
procedure MenuItem10Click(Sender: TObject); |
242 |
procedure MenuItem10Click(Sender: TObject); |
| 241 |
procedure MenuItem11Click(Sender: TObject); |
243 |
procedure MenuItem11Click(Sender: TObject); |
|
|
244 |
procedure MenuItem12Click(Sender: TObject); |
| 242 |
procedure MenuItem14Click(Sender: TObject); |
245 |
procedure MenuItem14Click(Sender: TObject); |
| 243 |
procedure MenuItem17Click(Sender: TObject); |
246 |
procedure MenuItem17Click(Sender: TObject); |
| 244 |
procedure MenuItem18Click(Sender: TObject); |
247 |
procedure MenuItem18Click(Sender: TObject); |
@@ -325,6 +328,7 @@ type |
| 325 |
DrawingWave: Boolean; |
328 |
DrawingWave: Boolean; |
| 326 |
Playing: Boolean; |
329 |
Playing: Boolean; |
| 327 |
LoadingFile: Boolean; |
330 |
LoadingFile: Boolean; |
|
|
331 |
SaveSucceeded: Boolean; |
| 328 |
|
332 |
|
| 329 |
{PatternsNode, }InstrumentsNode, WavesNode, RoutinesNode: TTreeNode; |
333 |
{PatternsNode, }InstrumentsNode, WavesNode, RoutinesNode: TTreeNode; |
| 330 |
|
334 |
|
@@ -354,6 +358,7 @@ type |
| 354 |
|
358 |
|
| 355 |
procedure RecreateTrackerGrid; |
359 |
procedure RecreateTrackerGrid; |
| 356 |
procedure UpdateUIAfterLoad; |
360 |
procedure UpdateUIAfterLoad; |
|
|
361 |
function CheckUnsavedChanges: Boolean; |
| 357 |
|
362 |
|
| 358 |
procedure DrawWaveform(PB: TPaintBox; Wave: TWave); |
363 |
procedure DrawWaveform(PB: TPaintBox; Wave: TWave); |
| 359 |
procedure DrawVizualizer(PB: TPaintBox; Channel: Integer); |
364 |
procedure DrawVizualizer(PB: TPaintBox; Channel: Integer); |
@@ -408,6 +413,19 @@ begin |
| 408 |
PageControl1.ActivePageIndex := 0; |
413 |
PageControl1.ActivePageIndex := 0; |
| 409 |
end; |
414 |
end; |
| 410 |
|
415 |
|
|
|
416 |
function TfrmTracker.CheckUnsavedChanges: Boolean; |
|
|
417 |
begin |
|
|
418 |
case MessageDlg('Save?', 'Do you want to save your work before closing this file?', |
|
|
419 |
mtWarning, [mbYes, mbNo, mbCancel], 0) of |
|
|
420 |
mrYes: begin |
|
|
421 |
FileSaveAs1.Execute; |
|
|
422 |
Exit(SaveSucceeded) |
|
|
423 |
end; |
|
|
424 |
mrNo: Exit(True); |
|
|
425 |
mrCancel: Exit(False) |
|
|
426 |
end; |
|
|
427 |
end; |
|
|
428 |
|
| 411 |
procedure TfrmTracker.DrawWaveform(PB: TPaintBox; Wave: TWave); |
429 |
procedure TfrmTracker.DrawWaveform(PB: TPaintBox; Wave: TWave); |
| 412 |
var |
430 |
var |
| 413 |
Interval{, HInterval}: Integer; |
431 |
Interval{, HInterval}: Integer; |
@@ -1125,6 +1143,7 @@ begin |
| 1125 |
stream := TFileStream.Create(FileSaveAs1.Dialog.FileName, fmCreate); |
1143 |
stream := TFileStream.Create(FileSaveAs1.Dialog.FileName, fmCreate); |
| 1126 |
try |
1144 |
try |
| 1127 |
WriteSongToStream(stream, Song); |
1145 |
WriteSongToStream(stream, Song); |
|
|
1146 |
SaveSucceeded := True; |
| 1128 |
finally |
1147 |
finally |
| 1129 |
stream.Free; |
1148 |
stream.Free; |
| 1130 |
end; |
1149 |
end; |
@@ -1220,6 +1239,16 @@ begin |
| 1220 |
|
1239 |
|
| 1221 |
end; |
1240 |
end; |
| 1222 |
|
1241 |
|
|
|
1242 |
procedure TfrmTracker.FileSaveAs1BeforeExecute(Sender: TObject); |
|
|
1243 |
begin |
|
|
1244 |
SaveSucceeded := False; |
|
|
1245 |
end; |
|
|
1246 |
|
|
|
1247 |
procedure TfrmTracker.FormCloseQuery(Sender: TObject; var CanClose: boolean); |
|
|
1248 |
begin |
|
|
1249 |
CanClose := CheckUnsavedChanges; |
|
|
1250 |
end; |
|
|
1251 |
|
| 1223 |
procedure TfrmTracker.FormShow(Sender: TObject); |
1252 |
procedure TfrmTracker.FormShow(Sender: TObject); |
| 1224 |
begin |
1253 |
begin |
| 1225 |
// HACK: This needs to be done due to a scaling bug in the LCL. |
1254 |
// HACK: This needs to be done due to a scaling bug in the LCL. |
@@ -1328,9 +1357,15 @@ begin |
| 1328 |
TrackerGrid.DoUndo; |
1357 |
TrackerGrid.DoUndo; |
| 1329 |
end; |
1358 |
end; |
| 1330 |
|
1359 |
|
|
|
1360 |
procedure TfrmTracker.MenuItem12Click(Sender: TObject); |
|
|
1361 |
begin |
|
|
1362 |
CheckUnsavedChanges; |
|
|
1363 |
end; |
|
|
1364 |
|
| 1331 |
procedure TfrmTracker.MenuItem14Click(Sender: TObject); |
1365 |
procedure TfrmTracker.MenuItem14Click(Sender: TObject); |
| 1332 |
begin |
1366 |
begin |
| 1333 |
Halt; |
1367 |
if CheckUnsavedChanges then |
|
|
1368 |
Halt; |
| 1334 |
end; |
1369 |
end; |
| 1335 |
|
1370 |
|
| 1336 |
procedure TfrmTracker.MenuItem17Click(Sender: TObject); |
1371 |
procedure TfrmTracker.MenuItem17Click(Sender: TObject); |