Commit 7c008ba

Nick committed on
WIP effect editor modal bugs
commit 7c008bafdd5d9f5e5e9fb653f227b11ff09474c8 parent c9ffb9a
6 changed files +159−35
ModifiedGBEmu.lpr +1−3
@@ -10,6 +10,7 @@ uses
10 Forms, 10 Forms,
11 Interfaces, 11 Interfaces,
12 Tracker in 'Tracker.pas', 12 Tracker in 'Tracker.pas',
13 EffectEditor in 'effecteditor.pas',
13 Z80CPU in 'CPU\z80cpu.pas', 14 Z80CPU in 'CPU\z80cpu.pas',
14 sound in 'Sound\sound.pas', 15 sound in 'Sound\sound.pas',
15 vars in 'Global\vars.pas', 16 vars in 'Global\vars.pas',
@@ -21,9 +22,6 @@ uses
21 22
22 begin 23 begin
23 Application.Initialize; 24 Application.Initialize;
24 {Application.CreateForm(TfrmGameboy, frmGameboy);
25 Application.CreateForm(TfrmDebug, frmDebug);
26 Application.CreateForm(TfrmMapview, frmMapview);}
27 Application.CreateForm(TfrmTracker, frmTracker); 25 Application.CreateForm(TfrmTracker, frmTracker);
28 Application.Run; 26 Application.Run;
29 end. 27 end.
Modifiedeffecteditor.lfm +23−3
@@ -3,10 +3,16 @@ object frmEffectEditor: TfrmEffectEditor
3 Height = 416 3 Height = 416
4 Top = 226 4 Top = 226
5 Width = 684 5 Width = 684
6 BorderIcons = [biSystemMenu, biMinimize]
7 BorderStyle = bsDialog
6 Caption = 'Effect Editor' 8 Caption = 'Effect Editor'
7 ClientHeight = 416 9 ClientHeight = 416
8 ClientWidth = 684 10 ClientWidth = 684
9 DesignTimePPI = 168 11 DesignTimePPI = 168
12 FormStyle = fsStayOnTop
13 OnClose = FormClose
14 OnCloseQuery = FormCloseQuery
15 ShowInTaskBar = stNever
10 LCLVersion = '2.0.6.0' 16 LCLVersion = '2.0.6.0'
11 object ComboBox1: TComboBox 17 object ComboBox1: TComboBox
12 Left = 136 18 Left = 136
@@ -51,7 +57,7 @@ object frmEffectEditor: TfrmEffectEditor
51 Height = 320 57 Height = 320
52 Top = 80 58 Top = 80
53 Width = 642 59 Width = 642
54 PageIndex = 5 60 PageIndex = 1
55 TabOrder = 1 61 TabOrder = 1
56 object OneParamPage: TPage 62 object OneParamPage: TPage
57 object OneParamTrackBar: TTrackBar 63 object OneParamTrackBar: TTrackBar
@@ -82,7 +88,7 @@ object frmEffectEditor: TfrmEffectEditor
82 Top = 72 88 Top = 72
83 Width = 584 89 Width = 584
84 Max = 15 90 Max = 15
85 OnChange = OneParamTrackBarChange 91 OnChange = TwoParamsTrackBar1Change
86 Position = 0 92 Position = 0
87 TabOrder = 0 93 TabOrder = 0
88 end 94 end
@@ -92,7 +98,7 @@ object frmEffectEditor: TfrmEffectEditor
92 Top = 136 98 Top = 136
93 Width = 584 99 Width = 584
94 Max = 15 100 Max = 15
95 OnChange = OneParamTrackBarChange 101 OnChange = TwoParamsTrackBar2Change
96 Position = 0 102 Position = 0
97 TabOrder = 1 103 TabOrder = 1
98 end 104 end
@@ -106,6 +112,15 @@ object frmEffectEditor: TfrmEffectEditor
106 Caption = 'Value1' 112 Caption = 'Value1'
107 ParentColor = False 113 ParentColor = False
108 end 114 end
115 object Button1: TButton
116 Left = 280
117 Height = 44
118 Top = 224
119 Width = 131
120 Caption = 'Button1'
121 OnClick = Button1Click
122 TabOrder = 2
123 end
109 end 124 end
110 object VibratoPage: TPage 125 object VibratoPage: TPage
111 object VibratoRateRadioGroup: TRadioGroup 126 object VibratoRateRadioGroup: TRadioGroup
@@ -131,6 +146,7 @@ object frmEffectEditor: TfrmEffectEditor
131 '0.125' 146 '0.125'
132 '0.0625' 147 '0.0625'
133 ) 148 )
149 OnSelectionChanged = VibratoRateRadioGroupSelectionChanged
134 TabOrder = 0 150 TabOrder = 0
135 end 151 end
136 object VibratoDepthTrackBar: TTrackBar 152 object VibratoDepthTrackBar: TTrackBar
@@ -139,6 +155,7 @@ object frmEffectEditor: TfrmEffectEditor
139 Top = 48 155 Top = 48
140 Width = 448 156 Width = 448
141 Max = 15 157 Max = 15
158 OnChange = VibratoDepthTrackBarChange
142 Position = 0 159 Position = 0
143 TabOrder = 1 160 TabOrder = 1
144 end 161 end
@@ -201,6 +218,7 @@ object frmEffectEditor: TfrmEffectEditor
201 ChildSizing.ControlsPerLine = 1 218 ChildSizing.ControlsPerLine = 1
202 ClientHeight = 285 219 ClientHeight = 285
203 ClientWidth = 312 220 ClientWidth = 312
221 OnItemClick = LeftPanCheckGroupItemClick
204 TabOrder = 0 222 TabOrder = 0
205 object CheckBox1: TCheckBox 223 object CheckBox1: TCheckBox
206 Left = 6 224 Left = 6
@@ -252,6 +270,7 @@ object frmEffectEditor: TfrmEffectEditor
252 ChildSizing.ControlsPerLine = 1 270 ChildSizing.ControlsPerLine = 1
253 ClientHeight = 285 271 ClientHeight = 285
254 ClientWidth = 312 272 ClientWidth = 312
273 OnItemClick = LeftPanCheckGroupItemClick
255 TabOrder = 1 274 TabOrder = 1
256 object CheckBox5: TCheckBox 275 object CheckBox5: TCheckBox
257 Left = 6 276 Left = 6
@@ -310,6 +329,7 @@ object frmEffectEditor: TfrmEffectEditor
310 '50% ( ____----____----____---- ) (Square)' 329 '50% ( ____----____----____---- ) (Square)'
311 '75% ( ______--______--______-- )' 330 '75% ( ______--______--______-- )'
312 ) 331 )
332 OnSelectionChanged = DutyRadioGroupSelectionChanged
313 TabOrder = 0 333 TabOrder = 0
314 end 334 end
315 end 335 end
Modifiedeffecteditor.pas +110−21
@@ -13,6 +13,7 @@ type
13 { TfrmEffectEditor } 13 { TfrmEffectEditor }
14 14
15 TfrmEffectEditor = class(TForm) 15 TfrmEffectEditor = class(TForm)
16 Button1: TButton;
16 CheckBox1: TCheckBox; 17 CheckBox1: TCheckBox;
17 CheckBox2: TCheckBox; 18 CheckBox2: TCheckBox;
18 CheckBox3: TCheckBox; 19 CheckBox3: TCheckBox;
@@ -44,8 +45,18 @@ type
44 Value2: TLabel; 45 Value2: TLabel;
45 VibratoPage: TPage; 46 VibratoPage: TPage;
46 TwoParamsPage: TPage; 47 TwoParamsPage: TPage;
48 procedure Button1Click(Sender: TObject);
47 procedure ComboBox1Change(Sender: TObject); 49 procedure ComboBox1Change(Sender: TObject);
50 procedure DutyRadioGroupSelectionChanged(Sender: TObject);
51 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
52 procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
53 procedure FormCreate(Sender: TObject);
54 procedure LeftPanCheckGroupItemClick(Sender: TObject; Index: integer);
48 procedure OneParamTrackBarChange(Sender: TObject); 55 procedure OneParamTrackBarChange(Sender: TObject);
56 procedure TwoParamsTrackBar1Change(Sender: TObject);
57 procedure TwoParamsTrackBar2Change(Sender: TObject);
58 procedure VibratoDepthTrackBarChange(Sender: TObject);
59 procedure VibratoRateRadioGroupSelectionChanged(Sender: TObject);
49 private 60 private
50 Cell: PCell; 61 Cell: PCell;
51 62
@@ -71,9 +82,6 @@ type
71 constructor Create(Cell_: PCell); reintroduce; 82 constructor Create(Cell_: PCell); reintroduce;
72 end; 83 end;
73 84
74 var
75 frmEffectEditor: TfrmEffectEditor;
76
77 implementation 85 implementation
78 86
79 {$R *.lfm} 87 {$R *.lfm}
@@ -86,11 +94,92 @@ begin
86 LoadEffect; 94 LoadEffect;
87 end; 95 end;
88 96
97 procedure TfrmEffectEditor.Button1Click(Sender: TObject);
98 begin
99 Close;
100 end;
101
102 procedure TfrmEffectEditor.DutyRadioGroupSelectionChanged(Sender: TObject);
103 begin
104 case DutyRadioGroup.ItemIndex of
105 0: Cell^.EffectParams.Value := $00;
106 1: Cell^.EffectParams.Value := $40;
107 2: Cell^.EffectParams.Value := $80;
108 3: Cell^.EffectParams.Value := $C0;
109 end;
110 end;
111
112 procedure TfrmEffectEditor.FormClose(Sender: TObject;
113 var CloseAction: TCloseAction);
114 begin
115 writeln('ok');
116 end;
117
118 procedure TfrmEffectEditor.FormCloseQuery(Sender: TObject; var CanClose: boolean
119 );
120 begin
121 ModalResult:=mrClose;
122 writeln('hi');
123 end;
124
125 procedure TfrmEffectEditor.FormCreate(Sender: TObject);
126 begin
127 ComboBox1.ItemIndex := Cell^.EffectCode;
128 LoadEffect;
129 end;
130
131 procedure TfrmEffectEditor.LeftPanCheckGroupItemClick(Sender: TObject;
132 Index: integer);
133 var
134 Val: Integer;
135 begin
136 Val := %00000000;
137 if CheckBox4.Checked then Val := Val or %00001000;
138 if CheckBox3.Checked then Val := Val or %00000100;
139 if CheckBox2.Checked then Val := Val or %00000010;
140 if CheckBox1.Checked then Val := Val or %00000001;
141
142 if CheckBox8.Checked then Val := Val or %10000000;
143 if CheckBox7.Checked then Val := Val or %01000000;
144 if CheckBox6.Checked then Val := Val or %00100000;
145 if CheckBox5.Checked then Val := Val or %00010000;
146
147 Cell^.EffectParams.Value := Val;
148 end;
149
89 procedure TfrmEffectEditor.OneParamTrackBarChange(Sender: TObject); 150 procedure TfrmEffectEditor.OneParamTrackBarChange(Sender: TObject);
90 begin 151 begin
91 Cell^.EffectParams.Value := OneParamTrackBar.Position; 152 Cell^.EffectParams.Value := OneParamTrackBar.Position;
92 end; 153 end;
93 154
155 procedure TfrmEffectEditor.TwoParamsTrackBar1Change(Sender: TObject);
156 begin
157 Cell^.EffectParams.Param1 := TwoParamsTrackBar1.Position;
158 writeln('test');
159 end;
160
161 procedure TfrmEffectEditor.TwoParamsTrackBar2Change(Sender: TObject);
162 begin
163 Cell^.EffectParams.Param1 := TwoParamsTrackBar2.Position;
164 end;
165
166 procedure TfrmEffectEditor.VibratoDepthTrackBarChange(Sender: TObject);
167 begin
168 Cell^.EffectParams.Param2 := VibratoDepthTrackBar.Position;
169 end;
170
171 procedure TfrmEffectEditor.VibratoRateRadioGroupSelectionChanged(Sender: TObject
172 );
173 begin
174 case VibratoRateRadioGroup.ItemIndex of
175 0: Cell^.EffectParams.Param1 := $0;
176 1: Cell^.EffectParams.Param1 := $1;
177 2: Cell^.EffectParams.Param1 := $3;
178 3: Cell^.EffectParams.Param1 := $7;
179 4: Cell^.EffectParams.Param1 := $F;
180 end;
181 end;
182
94 procedure TfrmEffectEditor.LoadEffect; 183 procedure TfrmEffectEditor.LoadEffect;
95 begin 184 begin
96 case Cell^.EffectCode of 185 case Cell^.EffectCode of
@@ -115,89 +204,89 @@ end;
115 204
116 procedure TfrmEffectEditor.fx0; 205 procedure TfrmEffectEditor.fx0;
117 begin 206 begin
118 207 Notebook1.PageIndex := 1;
119 end; 208 end;
120 209
121 procedure TfrmEffectEditor.fx1; 210 procedure TfrmEffectEditor.fx1;
122 begin 211 begin
123 212 Notebook1.PageIndex := 0;
124 end; 213 end;
125 214
126 procedure TfrmEffectEditor.fx2; 215 procedure TfrmEffectEditor.fx2;
127 begin 216 begin
128 217 Notebook1.PageIndex := 0;
129 end; 218 end;
130 219
131 procedure TfrmEffectEditor.fx3; 220 procedure TfrmEffectEditor.fx3;
132 begin 221 begin
133 222 Notebook1.PageIndex := 0;
134 end; 223 end;
135 224
136 procedure TfrmEffectEditor.fx4; 225 procedure TfrmEffectEditor.fx4;
137 begin 226 begin
138 227 Notebook1.PageIndex := 2;
139 end; 228 end;
140 229
141 procedure TfrmEffectEditor.fx5; 230 procedure TfrmEffectEditor.fx5;
142 begin 231 begin
143 232 Notebook1.PageIndex := 3;
144 end; 233 end;
145 234
146 procedure TfrmEffectEditor.fx6; 235 procedure TfrmEffectEditor.fx6;
147 begin 236 begin
148 237 Notebook1.PageIndex := 0;
149 end; 238 end;
150 239
151 procedure TfrmEffectEditor.fx7; 240 procedure TfrmEffectEditor.fx7;
152 begin 241 begin
153 242 Notebook1.PageIndex := 0;
154 end; 243 end;
155 244
156 procedure TfrmEffectEditor.fx8; 245 procedure TfrmEffectEditor.fx8;
157 begin 246 begin
158 247 Notebook1.PageIndex := 4;
159 end; 248 end;
160 249
161 procedure TfrmEffectEditor.fx9; 250 procedure TfrmEffectEditor.fx9;
162 begin 251 begin
163 252 Notebook1.PageIndex := 5;
164 end; 253 end;
165 254
166 procedure TfrmEffectEditor.fxA; 255 procedure TfrmEffectEditor.fxA;
167 begin 256 begin
168 257 Notebook1.PageIndex := 1;
169 end; 258 end;
170 259
171 procedure TfrmEffectEditor.fxB; 260 procedure TfrmEffectEditor.fxB;
172 begin 261 begin
173 262 Notebook1.PageIndex := 0;
174 end; 263 end;
175 264
176 procedure TfrmEffectEditor.fxC; 265 procedure TfrmEffectEditor.fxC;
177 begin 266 begin
178 267 Notebook1.PageIndex := 0;
179 end; 268 end;
180 269
181 procedure TfrmEffectEditor.fxD; 270 procedure TfrmEffectEditor.fxD;
182 begin 271 begin
183 272 Notebook1.PageIndex := 0;
184 end; 273 end;
185 274
186 procedure TfrmEffectEditor.fxE; 275 procedure TfrmEffectEditor.fxE;
187 begin 276 begin
188 277 Notebook1.PageIndex := 0;
189 end; 278 end;
190 279
191 procedure TfrmEffectEditor.fxF; 280 procedure TfrmEffectEditor.fxF;
192 begin 281 begin
193 282 Notebook1.PageIndex := 0;
194 end; 283 end;
195 284
196 constructor TfrmEffectEditor.Create(Cell_: PCell); 285 constructor TfrmEffectEditor.Create(Cell_: PCell);
197 begin 286 begin
287 inherited Create(nil);
198 Self.Cell := Cell_; 288 Self.Cell := Cell_;
199 ComboBox1.ItemIndex := Cell^.EffectCode; 289 writeln('created');
200 LoadEffect;
201 end; 290 end;
202 291
203 end. 292 end.
Modifiedtracker.lfm +5−4
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 1098 2 Left = 842
3 Height = 1376 3 Height = 1376
4 Top = 199 4 Top = 192
5 Width = 2212 5 Width = 2212
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 1342 7 ClientHeight = 1342
@@ -13,6 +13,7 @@ object frmTracker: TfrmTracker
13 OnCreate = FormCreate 13 OnCreate = FormCreate
14 OnKeyDown = FormKeyDown 14 OnKeyDown = FormKeyDown
15 OnKeyUp = FormKeyUp 15 OnKeyUp = FormKeyUp
16 Position = poDefault
16 ShowHint = True 17 ShowHint = True
17 LCLVersion = '2.0.6.0' 18 LCLVersion = '2.0.6.0'
18 object TreeView1: TTreeView 19 object TreeView1: TTreeView
@@ -55,10 +56,10 @@ object frmTracker: TfrmTracker
55 Height = 946 56 Height = 946
56 Top = 0 57 Top = 0
57 Width = 1865 58 Width = 1865
58 ActivePage = PatternTabSheet 59 ActivePage = InstrumentTabSheet
59 Align = alClient 60 Align = alClient
60 ParentFont = False 61 ParentFont = False
61 TabIndex = 1 62 TabIndex = 2
62 TabOrder = 0 63 TabOrder = 0
63 object GeneralTabSheet: TTabSheet 64 object GeneralTabSheet: TTabSheet
64 Caption = 'General' 65 Caption = 'General'
Modifiedtracker.pas +1−1
@@ -10,7 +10,7 @@ uses
10 Song, EmulationThread, Utils, Constants, sound, vars, machine, 10 Song, EmulationThread, Utils, Constants, sound, vars, machine,
11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls, 11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls,
12 ECProgressBar, HugeDatatypes, LCLType, RackCtls, Codegen, 12 ECProgressBar, HugeDatatypes, LCLType, RackCtls, Codegen,
13 SymParser, effecteditor; 13 SymParser;
14 14
15 type 15 type
16 { TfrmTracker } 16 { TfrmTracker }
Modifiedtrackergrid.pas +19−3
@@ -5,8 +5,9 @@ unit TrackerGrid;
5 interface 5 interface
6 6
7 uses 7 uses
8 Classes, SysUtils, Controls, Graphics, Constants, LCLType, math, 8 Classes, SysUtils, Controls, Graphics, Constants, LCLType, math, LCLIntf,
9 LCLIntf, LMessages, HugeDatatypes, ClipboardUtils, gdeque, gstack, utils; 9 LMessages, HugeDatatypes, ClipboardUtils, gdeque, gstack, utils, effecteditor,
10 About;
10 11
11 // TODO: Maybe read these from a config file 12 // TODO: Maybe read these from a config file
12 const 13 const
@@ -64,7 +65,7 @@ type
64 procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; 65 procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
65 procedure MouseMove(Shift: TShiftState; X, Y: Integer); override; 66 procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
66 procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; 67 procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
67 68 procedure DblClick; override;
68 procedure KeyDown(var Key: Word; Shift: TShiftState); override; 69 procedure KeyDown(var Key: Word; Shift: TShiftState); override;
69 private 70 private
70 procedure PerformPaste(Paste: TSelection); 71 procedure PerformPaste(Paste: TSelection);
@@ -324,6 +325,21 @@ begin
324 DigitInputting := False; 325 DigitInputting := False;
325 end; 326 end;
326 327
328 procedure TTrackerGrid.DblClick;
329 var
330 FXEditor: TfrmEffectEditor;
331 begin
332 inherited DblClick;
333
334 FXEditor := TfrmEffectEditor.Create(@Patterns[Cursor.X]^[Cursor.Y]);
335 try
336 FXEditor.ShowModal;
337 Invalidate;
338 finally
339 FXEditor.Free;
340 end;
341 end;
342
327 procedure TTrackerGrid.KeyDown(var Key: Word; Shift: TShiftState); 343 procedure TTrackerGrid.KeyDown(var Key: Word; Shift: TShiftState);
328 begin 344 begin
329 inherited KeyDown(Key, Shift); 345 inherited KeyDown(Key, Shift);