ft2-clone

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

ft2_textboxes.h (1448B)


      1 #pragma once
      2 
      3 #include <stdint.h>
      4 #include <stdbool.h>
      5 #include <SDL2/SDL.h>
      6 
      7 enum // TEXTBOXES
      8 {
      9 	TB_RES_1, // reserved
     10 
     11 	TB_INST1,
     12 	TB_INST2,
     13 	TB_INST3,
     14 	TB_INST4,
     15 	TB_INST5,
     16 	TB_INST6,
     17 	TB_INST7,
     18 	TB_INST8,
     19 
     20 	TB_SAMP1,
     21 	TB_SAMP2,
     22 	TB_SAMP3,
     23 	TB_SAMP4,
     24 	TB_SAMP5,
     25 
     26 	TB_SONG_NAME,
     27 
     28 	TB_DISKOP_FILENAME,
     29 
     30 	TB_CONF_DEF_MODS_DIR,
     31 	TB_CONF_DEF_INSTRS_DIR,
     32 	TB_CONF_DEF_SAMPS_DIR,
     33 	TB_CONF_DEF_PATTS_DIR,
     34 	TB_CONF_DEF_TRACKS_DIR,
     35 
     36 	NUM_TEXTBOXES
     37 };
     38 
     39 #define TEXT_CURSOR_BLINK_RATE 6
     40 #define TEXT_SCROLL_VALUE 30
     41 
     42 enum
     43 {
     44 	TEXTBOX_NO_UPDATE = 0,
     45 	TEXTBOX_UPDATE = 1
     46 };
     47 
     48 typedef struct textBox_t // DO NOT TOUCH!
     49 {
     50 	uint16_t x, y, w;
     51 	uint8_t h, tx, ty;
     52 	uint16_t maxChars;
     53 	bool rightMouseButton, changeMouseCursor;
     54 
     55 	// these ones are changed at run time
     56 	char *textPtr;
     57 	bool visible;
     58 	uint8_t *renderBuf;
     59 	int16_t cursorPos;
     60 	uint16_t renderW, renderBufW, renderBufH;
     61 	int32_t bufOffset;
     62 } textBox_t;
     63 
     64 bool textIsMarked(void);
     65 void exitTextEditing(void);
     66 int16_t getTextCursorX(textBox_t *t);
     67 int16_t getTextCursorY(textBox_t *t);
     68 void drawTextBox(uint16_t textBoxID);
     69 void showTextBox(uint16_t textBoxID);
     70 void hideTextBox(uint16_t textBoxID);
     71 bool testTextBoxMouseDown(void);
     72 void updateTextBoxPointers(void);
     73 void setupInitialTextBoxPointers(void);
     74 void setTextCursorToEnd(textBox_t *t);
     75 void handleTextEditControl(SDL_Keycode keycode);
     76 void handleTextEditInputChar(char textChar);
     77 void handleTextBoxWhileMouseDown(void);
     78 void freeTextBoxes(void);