ft2-clone

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

ft2_gui.h (5167B)


      1 #pragma once
      2 
      3 #include <stdint.h>
      4 #include <stdbool.h>
      5 #include "ft2_pushbuttons.h"
      6 #include "ft2_radiobuttons.h"
      7 #include "ft2_checkboxes.h"
      8 #include "ft2_scrollbars.h"
      9 #include "ft2_sysreqs.h"
     10 #include "ft2_textboxes.h"
     11 #include "ft2_palette.h"
     12 
     13 #define FONT1_CHAR_W 8
     14 #define FONT1_CHAR_H 10
     15 #define FONT1_WIDTH 1024
     16 #define FONT2_CHAR_W 16
     17 #define FONT2_CHAR_H 20
     18 #define FONT2_WIDTH 2048
     19 #define FONT3_CHAR_W 4
     20 #define FONT3_CHAR_H 7
     21 #define FONT3_WIDTH 172
     22 #define FONT4_CHAR_W 8
     23 #define FONT4_CHAR_H 8
     24 #define FONT4_WIDTH 624
     25 #define FONT5_CHAR_W 16
     26 #define FONT5_CHAR_H 8
     27 #define FONT5_WIDTH 624
     28 #define FONT6_CHAR_W 7
     29 #define FONT6_CHAR_H 8
     30 #define FONT6_WIDTH 112
     31 #define FONT7_CHAR_W 6
     32 #define FONT7_CHAR_H 7
     33 #define FONT7_WIDTH 140
     34 #define FONT8_WIDTH 80
     35 #define FONT8_CHAR_W 5
     36 #define FONT8_CHAR_H 7
     37 
     38 enum
     39 {
     40 	FRAMEWORK_TYPE1 = 0,
     41 	FRAMEWORK_TYPE2 = 1,
     42 
     43 	FONT_TYPE1 = 0,
     44 	FONT_TYPE2 = 1,
     45 	FONT_TYPE3 = 2,
     46 	FONT_TYPE4 = 3,
     47 	FONT_TYPE5 = 4,
     48 	FONT_TYPE6 = 5,
     49 	FONT_TYPE7 = 6,
     50 
     51 	OBJECT_ID_NONE = -1,
     52 
     53 	OBJECT_NONE = 0,
     54 	OBJECT_PUSHBUTTON = 1,
     55 	OBJECT_RADIOBUTTON = 2,
     56 	OBJECT_CHECKBOX = 3,
     57 	OBJECT_SCROLLBAR = 4,
     58 	OBJECT_TEXTBOX = 5,
     59 	OBJECT_INSTRSWITCH = 6,
     60 	OBJECT_PATTERNMARK = 7,
     61 	OBJECT_DISKOPLIST = 8,
     62 	OBJECT_SMPDATA = 9,
     63 	OBJECT_PIANO = 10,
     64 	OBJECT_INSVOLENV = 11,
     65 	OBJECT_INSPANENV = 12
     66 };
     67 
     68 extern pushButton_t pushButtons[NUM_PUSHBUTTONS];
     69 extern radioButton_t radioButtons[NUM_RADIOBUTTONS];
     70 extern checkBox_t checkBoxes[NUM_CHECKBOXES];
     71 extern scrollBar_t scrollBars[NUM_SCROLLBARS];
     72 extern textBox_t textBoxes[NUM_TEXTBOXES];
     73 
     74 void unstuckLastUsedGUIElement(void);
     75 bool setupGUI(void);
     76 
     77 void hLine(uint16_t x, uint16_t y, uint16_t width, uint8_t paletteIndex);
     78 void vLine(uint16_t x, uint16_t y, uint16_t h, uint8_t paletteIndex);
     79 void hLineDouble(uint16_t x, uint16_t y, uint16_t w, uint8_t paletteIndex);
     80 void vLineDouble(uint16_t x, uint16_t y, uint16_t h, uint8_t paletteIndex);
     81 void line(int16_t x1, int16_t x2, int16_t y1, int16_t y2, uint8_t paletteIndex);
     82 void clearRect(uint16_t xPos, uint16_t yPos, uint16_t w, uint16_t h);
     83 void fillRect(uint16_t xPos, uint16_t yPos, uint16_t w, uint16_t h, uint8_t paletteIndex);
     84 void drawFramework(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint8_t type);
     85 void blit32(uint16_t xPos, uint16_t yPos, const uint32_t *srcPtr, uint16_t w, uint16_t h);
     86 void blit(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h);
     87 void blitClipX(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h, uint16_t clipX);
     88 void blitFast(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h); // no transparency/colorkey
     89 void blitFastClipX(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h, uint16_t clipX); // no transparency/colorkey
     90 void hexOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint32_t val, uint8_t numDigits);
     91 void hexOutBg(uint16_t xPos, uint16_t yPos, uint8_t fgPalette, uint8_t bgPalette, uint32_t val, uint8_t numDigits);
     92 void hexOutShadow(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint8_t shadowPaletteIndex, uint32_t val, uint8_t numDigits);
     93 void textOutTiny(int32_t xPos, int32_t yPos, char *str, uint32_t color); // A..Z/a..z and 0..9
     94 void textOutTinyOutline(int32_t xPos, int32_t yPos, char *str); // A..Z/a..z and 0..9
     95 void charOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr);
     96 void charOutBg(uint16_t xPos, uint16_t yPos, uint8_t fgPalette, uint8_t bgPalette, char chr);
     97 void charOutShadow(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint8_t shadowPaletteIndex, char chr);
     98 void charOutClipX(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr, uint16_t clipX);
     99 void bigCharOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr);
    100 void charOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, char chr);
    101 void charOutOutlined(uint16_t x, uint16_t y, uint8_t paletteIndex, char chr);
    102 void textOut(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr);
    103 void textOutBorder(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t borderPaletteIndex, const char *textPtr);
    104 void textOutFixed(uint16_t x, uint16_t y, uint8_t fgPaltete, uint8_t bgPalette, const char *textPtr);
    105 void bigTextOut(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr);
    106 void bigTextOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, const char *textPtr);
    107 void textOutClipX(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr, uint16_t clipX);
    108 void textOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, const char *textPtr);
    109 uint8_t charWidth(char ch);
    110 uint8_t charWidth16(char ch);
    111 uint16_t textWidth(const char *textPtr);
    112 uint16_t textNWidth(const char *textPtr, int32_t length);
    113 uint16_t textWidth16(const char *textPtr);
    114 void drawGUIOnRunTime(void);
    115 void showTopLeftMainScreen(bool restoreScreens);
    116 void hideTopLeftMainScreen(void);
    117 void showTopRightMainScreen(void);
    118 void hideTopRightMainScreen(void);
    119 void hideTopLeftScreen(void);
    120 void hideTopScreen(void);
    121 void showTopScreen(bool restoreScreens);
    122 void showBottomScreen(void);