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 35 enum 36 { 37 FRAMEWORK_TYPE1 = 0, 38 FRAMEWORK_TYPE2 = 1, 39 40 FONT_TYPE1 = 0, 41 FONT_TYPE2 = 1, 42 FONT_TYPE3 = 2, 43 FONT_TYPE4 = 3, 44 FONT_TYPE5 = 4, 45 FONT_TYPE6 = 5, 46 FONT_TYPE7 = 6, 47 48 OBJECT_ID_NONE = -1, 49 50 OBJECT_NONE = 0, 51 OBJECT_PUSHBUTTON = 1, 52 OBJECT_RADIOBUTTON = 2, 53 OBJECT_CHECKBOX = 3, 54 OBJECT_SCROLLBAR = 4, 55 OBJECT_TEXTBOX = 5, 56 OBJECT_INSTRSWITCH = 6, 57 OBJECT_PATTERNMARK = 7, 58 OBJECT_DISKOPLIST = 8, 59 OBJECT_SMPDATA = 9, 60 OBJECT_PIANO = 10, 61 OBJECT_INSVOLENV = 11, 62 OBJECT_INSPANENV = 12 63 }; 64 65 extern pushButton_t pushButtons[NUM_PUSHBUTTONS]; 66 extern radioButton_t radioButtons[NUM_RADIOBUTTONS]; 67 extern checkBox_t checkBoxes[NUM_CHECKBOXES]; 68 extern scrollBar_t scrollBars[NUM_SCROLLBARS]; 69 extern textBox_t textBoxes[NUM_TEXTBOXES]; 70 71 void unstuckLastUsedGUIElement(void); 72 bool setupGUI(void); 73 74 void hLine(uint16_t x, uint16_t y, uint16_t width, uint8_t paletteIndex); 75 void vLine(uint16_t x, uint16_t y, uint16_t h, uint8_t paletteIndex); 76 void hLineDouble(uint16_t x, uint16_t y, uint16_t w, uint8_t paletteIndex); 77 void vLineDouble(uint16_t x, uint16_t y, uint16_t h, uint8_t paletteIndex); 78 void line(int16_t x1, int16_t x2, int16_t y1, int16_t y2, uint8_t paletteIndex); 79 void clearRect(uint16_t xPos, uint16_t yPos, uint16_t w, uint16_t h); 80 void fillRect(uint16_t xPos, uint16_t yPos, uint16_t w, uint16_t h, uint8_t paletteIndex); 81 void drawFramework(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint8_t type); 82 void blit32(uint16_t xPos, uint16_t yPos, const uint32_t* srcPtr, uint16_t w, uint16_t h); 83 void blit(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h); 84 void blitClipX(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h, uint16_t clipX); 85 void blitFast(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h); // no transparency/colorkey 86 void blitFastClipX(uint16_t xPos, uint16_t yPos, const uint8_t *srcPtr, uint16_t w, uint16_t h, uint16_t clipX); // no transparency/colorkey 87 void hexOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint32_t val, uint8_t numDigits); 88 void hexOutBg(uint16_t xPos, uint16_t yPos, uint8_t fgPalette, uint8_t bgPalette, uint32_t val, uint8_t numDigits); 89 void hexOutShadow(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint8_t shadowPaletteIndex, uint32_t val, uint8_t numDigits); 90 void textOutTiny(int32_t xPos, int32_t yPos, char *str, uint32_t color); // A..Z/a..z and 0..9 91 void textOutTinyOutline(int32_t xPos, int32_t yPos, char *str); // A..Z/a..z and 0..9 92 void charOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr); 93 void charOutBg(uint16_t xPos, uint16_t yPos, uint8_t fgPalette, uint8_t bgPalette, char chr); 94 void charOutShadow(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint8_t shadowPaletteIndex, char chr); 95 void charOutClipX(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr, uint16_t clipX); 96 void bigCharOut(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, char chr); 97 void charOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, char chr); 98 void charOutOutlined(uint16_t x, uint16_t y, uint8_t paletteIndex, char chr); 99 void textOut(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr); 100 void textOutBorder(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t borderPaletteIndex, const char *textPtr); 101 void textOutFixed(uint16_t x, uint16_t y, uint8_t fgPaltete, uint8_t bgPalette, const char *textPtr); 102 void bigTextOut(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr); 103 void bigTextOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, const char *textPtr); 104 void textOutClipX(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr, uint16_t clipX); 105 void textOutShadow(uint16_t x, uint16_t y, uint8_t paletteIndex, uint8_t shadowPaletteIndex, const char *textPtr); 106 uint8_t charWidth(char ch); 107 uint8_t charWidth16(char ch); 108 uint16_t textWidth(const char *textPtr); 109 uint16_t textNWidth(const char *textPtr, int32_t length); 110 uint16_t textWidth16(const char *textPtr); 111 void drawGUIOnRunTime(void); 112 void showTopLeftMainScreen(bool restoreScreens); 113 void hideTopLeftMainScreen(void); 114 void showTopRightMainScreen(void); 115 void hideTopRightMainScreen(void); 116 void hideTopLeftScreen(void); 117 void hideTopScreen(void); 118 void showTopScreen(bool restoreScreens); 119 void showBottomScreen(void); 120 121 // for about screen 122 void textOutFade(uint16_t x, uint16_t y, uint8_t paletteIndex, const char *textPtr, int32_t fade); 123 void blit32Fade(uint16_t xPos, uint16_t yPos, const uint32_t* srcPtr, uint16_t w, uint16_t h, int32_t fade); 124