ft2-clone

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

ft2_scrollbars.h (2023B)


      1 #pragma once
      2 
      3 #include <stdint.h>
      4 #include <stdbool.h>
      5 
      6 enum // SCROLLBARS
      7 {
      8 	// reserved
      9 	SB_RES_1,
     10 	SB_RES_2,
     11 	SB_RES_3,
     12 
     13 	SB_POS_ED,
     14 	SB_SAMPLE_LIST,
     15 	SB_CHAN_SCROLL,
     16 	SB_HELP_SCROLL,
     17 	SB_SAMP_SCROLL,
     18 
     19 	// Instrument Editor
     20 	SB_INST_VOL,
     21 	SB_INST_PAN,
     22 	SB_INST_FTUNE,
     23 	SB_INST_FADEOUT,
     24 	SB_INST_VIBSPEED,
     25 	SB_INST_VIBDEPTH,
     26 	SB_INST_VIBSWEEP,
     27 
     28 	// Instrument Editor Extension
     29 	SB_INST_EXT_MIDI_CH,
     30 	SB_INST_EXT_MIDI_PRG,
     31 	SB_INST_EXT_MIDI_BEND,
     32 
     33 	// Config Audio
     34 	SB_AUDIO_OUTPUT_SCROLL,
     35 	SB_AUDIO_INPUT_SCROLL,
     36 	SB_AMP_SCROLL,
     37 	SB_MASTERVOL_SCROLL,
     38 
     39 	// Config Layout
     40 	SB_PAL_R,
     41 	SB_PAL_G,
     42 	SB_PAL_B,
     43 	SB_PAL_CONTRAST,
     44 
     45 	// Config Miscellaneous
     46 	SB_MIDI_SENS,
     47 
     48 #ifdef HAS_MIDI
     49 	// Config MIDI input
     50 	SB_MIDI_INPUT_SCROLL,
     51 #endif
     52 
     53 	// Disk Op.
     54 	SB_DISKOP_LIST,
     55 
     56 	NUM_SCROLLBARS
     57 };
     58 
     59 enum
     60 {
     61 	SCROLLBAR_UNPRESSED = 0,
     62 	SCROLLBAR_PRESSED = 1,
     63 	SCROLLBAR_HORIZONTAL = 0,
     64 	SCROLLBAR_VERTICAL = 1,
     65 	SCROLLBAR_FIXED_THUMB_SIZE = 0,
     66 	SCROLLBAR_DYNAMIC_THUMB_SIZE = 1
     67 };
     68 
     69 typedef struct scrollBar_t // DO NOT TOUCH!
     70 {
     71 	uint16_t x, y, w, h;
     72 	uint8_t type, thumbType;
     73 	void (*callbackFunc)(uint32_t pos);
     74 
     75 	bool visible;
     76 	uint8_t state;
     77 	uint32_t pos, page, end;
     78 	uint16_t thumbX, thumbY, thumbW, thumbH, originalThumbSize;
     79 } scrollBar_t;
     80 
     81 void drawScrollBar(uint16_t scrollBarID);
     82 void showScrollBar(uint16_t scrollBarID);
     83 void hideScrollBar(uint16_t scrollBarID);
     84 void scrollBarScrollUp(uint16_t scrollBarID, uint32_t amount);
     85 void scrollBarScrollDown(uint16_t scrollBarID, uint32_t amount);
     86 void scrollBarScrollLeft(uint16_t scrollBarID, uint32_t amount);
     87 void scrollBarScrollRight(uint16_t scrollBarID, uint32_t amount);
     88 void setScrollBarPos(uint16_t scrollBarID, uint32_t pos, bool triggerCallBack);
     89 uint32_t getScrollBarPos(uint16_t scrollBarID);
     90 void setScrollBarEnd(uint16_t scrollBarID, uint32_t end);
     91 void setScrollBarPageLength(uint16_t scrollBarID, uint32_t pageLength);
     92 bool testScrollBarMouseDown(void);
     93 void testScrollBarMouseRelease(void);
     94 void handleScrollBarsWhileMouseDown(void);
     95 void initializeScrollBars(void);