ref: 28e1bab1f15ab3c2daff639b3962985fbd4bc240
dir: /src/pt2_mouse.h/
#pragma once #include <stdint.h> #include <stdbool.h> #include <SDL2/SDL.h> // taken from the ptplay project and modified enum ptbuttons { PTB_DUMMY, // ALL SCREENS PTB_SONGNAME, PTB_SAMPLENAME, PTB_LOADSAMPLE, // ASK DIALOG PTB_SUREY, PTB_SUREN, // PAT2SMP ASK DIALOG PTB_PAT2SMP_HI, PTB_PAT2SMP_LO, PTB_PAT2SMP_ABORT, // POS ED. SCREEN PTB_PE_BADGE, PTB_PE_PATT, PTB_PE_SCROLLTOP, PTB_PE_SCROLLUP, PTB_PE_EXIT, PTB_PE_SCROLLDOWN, PTB_PE_SCROLLBOT, // EDIT OP. SCREEN PTB_EO_TITLEBAR, PTB_EO_1, PTB_EO_2, PTB_EO_3, PTB_EO_EXIT, // EDIT OP. SCREEN #1 PTB_EO_TRACK_NOTE_UP, PTB_EO_PATT_NOTE_UP, PTB_EO_TRACK_NOTE_DOWN, PTB_EO_PATT_NOTE_DOWN, PTB_EO_TRACK_OCTA_UP, PTB_EO_PATT_OCTA_UP, PTB_EO_TRACK_OCTA_DOWN, PTB_EO_PATT_OCTA_DOWN, // EDIT OP. SCREEN #2 PTB_EO_RECORD, PTB_EO_DELETE, PTB_EO_KILL, PTB_EO_QUANTIZE, PTB_EO_EXCHGE, PTB_EO_COPY, PTB_EO_METRO_1, PTB_EO_METRO_2, PTB_EO_FROM, PTB_EO_FROM_NUM, PTB_EO_FROM_UP, PTB_EO_FROM_DOWN, PTB_EO_KEYS, PTB_EO_TO, PTB_EO_TO_NUM, PTB_EO_TO_UP, PTB_EO_TO_DOWN, // EDIT OP. SCREEN #3 PTB_EO_MIX, PTB_EO_ECHO, PTB_EO_POS, PTB_EO_POS_NUM, PTB_EO_POS_UP, PTB_EO_POS_DOWN, PTB_EO_BOOST, PTB_EO_FILTER, PTB_EO_MOD, PTB_EO_MOD_NUM, PTB_EO_MOD_UP, PTB_EO_MOD_DOWN, PTB_EO_X_FADE, PTB_EO_BACKWD, PTB_EO_CB, PTB_EO_CHORD, PTB_EO_FU, PTB_EO_FD, PTB_EO_UPSAMP, PTB_EO_DNSAMP, PTB_EO_VOL, PTB_EO_VOL_NUM, PTB_EO_VOL_UP, PTB_EO_VOL_DOWN, // EDIT OP. SCREEN #4 PTB_EO_DOCHORD, PTB_EO_MAJOR, PTB_EO_MAJOR7, PTB_EO_NOTE1, PTB_EO_NOTE1_UP, PTB_EO_NOTE1_DOWN, PTB_EO_RESET, PTB_EO_MINOR, PTB_EO_MINOR7, PTB_EO_NOTE2, PTB_EO_NOTE2_UP, PTB_EO_NOTE2_DOWN, PTB_EO_UNDO, PTB_EO_SUS4, PTB_EO_MAJOR6, PTB_EO_NOTE3, PTB_EO_NOTE3_UP, PTB_EO_NOTE3_DOWN, PTB_EO_LENGTH, PTB_EO_MINOR6, PTB_EO_NOTE4, PTB_EO_NOTE4_UP, PTB_EO_NOTE4_DOWN, // DISK OP. SCREEN PTB_DO_PACKMOD, PTB_DO_MODARROW, PTB_DO_LOADMODULE, PTB_DO_SAVEMODULE, PTB_DO_SAMPLEFORMAT, PTB_DO_SAMPLEARROW, PTB_DO_LOADSAMPLE, PTB_DO_SAVESAMPLE, PTB_DO_DATAPATH, PTB_DO_PARENT, PTB_DO_REFRESH, PTB_DO_SCROLLTOP, PTB_DO_SCROLLUP, PTB_DO_EXIT, PTB_DO_SCROLLDOWN, PTB_DO_SCROLLBOT, PTB_DO_FILEAREA, // CLEAR PTB_CLEARSONG, PTB_CLEARSAMPLES, PTB_CLEARALL, PTB_CLEARCANCEL, // MAIN SCREEN PTB_QUIT, PTB_PLAY, PTB_PATTERN, PTB_EDIT, PTB_RECORD, PTB_STOP, PTB_CLEAR, PTB_EDITOP, PTB_DISKOP, PTB_MOD2WAV, PTB_POSED, PTB_PAT2SMP, PTB_SAMPLER, PTB_CHAN1, PTB_CHAN2, PTB_CHAN3, PTB_CHAN4, PTB_ABOUT, PTB_POSS, PTB_POSU, PTB_POSD, PTB_PATTERNS, PTB_PATTERNU, PTB_PATTERND, PTB_LENGTHS, PTB_LENGTHU, PTB_LENGTHD, PTB_FTUNEU, PTB_FTUNED, PTB_SAMPLES, PTB_SAMPLEU, PTB_SAMPLED, PTB_SVOLUMES, PTB_SVOLUMEU, PTB_SVOLUMED, PTB_SLENGTHS, PTB_SLENGTHU, PTB_SLENGTHD, PTB_SREPEATS, PTB_SREPEATU, PTB_SREPEATD, PTB_SREPLENS, PTB_SREPLENU, PTB_SREPLEND, PTB_TEMPOU, PTB_TEMPOD, PTB_POS, PTB_POSINS, PTB_POSDEL, PTB_VISUALS, PTB_PATTBOX, PTB_PATTDATA, // SAMPLER SCREEN PTB_SA_EXIT, PTB_SA_PLAYWAVE, PTB_SA_SHOWRANGE, PTB_SA_ZOOMOUT, PTB_SA_STOP, PTB_SA_PLAYDISPLAY, PTB_SA_SHOWALL, PTB_SA_RANGEALL, PTB_SA_LOOP, PTB_SA_PLAYRANGE, PTB_SA_RANGECENTER, PTB_SA_RANGEBEG, PTB_SA_RANGEEND, PTB_SA_CUT, PTB_SA_COPY, PTB_SA_PASTE, PTB_SA_VOLUME, PTB_SA_TUNETONE, PTB_SA_FIXDC, PTB_SA_FILTERS, PTB_SA_SAMPLE, PTB_SA_RESAMPLE, PTB_SA_RESAMPLENOTE, PTB_SA_SAMPLEAREA, PTB_SA_ZOOMBARAREA, PTB_SA_VOL_FROM_NUM, PTB_SA_VOL_TO_NUM, PTB_SA_FIL_LP_CUTOFF, PTB_SA_FIL_HP_CUTOFF }; typedef struct guiButton_t { int32_t x1, y1, x2, y2, b; } guiButton_t; enum { POINTER_W = 16, POINTER_H = 16, POINTER_MODE_IDLE = 0, POINTER_MODE_EDIT = 1, POINTER_MODE_PLAY = 2, POINTER_MODE_MSG1 = 3, POINTER_MODE_RECORD = 4, POINTER_MODE_MSG2 = 5, POINTER_GRAY = 0, POINTER_YELLOW = 1, POINTER_BLUE = 2, POINTER_PURPLE = 3, POINTER_GREEN = 4, POINTER_RED = 5 }; #define NUM_CURSORS 6 extern SDL_Cursor *cursors[NUM_CURSORS]; void setMsgPointer(void); void setErrPointer(void); void pointerSetMode(uint8_t pointerMode, bool carry); void pointerResetThreadSafe(void); // used for effect F00 in replayer (stop song) void pointerSetPreviousMode(void); bool setSystemCursor(SDL_Cursor *cur); void freeMouseCursors(void); bool createMouseCursors(void); void readMouseXY(void); void updateMouseScaling(void); void mouseWheelUpHandler(void); void mouseWheelDownHandler(void); void mouseButtonUpHandler(uint8_t mouseButton); void mouseButtonDownHandler(uint8_t mouseButton); void handleGUIButtonRepeat(void); void updateMouseCounters(void);