forked from stuerp/foo_vis_spectrum_analyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLayout.h
More file actions
1672 lines (1369 loc) · 36.3 KB
/
Layout.h
File metadata and controls
1672 lines (1369 loc) · 36.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/** $VER: Layout.h (2024.08.18) P. Stuer - Defines the layout of the configuration dialog. **/
#pragma once
#define H_LBL 8 // Label
#define W_BTN 50 // Button
#define H_BTN 14 // Button
#define H_TBX 14 // Edit box
#define H_CBX 14 // Combo box
#define W_CHB 10 // Check box
#define H_CHB 10 // Check box
#define W_A00 442 // Dialog width (in dialog units)
#define H_A00 309 // Dialog height (in dialog units)
#define DX 7
#define DY 7
#define IX 4 // Spacing between two related controls
#define IY 4
#define W_D01 60
#define H_D01 H_A00 - DY - DY
#define X_D01 DX
#define Y_D01 DY
/** Page: Transform **/
#pragma region Transform
// Groupbox
#define X_B05 X_D01 + W_D01 + IX
#define Y_B05 Y_D01
#pragma region Method
// Label
#define W_A62 64
#define H_A62 H_LBL
#define X_A62 X_B05 + 5
#define Y_A62 Y_B05 + 11
// Combobox
#define W_A63 82
#define H_A63 H_CBX
#define X_A63 X_A62 + W_A62 + IX
#define Y_A63 Y_A62
#pragma endregion
#pragma region Window Function
// Label: Window function
#define W_C01 64
#define H_C01 H_LBL
#define X_C01 X_A62
#define Y_C01 Y_A63 + H_A63 + IY
// Combobox: Window function
#define W_C02 82
#define H_C02 H_CBX
#define X_C02 X_C01 + W_C01 + IX
#define Y_C02 Y_C01
// Label: Window parameter
#define W_C03 64
#define H_C03 H_LBL
#define X_C03 X_C01
#define Y_C03 Y_C02 + H_C02 + IY
// Textbox: Window parameter
#define W_C04 30
#define H_C04 H_CBX
#define X_C04 X_C03 + W_C03 + IX
#define Y_C04 Y_C03
// Label: Window Skew
#define W_C05 64
#define H_C05 H_LBL
#define X_C05 X_C03
#define Y_C05 Y_C04 + H_C04 + IY
// Textbox: Window Skew
#define W_C06 30
#define H_C06 H_CBX
#define X_C06 X_C05 + W_C05 + IX
#define Y_C06 Y_C05
#pragma endregion
// Label: Reaction Alignment
#define W_C07 64
#define H_C07 H_LBL
#define X_C07 X_C05
#define Y_C07 Y_C06 + H_C06 + IY
// Textbox: Reaction Alignment
#define W_C08 30
#define H_C08 H_CBX
#define X_C08 X_C07 + W_C07 + IX
#define Y_C08 Y_C07
#pragma region Channels
// Button
#define W_A88 82
#define H_A88 H_BTN
#define X_A88 X_C08
#define Y_A88 Y_C08 + H_C08 + IY
#pragma endregion
#define W_B05 178
#define H_B05 11 + H_A63 + IY + H_C02 + IY + H_C04 + IY + H_C06 + IY + H_C08 + IY + H_A88 + 7
#pragma endregion
#pragma region FFT
// Groupbox
#define X_B00 X_B05
#define Y_B00 Y_B05 + H_B05 + IY
#pragma region Size
// Label
#define W_A03 64
#define H_A03 H_LBL
#define X_A03 X_B00 + 5
#define Y_A03 Y_B00 + 11
// Combobox
#define W_A04 82
#define H_A04 H_CBX
#define X_A04 X_A03 + W_A03 + IX
#define Y_A04 Y_A03
#pragma endregion
#pragma region Size Parameter
// Label
#define W_A61 64
#define H_A61 H_LBL
#define X_A61 X_A03
#define Y_A61 Y_A04 + H_A04 + IY
// Textbox
#define W_A59 30
#define H_A59 H_TBX
#define X_A59 X_A61 + W_A61 + IY
#define Y_A59 Y_A61
// Label
#define W_A60 42
#define H_A60 H_LBL
#define X_A60 X_A59 + W_A59 + IX
#define Y_A60 Y_A59
#pragma endregion
#pragma region Summation Method
// Label
#define W_A15 64
#define H_A15 H_LBL
#define X_A15 X_A03
#define Y_A15 Y_A59 + H_A59 + IY
// Combobox
#define W_A16 100
#define H_A16 H_CBX
#define X_A16 X_A15 + W_A15 + IX
#define Y_A16 Y_A15
#pragma endregion
#pragma region Mapping
// Label
#define W_A65 64
#define H_A65 H_LBL
#define X_A65 X_A15
#define Y_A65 Y_A16 + H_A16 + IY
// Combobox
#define W_A66 100
#define H_A66 H_CBX
#define X_A66 X_A65 + W_A65 + IX
#define Y_A66 Y_A65
#pragma endregion
#pragma region Smooth lower frequencies
// Checkbox
#define W_A43 100
#define H_A43 H_CHB
#define X_A43 X_A66
#define Y_A43 Y_A66 + H_A66 + IY
#pragma endregion
#pragma region Smooth gain transition
// Checkbox
#define W_A44 100
#define H_A44 H_CHB
#define X_A44 X_A43
#define Y_A44 Y_A43 + H_A43 + IY
#pragma endregion
#pragma region Lanczos Kernel
// Label
#define W_A39 64
#define H_A39 H_LBL
#define X_A39 X_A15
#define Y_A39 Y_A44 + H_A44 + IY
// Textbox
#define W_A40 30
#define H_A40 H_TBX
#define X_A40 X_A39 + W_A39 + IX
#define Y_A40 Y_A39
#pragma endregion
#define W_B00 W_B05
#define H_B00 11 + H_A04 + IY + H_A59 + IY + H_A16 + IY + H_A43 + IY + H_A66 + IY + H_A44 + IY + H_A40 + 7
#pragma endregion
#pragma region Brown-Puckette CQT
// Groupbox
#define X_B10 X_B05 + W_B05 + IY
#define Y_B10 Y_B05
// Label: Bandwidth Offset
#define W_F04 78
#define H_F04 H_LBL
#define X_F04 X_B10 + 5
#define Y_F04 Y_B10 + 11
// Textbox
#define W_F05 30
#define H_F05 H_TBX
#define X_F05 X_F04 + W_F04 + IX
#define Y_F05 Y_F04
// Label: Bandwidth Cap
#define W_F06 78
#define H_F06 H_LBL
#define X_F06 X_F04
#define Y_F06 Y_F05 + H_F05 + IX
// Textbox
#define W_F07 30
#define H_F07 H_TBX
#define X_F07 X_F06 + W_F06 + IX
#define Y_F07 Y_F06
// Label: Bandwidth Amount
#define W_F08 78
#define H_F08 H_LBL
#define X_F08 X_F06
#define Y_F08 Y_F07 + H_F07 + IX
// Textbox
#define W_F09 30
#define H_F09 H_TBX
#define X_F09 X_F08 + W_F08 + IX
#define Y_F09 Y_F08
// Checkbox: Granular Bandwidth
#define W_F10 80
#define H_F10 H_LBL
#define X_F10 X_F09
#define Y_F10 Y_F09 + H_F09 + IX
// Label: Kernel Shape
#define W_A89 78
#define H_A89 H_LBL
#define X_A89 X_F08
#define Y_A89 Y_F10 + H_F10 + IY
// Combobox
#define W_A90 82
#define H_A90 H_CBX
#define X_A90 X_A89 + W_A89 + IX
#define Y_A90 Y_A89
// Label: Kernel Shape Parameter
#define W_A91 78
#define H_A91 H_LBL
#define X_A91 X_A89
#define Y_A91 Y_A90 + H_A90 + IY
// Textbox
#define W_A92 30
#define H_A92 H_CBX
#define X_A92 X_A91 + W_A91 + IX
#define Y_A92 Y_A91
// Label: Kernel Asymmetry
#define W_A93 78
#define H_A93 H_LBL
#define X_A93 X_A91
#define Y_A93 Y_A92 + H_A92 + IY
// Textbox
#define W_A94 30
#define H_A94 H_CBX
#define X_A94 X_A93 + W_A93 + IX
#define Y_A94 Y_A93
#define W_B10 W_B05
#define H_B10 11 + H_F05 + IY + H_F07 + IY + H_F09 + IY + H_F10 + IY + H_A90 + IY + H_A92 + IY + H_A94 + 7
#pragma endregion
#pragma region IIR
// Groupbox
#define X_B11 X_B10
#define Y_B11 Y_B10 + H_B10 + IY
// Label: Filter bank order
#define W_F11 78
#define H_F11 H_LBL
#define X_F11 X_B11 + 5
#define Y_F11 Y_B11 + 11
// Textbox
#define W_F12 30
#define H_F12 H_TBX
#define X_F12 X_F11 + W_F11 + IX
#define Y_F12 Y_F11
// Label: Time resolution
#define W_F13 78
#define H_F13 H_LBL
#define X_F13 X_F11
#define Y_F13 Y_F12 + H_F12 + IY
// Textbox
#define W_F14 30
#define H_F14 H_TBX
#define X_F14 X_F13 + W_F13 + IX
#define Y_F14 Y_F13
// Label: Bandwidth
#define W_F15 78
#define H_F15 H_LBL
#define X_F15 X_F13
#define Y_F15 Y_F14 + H_F14 + IY
// Textbox
#define W_F16 30
#define H_F16 H_TBX
#define X_F16 X_F15 + W_F15 + IX
#define Y_F16 Y_F15
// Checkbox: Constant-Q
#define W_F17 100
#define H_F17 H_CBX
#define X_F17 X_F15
#define Y_F17 Y_F16 + H_F16 + IY
// Checkbox: Compensate bandwidth
#define W_F18 100
#define H_F18 H_CBX
#define X_F18 X_F17
#define Y_F18 Y_F17 + H_F17 + IY
// Checkbox: Use prewarped Q
#define W_F19 100
#define H_F19 H_CBX
#define X_F19 X_F18
#define Y_F19 Y_F18 + H_F18 + IY
#define W_B11 W_B10
#define H_B11 11 + H_F12 + IY + H_F14 + IY + H_F16 + IY + H_F17 + IY + H_F18 + IY + H_F19 + 7
#pragma endregion
/** Page: Frequencies **/
#pragma region Frequencies
// Groupbox
#define X_B01 X_D01 + W_D01 + IX
#define Y_B01 Y_D01
#pragma region Distribution
// Label
#define W_A01 60
#define H_A01 H_LBL
#define X_A01 X_B01 + 5
#define Y_A01 Y_B01 + 11
// Combobox
#define W_A02 60
#define H_A02 H_CBX
#define X_A02 X_A01 + W_A01 + IX
#define Y_A02 Y_A01
#pragma endregion
#pragma region Number of Bands
// Label
#define W_A19 60
#define H_A19 H_LBL
#define X_A19 X_A01
#define Y_A19 Y_A02 + H_A02 + IX
// Textbox
#define W_A20 40
#define H_A20 H_TBX
#define X_A20 X_A19 + W_A19 + IX
#define Y_A20 Y_A19
#pragma endregion
#pragma region Frequencies: [Lo] - [Hi] Hz
// Label
#define W_A21 60
#define H_A21 H_LBL
#define X_A21 X_A19
#define Y_A21 Y_A20 + H_A20 + IY
// Textbox (Lo)
#define W_A22 46
#define H_A22 H_TBX
#define X_A22 X_A21 + W_A21 + IX
#define Y_A22 Y_A21
// Label
#define W_A23 2
#define H_A23 H_LBL
#define X_A23 X_A22 + W_A22 + IX
#define Y_A23 Y_A22
// Textbox (Hi)
#define W_A24 46
#define H_A24 H_TBX
#define X_A24 X_A23 + W_A23 + IX
#define Y_A24 Y_A23
// Label (Hz)
#define W_A24b 8
#define H_A24b H_LBL
#define X_A24b X_A24 + W_A24 + IX
#define Y_A24b Y_A24
#pragma endregion
#pragma region Note range: [Lo] - [Hi]
// Label
#define W_A25 60
#define H_A25 H_LBL
#define X_A25 X_A21
#define Y_A25 Y_A24 + H_A24 + IY
// Textbox (Lo)
#define W_A26 36
#define H_A26 H_TBX
#define X_A26 X_A25 + W_A25 + IX
#define Y_A26 Y_A25
// Label
#define W_A27 2
#define H_A27 H_LBL
#define X_A27 X_A26 + W_A26 + IX
#define Y_A27 Y_A26
// Textbox (Hi)
#define W_A28 36
#define H_A28 H_TBX
#define X_A28 X_A27 + W_A27 + IX
#define Y_A28 Y_A27
#pragma endregion
#pragma region Bands per octave
// Label
#define W_A55 60
#define H_A55 H_LBL
#define X_A55 X_A25
#define Y_A55 Y_A28 + H_A28 + IY
// Textbox
#define W_A56 30
#define H_A56 H_TBX
#define X_A56 X_A55 + W_A55 + IX
#define Y_A56 Y_A55
#pragma endregion
#pragma region Pitch
// Label
#define W_A29 60
#define H_A29 H_LBL
#define X_A29 X_A55
#define Y_A29 Y_A56 + H_A56 + IY
// Textbox
#define W_A30 40
#define H_A30 H_TBX
#define X_A30 X_A29 + W_A29 + IX
#define Y_A30 Y_A29
// Label (Hz)
#define W_A64 8
#define H_A64 H_LBL
#define X_A64 X_A30 + W_A30 + IX
#define Y_A64 Y_A30
#pragma endregion
#pragma region Transpose
// Label
#define W_A31 60
#define H_A31 H_LBL
#define X_A31 X_A29
#define Y_A31 Y_A30 + H_A30 + IY
// Textbox
#define W_A32 30
#define H_A32 H_TBX
#define X_A32 X_A31 + W_A31 + IX
#define Y_A32 Y_A31
#pragma endregion
#pragma region Scaling Function
// Label
#define W_A13 60
#define H_A13 H_LBL
#define X_A13 X_A31
#define Y_A13 Y_A32 + H_A32 + IY
// Combobox
#define W_A14 80
#define H_A14 H_CBX
#define X_A14 X_A13 + W_A13 + IX
#define Y_A14 Y_A13
#pragma endregion
#pragma region Skew Factor
// Label
#define W_A33 60
#define H_A33 H_LBL
#define X_A33 X_A13
#define Y_A33 Y_A14 + H_A14 + IY
// Textbox
#define W_A34 32
#define H_A34 H_TBX
#define X_A34 X_A33 + W_A33 + IX
#define Y_A34 Y_A33
#pragma endregion
#pragma region Bandwidth
// Label
#define W_A35 60
#define H_A35 H_LBL
#define X_A35 X_A33
#define Y_A35 Y_A34 + H_A34 + IY
// Textbox
#define W_A36 32
#define H_A36 H_TBX
#define X_A36 X_A35 + W_A35 + IX
#define Y_A36 Y_A35
#pragma endregion
#define W_B01 186
#define H_B01 11 + H_A02 + IY + H_A20 + IY + H_A22 + IY + H_A26 + IY + H_A56 + IY + H_A30 + IY + H_A32 + IY + H_A14 + IY + H_A34 + IY + H_A36 + 7
#pragma endregion
/** Page: Filters **/
#pragma region Filters
// Groupbox
#define X_B09 X_D01 + W_D01 + IX
#define Y_B09 Y_D01
#pragma region Acoustic Filter
// Label
#define W_H01 50
#define H_H01 H_LBL
#define X_H01 X_B09 + 5
#define Y_H01 Y_B09 + 11
// Combobox
#define W_H02 100
#define H_H02 H_CBX
#define X_H02 X_H01 + W_H01 + IX
#define Y_H02 Y_H01
#pragma endregion
#pragma region Slope Function Offset
// Label
#define W_H03 68
#define H_H03 H_LBL
#define X_H03 X_H01
#define Y_H03 Y_H02 + H_H02 + IY
// Textbox
#define W_H04 46
#define H_H04 H_TBX
#define X_H04 X_H03 + W_H03 + IX
#define Y_H04 Y_H03
#pragma endregion
#pragma region Slope
// Label
#define W_H05 68
#define H_H05 H_LBL
#define X_H05 X_H03
#define Y_H05 Y_H04 + H_H04 + IY
// Textbox
#define W_H06 46
#define H_H06 H_TBX
#define X_H06 X_H05 + W_H05 + IX
#define Y_H06 Y_H05
// Unit
#define W_H07 60
#define H_H07 H_LBL
#define X_H07 X_H06 + W_H06 + IX
#define Y_H07 Y_H06
#pragma endregion
#pragma region Slope Offset
// Label
#define W_H08 68
#define H_H08 H_LBL
#define X_H08 X_H05
#define Y_H08 Y_H06 + H_H06 + IY
// Textbox
#define W_H09 46
#define H_H09 H_TBX
#define X_H09 X_H08 + W_H08 + IX
#define Y_H09 Y_H08
// Unit
#define W_H10 20
#define H_H10 H_LBL
#define X_H10 X_H09 + W_H09 + IX
#define Y_H10 Y_H09
#pragma endregion
#pragma region Equalize Amount
// Label
#define W_H11 68
#define H_H11 H_LBL
#define X_H11 X_H08
#define Y_H11 Y_H09 + H_H09 + IY
// Textbox
#define W_H12 46
#define H_H12 H_TBX
#define X_H12 X_H11 + W_H11 + IX
#define Y_H12 Y_H11
#pragma endregion
#pragma region Equalize Offset
// Label
#define W_H13 68
#define H_H13 H_LBL
#define X_H13 X_H11
#define Y_H13 Y_H12 + H_H12 + IY
// Textbox
#define W_H14 46
#define H_H14 H_TBX
#define X_H14 X_H13 + W_H13 + IX
#define Y_H14 Y_H13
// Unit
#define W_H15 20
#define H_H15 H_LBL
#define X_H15 X_H14 + W_H14 + IX
#define Y_H15 Y_H14
#pragma endregion
#pragma region Equalize Depth
// Label
#define W_H16 68
#define H_H16 H_LBL
#define X_H16 X_H13
#define Y_H16 Y_H14 + H_H14 + IY
// Textbox
#define W_H17 46
#define H_H17 H_TBX
#define X_H17 X_H16 + W_H16 + IX
#define Y_H17 Y_H16
// Unit
#define W_H18 20
#define H_H18 H_LBL
#define X_H18 X_H17 + W_H17 + IX
#define Y_H18 Y_H17
#pragma endregion
#pragma region Weight Amount
// Label
#define W_H19 68
#define H_H19 H_LBL
#define X_H19 X_H16
#define Y_H19 Y_H17 + H_H17 + IY
// Textbox
#define W_H20 46
#define H_H20 H_TBX
#define X_H20 X_H19 + W_H19 + IX
#define Y_H20 Y_H19
#pragma endregion
#define W_B09 W_B01
#define H_B09 11 + H_H02 + IY + H_H04 + IY + H_H06 + IY + H_H09 + IY + H_H12 + IY + H_H14 + IY + H_H17 + IY + H_H20 + 7
#pragma endregion
/** Page: Common **/
#pragma region Common
// Groupbox
#define X_B04 X_D01 + W_D01 + IX
#define Y_B04 Y_D01
#pragma region Smoothing Method
// Label
#define W_A17 66
#define H_A17 H_LBL
#define X_A17 X_B04 + 5
#define Y_A17 Y_B04 + 11
// Combobox
#define W_A18 60
#define H_A18 H_CBX
#define X_A18 X_A17 + W_A17 + IX
#define Y_A18 Y_A17
#pragma endregion
#pragma region Smoothing Factor
// Label
#define W_A37 66
#define H_A37 H_LBL
#define X_A37 X_A17
#define Y_A37 Y_A18 + H_A18 + IY
// Textbox
#define W_A38 30
#define H_A38 H_TBX
#define X_A38 X_A37 + W_A37 + IX
#define Y_A38 Y_A37
#pragma endregion
#pragma region Tool tips
// Checkbox
#define W_A87 90
#define H_A87 H_CHB
#define X_A87 X_A38
#define Y_A87 Y_A38 + H_A38 + IY
#pragma endregion
#pragma region Suppress mirror image
// Checkbox
#define W_G19 90
#define H_G19 H_CHB
#define X_G19 X_A87
#define Y_G19 Y_A87 + H_A87 + IY
#pragma endregion
#define W_B04 184
#define H_B04 11 + H_A18 + IY + H_A38 + IY + H_A87 + IY + H_G19 + 7
#pragma endregion
#pragma region Artwork
// Groupbox
#define X_B06 X_B04
#define Y_B06 Y_B04 + H_B04 + IY
#pragma region Artwork Colors
// Label
#define W_G06 66
#define H_G06 H_LBL
#define X_G06 X_B06 + 5
#define Y_G06 Y_B06 + 11
// Textbox
#define W_G07 30
#define H_G07 H_TBX
#define X_G07 X_G06 + W_G06 + IX
#define Y_G07 Y_G06
#pragma endregion
#pragma region Lightness Threshold
// Label
#define W_G08 66
#define H_G08 H_LBL
#define X_G08 X_G06
#define Y_G08 Y_G07 + H_G07 + IY
// Textbox
#define W_G09 30
#define H_G09 H_TBX
#define X_G09 X_G08 + W_G08 + IX
#define Y_G09 Y_G08
// Label
#define W_G10 10
#define H_G10 H_LBL
#define X_G10 X_G09 + W_G09 + IX
#define Y_G10 Y_G08
#pragma endregion
#pragma region Color Order
// Label
#define W_G11 66
#define H_G11 H_LBL
#define X_G11 X_G08
#define Y_G11 Y_G09 + H_G09 + IY
// Combobox
#define W_G12 86
#define H_G12 H_CBX
#define X_G12 X_G11 + W_G11 + IX
#define Y_G12 Y_G11
#pragma endregion
// Checkbox: Show artwork on background
#define W_G02 160
#define H_G02 H_CHB
#define X_G02 X_B06 + 5
#define Y_G02 Y_G12 + H_G12 + IY
#pragma region Fit mode
// Label: Fit mode
#define W_G30 66
#define H_G30 H_LBL
#define X_G30 X_G02
#define Y_G30 Y_G02 + H_G02 + IY
// Combobox: Fit mode
#define W_G31 86
#define H_G31 H_CBX
#define X_G31 X_G30 + W_G30 + IX
#define Y_G31 Y_G30
// Checkbox: Fit window
#define W_G32 60
#define H_G32 H_CHB
#define X_G32 X_G31
#define Y_G32 Y_G31 + H_G31 + IY
#pragma endregion
#pragma region Artwork Opacity
// Label
#define W_G03 66
#define H_G03 H_LBL
#define X_G03 X_G30
#define Y_G03 Y_G32 + H_G32 + IY
// Textbox
#define W_G04 30
#define H_G04 H_TBX
#define X_G04 X_G03 + W_G03 + IX
#define Y_G04 Y_G03
// Label: Unit
#define W_G05 10
#define H_G05 H_LBL
#define X_G05 X_G04 + W_G04 + IX
#define Y_G05 Y_G03
#pragma endregion
#pragma region Script
// Label
#define W_G13 66
#define H_G13 H_LBL
#define X_G13 X_G03
#define Y_G13 Y_G04 + H_G04 + IY
// Textbox
#define W_G14 100
#define H_G14 H_TBX
#define X_G14 X_G13 + W_G13 + IX
#define Y_G14 Y_G13
#pragma endregion
#define W_B06 184
#define H_B06 11 + H_G07 + IY + H_G09 + IY + H_G12 + IY + H_G02 + IY + H_G31 + IY + H_G32 + IY + H_G04 + IY + H_G14 + 7
#pragma endregion
/** Page: Graphs **/
#pragma region Graphs
// ListBox: Graphs Settings
#define W_G20 70
#define H_G20 160
#define X_G20 X_D01 + W_D01 + IX
#define Y_G20 Y_D01
// Button: Add
#define W_G21 20
#define H_G21 H_BTN
#define X_G21 X_G20 + W_G20 + IX
#define Y_G21 Y_G20
// Button: Remove
#define W_G22 20
#define H_G22 H_BTN
#define X_G22 X_G21
#define Y_G22 Y_G21 + H_G21 + IY
// Checkbox: Vertical Layout
#define W_G23 70
#define H_G23 H_CHB
#define X_G23 X_G20
#define Y_G23 Y_G20 + H_G20 + IY
// Label: Description
#define W_G24 38
#define H_G24 H_LBL
#define X_G24 X_G21 + W_G21 + IX
#define Y_G24 Y_G21
// Editbox: Description
#define W_G25 80
#define H_G25 H_TBX
#define X_G25 X_G24 + W_G24 + IX
#define Y_G25 Y_G24
#pragma region Layout
// Groupbox
#define X_B16 X_G24
#define Y_B16 Y_G25 + H_G25 + IY
// Label: Horizontal Alignment
#define W_G33 66
#define H_G33 H_LBL
#define X_G33 X_B16 + 5
#define Y_G33 Y_B16 + 11
// Combobox: Horizontal Alignment
#define W_G34 82
#define H_G34 H_CBX
#define X_G34 X_G33 + W_G33 + IX
#define Y_G34 Y_G33
// Label: Vertical Alignment
#define W_G35 66
#define H_G35 H_LBL
#define X_G35 X_G33
#define Y_G35 Y_G34 + H_G34 + IY
// Combobox: Vertical Alignment
#define W_G36 82
#define H_G36 H_CBX
#define X_G36 X_G35 + W_G35 + IX
#define Y_G36 Y_G35
// Checkbox: Flip horizontally
#define W_G26 80
#define H_G26 H_CHB
#define X_G26 X_G33
#define Y_G26 Y_G34 + H_G34 + IY
// Checkbox: Flip vertically
#define W_G27 80
#define H_G27 H_CHB
#define X_G27 X_G26 + W_G26 + IX
#define Y_G27 Y_G26
#define W_B16 170
#define H_B16 11 + H_G34 + IY + H_G26 + 7
#pragma endregion
#pragma region X axis
// Groupbox
#define X_B02 X_B16
#define Y_B02 Y_B16 + H_B16 + IY
#pragma region X axis
// Label
#define W_A05 66
#define H_A05 H_LBL
#define X_A05 X_B02 + 5
#define Y_A05 Y_B02 + 11
// Combobox
#define W_A06 82
#define H_A06 H_CBX
#define X_A06 X_A05 + W_A05 + IX
#define Y_A06 Y_A05
// Checkbox: Top
#define W_G15 39
#define H_G15 H_CHB
#define X_G15 X_A06
#define Y_G15 Y_A06 + H_A06 + IY
// Checkbox: Bottom
#define W_G16 39
#define H_G16 H_CHB