1 #pragma once
2 
3 #include <stdint.h>
4 #include <stdbool.h>
5 
6 enum // CHECKBOXES
7 {
8 	CB_RES_1, // reserved
9 
10 	// NIBBLES
11 	CB_NIBBLES_SURROUND,
12 	CB_NIBBLES_GRID,
13 	CB_NIBBLES_WRAP,
14 
15 	// ADVANCED EDIT
16 	CB_ENABLE_MASKING,
17 	CB_COPY_MASK_0,
18 	CB_COPY_MASK_1,
19 	CB_COPY_MASK_2,
20 	CB_COPY_MASK_3,
21 	CB_COPY_MASK_4,
22 	CB_PASTE_MASK_0,
23 	CB_PASTE_MASK_1,
24 	CB_PASTE_MASK_2,
25 	CB_PASTE_MASK_3,
26 	CB_PASTE_MASK_4,
27 	CB_TRANSP_MASK_0,
28 	CB_TRANSP_MASK_1,
29 	CB_TRANSP_MASK_2,
30 	CB_TRANSP_MASK_3,
31 	CB_TRANSP_MASK_4,
32 
33 	// INSTRUMENT EDITOR
34 	CB_INST_VENV,
35 	CB_INST_VENV_SUS,
36 	CB_INST_VENV_LOOP,
37 	CB_INST_PENV,
38 	CB_INST_PENV_SUS,
39 	CB_INST_PENV_LOOP,
40 
41 	// INSTRUMENT EDITOR EXTENSION
42 	CB_INST_EXT_MIDI,
43 	CB_INST_EXT_MUTE,
44 
45 	// TRIM
46 	CB_TRIM_PATT,
47 	CB_TRIM_INST,
48 	CB_TRIM_SAMP,
49 	CB_TRIM_CHAN,
50 	CB_TRIM_SMPD,
51 	CB_TRIM_CONV,
52 
53 	// CONFIG
54 	CB_CONF_AUTOSAVE,
55 
56 	// CONFIG AUDIO
57 	CB_CONF_VOL_RAMP,
58 
59 	// CONFIG LAYOUT
60 	CB_CONF_PATTSTRETCH,
61 	CB_CONF_HEXCOUNT,
62 	CB_CONF_ACCIDENTAL,
63 	CB_CONF_SHOWZEROES,
64 	CB_CONF_FRAMEWORK,
65 	CB_CONF_LINECOLORS,
66 	CB_CONF_CHANNUMS,
67 	CB_CONF_SHOW_VOLCOL,
68 	CB_CONF_SOFTWARE_MOUSE,
69 
70 	// CONFIG MISCELLANEOUS
71 	CB_CONF_SAMP_CUT_TO_BUF,
72 	CB_CONF_PATT_CUT_TO_BUF,
73 	CB_CONF_KILL_NOTES_AT_STOP,
74 	CB_CONF_FILE_OVERWRITE_WARN,
75 	CB_CONF_MULTICHAN_REC,
76 	CB_CONF_MULTICHAN_JAZZ,
77 	CB_CONF_MULTICHAN_EDIT,
78 	CB_CONF_REC_KEYOFF,
79 	CB_CONF_QUANTIZATION,
80 	CB_CONF_CHANGE_PATTLEN_INS_DEL,
81 	CB_CONF_MIDI_ALLOW_PC,
82 	CB_CONF_MIDI_ENABLE,
83 	CB_CONF_MIDI_REC_ALL,
84 	CB_CONF_MIDI_REC_TRANS,
85 	CB_CONF_MIDI_REC_VELOC,
86 	CB_CONF_MIDI_REC_AFTERTOUCH,
87 	CB_CONF_FORCE_VSYNC_OFF,
88 	CB_CONF_START_IN_FULLSCREEN,
89 	CB_CONF_STRETCH_IMAGE,
90 	CB_CONF_PIXEL_FILTER,
91 
92 	NUM_CHECKBOXES
93 };
94 
95 enum
96 {
97 	CHECKBOX_UNPRESSED = 0,
98 	CHECKBOX_PRESSED = 1,
99 	CHECKBOX_UNCHECKED = 0,
100 	CHECKBOX_CHECKED = 1
101 };
102 
103 #define CHECKBOX_W 13
104 #define CHECKBOX_H 12
105 
106 typedef struct checkBox_t // DO NOT TOUCH!
107 {
108 	uint16_t x, y, clickAreaWidth, clickAreaHeight;
109 	void (*callbackFunc)(void);
110 	uint8_t state;
111 	bool checked, visible;
112 } checkBox_t;
113 
114 void drawCheckBox(uint16_t checkBoxID);
115 void showCheckBox(uint16_t checkBoxID);
116 void hideCheckBox(uint16_t checkBoxID);
117 void handleCheckBoxesWhileMouseDown(void);
118 bool testCheckBoxMouseDown(void);
119 void testCheckBoxMouseRelease(void);
120