Commit 6ceea9b

Nick committed on
WIP order editor
commit 6ceea9b6cf4de54d33e0806bc0b6c304fd4d68a0 parent abec48b
4 changed files +193−38
ModifiedGBEmu.lpi +17−8
@@ -43,28 +43,37 @@
43 </Mode0> 43 </Mode0>
44 </Modes> 44 </Modes>
45 </RunParams> 45 </RunParams>
46 <RequiredPackages Count="7"> 46 <RequiredPackages Count="10">
47 <Item1> 47 <Item1>
48 <PackageName Value="RunTimeTypeInfoControls"/> 48 <PackageName Value="LazColorPalette"/>
49 </Item1> 49 </Item1>
50 <Item2> 50 <Item2>
51 <PackageName Value="virtualtreeview_package"/> 51 <PackageName Value="RackCtlsPkg"/>
52 </Item2> 52 </Item2>
53 <Item3> 53 <Item3>
54 <PackageName Value="SynEdit"/> 54 <PackageName Value="laz_fpspreadsheet_visual"/>
55 </Item3> 55 </Item3>
56 <Item4> 56 <Item4>
57 <PackageName Value="eccontrols"/> 57 <PackageName Value="RunTimeTypeInfoControls"/>
58 </Item4> 58 </Item4>
59 <Item5> 59 <Item5>
60 <PackageName Value="LazControls"/> 60 <PackageName Value="virtualtreeview_package"/>
61 </Item5> 61 </Item5>
62 <Item6> 62 <Item6>
63 <PackageName Value="BGRABitmapPack"/> 63 <PackageName Value="SynEdit"/>
64 </Item6> 64 </Item6>
65 <Item7> 65 <Item7>
66 <PackageName Value="LCL"/> 66 <PackageName Value="eccontrols"/>
67 </Item7> 67 </Item7>
68 <Item8>
69 <PackageName Value="LazControls"/>
70 </Item8>
71 <Item9>
72 <PackageName Value="BGRABitmapPack"/>
73 </Item9>
74 <Item10>
75 <PackageName Value="LCL"/>
76 </Item10>
68 </RequiredPackages> 77 </RequiredPackages>
69 <Units Count="24"> 78 <Units Count="24">
70 <Unit0> 79 <Unit0>
Modifiedtracker.lfm +154−23
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 1560 2 Left = 1184
3 Height = 1298 3 Height = 1298
4 Top = 529 4 Top = 306
5 Width = 1893 5 Width = 1893
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 1268 7 ClientHeight = 1268
@@ -139,21 +139,118 @@ object frmTracker: TfrmTracker
139 ClientHeight = 892 139 ClientHeight = 892
140 ClientWidth = 1587 140 ClientWidth = 1587
141 ParentFont = False 141 ParentFont = False
142 object ScrollBox1: TScrollBox 142 object Panel3: TPanel
143 Left = 0 143 Left = 336
144 Height = 892 144 Height = 892
145 Top = 0 145 Top = 0
146 Width = 1587 146 Width = 1251
147 HorzScrollBar.Increment = 1
148 HorzScrollBar.Page = 1
149 HorzScrollBar.Smooth = True
150 HorzScrollBar.Tracking = True
151 VertScrollBar.Increment = 1
152 VertScrollBar.Page = 1
153 VertScrollBar.Smooth = True
154 VertScrollBar.Tracking = True
155 Align = alClient 147 Align = alClient
148 ClientHeight = 892
149 ClientWidth = 1251
156 TabOrder = 0 150 TabOrder = 0
151 object HeaderControl1: THeaderControl
152 Left = 1
153 Height = 45
154 Top = 1
155 Width = 1249
156 DragReorder = False
157 Sections = <
158 item
159 Alignment = taCenter
160 Text = 'Duty 1'
161 Width = 200
162 Visible = True
163 end
164 item
165 Alignment = taCenter
166 Text = 'Duty 2'
167 Width = 200
168 Visible = True
169 end
170 item
171 Alignment = taCenter
172 Text = 'Wave'
173 Width = 200
174 Visible = True
175 end
176 item
177 Alignment = taCenter
178 Text = 'Noise'
179 Width = 200
180 Visible = True
181 end>
182 Align = alTop
183 end
184 object ScrollBox1: TScrollBox
185 Left = 1
186 Height = 845
187 Top = 46
188 Width = 1249
189 HorzScrollBar.Increment = 1
190 HorzScrollBar.Page = 1
191 HorzScrollBar.Smooth = True
192 HorzScrollBar.Tracking = True
193 VertScrollBar.Increment = 1
194 VertScrollBar.Page = 1
195 VertScrollBar.Smooth = True
196 VertScrollBar.Tracking = True
197 Align = alClient
198 BorderStyle = bsNone
199 TabOrder = 1
200 end
201 end
202 object DrawGrid1: TStringGrid
203 Left = 0
204 Height = 892
205 Top = 0
206 Width = 336
207 Align = alLeft
208 AutoFillColumns = True
209 Columns = <
210 item
211 Alignment = taCenter
212 MinSize = 50
213 MaxSize = 50
214 Title.Caption = 'Dty1'
215 Width = 52
216 end
217 item
218 Alignment = taCenter
219 MinSize = 50
220 MaxSize = 50
221 Title.Caption = 'Dty2'
222 Width = 52
223 end
224 item
225 Alignment = taCenter
226 MinSize = 50
227 MaxSize = 50
228 Title.Caption = 'Wav'
229 Width = 52
230 end
231 item
232 Alignment = taCenter
233 MinSize = 50
234 MaxSize = 50
235 Title.Caption = 'Nse'
236 Width = 54
237 end>
238 DefaultColWidth = 25
239 DefaultRowHeight = 32
240 ExtendedSelect = False
241 Options = [goFixedVertLine, goFixedHorzLine, goRangeSelect, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
242 RangeSelectMode = rsmMulti
243 RowCount = 10
244 ScrollBars = ssVertical
245 TabOrder = 1
246 UseXORFeatures = True
247 ColWidths = (
248 96
249 52
250 52
251 52
252 54
253 )
157 end 254 end
158 end 255 end
159 object InstrumentTabSheet: TTabSheet 256 object InstrumentTabSheet: TTabSheet
@@ -1630,11 +1727,45 @@ object frmTracker: TfrmTracker
1630 ParentShowHint = False 1727 ParentShowHint = False
1631 ShowHint = True 1728 ShowHint = True
1632 end 1729 end
1730 object ToolButton2: TToolButton
1731 Left = 160
1732 Top = 0
1733 Caption = 'Play'
1734 end
1735 object ToolButton3: TToolButton
1736 Left = 200
1737 Top = 0
1738 Caption = 'Pause'
1739 end
1740 object ToolButton4: TToolButton
1741 Left = 254
1742 Top = 0
1743 Caption = 'Stop'
1744 end
1745 object ToolButton5: TToolButton
1746 Left = 305
1747 Top = 0
1748 Caption = 'ToolButton5'
1749 end
1750 object ToolButton8: TToolButton
1751 Left = 155
1752 Height = 33
1753 Top = 0
1754 Caption = 'ToolButton8'
1755 Style = tbsDivider
1756 end
1757 object ToolButton6: TToolButton
1758 Left = 300
1759 Height = 33
1760 Top = 0
1761 Caption = 'ToolButton6'
1762 Style = tbsDivider
1763 end
1633 end 1764 end
1634 object MainMenu1: TMainMenu 1765 object MainMenu1: TMainMenu
1635 Images = ImageList1 1766 Images = ImageList1
1636 left = 1416 1767 left = 528
1637 top = 80 1768 top = 64
1638 object MenuItem1: TMenuItem 1769 object MenuItem1: TMenuItem
1639 Caption = 'File' 1770 Caption = 'File'
1640 object MenuItem12: TMenuItem 1771 object MenuItem12: TMenuItem
@@ -1701,8 +1832,8 @@ object frmTracker: TfrmTracker
1701 end 1832 end
1702 object ActionList1: TActionList 1833 object ActionList1: TActionList
1703 Images = ImageList1 1834 Images = ImageList1
1704 left = 1208 1835 left = 832
1705 top = 72 1836 top = 64
1706 object FileOpen1: TFileOpen 1837 object FileOpen1: TFileOpen
1707 Category = 'File' 1838 Category = 'File'
1708 Caption = '&Open ...' 1839 Caption = '&Open ...'
@@ -1797,8 +1928,8 @@ object frmTracker: TfrmTracker
1797 end 1928 end
1798 end 1929 end
1799 object ImageList1: TImageList 1930 object ImageList1: TImageList
1800 left = 1288 1931 left = 928
1801 top = 72 1932 top = 64
1802 Bitmap = { 1933 Bitmap = {
1803 4C69480000001000000010000000000000000000000000000000000000000000 1934 4C69480000001000000010000000000000000000000000000000000000000000
1804 0000000000000000000000000000000000000000000000000000000000000000 1935 0000000000000000000000000000000000000000000000000000000000000000
@@ -4108,11 +4239,11 @@ object frmTracker: TfrmTracker
4108 } 4239 }
4109 end 4240 end
4110 object OpenDialog1: TOpenDialog 4241 object OpenDialog1: TOpenDialog
4111 left = 1028 4242 left = 632
4112 top = 66 4243 top = 64
4113 end 4244 end
4114 object SaveDialog1: TSaveDialog 4245 object SaveDialog1: TSaveDialog
4115 left = 1112 4246 left = 744
4116 top = 69 4247 top = 64
4117 end 4248 end
4118 end 4249 end
Modifiedtracker.pas +21−5
@@ -6,17 +6,20 @@ interface
6 6
7 uses 7 uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, 8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, 9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, math, Instruments, Waves,
10 ECSlider, ECProgressBar, math, Instruments, Waves, Song, EmulationThread, 10 Song, EmulationThread, Utils, Constants, sound, vars, machine,
11 Utils, Constants, sound, vars, machine, about_hugetracker, Clipbrd, ValEdit, 11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls,
12 Grids, TrackerGrid, lclintf, lmessages; 12 ECProgressBar, ECSpinCtrls, ECCheckListBox, ECGrid;
13 13
14 type 14 type
15 { TfrmTracker } 15 { TfrmTracker }
16 16
17 TfrmTracker = class(TForm) 17 TfrmTracker = class(TForm)
18 CutAction: TAction; 18 CutAction: TAction;
19 DrawGrid1: TStringGrid;
19 EditCut1: TEditCut; 20 EditCut1: TEditCut;
21 HeaderControl1: THeaderControl;
22 Panel3: TPanel;
20 PasteAction: TAction; 23 PasteAction: TAction;
21 CopyAction: TAction; 24 CopyAction: TAction;
22 HelpLookupManual: TAction; 25 HelpLookupManual: TAction;
@@ -57,6 +60,12 @@ type
57 ToolBar1: TToolBar; 60 ToolBar1: TToolBar;
58 ToolButton1: TToolButton; 61 ToolButton1: TToolButton;
59 PanicToolButton: TToolButton; 62 PanicToolButton: TToolButton;
63 ToolButton2: TToolButton;
64 ToolButton3: TToolButton;
65 ToolButton4: TToolButton;
66 ToolButton5: TToolButton;
67 ToolButton6: TToolButton;
68 ToolButton8: TToolButton;
60 WaveEditNumberSpinner: TSpinEdit; 69 WaveEditNumberSpinner: TSpinEdit;
61 WaveEditGroupBox: TGroupBox; 70 WaveEditGroupBox: TGroupBox;
62 Label19: TLabel; 71 Label19: TLabel;
@@ -190,6 +199,8 @@ type
190 PreviewingInstrument: Boolean; 199 PreviewingInstrument: Boolean;
191 DrawingWave: Boolean; 200 DrawingWave: Boolean;
192 201
202 Ticks: Integer;
203
193 procedure ChangeToSquare; 204 procedure ChangeToSquare;
194 procedure ChangeToWave; 205 procedure ChangeToWave;
195 procedure ChangeToNoise; 206 procedure ChangeToNoise;
@@ -500,6 +511,7 @@ end;
500 procedure TfrmTracker.FormCreate(Sender: TObject); 511 procedure TfrmTracker.FormCreate(Sender: TObject);
501 var 512 var
502 I, J: Integer; 513 I, J: Integer;
514 Section: TCollectionItem;
503 begin 515 begin
504 for I := Low(Song.Instruments) to High(Song.Instruments) do 516 for I := Low(Song.Instruments) to High(Song.Instruments) do
505 with Song.Instruments[I] do begin 517 with Song.Instruments[I] do begin
@@ -528,7 +540,11 @@ begin
528 540
529 // Create pattern editor control 541 // Create pattern editor control
530 TrackerGrid := TTrackerGrid.Create(Self, ScrollBox1); 542 TrackerGrid := TTrackerGrid.Create(Self, ScrollBox1);
531 //TrackerGrid.Parent := ScrollBox1; 543 for Section in HeaderControl1.Sections do
544 (Section as THeaderSection).Width := TrackerGrid.ColumnWidth;
545
546 // Manually resize the fixed column in the order editor
547 DrawGrid1.ColWidths[0]:=50;
532 548
533 // Get the emulator ready to make sound... 549 // Get the emulator ready to make sound...
534 EmulationThread := TEmulationThread.Create; 550 EmulationThread := TEmulationThread.Create;
Modifiedtrackergrid.pas +1−2
@@ -65,8 +65,6 @@ type
65 private 65 private
66 Cells: array[0..3, 0..63] of TCell; 66 Cells: array[0..3, 0..63] of TCell;
67 67
68 ColumnWidth: Integer;
69 RowHeight: Integer;
70 CharHeight: Integer; 68 CharHeight: Integer;
71 CharWidth: Integer; 69 CharWidth: Integer;
72 70
@@ -86,6 +84,7 @@ type
86 function KeycodeToHexNumber(Key: Word; out Num: Integer): Boolean; overload; 84 function KeycodeToHexNumber(Key: Word; out Num: Integer): Boolean; overload;
87 public 85 public
88 Cursor, Other: TSelectionPos; 86 Cursor, Other: TSelectionPos;
87 ColumnWidth, RowHeight: Integer;
89 end; 88 end;
90 89
91 implementation 90 implementation