ref: 3e7b18472cba687a04f6cd9be66ad531ed24283c
dir: /src/ft2_scrollbars.h/
#pragma once
#include <stdint.h>
#include <stdbool.h>
enum // SCROLLBARS
{
// reserved
SB_RES_1,
SB_RES_2,
SB_RES_3,
SB_POS_ED,
SB_SAMPLE_LIST,
SB_CHAN_SCROLL,
SB_HELP_SCROLL,
SB_SAMP_SCROLL,
// Instrument Editor
SB_INST_VOL,
SB_INST_PAN,
SB_INST_FTUNE,
SB_INST_FADEOUT,
SB_INST_VIBSPEED,
SB_INST_VIBDEPTH,
SB_INST_VIBSWEEP,
// Instrument Editor Extension
SB_INST_EXT_MIDI_CH,
SB_INST_EXT_MIDI_PRG,
SB_INST_EXT_MIDI_BEND,
// Config I/O devices
SB_AUDIO_OUTPUT_SCROLL,
SB_AUDIO_INPUT_SCROLL,
SB_AMP_SCROLL,
SB_MASTERVOL_SCROLL,
// Config Layout
SB_PAL_R,
SB_PAL_G,
SB_PAL_B,
SB_PAL_CONTRAST,
// Config Miscellaneous
SB_MIDI_SENS,
#ifdef HAS_MIDI
// Config Midi
SB_MIDI_INPUT_SCROLL,
#endif
// Disk Op.
SB_DISKOP_LIST,
NUM_SCROLLBARS
};
enum
{
SCROLLBAR_UNPRESSED = 0,
SCROLLBAR_PRESSED = 1,
SCROLLBAR_HORIZONTAL = 0,
SCROLLBAR_VERTICAL = 1,
SCROLLBAR_THUMB_NOFLAT = 0,
SCROLLBAR_THUMB_FLAT = 1
};
typedef struct scrollBar_t // DO NOT TOUCH!
{
uint16_t x, y, w, h;
uint8_t type, thumbType;
void (*callbackFunc)(uint32_t pos);
bool visible;
uint8_t state;
uint32_t pos, page, end;
uint16_t thumbX, thumbY, thumbW, thumbH, realThumbLength;
} scrollBar_t;
void drawScrollBar(uint16_t scrollBarID);
void showScrollBar(uint16_t scrollBarID);
void hideScrollBar(uint16_t scrollBarID);
void scrollBarScrollUp(uint16_t scrollBarID, uint32_t amount);
void scrollBarScrollDown(uint16_t scrollBarID, uint32_t amount);
void scrollBarScrollLeft(uint16_t scrollBarID, uint32_t amount);
void scrollBarScrollRight(uint16_t scrollBarID, uint32_t amount);
void setScrollBarPos(uint16_t scrollBarID, uint32_t pos, bool triggerCallBack);
uint32_t getScrollBarPos(uint16_t scrollBarID);
void setScrollBarEnd(uint16_t scrollBarID, uint32_t end);
void setScrollBarPageLength(uint16_t scrollBarID, uint32_t pageLength);
bool testScrollBarMouseDown(void);
void testScrollBarMouseRelease(void);
void handleScrollBarsWhileMouseDown(void);
void initializeScrollBars(void);