Commit 05e51d2

Nick committed on
Menu item stuff, trying to fix random crash
commit 05e51d21d64528bbd5aabea738e30de521e3f886 parent 0f7755b
4 changed files +114−40
Modifiedabout_hugetracker.lfm +22−20
@@ -1,25 +1,25 @@
1 object frmAboutHugetracker: TfrmAboutHugetracker 1 object frmAboutHugetracker: TfrmAboutHugetracker
2 Left = 1198 2 Left = 710
3 Height = 430 3 Height = 502
4 Top = 827 4 Top = 325
5 Width = 786 5 Width = 917
6 BorderStyle = bsNone 6 BorderStyle = bsNone
7 Caption = 'About hUGETracker' 7 Caption = 'About hUGETracker'
8 ClientHeight = 430 8 ClientHeight = 502
9 ClientWidth = 786 9 ClientWidth = 917
10 Color = clMoneyGreen 10 Color = clMoneyGreen
11 DesignTimePPI = 144 11 DesignTimePPI = 168
12 Position = poDesktopCenter 12 Position = poDesktopCenter
13 LCLVersion = '2.0.6.0' 13 LCLVersion = '2.0.6.0'
14 object Panel1: TPanel 14 object Panel1: TPanel
15 Left = 40 15 Left = 47
16 Height = 192 16 Height = 224
17 Top = 40 17 Top = 47
18 Width = 704 18 Width = 821
19 Caption = 'hUGETracker' 19 Caption = 'hUGETracker'
20 Font.CharSet = ANSI_CHARSET 20 Font.CharSet = ANSI_CHARSET
21 Font.Color = clBlack 21 Font.Color = clBlack
22 Font.Height = -96 22 Font.Height = -112
23 Font.Name = 'Gill Sans MT' 23 Font.Name = 'Gill Sans MT'
24 Font.Pitch = fpVariable 24 Font.Pitch = fpVariable
25 Font.Quality = fqDraft 25 Font.Quality = fqDraft
@@ -28,22 +28,24 @@ object frmAboutHugetracker: TfrmAboutHugetracker
28 TabOrder = 0 28 TabOrder = 0
29 end 29 end
30 object Label1: TLabel 30 object Label1: TLabel
31 Left = 84 31 Left = 98
32 Height = 88 32 Height = 103
33 Top = 264 33 Top = 308
34 Width = 587 34 Width = 685
35 Alignment = taCenter 35 Alignment = taCenter
36 AutoSize = False 36 AutoSize = False
37 Caption = 'Created by Nick "SuperDisk" Faro and Eldred "ISSOtm" Habert'#13#10#13#10'Soundchip emulator written by Christian Hackbart and Rusty Wagner' 37 Caption = 'Created by Nick "SuperDisk" Faro and Eldred "ISSOtm" Habert'#13#10#13#10'Soundchip emulator written by Christian Hackbart and Rusty Wagner'
38 ParentColor = False 38 ParentColor = False
39 ParentFont = False
39 end 40 end
40 object Button1: TButton 41 object Button1: TButton
41 Left = 292 42 Left = 341
42 Height = 38 43 Height = 44
43 Top = 368 44 Top = 429
44 Width = 202 45 Width = 236
45 Caption = 'Close' 46 Caption = 'Close'
46 OnClick = Button1Click 47 OnClick = Button1Click
48 ParentFont = False
47 TabOrder = 1 49 TabOrder = 1
48 end 50 end
49 end 51 end
Modifiedtracker.lfm +33−11
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 1156 2 Left = 892
3 Height = 1275 3 Height = 1275
4 Top = 228 4 Top = 168
5 Width = 2056 5 Width = 2056
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 1241 7 ClientHeight = 1241
@@ -55,10 +55,10 @@ object frmTracker: TfrmTracker
55 Height = 845 55 Height = 845
56 Top = 0 56 Top = 0
57 Width = 1709 57 Width = 1709
58 ActivePage = WavesTabSheet 58 ActivePage = PatternTabSheet
59 Align = alClient 59 Align = alClient
60 ParentFont = False 60 ParentFont = False
61 TabIndex = 3 61 TabIndex = 1
62 TabOrder = 0 62 TabOrder = 0
63 object GeneralTabSheet: TTabSheet 63 object GeneralTabSheet: TTabSheet
64 Caption = 'General' 64 Caption = 'General'
@@ -2004,6 +2004,7 @@ object frmTracker: TfrmTracker
2004 end 2004 end
2005 object MenuItem14: TMenuItem 2005 object MenuItem14: TMenuItem
2006 Action = FileExit1 2006 Action = FileExit1
2007 OnClick = MenuItem14Click
2007 end 2008 end
2008 end 2009 end
2009 object MenuItem2: TMenuItem 2010 object MenuItem2: TMenuItem
@@ -2021,41 +2022,57 @@ object frmTracker: TfrmTracker
2021 Caption = '-' 2022 Caption = '-'
2022 end 2023 end
2023 object MenuItem10: TMenuItem 2024 object MenuItem10: TMenuItem
2024 Action = EditSelectAll1 2025 Caption = 'Select &All'
2026 Hint = 'Select All'
2027 ImageIndex = 39
2028 ShortCut = 16449
2029 OnClick = MenuItem10Click
2025 end 2030 end
2026 object MenuItem8: TMenuItem 2031 object MenuItem8: TMenuItem
2027 Action = EditDelete1 2032 Caption = '&Delete'
2033 Hint = 'Delete'
2034 ImageIndex = 13
2035 ShortCut = 46
2036 OnClick = MenuItem8Click
2028 end 2037 end
2029 object N2: TMenuItem 2038 object N2: TMenuItem
2030 Caption = '-' 2039 Caption = '-'
2031 end 2040 end
2032 object MenuItem11: TMenuItem 2041 object MenuItem11: TMenuItem
2033 Action = EditUndo1 2042 Caption = '&Undo'
2043 Hint = 'Undo'
2044 ImageIndex = 66
2045 ShortCut = 16474
2046 OnClick = MenuItem11Click
2034 end 2047 end
2035 end 2048 end
2036 object MenuItem3: TMenuItem 2049 object MenuItem3: TMenuItem
2037 Caption = 'Help' 2050 Caption = 'Help'
2038 object MenuItem15: TMenuItem 2051 object MenuItem15: TMenuItem
2039 Action = HelpLookupManual 2052 Action = HelpLookupManual
2053 Enabled = False
2040 end 2054 end
2041 object N3: TMenuItem 2055 object N3: TMenuItem
2042 Caption = '-' 2056 Caption = '-'
2043 end 2057 end
2044 object MenuItem4: TMenuItem 2058 object MenuItem4: TMenuItem
2045 Caption = 'Example Songs' 2059 Caption = 'Example Songs'
2060 Enabled = False
2046 end 2061 end
2047 object MenuItem5: TMenuItem 2062 object MenuItem5: TMenuItem
2048 Caption = 'About hUGETracker' 2063 Caption = 'About hUGETracker'
2049 OnClick = MenuItem5Click 2064 OnClick = MenuItem5Click
2050 end 2065 end
2051 end 2066 end
2052 object DebugButton: TMenuItem 2067 object DebugPlayNoteButton: TMenuItem
2053 Caption = 'Debug play note' 2068 Caption = 'Debug play note'
2054 OnClick = DebugButtonClick 2069 Visible = False
2070 OnClick = DebugPlayNoteButtonClick
2055 end 2071 end
2056 object MenuItem16: TMenuItem 2072 object DebugShiteButton: TMenuItem
2057 Caption = 'Debug shite' 2073 Caption = 'Debug shite'
2058 OnClick = MenuItem16Click 2074 Visible = False
2075 OnClick = DebugShiteButtonClick
2059 end 2076 end
2060 end 2077 end
2061 object ActionList1: TActionList 2078 object ActionList1: TActionList
@@ -2133,6 +2150,7 @@ object frmTracker: TfrmTracker
2133 object EditUndo1: TEditUndo 2150 object EditUndo1: TEditUndo
2134 Category = 'Edit' 2151 Category = 'Edit'
2135 Caption = '&Undo' 2152 Caption = '&Undo'
2153 DisableIfNoHandler = False
2136 Hint = 'Undo' 2154 Hint = 'Undo'
2137 ImageIndex = 66 2155 ImageIndex = 66
2138 ShortCut = 16474 2156 ShortCut = 16474
@@ -2140,13 +2158,16 @@ object frmTracker: TfrmTracker
2140 object EditDelete1: TEditDelete 2158 object EditDelete1: TEditDelete
2141 Category = 'Edit' 2159 Category = 'Edit'
2142 Caption = '&Delete' 2160 Caption = '&Delete'
2161 DisableIfNoHandler = False
2143 Hint = 'Delete' 2162 Hint = 'Delete'
2144 ImageIndex = 13 2163 ImageIndex = 13
2164 OnExecute = EditDelete1Execute
2145 ShortCut = 46 2165 ShortCut = 46
2146 end 2166 end
2147 object EditSelectAll1: TEditSelectAll 2167 object EditSelectAll1: TEditSelectAll
2148 Category = 'Edit' 2168 Category = 'Edit'
2149 Caption = 'Select &All' 2169 Caption = 'Select &All'
2170 DisableIfNoHandler = False
2150 Hint = 'Select All' 2171 Hint = 'Select All'
2151 ImageIndex = 39 2172 ImageIndex = 39
2152 ShortCut = 16449 2173 ShortCut = 16449
@@ -2154,6 +2175,7 @@ object frmTracker: TfrmTracker
2154 object EditCut1: TEditCut 2175 object EditCut1: TEditCut
2155 Category = 'Edit' 2176 Category = 'Edit'
2156 Caption = 'Cu&t' 2177 Caption = 'Cu&t'
2178 DisableIfNoHandler = False
2157 Hint = 'Cut' 2179 Hint = 'Cut'
2158 ShortCut = 16472 2180 ShortCut = 16472
2159 end 2181 end
Modifiedtracker.pas +44−8
@@ -75,7 +75,7 @@ type
75 MenuItem13: TMenuItem; 75 MenuItem13: TMenuItem;
76 MenuItem14: TMenuItem; 76 MenuItem14: TMenuItem;
77 MenuItem15: TMenuItem; 77 MenuItem15: TMenuItem;
78 MenuItem16: TMenuItem; 78 DebugShiteButton: TMenuItem;
79 N3: TMenuItem; 79 N3: TMenuItem;
80 N2: TMenuItem; 80 N2: TMenuItem;
81 N1: TMenuItem; 81 N1: TMenuItem;
@@ -100,7 +100,7 @@ type
100 WaveEditNumberSpinner: TSpinEdit; 100 WaveEditNumberSpinner: TSpinEdit;
101 WaveEditGroupBox: TGroupBox; 101 WaveEditGroupBox: TGroupBox;
102 Label19: TLabel; 102 Label19: TLabel;
103 DebugButton: TMenuItem; 103 DebugPlayNoteButton: TMenuItem;
104 WaveEditPaintBox: TPaintBox; 104 WaveEditPaintBox: TPaintBox;
105 RoutineNumberSpinner: TSpinEdit; 105 RoutineNumberSpinner: TSpinEdit;
106 Label17: TLabel; 106 Label17: TLabel;
@@ -170,6 +170,7 @@ type
170 DivRatioSpinner: TECSpinPosition; 170 DivRatioSpinner: TECSpinPosition;
171 TreeView1: TTreeView; 171 TreeView1: TTreeView;
172 TrackerGrid: TTrackerGrid; 172 TrackerGrid: TTrackerGrid;
173 procedure EditDelete1Execute(Sender: TObject);
173 procedure InstrumentComboBoxChange(Sender: TObject); 174 procedure InstrumentComboBoxChange(Sender: TObject);
174 procedure CopyActionExecute(Sender: TObject); 175 procedure CopyActionExecute(Sender: TObject);
175 procedure CutActionExecute(Sender: TObject); 176 procedure CutActionExecute(Sender: TObject);
@@ -202,14 +203,18 @@ type
202 procedure InstrumentNameEditChange(Sender: TObject); 203 procedure InstrumentNameEditChange(Sender: TObject);
203 procedure InstrumentNumberSpinnerChange(Sender: TObject); 204 procedure InstrumentNumberSpinnerChange(Sender: TObject);
204 procedure LengthSpinnerChange(Sender: TObject); 205 procedure LengthSpinnerChange(Sender: TObject);
205 procedure DebugButtonClick(Sender: TObject); 206 procedure DebugPlayNoteButtonClick(Sender: TObject);
206 procedure MenuItem16Click(Sender: TObject); 207 procedure DebugShiteButtonClick(Sender: TObject);
208 procedure MenuItem10Click(Sender: TObject);
209 procedure MenuItem11Click(Sender: TObject);
210 procedure MenuItem14Click(Sender: TObject);
207 procedure MenuItem17Click(Sender: TObject); 211 procedure MenuItem17Click(Sender: TObject);
208 procedure MenuItem18Click(Sender: TObject); 212 procedure MenuItem18Click(Sender: TObject);
209 procedure MenuItem19Click(Sender: TObject); 213 procedure MenuItem19Click(Sender: TObject);
210 procedure MenuItem21Click(Sender: TObject); 214 procedure MenuItem21Click(Sender: TObject);
211 procedure MenuItem22Click(Sender: TObject); 215 procedure MenuItem22Click(Sender: TObject);
212 procedure MenuItem5Click(Sender: TObject); 216 procedure MenuItem5Click(Sender: TObject);
217 procedure MenuItem8Click(Sender: TObject);
213 procedure NoiseVisualizerPaint(Sender: TObject); 218 procedure NoiseVisualizerPaint(Sender: TObject);
214 procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol, 219 procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol,
215 aRow: Integer); 220 aRow: Integer);
@@ -580,7 +585,7 @@ begin
580 585
581 // Start emulation on the rendered preview binary 586 // Start emulation on the rendered preview binary
582 EmulationThread.Terminate; 587 EmulationThread.Terminate;
583 EmulationThread.WaitFor; 588 //EmulationThread.WaitFor;
584 EmulationThread.Free; 589 EmulationThread.Free;
585 EmulationThread := TEmulationThread.Create('hUGEDriver/preview.gb'); 590 EmulationThread := TEmulationThread.Create('hUGEDriver/preview.gb');
586 PokeSymbol(SYM_TICKS_PER_ROW, Song.TicksPerRow); 591 PokeSymbol(SYM_TICKS_PER_ROW, Song.TicksPerRow);
@@ -602,7 +607,7 @@ begin
602 ToolButton2.ImageIndex := 74; 607 ToolButton2.ImageIndex := 74;
603 608
604 EmulationThread.Terminate; 609 EmulationThread.Terminate;
605 EmulationThread.WaitFor; 610 //EmulationThread.WaitFor;
606 EmulationThread.Free; 611 EmulationThread.Free;
607 EmulationThread := TEmulationThread.Create('halt.gb'); 612 EmulationThread := TEmulationThread.Create('halt.gb');
608 EmulationThread.Start; 613 EmulationThread.Start;
@@ -1078,6 +1083,11 @@ begin
1078 TrackerGrid.SelectedInstrument := InstrumentComboBox.ItemIndex; 1083 TrackerGrid.SelectedInstrument := InstrumentComboBox.ItemIndex;
1079 end; 1084 end;
1080 1085
1086 procedure TfrmTracker.EditDelete1Execute(Sender: TObject);
1087 begin
1088
1089 end;
1090
1081 procedure TfrmTracker.PasteActionExecute(Sender: TObject); 1091 procedure TfrmTracker.PasteActionExecute(Sender: TObject);
1082 begin 1092 begin
1083 PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0); 1093 PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0);
@@ -1135,16 +1145,34 @@ begin
1135 CurrentInstrument^.Length := Round(LengthSpinner.Position); 1145 CurrentInstrument^.Length := Round(LengthSpinner.Position);
1136 end; 1146 end;
1137 1147
1138 procedure TfrmTracker.DebugButtonClick(Sender: TObject); 1148 procedure TfrmTracker.DebugPlayNoteButtonClick(Sender: TObject);
1139 begin 1149 begin
1140 PreviewInstrument(C_5, InstrumentNumberSpinner.Value); 1150 PreviewInstrument(C_5, InstrumentNumberSpinner.Value);
1141 end; 1151 end;
1142 1152
1143 procedure TfrmTracker.MenuItem16Click(Sender: TObject); 1153 procedure TfrmTracker.DebugShiteButtonClick(Sender: TObject);
1144 begin 1154 begin
1145 RenderSongToFile(Song, 'song'); 1155 RenderSongToFile(Song, 'song');
1146 end; 1156 end;
1147 1157
1158 procedure TfrmTracker.MenuItem10Click(Sender: TObject);
1159 begin
1160 if (Screen.ActiveControl is TEdit) then
1161 (Screen.ActiveControl as TEdit).SelectAll
1162 else if (Screen.ActiveControl is TTrackerGrid) then
1163 (Screen.ActiveControl as TTrackerGrid).SelectAll;
1164 end;
1165
1166 procedure TfrmTracker.MenuItem11Click(Sender: TObject);
1167 begin
1168
1169 end;
1170
1171 procedure TfrmTracker.MenuItem14Click(Sender: TObject);
1172 begin
1173 Halt;
1174 end;
1175
1148 procedure TfrmTracker.MenuItem17Click(Sender: TObject); 1176 procedure TfrmTracker.MenuItem17Click(Sender: TObject);
1149 var 1177 var
1150 X, Highest: Integer; 1178 X, Highest: Integer;
@@ -1216,6 +1244,14 @@ begin
1216 AboutForm.Free; 1244 AboutForm.Free;
1217 end; 1245 end;
1218 1246
1247 procedure TfrmTracker.MenuItem8Click(Sender: TObject);
1248 begin
1249 if (Screen.ActiveControl is TEdit) then
1250 (Screen.ActiveControl as TEdit).ClearSelection
1251 else if (Screen.ActiveControl is TTrackerGrid) then
1252 (Screen.ActiveControl as TTrackerGrid).EraseSelection;
1253 end;
1254
1219 procedure TfrmTracker.NoiseVisualizerPaint(Sender: TObject); 1255 procedure TfrmTracker.NoiseVisualizerPaint(Sender: TObject);
1220 begin 1256 begin
1221 DrawVizualizer(NoiseVisualizer, 4); 1257 DrawVizualizer(NoiseVisualizer, 4);
Modifiedtrackergrid.pas +15−1
@@ -83,7 +83,6 @@ type
83 procedure NormalizeCursors; 83 procedure NormalizeCursors;
84 84
85 procedure TransposeSelection(Semitones: Integer); 85 procedure TransposeSelection(Semitones: Integer);
86 procedure EraseSelection;
87 procedure InputNote(Key: Word); 86 procedure InputNote(Key: Word);
88 procedure InputInstrument(Key: Word); 87 procedure InputInstrument(Key: Word);
89 procedure InputVolume(Key: Word); 88 procedure InputVolume(Key: Word);
@@ -133,6 +132,9 @@ type
133 procedure SetAt(SelectionPos: TSelectionPos; Value: Integer); 132 procedure SetAt(SelectionPos: TSelectionPos; Value: Integer);
134 procedure ClearAt(SelectionPos: TSelectionPos); 133 procedure ClearAt(SelectionPos: TSelectionPos);
135 134
135 procedure SelectAll;
136 procedure EraseSelection;
137
136 constructor Create( 138 constructor Create(
137 AOwner: TComponent; 139 AOwner: TComponent;
138 Parent: TWinControl; 140 Parent: TWinControl;
@@ -1010,6 +1012,18 @@ begin
1010 end; 1012 end;
1011 end; 1013 end;
1012 1014
1015 procedure TTrackerGrid.SelectAll;
1016 begin
1017 Cursor.X := 0;
1018 Cursor.Y := 0;
1019 Cursor.SelectedPart := cpNote;
1020 Other.X := High(Patterns);
1021 Other.Y := High(TPattern);
1022 Other.SelectedPart := cpEffectParams;
1023
1024 Invalidate;
1025 end;
1026
1013 procedure TTrackerGrid.LoadPattern(Idx: Integer; PatternNumber: Integer); 1027 procedure TTrackerGrid.LoadPattern(Idx: Integer; PatternNumber: Integer);
1014 begin 1028 begin
1015 Patterns[Idx] := PatternMap.GetOrCreateNew(PatternNumber); 1029 Patterns[Idx] := PatternMap.GetOrCreateNew(PatternNumber);