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);