ft2-clone

Fasttracker 2 clone
Log | Files | Refs | README | LICENSE

ft2_checkboxes.h (2294B)


      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 	// SAMPLE EDITOR EFFECTS
     46 	CB_SAMPFX_NORMALIZATION,
     47 
     48 	// TRIM
     49 	CB_TRIM_PATT,
     50 	CB_TRIM_INST,
     51 	CB_TRIM_SAMP,
     52 	CB_TRIM_CHAN,
     53 	CB_TRIM_SMPD,
     54 	CB_TRIM_CONV,
     55 
     56 	// CONFIG
     57 	CB_CONF_AUTOSAVE,
     58 
     59 	// CONFIG AUDIO
     60 	CB_CONF_VOL_RAMP,
     61 
     62 	// CONFIG LAYOUT
     63 	CB_CONF_PATTSTRETCH,
     64 	CB_CONF_HEXCOUNT,
     65 	CB_CONF_ACCIDENTAL,
     66 	CB_CONF_SHOWZEROES,
     67 	CB_CONF_FRAMEWORK,
     68 	CB_CONF_LINECOLORS,
     69 	CB_CONF_CHANNUMS,
     70 	CB_CONF_SHOW_VOLCOL,
     71 	CB_CONF_ENABLE_CUSTOM_POINTER,
     72 	CB_CONF_SOFTWARE_MOUSE,
     73 
     74 	// CONFIG MISCELLANEOUS
     75 	CB_CONF_SAMP_CUT_TO_BUF,
     76 	CB_CONF_PATT_CUT_TO_BUF,
     77 	CB_CONF_KILL_NOTES_AT_STOP,
     78 	CB_CONF_FILE_OVERWRITE_WARN,
     79 	CB_CONF_MULTICHAN_REC,
     80 	CB_CONF_MULTICHAN_JAZZ,
     81 	CB_CONF_MULTICHAN_EDIT,
     82 	CB_CONF_REC_KEYOFF,
     83 	CB_CONF_QUANTIZATION,
     84 	CB_CONF_CHANGE_PATTLEN_INS_DEL,
     85 	CB_CONF_USE_OLD_ABOUT_SCREEN,
     86 	CB_CONF_MIDI_ENABLE,
     87 	CB_CONF_MIDI_REC_ALL,
     88 	CB_CONF_MIDI_REC_TRANS,
     89 	CB_CONF_MIDI_REC_VELOC,
     90 	CB_CONF_MIDI_REC_AFTERTOUCH,
     91 	CB_CONF_FORCE_VSYNC_OFF,
     92 	CB_CONF_START_IN_FULLSCREEN,
     93 	CB_CONF_STRETCH_IMAGE,
     94 	CB_CONF_PIXEL_FILTER,
     95 
     96 	CB_WAV_BPM_MODE,
     97 
     98 	NUM_CHECKBOXES
     99 };
    100 
    101 enum
    102 {
    103 	CHECKBOX_UNPRESSED = 0,
    104 	CHECKBOX_PRESSED = 1,
    105 	CHECKBOX_UNCHECKED = 0,
    106 	CHECKBOX_CHECKED = 1
    107 };
    108 
    109 #define CHECKBOX_W 13
    110 #define CHECKBOX_H 12
    111 
    112 typedef struct checkBox_t // DO NOT TOUCH!
    113 {
    114 	uint16_t x, y, clickAreaWidth, clickAreaHeight;
    115 	void (*callbackFunc)(void);
    116 	uint8_t state;
    117 	bool checked, visible;
    118 } checkBox_t;
    119 
    120 void drawCheckBox(uint16_t checkBoxID);
    121 void showCheckBox(uint16_t checkBoxID);
    122 void hideCheckBox(uint16_t checkBoxID);
    123 void handleCheckBoxesWhileMouseDown(void);
    124 bool testCheckBoxMouseDown(void);
    125 void testCheckBoxMouseRelease(void);