Nuvoton
/
NuMaker-mbed-emWin-example
NuMaker emWin HMI
emWin/Include/GUI.h@1:c0f972361605, 2019-02-27 (annotated)
- Committer:
- csyang2
- Date:
- Wed Feb 27 14:34:09 2019 +0800
- Revision:
- 1:c0f972361605
Add emWin related materials
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
csyang2 |
1:c0f972361605 | 1 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2 | * SEGGER Software GmbH * |
csyang2 |
1:c0f972361605 | 3 | * Solutions for real time microcontroller applications * |
csyang2 |
1:c0f972361605 | 4 | ********************************************************************** |
csyang2 |
1:c0f972361605 | 5 | * * |
csyang2 |
1:c0f972361605 | 6 | * (c) 1996 - 2018 SEGGER Microcontroller GmbH * |
csyang2 |
1:c0f972361605 | 7 | * * |
csyang2 |
1:c0f972361605 | 8 | * Internet: www.segger.com Support: support@segger.com * |
csyang2 |
1:c0f972361605 | 9 | * * |
csyang2 |
1:c0f972361605 | 10 | ********************************************************************** |
csyang2 |
1:c0f972361605 | 11 | |
csyang2 |
1:c0f972361605 | 12 | ** emWin V5.48 - Graphical user interface for embedded applications ** |
csyang2 |
1:c0f972361605 | 13 | All Intellectual Property rights in the Software belongs to SEGGER. |
csyang2 |
1:c0f972361605 | 14 | emWin is protected by international copyright laws. Knowledge of the |
csyang2 |
1:c0f972361605 | 15 | source code may not be used to write a similar product. This file may |
csyang2 |
1:c0f972361605 | 16 | only be used in accordance with the following terms: |
csyang2 |
1:c0f972361605 | 17 | |
csyang2 |
1:c0f972361605 | 18 | The software has been licensed by SEGGER Software GmbH to Nuvoton Technology Corporationat the address: No. 4, Creation Rd. III, Hsinchu Science Park, Taiwan |
csyang2 |
1:c0f972361605 | 19 | for the purposes of creating libraries for its |
csyang2 |
1:c0f972361605 | 20 | Arm Cortex-M and Arm9 32-bit microcontrollers, commercialized and distributed by Nuvoton Technology Corporation |
csyang2 |
1:c0f972361605 | 21 | under the terms and conditions of an End User |
csyang2 |
1:c0f972361605 | 22 | License Agreement supplied with the libraries. |
csyang2 |
1:c0f972361605 | 23 | Full source code is available at: www.segger.com |
csyang2 |
1:c0f972361605 | 24 | |
csyang2 |
1:c0f972361605 | 25 | We appreciate your understanding and fairness. |
csyang2 |
1:c0f972361605 | 26 | ---------------------------------------------------------------------- |
csyang2 |
1:c0f972361605 | 27 | Licensing information |
csyang2 |
1:c0f972361605 | 28 | Licensor: SEGGER Software GmbH |
csyang2 |
1:c0f972361605 | 29 | Licensed to: Nuvoton Technology Corporation, No. 4, Creation Rd. III, Hsinchu Science Park, 30077 Hsinchu City, Taiwan |
csyang2 |
1:c0f972361605 | 30 | Licensed SEGGER software: emWin |
csyang2 |
1:c0f972361605 | 31 | License number: GUI-00735 |
csyang2 |
1:c0f972361605 | 32 | License model: emWin License Agreement, signed February 27, 2018 |
csyang2 |
1:c0f972361605 | 33 | Licensed platform: Cortex-M and ARM9 32-bit series microcontroller designed and manufactured by or for Nuvoton Technology Corporation |
csyang2 |
1:c0f972361605 | 34 | ---------------------------------------------------------------------- |
csyang2 |
1:c0f972361605 | 35 | Support and Update Agreement (SUA) |
csyang2 |
1:c0f972361605 | 36 | SUA period: 2018-03-26 - 2019-03-27 |
csyang2 |
1:c0f972361605 | 37 | Contact to extend SUA: sales@segger.com |
csyang2 |
1:c0f972361605 | 38 | ---------------------------------------------------------------------- |
csyang2 |
1:c0f972361605 | 39 | File : GUI.h |
csyang2 |
1:c0f972361605 | 40 | Purpose : GUI API include file |
csyang2 |
1:c0f972361605 | 41 | ---------------------------END-OF-HEADER------------------------------ |
csyang2 |
1:c0f972361605 | 42 | */ |
csyang2 |
1:c0f972361605 | 43 | |
csyang2 |
1:c0f972361605 | 44 | #ifndef GUI_H |
csyang2 |
1:c0f972361605 | 45 | #define GUI_H |
csyang2 |
1:c0f972361605 | 46 | |
csyang2 |
1:c0f972361605 | 47 | #include <stddef.h> |
csyang2 |
1:c0f972361605 | 48 | |
csyang2 |
1:c0f972361605 | 49 | #include "GUI_ConfDefaults.h" |
csyang2 |
1:c0f972361605 | 50 | #include "GUI_Type.h" |
csyang2 |
1:c0f972361605 | 51 | #include "GUI_Version.h" |
csyang2 |
1:c0f972361605 | 52 | |
csyang2 |
1:c0f972361605 | 53 | #if defined(__cplusplus) |
csyang2 |
1:c0f972361605 | 54 | extern "C" { /* Make sure we have C-declarations in C++ programs */ |
csyang2 |
1:c0f972361605 | 55 | #endif |
csyang2 |
1:c0f972361605 | 56 | |
csyang2 |
1:c0f972361605 | 57 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 58 | * |
csyang2 |
1:c0f972361605 | 59 | * Disable string function warning with newer MSVC versions |
csyang2 |
1:c0f972361605 | 60 | */ |
csyang2 |
1:c0f972361605 | 61 | #if defined (_MSC_VER) |
csyang2 |
1:c0f972361605 | 62 | #if (_MSC_VER > 1200) |
csyang2 |
1:c0f972361605 | 63 | #pragma warning( disable : 4996) |
csyang2 |
1:c0f972361605 | 64 | #endif |
csyang2 |
1:c0f972361605 | 65 | #endif |
csyang2 |
1:c0f972361605 | 66 | |
csyang2 |
1:c0f972361605 | 67 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 68 | * |
csyang2 |
1:c0f972361605 | 69 | * Macros, function replacement |
csyang2 |
1:c0f972361605 | 70 | */ |
csyang2 |
1:c0f972361605 | 71 | #define GUI_COUNTOF(a) (sizeof(a) / sizeof(a[0])) |
csyang2 |
1:c0f972361605 | 72 | #define GUI_MIN(a,b) (((a) < (b)) ? (a) : (b)) |
csyang2 |
1:c0f972361605 | 73 | #define GUI_MAX(a,b) (((a) > (b)) ? (a) : (b)) |
csyang2 |
1:c0f972361605 | 74 | #define GUI_ZEROFILL(p, Size) (memset(p, 0, Size)) /**/ |
csyang2 |
1:c0f972361605 | 75 | |
csyang2 |
1:c0f972361605 | 76 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 77 | * |
csyang2 |
1:c0f972361605 | 78 | * Support for multitasking systems (locking) |
csyang2 |
1:c0f972361605 | 79 | */ |
csyang2 |
1:c0f972361605 | 80 | typedef struct GUI_CONTEXT GUI_CONTEXT; |
csyang2 |
1:c0f972361605 | 81 | |
csyang2 |
1:c0f972361605 | 82 | #if !GUI_OS |
csyang2 |
1:c0f972361605 | 83 | #define GUI_LOCK() |
csyang2 |
1:c0f972361605 | 84 | #define GUI_UNLOCK() |
csyang2 |
1:c0f972361605 | 85 | #define GUITASK_INIT() |
csyang2 |
1:c0f972361605 | 86 | #define GUITASK_COPY_CONTEXT() |
csyang2 |
1:c0f972361605 | 87 | #else |
csyang2 |
1:c0f972361605 | 88 | void GUI_Lock(void); |
csyang2 |
1:c0f972361605 | 89 | void GUI_Unlock(void); |
csyang2 |
1:c0f972361605 | 90 | void GUITASK_Init(void); |
csyang2 |
1:c0f972361605 | 91 | void GUITASK_CopyContext(void); |
csyang2 |
1:c0f972361605 | 92 | void GUITASK_SetMaxTask(int MaxTask); |
csyang2 |
1:c0f972361605 | 93 | int GUITASK_GetMaxTask(void); |
csyang2 |
1:c0f972361605 | 94 | GUI_CONTEXT * GUITASK_GetpContext(int Index); |
csyang2 |
1:c0f972361605 | 95 | #define GUI_LOCK() GUI_Lock() |
csyang2 |
1:c0f972361605 | 96 | #define GUI_UNLOCK() GUI_Unlock() |
csyang2 |
1:c0f972361605 | 97 | #define GUITASK_INIT() GUITASK_Init() |
csyang2 |
1:c0f972361605 | 98 | #define GUITASK_COPY_CONTEXT() GUITASK_CopyContext() |
csyang2 |
1:c0f972361605 | 99 | #endif |
csyang2 |
1:c0f972361605 | 100 | |
csyang2 |
1:c0f972361605 | 101 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 102 | * |
csyang2 |
1:c0f972361605 | 103 | * API table of a display driver |
csyang2 |
1:c0f972361605 | 104 | */ |
csyang2 |
1:c0f972361605 | 105 | struct GUI_DEVICE_API { |
csyang2 |
1:c0f972361605 | 106 | // |
csyang2 |
1:c0f972361605 | 107 | // Data |
csyang2 |
1:c0f972361605 | 108 | // |
csyang2 |
1:c0f972361605 | 109 | int DeviceClassIndex; |
csyang2 |
1:c0f972361605 | 110 | // |
csyang2 |
1:c0f972361605 | 111 | // Drawing functions |
csyang2 |
1:c0f972361605 | 112 | // |
csyang2 |
1:c0f972361605 | 113 | void (* pfDrawBitmap )(GUI_DEVICE * pDevice, int x0, int y0, int xsize, int ysize, int BitsPerPixel, int BytesPerLine, const U8 * pData, int Diff, const LCD_PIXELINDEX * pTrans); |
csyang2 |
1:c0f972361605 | 114 | void (* pfDrawHLine )(GUI_DEVICE * pDevice, int x0, int y0, int x1); |
csyang2 |
1:c0f972361605 | 115 | void (* pfDrawVLine )(GUI_DEVICE * pDevice, int x , int y0, int y1); |
csyang2 |
1:c0f972361605 | 116 | void (* pfFillRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 117 | LCD_PIXELINDEX (* pfGetPixelIndex)(GUI_DEVICE * pDevice, int x, int y); |
csyang2 |
1:c0f972361605 | 118 | void (* pfSetPixelIndex)(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX ColorIndex); |
csyang2 |
1:c0f972361605 | 119 | void (* pfXorPixel )(GUI_DEVICE * pDevice, int x, int y); |
csyang2 |
1:c0f972361605 | 120 | // |
csyang2 |
1:c0f972361605 | 121 | // Set origin |
csyang2 |
1:c0f972361605 | 122 | // |
csyang2 |
1:c0f972361605 | 123 | void (* pfSetOrg )(GUI_DEVICE * pDevice, int x, int y); |
csyang2 |
1:c0f972361605 | 124 | // |
csyang2 |
1:c0f972361605 | 125 | // Request information |
csyang2 |
1:c0f972361605 | 126 | // |
csyang2 |
1:c0f972361605 | 127 | void (*(* pfGetDevFunc) (GUI_DEVICE ** ppDevice, int Index))(void); |
csyang2 |
1:c0f972361605 | 128 | I32 (* pfGetDevProp )(GUI_DEVICE * pDevice, int Index); |
csyang2 |
1:c0f972361605 | 129 | void *(* pfGetDevData )(GUI_DEVICE * pDevice, int Index); |
csyang2 |
1:c0f972361605 | 130 | void (* pfGetRect )(GUI_DEVICE * pDevice, LCD_RECT * pRect); |
csyang2 |
1:c0f972361605 | 131 | }; |
csyang2 |
1:c0f972361605 | 132 | |
csyang2 |
1:c0f972361605 | 133 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 134 | * |
csyang2 |
1:c0f972361605 | 135 | * Device classes |
csyang2 |
1:c0f972361605 | 136 | */ |
csyang2 |
1:c0f972361605 | 137 | typedef enum { |
csyang2 |
1:c0f972361605 | 138 | DEVICE_CLASS_DRIVER = 0, |
csyang2 |
1:c0f972361605 | 139 | DEVICE_CLASS_DRIVER_MODIFIER, // Zoom or delta-pixel modifier |
csyang2 |
1:c0f972361605 | 140 | DEVICE_CLASS_VNC, |
csyang2 |
1:c0f972361605 | 141 | DEVICE_CLASS_SPRITE, |
csyang2 |
1:c0f972361605 | 142 | DEVICE_CLASS_MEMDEV, |
csyang2 |
1:c0f972361605 | 143 | DEVICE_CLASS_ALPHA, |
csyang2 |
1:c0f972361605 | 144 | DEVICE_CLASS_AUTOALPHA, |
csyang2 |
1:c0f972361605 | 145 | DEVICE_CLASS_MEASDEV |
csyang2 |
1:c0f972361605 | 146 | } DEVICE_CLASS; |
csyang2 |
1:c0f972361605 | 147 | |
csyang2 |
1:c0f972361605 | 148 | #define GUI_DEVICE_STAYONTOP 1 |
csyang2 |
1:c0f972361605 | 149 | |
csyang2 |
1:c0f972361605 | 150 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 151 | * |
csyang2 |
1:c0f972361605 | 152 | * Display drivers |
csyang2 |
1:c0f972361605 | 153 | */ |
csyang2 |
1:c0f972361605 | 154 | // |
csyang2 |
1:c0f972361605 | 155 | // Addresses |
csyang2 |
1:c0f972361605 | 156 | // |
csyang2 |
1:c0f972361605 | 157 | extern const GUI_DEVICE_API GUIDRV_Win_API; |
csyang2 |
1:c0f972361605 | 158 | extern const GUI_DEVICE_API GUIDRV_Template_API; |
csyang2 |
1:c0f972361605 | 159 | |
csyang2 |
1:c0f972361605 | 160 | // |
csyang2 |
1:c0f972361605 | 161 | // Macros to be used in configuration files |
csyang2 |
1:c0f972361605 | 162 | // |
csyang2 |
1:c0f972361605 | 163 | #define GUIDRV_WIN32 &GUIDRV_Win_API |
csyang2 |
1:c0f972361605 | 164 | |
csyang2 |
1:c0f972361605 | 165 | #if defined(WIN32) && !defined(LCD_SIMCONTROLLER) |
csyang2 |
1:c0f972361605 | 166 | #define GUIDRV_TEMPLATE &GUIDRV_Win_API |
csyang2 |
1:c0f972361605 | 167 | #else |
csyang2 |
1:c0f972361605 | 168 | #define GUIDRV_TEMPLATE &GUIDRV_Template_API |
csyang2 |
1:c0f972361605 | 169 | #endif |
csyang2 |
1:c0f972361605 | 170 | |
csyang2 |
1:c0f972361605 | 171 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 172 | * |
csyang2 |
1:c0f972361605 | 173 | * Definition of GUI_DEVICE structure |
csyang2 |
1:c0f972361605 | 174 | */ |
csyang2 |
1:c0f972361605 | 175 | struct GUI_DEVICE { |
csyang2 |
1:c0f972361605 | 176 | // |
csyang2 |
1:c0f972361605 | 177 | // Linking |
csyang2 |
1:c0f972361605 | 178 | // |
csyang2 |
1:c0f972361605 | 179 | GUI_DEVICE * pNext; |
csyang2 |
1:c0f972361605 | 180 | GUI_DEVICE * pPrev; |
csyang2 |
1:c0f972361605 | 181 | // |
csyang2 |
1:c0f972361605 | 182 | // Data |
csyang2 |
1:c0f972361605 | 183 | // |
csyang2 |
1:c0f972361605 | 184 | union { |
csyang2 |
1:c0f972361605 | 185 | GUI_HMEM hContext; // Handle of payload data like sprite- or memory device context |
csyang2 |
1:c0f972361605 | 186 | void * pContext; // Pointer for context data in a fixed block |
csyang2 |
1:c0f972361605 | 187 | } u; |
csyang2 |
1:c0f972361605 | 188 | // |
csyang2 |
1:c0f972361605 | 189 | // API pointers |
csyang2 |
1:c0f972361605 | 190 | // |
csyang2 |
1:c0f972361605 | 191 | const GUI_DEVICE_API * pDeviceAPI; |
csyang2 |
1:c0f972361605 | 192 | const LCD_API_COLOR_CONV * pColorConvAPI; |
csyang2 |
1:c0f972361605 | 193 | U16 Flags; |
csyang2 |
1:c0f972361605 | 194 | int LayerIndex; |
csyang2 |
1:c0f972361605 | 195 | }; |
csyang2 |
1:c0f972361605 | 196 | |
csyang2 |
1:c0f972361605 | 197 | extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_1; |
csyang2 |
1:c0f972361605 | 198 | extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_8; |
csyang2 |
1:c0f972361605 | 199 | extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_16; |
csyang2 |
1:c0f972361605 | 200 | extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_32; |
csyang2 |
1:c0f972361605 | 201 | |
csyang2 |
1:c0f972361605 | 202 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 203 | * |
csyang2 |
1:c0f972361605 | 204 | * GUI_CONTEXT |
csyang2 |
1:c0f972361605 | 205 | * |
csyang2 |
1:c0f972361605 | 206 | * This structure is public for one reason only: |
csyang2 |
1:c0f972361605 | 207 | * To allow the application to save and restore the context. |
csyang2 |
1:c0f972361605 | 208 | */ |
csyang2 |
1:c0f972361605 | 209 | typedef union { |
csyang2 |
1:c0f972361605 | 210 | U8 aColorIndex8[2]; |
csyang2 |
1:c0f972361605 | 211 | U16 aColorIndex16[2]; |
csyang2 |
1:c0f972361605 | 212 | U32 aColorIndex32[2]; |
csyang2 |
1:c0f972361605 | 213 | } LCD_COLORINDEX_UNION; |
csyang2 |
1:c0f972361605 | 214 | |
csyang2 |
1:c0f972361605 | 215 | struct GUI_CONTEXT { |
csyang2 |
1:c0f972361605 | 216 | // |
csyang2 |
1:c0f972361605 | 217 | // Variables in LCD module |
csyang2 |
1:c0f972361605 | 218 | // |
csyang2 |
1:c0f972361605 | 219 | LCD_COLORINDEX_UNION uLCD; |
csyang2 |
1:c0f972361605 | 220 | LCD_RECT ClipRect; |
csyang2 |
1:c0f972361605 | 221 | U8 DrawMode; |
csyang2 |
1:c0f972361605 | 222 | U8 SelLayer; |
csyang2 |
1:c0f972361605 | 223 | U8 TextStyle; |
csyang2 |
1:c0f972361605 | 224 | // |
csyang2 |
1:c0f972361605 | 225 | // Variables in GL module |
csyang2 |
1:c0f972361605 | 226 | // |
csyang2 |
1:c0f972361605 | 227 | GUI_RECT * pClipRect_HL; // High level clip rectangle ... Speed optimization so drawing routines can optimize |
csyang2 |
1:c0f972361605 | 228 | U8 PenSize; |
csyang2 |
1:c0f972361605 | 229 | U8 PenShape; |
csyang2 |
1:c0f972361605 | 230 | U8 LineStyle; |
csyang2 |
1:c0f972361605 | 231 | U8 StrikeWidth; |
csyang2 |
1:c0f972361605 | 232 | // |
csyang2 |
1:c0f972361605 | 233 | // Variables in GUICHAR module |
csyang2 |
1:c0f972361605 | 234 | // |
csyang2 |
1:c0f972361605 | 235 | const GUI_FONT * pAFont; |
csyang2 |
1:c0f972361605 | 236 | I16P LBorder; |
csyang2 |
1:c0f972361605 | 237 | I16P DispPosX, DispPosY; |
csyang2 |
1:c0f972361605 | 238 | I16P DrawPosX, DrawPosY; |
csyang2 |
1:c0f972361605 | 239 | I16P TextMode, TextAlign; |
csyang2 |
1:c0f972361605 | 240 | GUI_COLOR Color, BkColor; // Required only when changing devices and for speed opt (caching) |
csyang2 |
1:c0f972361605 | 241 | // |
csyang2 |
1:c0f972361605 | 242 | // Pointer to color indices |
csyang2 |
1:c0f972361605 | 243 | // |
csyang2 |
1:c0f972361605 | 244 | LCD_PIXELINDEX * LCD_pBkColorIndex; |
csyang2 |
1:c0f972361605 | 245 | LCD_PIXELINDEX * LCD_pColorIndex; |
csyang2 |
1:c0f972361605 | 246 | // |
csyang2 |
1:c0f972361605 | 247 | // Variables in WM module |
csyang2 |
1:c0f972361605 | 248 | // |
csyang2 |
1:c0f972361605 | 249 | #if GUI_WINSUPPORT |
csyang2 |
1:c0f972361605 | 250 | const GUI_RECT * WM__pUserClipRect; |
csyang2 |
1:c0f972361605 | 251 | GUI_HWIN hAWin; |
csyang2 |
1:c0f972361605 | 252 | int xOff, yOff; |
csyang2 |
1:c0f972361605 | 253 | U8 WM_IsActive; |
csyang2 |
1:c0f972361605 | 254 | #endif |
csyang2 |
1:c0f972361605 | 255 | // |
csyang2 |
1:c0f972361605 | 256 | // Array of pointers to device chains |
csyang2 |
1:c0f972361605 | 257 | // |
csyang2 |
1:c0f972361605 | 258 | GUI_DEVICE * apDriver[GUI_NUM_LAYERS]; |
csyang2 |
1:c0f972361605 | 259 | // |
csyang2 |
1:c0f972361605 | 260 | // Variables in MEMDEV module (with memory devices only) |
csyang2 |
1:c0f972361605 | 261 | // |
csyang2 |
1:c0f972361605 | 262 | GUI_HMEM hDevData; |
csyang2 |
1:c0f972361605 | 263 | // |
csyang2 |
1:c0f972361605 | 264 | // Variables in Anitaliasing module |
csyang2 |
1:c0f972361605 | 265 | // |
csyang2 |
1:c0f972361605 | 266 | const tLCD_HL_APIList * pLCD_HL; // Required to reroute drawing (HLine & Pixel) to the AA module |
csyang2 |
1:c0f972361605 | 267 | U8 AA_Factor; |
csyang2 |
1:c0f972361605 | 268 | U8 AA_HiResEnable; |
csyang2 |
1:c0f972361605 | 269 | void (* AA_pfSetPixelAA)(int x, int y, U8 Intens); // Function to be used for drawing a single pixel |
csyang2 |
1:c0f972361605 | 270 | // |
csyang2 |
1:c0f972361605 | 271 | // Used to reference and link in the copyright string for libraries. |
csyang2 |
1:c0f972361605 | 272 | // |
csyang2 |
1:c0f972361605 | 273 | const char * sCopyright; |
csyang2 |
1:c0f972361605 | 274 | }; |
csyang2 |
1:c0f972361605 | 275 | |
csyang2 |
1:c0f972361605 | 276 | /* Rename GUI_SaveContext in order to avoid crashes if wrong GUIConf is used */ |
csyang2 |
1:c0f972361605 | 277 | #if (GUI_WINSUPPORT == 1) |
csyang2 |
1:c0f972361605 | 278 | #define GUI_SaveContext GUI_SaveContext_W |
csyang2 |
1:c0f972361605 | 279 | #else |
csyang2 |
1:c0f972361605 | 280 | #define GUI_SaveContext GUI_SaveContext_ |
csyang2 |
1:c0f972361605 | 281 | #endif |
csyang2 |
1:c0f972361605 | 282 | |
csyang2 |
1:c0f972361605 | 283 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 284 | * |
csyang2 |
1:c0f972361605 | 285 | * Device management |
csyang2 |
1:c0f972361605 | 286 | */ |
csyang2 |
1:c0f972361605 | 287 | GUI_DEVICE * GUI_DEVICE_Create (const GUI_DEVICE_API * pDeviceAPI, const LCD_API_COLOR_CONV * pColorConvAPI, U16 Flags, int LayerIndex); |
csyang2 |
1:c0f972361605 | 288 | GUI_DEVICE * GUI_DEVICE_CreateAndLink(const GUI_DEVICE_API * pDeviceAPI, const LCD_API_COLOR_CONV * pColorConvAPI, U16 Flags, int LayerIndex); |
csyang2 |
1:c0f972361605 | 289 | void GUI_DEVICE_Delete (GUI_DEVICE * pDevice); |
csyang2 |
1:c0f972361605 | 290 | int GUI_DEVICE_Link (GUI_DEVICE * pDevice); |
csyang2 |
1:c0f972361605 | 291 | void GUI_DEVICE_Unlink (GUI_DEVICE * pDevice); |
csyang2 |
1:c0f972361605 | 292 | GUI_DEVICE * GUI_DEVICE__GetpDriver (int LayerIndex); |
csyang2 |
1:c0f972361605 | 293 | GUI_DEVICE * GUI_DEVICE__GetpDevice (int LayerIndex, int DeviceClass); |
csyang2 |
1:c0f972361605 | 294 | |
csyang2 |
1:c0f972361605 | 295 | GUI_DEVICE * GUI_DEVICE_UnlinkTaskDevices(void); |
csyang2 |
1:c0f972361605 | 296 | void GUI_DEVICE_LinkDevices (GUI_DEVICE * pDevice); |
csyang2 |
1:c0f972361605 | 297 | |
csyang2 |
1:c0f972361605 | 298 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 299 | * |
csyang2 |
1:c0f972361605 | 300 | * GUI_DIRTYDEVICE |
csyang2 |
1:c0f972361605 | 301 | */ |
csyang2 |
1:c0f972361605 | 302 | typedef struct { |
csyang2 |
1:c0f972361605 | 303 | void * pData; // Pointer to first pixel |
csyang2 |
1:c0f972361605 | 304 | int x0, y0; // Coordinates of the upper left pixel |
csyang2 |
1:c0f972361605 | 305 | int xSize, ySize; // Size of dirty rectangle |
csyang2 |
1:c0f972361605 | 306 | int LineOff; // Virtual xSize in pixels |
csyang2 |
1:c0f972361605 | 307 | int BytesPerPixel; // Number of bytes required per pixel |
csyang2 |
1:c0f972361605 | 308 | int IsDirty; // Indicates if dirty pixels exist |
csyang2 |
1:c0f972361605 | 309 | } GUI_DIRTYDEVICE_INFO; |
csyang2 |
1:c0f972361605 | 310 | |
csyang2 |
1:c0f972361605 | 311 | int GUI_DIRTYDEVICE_Create (void); |
csyang2 |
1:c0f972361605 | 312 | int GUI_DIRTYDEVICE_CreateEx (int LayerIndex); |
csyang2 |
1:c0f972361605 | 313 | int GUI_DIRTYDEVICE_CreateExInfo(GUI_DIRTYDEVICE_INFO * pInfo, int LayerIndex); |
csyang2 |
1:c0f972361605 | 314 | int GUI_DIRTYDEVICE_Delete (void); |
csyang2 |
1:c0f972361605 | 315 | int GUI_DIRTYDEVICE_DeleteEx (int LayerIndex); |
csyang2 |
1:c0f972361605 | 316 | int GUI_DIRTYDEVICE_Fetch (GUI_DIRTYDEVICE_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 317 | int GUI_DIRTYDEVICE_FetchEx (GUI_DIRTYDEVICE_INFO * pInfo, int LayerIndex); |
csyang2 |
1:c0f972361605 | 318 | |
csyang2 |
1:c0f972361605 | 319 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 320 | * |
csyang2 |
1:c0f972361605 | 321 | * GUI_GCACHE |
csyang2 |
1:c0f972361605 | 322 | */ |
csyang2 |
1:c0f972361605 | 323 | int GUI_GCACHE_4_Create(const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 324 | int GUI_GCACHE_4_CreateEx(int LayerIndex, const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 325 | |
csyang2 |
1:c0f972361605 | 326 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 327 | * |
csyang2 |
1:c0f972361605 | 328 | * GUI_DCACHE |
csyang2 |
1:c0f972361605 | 329 | */ |
csyang2 |
1:c0f972361605 | 330 | void GUI_DCACHE_SetClearCacheHook(void (* pFunc)(U32 LayerMask)); |
csyang2 |
1:c0f972361605 | 331 | void GUI_DCACHE_Clear (U32 LayerMask); |
csyang2 |
1:c0f972361605 | 332 | |
csyang2 |
1:c0f972361605 | 333 | extern void (* GUI_DCACHE__pfClearCacheHook)(U32 LayerMask); |
csyang2 |
1:c0f972361605 | 334 | |
csyang2 |
1:c0f972361605 | 335 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 336 | * |
csyang2 |
1:c0f972361605 | 337 | * GUI_SOFTLAYER |
csyang2 |
1:c0f972361605 | 338 | */ |
csyang2 |
1:c0f972361605 | 339 | typedef struct { |
csyang2 |
1:c0f972361605 | 340 | int xPos; |
csyang2 |
1:c0f972361605 | 341 | int yPos; |
csyang2 |
1:c0f972361605 | 342 | int xSize; |
csyang2 |
1:c0f972361605 | 343 | int ySize; |
csyang2 |
1:c0f972361605 | 344 | int Visible; |
csyang2 |
1:c0f972361605 | 345 | } GUI_SOFTLAYER_CONFIG; |
csyang2 |
1:c0f972361605 | 346 | |
csyang2 |
1:c0f972361605 | 347 | int GUI_SOFTLAYER_Enable (GUI_SOFTLAYER_CONFIG * pConfig, int NumLayers, GUI_COLOR CompositeColor); |
csyang2 |
1:c0f972361605 | 348 | int GUI_SOFTLAYER_Refresh (void); |
csyang2 |
1:c0f972361605 | 349 | void GUI_SOFTLAYER_SetCompositeColor(U32 Color); |
csyang2 |
1:c0f972361605 | 350 | int GUI_SOFTLAYER_MULTIBUF_Enable (int OnOff); |
csyang2 |
1:c0f972361605 | 351 | |
csyang2 |
1:c0f972361605 | 352 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 353 | * |
csyang2 |
1:c0f972361605 | 354 | * General routines |
csyang2 |
1:c0f972361605 | 355 | */ |
csyang2 |
1:c0f972361605 | 356 | void GUI_Exit (void); |
csyang2 |
1:c0f972361605 | 357 | GUI_COLOR GUI_GetDefaultBkColor (void); |
csyang2 |
1:c0f972361605 | 358 | GUI_COLOR GUI_GetDefaultColor (void); |
csyang2 |
1:c0f972361605 | 359 | const GUI_FONT * GUI_GetDefaultFont (void); |
csyang2 |
1:c0f972361605 | 360 | int GUI_GetScreenSizeX (void); |
csyang2 |
1:c0f972361605 | 361 | int GUI_GetScreenSizeY (void); |
csyang2 |
1:c0f972361605 | 362 | const char * GUI_GetVersionString (void); |
csyang2 |
1:c0f972361605 | 363 | int GUI_Init (void); |
csyang2 |
1:c0f972361605 | 364 | int GUI_IsInitialized (void); |
csyang2 |
1:c0f972361605 | 365 | void GUI_SetAfterInitHook (void (* pFunc)(void)); |
csyang2 |
1:c0f972361605 | 366 | void GUI_RegisterAfterInitHook(void (* pFunc)(void), GUI_REGISTER_INIT * pRegisterInit); |
csyang2 |
1:c0f972361605 | 367 | void GUI_RestoreContext (const GUI_CONTEXT * pContext); |
csyang2 |
1:c0f972361605 | 368 | void GUI_SaveContext (GUI_CONTEXT * pContext); |
csyang2 |
1:c0f972361605 | 369 | const GUI_RECT * GUI_SetClipRect (const GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 370 | void GUI_SetControlHook (void (* pFunc)(int LayerIndex, int Cmd)); |
csyang2 |
1:c0f972361605 | 371 | void GUI_SetDefault (void); |
csyang2 |
1:c0f972361605 | 372 | void GUI_SetDefaultBkColor (GUI_COLOR Color); |
csyang2 |
1:c0f972361605 | 373 | void GUI_SetDefaultColor (GUI_COLOR Color); |
csyang2 |
1:c0f972361605 | 374 | void GUI_SetDefaultFont (const GUI_FONT * pFont); |
csyang2 |
1:c0f972361605 | 375 | GUI_DRAWMODE GUI_SetDrawMode (GUI_DRAWMODE dm); |
csyang2 |
1:c0f972361605 | 376 | void GUI_SetScreenSizeX (int xSize); |
csyang2 |
1:c0f972361605 | 377 | void GUI_SetScreenSizeY (int ySize); |
csyang2 |
1:c0f972361605 | 378 | void GUI_SetRefreshHook (void (* pFunc)(void)); |
csyang2 |
1:c0f972361605 | 379 | void MainTask (void); |
csyang2 |
1:c0f972361605 | 380 | |
csyang2 |
1:c0f972361605 | 381 | #define GUI_PID_SetInitFunc(x) GUI_SetAfterInitHook(x) // Compatibility |
csyang2 |
1:c0f972361605 | 382 | |
csyang2 |
1:c0f972361605 | 383 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 384 | * |
csyang2 |
1:c0f972361605 | 385 | * Function replacement |
csyang2 |
1:c0f972361605 | 386 | */ |
csyang2 |
1:c0f972361605 | 387 | void GUI_SetpfMemset(void * (* pFunc)(void * pDest, int c, size_t Cnt)); |
csyang2 |
1:c0f972361605 | 388 | void GUI_SetpfMemcpy(void * (* pFunc)(void * pDest, const void * pSrc, size_t Cnt)); |
csyang2 |
1:c0f972361605 | 389 | void GUI_SetpfStrcmp(int (* pFunc)(const char *, const char *)); |
csyang2 |
1:c0f972361605 | 390 | void GUI_SetpfStrlen(size_t (* pFunc)(const char *)); |
csyang2 |
1:c0f972361605 | 391 | void GUI_SetpfStrcpy(char * (* pFunc)(char *, const char *)); |
csyang2 |
1:c0f972361605 | 392 | |
csyang2 |
1:c0f972361605 | 393 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 394 | * |
csyang2 |
1:c0f972361605 | 395 | * Rectangle helper functions |
csyang2 |
1:c0f972361605 | 396 | */ |
csyang2 |
1:c0f972361605 | 397 | void GUI_AddRect (GUI_RECT * pDest, const GUI_RECT * pRect, int Dist); |
csyang2 |
1:c0f972361605 | 398 | int GUI_RectsIntersect(const GUI_RECT * pr0, const GUI_RECT * pr1); |
csyang2 |
1:c0f972361605 | 399 | void GUI_MoveRect (GUI_RECT * pRect, int x, int y); |
csyang2 |
1:c0f972361605 | 400 | void GUI_MergeRect (GUI_RECT * pDest, const GUI_RECT * pr0, const GUI_RECT * pr1); |
csyang2 |
1:c0f972361605 | 401 | int GUI__IntersectRects(GUI_RECT * pDest, const GUI_RECT * pr0, const GUI_RECT * pr1); |
csyang2 |
1:c0f972361605 | 402 | void GUI__IntersectRect (GUI_RECT * pDest, const GUI_RECT * pr0); |
csyang2 |
1:c0f972361605 | 403 | void GUI__ReduceRect (GUI_RECT * pDest, const GUI_RECT * pRect, int Dist); |
csyang2 |
1:c0f972361605 | 404 | |
csyang2 |
1:c0f972361605 | 405 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 406 | * |
csyang2 |
1:c0f972361605 | 407 | * Misc helper functions |
csyang2 |
1:c0f972361605 | 408 | */ |
csyang2 |
1:c0f972361605 | 409 | I32 GUI__ATan2(I32 x, I32 y, I32 * ph); |
csyang2 |
1:c0f972361605 | 410 | I32 GUI__ASinHQ(I32 SinHQ); |
csyang2 |
1:c0f972361605 | 411 | int GUI__CompactPixelIndices (LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel); |
csyang2 |
1:c0f972361605 | 412 | int GUI__CompactPixelIndicesEx(LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 413 | int GUI__ConvertColor2Index (LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI, void * pResult); |
csyang2 |
1:c0f972361605 | 414 | void GUI__Config(void); |
csyang2 |
1:c0f972361605 | 415 | I32 GUI__CosHQ(I32 Ang1000); |
csyang2 |
1:c0f972361605 | 416 | int GUI__DivideRound (int a, int b); |
csyang2 |
1:c0f972361605 | 417 | I32 GUI__DivideRound32 (I32 a, I32 b); |
csyang2 |
1:c0f972361605 | 418 | void GUI__ExpandPixelIndices (void * pBuffer, int NumPixels, int BitsPerPixel); |
csyang2 |
1:c0f972361605 | 419 | void GUI__ExpandPixelIndicesEx (void * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 420 | int GUI__SetText(GUI_HMEM * phText, const char * s); |
csyang2 |
1:c0f972361605 | 421 | I32 GUI__SinHQ(I32 Ang1000); |
csyang2 |
1:c0f972361605 | 422 | I32 GUI__sqrt32(I32 Square); |
csyang2 |
1:c0f972361605 | 423 | void GUI__DrawTwinArc2(int xl, int xr, int y0, int r, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorFill); |
csyang2 |
1:c0f972361605 | 424 | void GUI__DrawTwinArc4(int x0, int y0, int x1, int y1, int r, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorFill); |
csyang2 |
1:c0f972361605 | 425 | void GUI__FillTrippleArc(int x0, int y0, int Size, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorR2, GUI_COLOR ColorFill); |
csyang2 |
1:c0f972361605 | 426 | void GUI__RegisterExit(GUI_REGISTER_EXIT * pRegisterExit); |
csyang2 |
1:c0f972361605 | 427 | void GUI__RegisterInit(GUI_REGISTER_INIT * pRegisterInit); |
csyang2 |
1:c0f972361605 | 428 | |
csyang2 |
1:c0f972361605 | 429 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 430 | * |
csyang2 |
1:c0f972361605 | 431 | * Optional function replacement |
csyang2 |
1:c0f972361605 | 432 | */ |
csyang2 |
1:c0f972361605 | 433 | void * GUI__memcpy(void * pDest, const void * pSrc, size_t NumBytes); |
csyang2 |
1:c0f972361605 | 434 | void * GUI__memset(void * pDest, int c, size_t Cnt); |
csyang2 |
1:c0f972361605 | 435 | |
csyang2 |
1:c0f972361605 | 436 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 437 | * |
csyang2 |
1:c0f972361605 | 438 | * Get / Set Attributes |
csyang2 |
1:c0f972361605 | 439 | */ |
csyang2 |
1:c0f972361605 | 440 | GUI_COLOR GUI_GetBkColor (void); |
csyang2 |
1:c0f972361605 | 441 | int GUI_GetBkColorIndex(void); |
csyang2 |
1:c0f972361605 | 442 | GUI_COLOR GUI_GetColor (void); |
csyang2 |
1:c0f972361605 | 443 | int GUI_GetColorIndex (void); |
csyang2 |
1:c0f972361605 | 444 | U8 GUI_GetLineStyle (void); |
csyang2 |
1:c0f972361605 | 445 | U8 GUI_GetPenSize (void); |
csyang2 |
1:c0f972361605 | 446 | U8 GUI_GetPenShape (void); |
csyang2 |
1:c0f972361605 | 447 | unsigned GUI_GetPixelIndex (int x, int y); |
csyang2 |
1:c0f972361605 | 448 | |
csyang2 |
1:c0f972361605 | 449 | void GUI_SetBkColor (GUI_COLOR); |
csyang2 |
1:c0f972361605 | 450 | void GUI_SetColor (GUI_COLOR); |
csyang2 |
1:c0f972361605 | 451 | void GUI_SetBkColorIndex(int Index); |
csyang2 |
1:c0f972361605 | 452 | void GUI_SetColorIndex(int Index); |
csyang2 |
1:c0f972361605 | 453 | |
csyang2 |
1:c0f972361605 | 454 | U8 GUI_SetPenSize (U8 Size); |
csyang2 |
1:c0f972361605 | 455 | U8 GUI_SetPenShape (U8 Shape); |
csyang2 |
1:c0f972361605 | 456 | U8 GUI_SetLineStyle (U8 Style); |
csyang2 |
1:c0f972361605 | 457 | |
csyang2 |
1:c0f972361605 | 458 | /* Get/Set Character used as decimal point (usually '.' or ',') */ |
csyang2 |
1:c0f972361605 | 459 | char GUI_GetDecChar(void); |
csyang2 |
1:c0f972361605 | 460 | char GUI_SetDecChar(char c); |
csyang2 |
1:c0f972361605 | 461 | |
csyang2 |
1:c0f972361605 | 462 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 463 | * |
csyang2 |
1:c0f972361605 | 464 | * Color / Index related functions |
csyang2 |
1:c0f972361605 | 465 | */ |
csyang2 |
1:c0f972361605 | 466 | int GUI_Color2Index(GUI_COLOR color); |
csyang2 |
1:c0f972361605 | 467 | GUI_COLOR GUI_Color2VisColor(GUI_COLOR color); |
csyang2 |
1:c0f972361605 | 468 | char GUI_ColorIsAvailable(GUI_COLOR color); |
csyang2 |
1:c0f972361605 | 469 | GUI_COLOR GUI_Index2Color(int Index); |
csyang2 |
1:c0f972361605 | 470 | U32 GUI_CalcColorDist (GUI_COLOR Color0, GUI_COLOR Color1); |
csyang2 |
1:c0f972361605 | 471 | U32 GUI_CalcVisColorError(GUI_COLOR color); |
csyang2 |
1:c0f972361605 | 472 | |
csyang2 |
1:c0f972361605 | 473 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 474 | * |
csyang2 |
1:c0f972361605 | 475 | * Error handler |
csyang2 |
1:c0f972361605 | 476 | */ |
csyang2 |
1:c0f972361605 | 477 | void GUI_SetOnErrorFunc(void (* pFunc)(const char * s)); |
csyang2 |
1:c0f972361605 | 478 | |
csyang2 |
1:c0f972361605 | 479 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 480 | * |
csyang2 |
1:c0f972361605 | 481 | * Logging (for debugging primarily) |
csyang2 |
1:c0f972361605 | 482 | */ |
csyang2 |
1:c0f972361605 | 483 | void GUI_Log (const char * s); |
csyang2 |
1:c0f972361605 | 484 | void GUI_Log1 (const char * s, I32 p0); |
csyang2 |
1:c0f972361605 | 485 | void GUI_Log2 (const char * s, I32 p0, I32 p1); |
csyang2 |
1:c0f972361605 | 486 | void GUI_Log3 (const char * s, I32 p0, I32 p1, I32 p2); |
csyang2 |
1:c0f972361605 | 487 | void GUI_Log4 (const char * s, I32 p0, I32 p1, I32 p2,I32 p3); |
csyang2 |
1:c0f972361605 | 488 | void GUI_Warn (const char * s); |
csyang2 |
1:c0f972361605 | 489 | void GUI_Warn1 (const char * s, I32 p0); |
csyang2 |
1:c0f972361605 | 490 | void GUI_Warn2 (const char * s, I32 p0, I32 p1); |
csyang2 |
1:c0f972361605 | 491 | void GUI_Warn3 (const char * s, I32 p0, I32 p1, I32 p2); |
csyang2 |
1:c0f972361605 | 492 | void GUI_Warn4 (const char * s, I32 p0, I32 p1, I32 p2, I32 p3); |
csyang2 |
1:c0f972361605 | 493 | void GUI_ErrorOut (const char * s); |
csyang2 |
1:c0f972361605 | 494 | void GUI_ErrorOut1(const char * s, I32 p0); |
csyang2 |
1:c0f972361605 | 495 | void GUI_ErrorOut2(const char * s, I32 p0, I32 p1); |
csyang2 |
1:c0f972361605 | 496 | void GUI_ErrorOut3(const char * s, I32 p0, I32 p1, I32 p2); |
csyang2 |
1:c0f972361605 | 497 | void GUI_ErrorOut4(const char * s, I32 p0, I32 p1, I32 p2, I32 p3); |
csyang2 |
1:c0f972361605 | 498 | |
csyang2 |
1:c0f972361605 | 499 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 500 | * |
csyang2 |
1:c0f972361605 | 501 | * 2d - GL |
csyang2 |
1:c0f972361605 | 502 | */ |
csyang2 |
1:c0f972361605 | 503 | void GUI_Clear (void); |
csyang2 |
1:c0f972361605 | 504 | void GUI_ClearRect (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 505 | void GUI_ClearRectEx (const GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 506 | void GUI_CopyRect (int x0, int y0, int x1, int y1, int dx, int dy); |
csyang2 |
1:c0f972361605 | 507 | void GUI_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1); |
csyang2 |
1:c0f972361605 | 508 | void GUI_DrawBitmap (const GUI_BITMAP * pBM, int x0, int y0); |
csyang2 |
1:c0f972361605 | 509 | void GUI_DrawBitmapMag (const GUI_BITMAP * pBM, int x0, int y0, int XMul, int YMul); |
csyang2 |
1:c0f972361605 | 510 | void GUI_DrawBitmapEx (const GUI_BITMAP * pBM, int x0, int y0, int xCenter, int yCenter, int xMag, int yMag); |
csyang2 |
1:c0f972361605 | 511 | void GUI_DrawBitmapExp (int x0, int y0, int XSize, int YSize, int XMul, int YMul, int BitsPerPixel, int BytesPerLine, const U8 * pData, const GUI_LOGPALETTE * pPal); |
csyang2 |
1:c0f972361605 | 512 | void GUI_DrawBitmapHWAlpha(const GUI_BITMAP * pBM, int x0, int y0); |
csyang2 |
1:c0f972361605 | 513 | void GUI_DrawCircle (int x0, int y0, int r); |
csyang2 |
1:c0f972361605 | 514 | void GUI_DrawEllipse (int x0, int y0, int rx, int ry); |
csyang2 |
1:c0f972361605 | 515 | void GUI_DrawGradientH (int x0, int y0, int x1, int y1, GUI_COLOR Color0, GUI_COLOR Color1); |
csyang2 |
1:c0f972361605 | 516 | void GUI_DrawGradientV (int x0, int y0, int x1, int y1, GUI_COLOR Color0, GUI_COLOR Color1); |
csyang2 |
1:c0f972361605 | 517 | void GUI_DrawGradientRoundedH(int x0, int y0, int x1, int y1, int rd, GUI_COLOR Color0, GUI_COLOR Color1); |
csyang2 |
1:c0f972361605 | 518 | void GUI_DrawGradientRoundedV(int x0, int y0, int x1, int y1, int rd, GUI_COLOR Color0, GUI_COLOR Color1); |
csyang2 |
1:c0f972361605 | 519 | void GUI_DrawGraph (I16 * pay, int NumPoints, int x0, int y0); |
csyang2 |
1:c0f972361605 | 520 | void GUI_DrawGraphEx (I16 * pay, int NumPoints, int x0, int y0, int Numerator, int Denominator, int MirrorX); |
csyang2 |
1:c0f972361605 | 521 | void GUI_DrawHLine (int y0, int x0, int x1); |
csyang2 |
1:c0f972361605 | 522 | void GUI_DrawLine (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 523 | void GUI_DrawLineRel (int dx, int dy); |
csyang2 |
1:c0f972361605 | 524 | void GUI_DrawLineTo (int x, int y); |
csyang2 |
1:c0f972361605 | 525 | void GUI_DrawPie (int x0, int y0, int r, int a0, int a1, int Type); |
csyang2 |
1:c0f972361605 | 526 | void GUI_DrawPixel (int x, int y); |
csyang2 |
1:c0f972361605 | 527 | void GUI_DrawPoint (int x, int y); |
csyang2 |
1:c0f972361605 | 528 | void GUI_DrawPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
csyang2 |
1:c0f972361605 | 529 | void GUI_DrawPolyLine (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
csyang2 |
1:c0f972361605 | 530 | void GUI_DrawFocusRect (const GUI_RECT * pRect, int Dist); |
csyang2 |
1:c0f972361605 | 531 | void GUI_DrawRect (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 532 | void GUI_DrawRectEx (const GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 533 | void GUI_DrawRoundedFrame (int x0, int y0, int x1, int y1, int r, int w); |
csyang2 |
1:c0f972361605 | 534 | void GUI_DrawRoundedRect (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 535 | void GUI_DrawVLine (int x0, int y0, int y1); |
csyang2 |
1:c0f972361605 | 536 | void GUI_FillCircle (int x0, int y0, int r); |
csyang2 |
1:c0f972361605 | 537 | void GUI_FillEllipse (int x0, int y0, int rx, int ry); |
csyang2 |
1:c0f972361605 | 538 | void GUI_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
csyang2 |
1:c0f972361605 | 539 | void GUI_FillRect (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 540 | void GUI_FillRectEx (const GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 541 | void GUI_FillRoundedFrame (int x0, int y0, int x1, int y1, int r, int w); |
csyang2 |
1:c0f972361605 | 542 | void GUI_FillRoundedRect (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 543 | void GUI_FillRoundedRectB (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 544 | void GUI_FillRoundedRectT (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 545 | void GUI_GetClientRect (GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 546 | void GUI_InvertRect (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 547 | void GUI_MoveRel (int dx, int dy); |
csyang2 |
1:c0f972361605 | 548 | void GUI_MoveTo (int x, int y); |
csyang2 |
1:c0f972361605 | 549 | void GUI_SetAlphaMask8888 (U32 OrMask, U32 AndMask); |
csyang2 |
1:c0f972361605 | 550 | |
csyang2 |
1:c0f972361605 | 551 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 552 | * |
csyang2 |
1:c0f972361605 | 553 | * IMAGE file support |
csyang2 |
1:c0f972361605 | 554 | */ |
csyang2 |
1:c0f972361605 | 555 | typedef int GUI_GET_DATA_FUNC(void * p, const U8 ** ppData, unsigned NumBytes, U32 Off); |
csyang2 |
1:c0f972361605 | 556 | |
csyang2 |
1:c0f972361605 | 557 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 558 | * |
csyang2 |
1:c0f972361605 | 559 | * GIF file support |
csyang2 |
1:c0f972361605 | 560 | */ |
csyang2 |
1:c0f972361605 | 561 | int GUI_GIF_Draw (const void * pGIF, U32 NumBytes, int x0, int y0); |
csyang2 |
1:c0f972361605 | 562 | int GUI_GIF_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); |
csyang2 |
1:c0f972361605 | 563 | int GUI_GIF_DrawSub (const void * pGIF, U32 NumBytes, int x0, int y0, int Index); |
csyang2 |
1:c0f972361605 | 564 | int GUI_GIF_DrawSubEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Index); |
csyang2 |
1:c0f972361605 | 565 | int GUI_GIF_DrawSubScaled (const void * pGIF, U32 NumBytes, int x0, int y0, int Index, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 566 | int GUI_GIF_DrawSubScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Index, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 567 | int GUI_GIF_GetComment (const void * pGIF, U32 NumBytes, U8 * pBuffer, int MaxSize, int Index); |
csyang2 |
1:c0f972361605 | 568 | int GUI_GIF_GetCommentEx (GUI_GET_DATA_FUNC * pfGetData, void * p, U8 * pBuffer, int MaxSize, int Index); |
csyang2 |
1:c0f972361605 | 569 | int GUI_GIF_GetImageInfo (const void * pGIF, U32 NumBytes, GUI_GIF_IMAGE_INFO * pInfo, int Index); |
csyang2 |
1:c0f972361605 | 570 | int GUI_GIF_GetImageInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_GIF_IMAGE_INFO * pInfo, int Index); |
csyang2 |
1:c0f972361605 | 571 | int GUI_GIF_GetInfo (const void * pGIF, U32 NumBytes, GUI_GIF_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 572 | int GUI_GIF_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_GIF_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 573 | int GUI_GIF_GetXSize (const void * pGIF); |
csyang2 |
1:c0f972361605 | 574 | int GUI_GIF_GetXSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 575 | int GUI_GIF_GetYSize (const void * pGIF); |
csyang2 |
1:c0f972361605 | 576 | int GUI_GIF_GetYSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 577 | int GUI_GIF_SetFillTrans (int OnOff); |
csyang2 |
1:c0f972361605 | 578 | |
csyang2 |
1:c0f972361605 | 579 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 580 | * |
csyang2 |
1:c0f972361605 | 581 | * BMP file support |
csyang2 |
1:c0f972361605 | 582 | */ |
csyang2 |
1:c0f972361605 | 583 | int GUI_BMP_Draw (const void * pFileData, int x0, int y0); |
csyang2 |
1:c0f972361605 | 584 | int GUI_BMP_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); |
csyang2 |
1:c0f972361605 | 585 | int GUI_BMP_DrawScaled (const void * pFileData, int x0, int y0, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 586 | int GUI_BMP_DrawScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 587 | int GUI_BMP_GetXSize (const void * pFileData); |
csyang2 |
1:c0f972361605 | 588 | int GUI_BMP_GetXSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 589 | int GUI_BMP_GetYSize (const void * pFileData); |
csyang2 |
1:c0f972361605 | 590 | int GUI_BMP_GetYSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 591 | void GUI_BMP_EnableAlpha (void); |
csyang2 |
1:c0f972361605 | 592 | void GUI_BMP_DisableAlpha(void); |
csyang2 |
1:c0f972361605 | 593 | |
csyang2 |
1:c0f972361605 | 594 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 595 | * |
csyang2 |
1:c0f972361605 | 596 | * PNG file support |
csyang2 |
1:c0f972361605 | 597 | */ |
csyang2 |
1:c0f972361605 | 598 | int GUI_PNG_Draw (const void * pFileData, int DataSize, int x0, int y0); |
csyang2 |
1:c0f972361605 | 599 | int GUI_PNG_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); |
csyang2 |
1:c0f972361605 | 600 | int GUI_PNG_GetXSize (const void * pFileData, int FileSize); |
csyang2 |
1:c0f972361605 | 601 | int GUI_PNG_GetXSizeEx(GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 602 | int GUI_PNG_GetYSize (const void * pFileData, int FileSize); |
csyang2 |
1:c0f972361605 | 603 | int GUI_PNG_GetYSizeEx(GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 604 | |
csyang2 |
1:c0f972361605 | 605 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 606 | * |
csyang2 |
1:c0f972361605 | 607 | * JPEG file support |
csyang2 |
1:c0f972361605 | 608 | */ |
csyang2 |
1:c0f972361605 | 609 | typedef struct { |
csyang2 |
1:c0f972361605 | 610 | int XSize; |
csyang2 |
1:c0f972361605 | 611 | int YSize; |
csyang2 |
1:c0f972361605 | 612 | } GUI_JPEG_INFO; |
csyang2 |
1:c0f972361605 | 613 | |
csyang2 |
1:c0f972361605 | 614 | int GUI_JPEG_Draw (const void * pFileData, int DataSize, int x0, int y0); |
csyang2 |
1:c0f972361605 | 615 | int GUI_JPEG_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); |
csyang2 |
1:c0f972361605 | 616 | int GUI_JPEG_DrawScaled (const void * pFileData, int DataSize, int x0, int y0, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 617 | int GUI_JPEG_DrawScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Num, int Denom); |
csyang2 |
1:c0f972361605 | 618 | int GUI_JPEG_GetInfo (const void * pFileData, int DataSize, GUI_JPEG_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 619 | int GUI_JPEG_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_JPEG_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 620 | |
csyang2 |
1:c0f972361605 | 621 | void GUI_JPEG_SetpfDrawEx(int (* pfDrawEx)(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0)); |
csyang2 |
1:c0f972361605 | 622 | |
csyang2 |
1:c0f972361605 | 623 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 624 | * |
csyang2 |
1:c0f972361605 | 625 | * MOVIE file support |
csyang2 |
1:c0f972361605 | 626 | */ |
csyang2 |
1:c0f972361605 | 627 | #define GUI_MOVIE_NOTIFICATION_PREDRAW 0 // Immediately before frame is drawn |
csyang2 |
1:c0f972361605 | 628 | #define GUI_MOVIE_NOTIFICATION_POSTDRAW 1 // Immediately after a frame is drawn |
csyang2 |
1:c0f972361605 | 629 | #define GUI_MOVIE_NOTIFICATION_START 2 // Send when start playing a movie |
csyang2 |
1:c0f972361605 | 630 | #define GUI_MOVIE_NOTIFICATION_STOP 3 // Movie has stopped |
csyang2 |
1:c0f972361605 | 631 | #define GUI_MOVIE_NOTIFICATION_DELETE 4 // Movie has been deleted |
csyang2 |
1:c0f972361605 | 632 | |
csyang2 |
1:c0f972361605 | 633 | typedef GUI_HMEM GUI_MOVIE_HANDLE; |
csyang2 |
1:c0f972361605 | 634 | |
csyang2 |
1:c0f972361605 | 635 | typedef void GUI_MOVIE_FUNC(GUI_MOVIE_HANDLE hMovie, int Notification, U32 CurrentFrame); |
csyang2 |
1:c0f972361605 | 636 | |
csyang2 |
1:c0f972361605 | 637 | typedef struct { |
csyang2 |
1:c0f972361605 | 638 | int xSize; // X-size of images |
csyang2 |
1:c0f972361605 | 639 | int ySize; // Y-size of images |
csyang2 |
1:c0f972361605 | 640 | int msPerFrame; // Default duration of 1 frame |
csyang2 |
1:c0f972361605 | 641 | U32 NumFrames; // Number of frames |
csyang2 |
1:c0f972361605 | 642 | } GUI_MOVIE_INFO; |
csyang2 |
1:c0f972361605 | 643 | |
csyang2 |
1:c0f972361605 | 644 | GUI_MOVIE_HANDLE GUI_MOVIE_Create (const void * pFileData, U32 FileSize, GUI_MOVIE_FUNC * pfNotify); |
csyang2 |
1:c0f972361605 | 645 | GUI_MOVIE_HANDLE GUI_MOVIE_CreateEx (GUI_GET_DATA_FUNC * pfGetData, void * pParam, GUI_MOVIE_FUNC * pfNotify); |
csyang2 |
1:c0f972361605 | 646 | int GUI_MOVIE_Delete (GUI_MOVIE_HANDLE hMovie); |
csyang2 |
1:c0f972361605 | 647 | void GUI_MOVIE_DrawFrame (GUI_MOVIE_HANDLE hMovie, int Index, int x, int y); |
csyang2 |
1:c0f972361605 | 648 | U32 GUI_MOVIE_GetFrameIndex(GUI_MOVIE_HANDLE hMovie); |
csyang2 |
1:c0f972361605 | 649 | int GUI_MOVIE_GetInfo (const void * pFileData, U32 FileSize, GUI_MOVIE_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 650 | int GUI_MOVIE_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * pParam, GUI_MOVIE_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 651 | int GUI_MOVIE_GetNumFrames (GUI_MOVIE_HANDLE hMovie); |
csyang2 |
1:c0f972361605 | 652 | int GUI_MOVIE_GetPos (GUI_MOVIE_HANDLE hMovie, int * pxPos, int * pyPos, int * pxSize, int * pySize); |
csyang2 |
1:c0f972361605 | 653 | int GUI_MOVIE_GotoFrame (GUI_MOVIE_HANDLE hMovie, U32 Frame); |
csyang2 |
1:c0f972361605 | 654 | int GUI_MOVIE_Pause (GUI_MOVIE_HANDLE hMovie); |
csyang2 |
1:c0f972361605 | 655 | int GUI_MOVIE_Play (GUI_MOVIE_HANDLE hMovie); |
csyang2 |
1:c0f972361605 | 656 | int GUI_MOVIE_SetPeriod (GUI_MOVIE_HANDLE hMovie, unsigned Period); |
csyang2 |
1:c0f972361605 | 657 | void GUI_MOVIE_SetpfNotify (GUI_MOVIE_FUNC * pfNotify); |
csyang2 |
1:c0f972361605 | 658 | int GUI_MOVIE_SetPos (GUI_MOVIE_HANDLE hMovie, int xPos, int yPos); |
csyang2 |
1:c0f972361605 | 659 | int GUI_MOVIE_Show (GUI_MOVIE_HANDLE hMovie, int xPos, int yPos, int DoLoop); |
csyang2 |
1:c0f972361605 | 660 | |
csyang2 |
1:c0f972361605 | 661 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 662 | * |
csyang2 |
1:c0f972361605 | 663 | * Splines |
csyang2 |
1:c0f972361605 | 664 | */ |
csyang2 |
1:c0f972361605 | 665 | GUI_HMEM GUI_SPLINE_Create (const int * px, const int * py, unsigned NumPoints); |
csyang2 |
1:c0f972361605 | 666 | void GUI_SPLINE_Draw (GUI_HMEM hSpline, int x, int y); |
csyang2 |
1:c0f972361605 | 667 | void GUI_SPLINE_Delete (GUI_HMEM hSpline); |
csyang2 |
1:c0f972361605 | 668 | I16 GUI_SPLINE_GetY (GUI_HMEM hSpline, unsigned Index, float * py); |
csyang2 |
1:c0f972361605 | 669 | unsigned GUI_SPLINE_GetXSize(GUI_HMEM hSpline); |
csyang2 |
1:c0f972361605 | 670 | void GUI_SPLINE_DrawAA (GUI_HMEM hSpline, int x, int y, unsigned Width); |
csyang2 |
1:c0f972361605 | 671 | |
csyang2 |
1:c0f972361605 | 672 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 673 | * |
csyang2 |
1:c0f972361605 | 674 | * Cursor routines |
csyang2 |
1:c0f972361605 | 675 | */ |
csyang2 |
1:c0f972361605 | 676 | #define GUI_CURSOR_SHOW 0 |
csyang2 |
1:c0f972361605 | 677 | #define GUI_CURSOR_HIDE 1 |
csyang2 |
1:c0f972361605 | 678 | |
csyang2 |
1:c0f972361605 | 679 | typedef struct { |
csyang2 |
1:c0f972361605 | 680 | const GUI_BITMAP * pBitmap; |
csyang2 |
1:c0f972361605 | 681 | int xHot; |
csyang2 |
1:c0f972361605 | 682 | int yHot; |
csyang2 |
1:c0f972361605 | 683 | } GUI_CURSOR; |
csyang2 |
1:c0f972361605 | 684 | |
csyang2 |
1:c0f972361605 | 685 | typedef struct { |
csyang2 |
1:c0f972361605 | 686 | const GUI_BITMAP ** ppBm; |
csyang2 |
1:c0f972361605 | 687 | int xHot; |
csyang2 |
1:c0f972361605 | 688 | int yHot; |
csyang2 |
1:c0f972361605 | 689 | unsigned Period; |
csyang2 |
1:c0f972361605 | 690 | const unsigned * pPeriod; |
csyang2 |
1:c0f972361605 | 691 | int NumItems; |
csyang2 |
1:c0f972361605 | 692 | } GUI_CURSOR_ANIM; |
csyang2 |
1:c0f972361605 | 693 | |
csyang2 |
1:c0f972361605 | 694 | #if GUI_SUPPORT_CURSOR |
csyang2 |
1:c0f972361605 | 695 | int GUI_CURSOR_GetState (void); |
csyang2 |
1:c0f972361605 | 696 | int GUI_CURSOR_GetStateEx (int Layer); |
csyang2 |
1:c0f972361605 | 697 | void GUI_CURSOR_Hide (void); |
csyang2 |
1:c0f972361605 | 698 | void GUI_CURSOR_HideEx (int Layer); |
csyang2 |
1:c0f972361605 | 699 | const GUI_CURSOR * GUI_CURSOR_Select (const GUI_CURSOR * pCursor); |
csyang2 |
1:c0f972361605 | 700 | const GUI_CURSOR * GUI_CURSOR_SelectEx (const GUI_CURSOR * pCursor, int Layer); |
csyang2 |
1:c0f972361605 | 701 | int GUI_CURSOR_SelectAnim (const GUI_CURSOR_ANIM * pCursorAnim); |
csyang2 |
1:c0f972361605 | 702 | int GUI_CURSOR_SelectAnimEx (const GUI_CURSOR_ANIM * pCursorAnim, int LayerIndex); |
csyang2 |
1:c0f972361605 | 703 | int GUI_CURSOR_SetBitmap (const GUI_BITMAP * pBM); |
csyang2 |
1:c0f972361605 | 704 | int GUI_CURSOR_SetBitmapEx (const GUI_BITMAP * pBM, int Layer); |
csyang2 |
1:c0f972361605 | 705 | void GUI_CURSOR_SetPosition (int x, int y); |
csyang2 |
1:c0f972361605 | 706 | void GUI_CURSOR_SetPositionEx(int xNewPos, int yNewPos, int Layer); |
csyang2 |
1:c0f972361605 | 707 | void GUI_CURSOR_Show (void); |
csyang2 |
1:c0f972361605 | 708 | void GUI_CURSOR_ShowEx (int Layer); |
csyang2 |
1:c0f972361605 | 709 | GUI_HSPRITE GUI_CURSOR__GetSpriteEx (int LayerIndex, int * pxPos, int * pyPos); |
csyang2 |
1:c0f972361605 | 710 | void GUI_CURSOR__SetSpriteEx (GUI_HSPRITE hSprite, const GUI_CURSOR * pCursor, int LayerIndex); |
csyang2 |
1:c0f972361605 | 711 | #else |
csyang2 |
1:c0f972361605 | 712 | #define GUI_CURSOR_Show(); |
csyang2 |
1:c0f972361605 | 713 | #define GUI_CURSOR_Clear(); |
csyang2 |
1:c0f972361605 | 714 | #endif |
csyang2 |
1:c0f972361605 | 715 | |
csyang2 |
1:c0f972361605 | 716 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 717 | * |
csyang2 |
1:c0f972361605 | 718 | * Sprite support |
csyang2 |
1:c0f972361605 | 719 | */ |
csyang2 |
1:c0f972361605 | 720 | #define GUI_SPRITE_CF_STAYONTOP (1 << 0) |
csyang2 |
1:c0f972361605 | 721 | #define GUI_SPRITE_CF_SHOW (1 << 1) |
csyang2 |
1:c0f972361605 | 722 | |
csyang2 |
1:c0f972361605 | 723 | #define GUI_SPRITE_SHOW 0 |
csyang2 |
1:c0f972361605 | 724 | #define GUI_SPRITE_HIDE 1 |
csyang2 |
1:c0f972361605 | 725 | |
csyang2 |
1:c0f972361605 | 726 | GUI_HSPRITE GUI_SPRITE__CreateEx (const GUI_BITMAP * pBM, int x, int y, int Layer, U16 Flags); /* Not to be documented, only used by cursor modul */ |
csyang2 |
1:c0f972361605 | 727 | void GUI_SPRITE__SetCallback (GUI_HSPRITE hSprite, GUI_HMEM hContext, void (* pCB)(GUI_HSPRITE, int)); |
csyang2 |
1:c0f972361605 | 728 | GUI_HSPRITE GUI_SPRITE_Create (const GUI_BITMAP * pBM, int x, int y); |
csyang2 |
1:c0f972361605 | 729 | GUI_HSPRITE GUI_SPRITE_CreateAnim (const GUI_BITMAP ** ppBm, int x, int y, unsigned Period, const unsigned * pPeriod, int NumItems); |
csyang2 |
1:c0f972361605 | 730 | GUI_HSPRITE GUI_SPRITE_CreateEx (const GUI_BITMAP * pBM, int x, int y, int Layer); |
csyang2 |
1:c0f972361605 | 731 | GUI_HSPRITE GUI_SPRITE_CreateExAnim (const GUI_BITMAP ** ppBm, int x, int y, unsigned Period, const unsigned * pPeriod, int NumItems, int LayerIndex); |
csyang2 |
1:c0f972361605 | 732 | GUI_HSPRITE GUI_SPRITE_CreateHidden (const GUI_BITMAP * pBM, int x, int y); |
csyang2 |
1:c0f972361605 | 733 | GUI_HSPRITE GUI_SPRITE_CreateHiddenEx (const GUI_BITMAP * pBM, int x, int y, int Layer); |
csyang2 |
1:c0f972361605 | 734 | void GUI_SPRITE_Delete (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 735 | int GUI_SPRITE_GetState (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 736 | void GUI_SPRITE_Hide (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 737 | int GUI_SPRITE_SetBitmap (GUI_HSPRITE hSprite, const GUI_BITMAP * pBM); |
csyang2 |
1:c0f972361605 | 738 | int GUI_SPRITE_SetBitmapAndPosition(GUI_HSPRITE hSprite, const GUI_BITMAP * pBM, int x, int y); |
csyang2 |
1:c0f972361605 | 739 | int GUI_SPRITE_SetLoop (GUI_HSPRITE hSprite, int OnOff); |
csyang2 |
1:c0f972361605 | 740 | void GUI_SPRITE_SetPosition (GUI_HSPRITE hSprite, int x, int y); |
csyang2 |
1:c0f972361605 | 741 | int GUI_SPRITE_StartAnim (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 742 | int GUI_SPRITE_StopAnim (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 743 | void GUI_SPRITE_Show (GUI_HSPRITE hSprite); |
csyang2 |
1:c0f972361605 | 744 | |
csyang2 |
1:c0f972361605 | 745 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 746 | * |
csyang2 |
1:c0f972361605 | 747 | * Cursors and their bitmaps |
csyang2 |
1:c0f972361605 | 748 | */ |
csyang2 |
1:c0f972361605 | 749 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowS, GUI_CursorArrowSI; |
csyang2 |
1:c0f972361605 | 750 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowM, GUI_CursorArrowMI; |
csyang2 |
1:c0f972361605 | 751 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowL, GUI_CursorArrowLI; |
csyang2 |
1:c0f972361605 | 752 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossS, GUI_CursorCrossSI; |
csyang2 |
1:c0f972361605 | 753 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossM, GUI_CursorCrossMI; |
csyang2 |
1:c0f972361605 | 754 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossL, GUI_CursorCrossLI; |
csyang2 |
1:c0f972361605 | 755 | extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorHeaderM, GUI_CursorHeaderMI; |
csyang2 |
1:c0f972361605 | 756 | extern GUI_CONST_STORAGE GUI_CURSOR_ANIM GUI_CursorAnimHourglassM; |
csyang2 |
1:c0f972361605 | 757 | |
csyang2 |
1:c0f972361605 | 758 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 759 | * |
csyang2 |
1:c0f972361605 | 760 | * Wrap modes |
csyang2 |
1:c0f972361605 | 761 | */ |
csyang2 |
1:c0f972361605 | 762 | typedef enum { GUI_WRAPMODE_NONE, GUI_WRAPMODE_WORD, GUI_WRAPMODE_CHAR } GUI_WRAPMODE; |
csyang2 |
1:c0f972361605 | 763 | |
csyang2 |
1:c0f972361605 | 764 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 765 | * |
csyang2 |
1:c0f972361605 | 766 | * Text related routines |
csyang2 |
1:c0f972361605 | 767 | */ |
csyang2 |
1:c0f972361605 | 768 | void GUI_DispCEOL (void); |
csyang2 |
1:c0f972361605 | 769 | void GUI_DispChar (U16 c); |
csyang2 |
1:c0f972361605 | 770 | void GUI_DispCharAt (U16 c, I16P x, I16P y); |
csyang2 |
1:c0f972361605 | 771 | void GUI_DispChars (U16 c, int Cnt); |
csyang2 |
1:c0f972361605 | 772 | void GUI_DispNextLine (void); |
csyang2 |
1:c0f972361605 | 773 | void GUI_DispString (const char * s); |
csyang2 |
1:c0f972361605 | 774 | void GUI_DispStringAt (const char * s, int x, int y); |
csyang2 |
1:c0f972361605 | 775 | void GUI_DispStringAtCEOL (const char * s, int x, int y); |
csyang2 |
1:c0f972361605 | 776 | void GUI_DispStringHCenterAt (const char * s, int x, int y); |
csyang2 |
1:c0f972361605 | 777 | void GUI__DispStringInRect (const char * s, GUI_RECT * pRect, int TextAlign, int MaxNumChars); |
csyang2 |
1:c0f972361605 | 778 | void GUI_DispStringInRect (const char * s, GUI_RECT * pRect, int TextAlign); |
csyang2 |
1:c0f972361605 | 779 | #if GUI_SUPPORT_ROTATION |
csyang2 |
1:c0f972361605 | 780 | void GUI_DispStringInRectEx (const char * s, GUI_RECT * pRect, int TextAlign, int MaxLen, const GUI_ROTATION * pLCD_Api); |
csyang2 |
1:c0f972361605 | 781 | #endif |
csyang2 |
1:c0f972361605 | 782 | void GUI_DispStringInRectMax (const char * s, GUI_RECT * pRect, int TextAlign, int MaxLen); /* Not to be doc. */ |
csyang2 |
1:c0f972361605 | 783 | void GUI_DispStringInRectWrap (const char * s, GUI_RECT * pRect, int TextAlign, GUI_WRAPMODE WrapMode); /* Not to be doc. */ |
csyang2 |
1:c0f972361605 | 784 | #if GUI_SUPPORT_ROTATION |
csyang2 |
1:c0f972361605 | 785 | void GUI_DispStringInRectWrapEx(const char * s, GUI_RECT * pRect, int TextAlign, GUI_WRAPMODE WrapMode, const GUI_ROTATION * pLCD_Api); |
csyang2 |
1:c0f972361605 | 786 | #endif |
csyang2 |
1:c0f972361605 | 787 | void GUI_DispStringLen (const char * s, int Len); |
csyang2 |
1:c0f972361605 | 788 | void GUI_GetTextExtend (GUI_RECT* pRect, const char * s, int Len); |
csyang2 |
1:c0f972361605 | 789 | int GUI_GetYAdjust (void); |
csyang2 |
1:c0f972361605 | 790 | int GUI_GetDispPosX (void); |
csyang2 |
1:c0f972361605 | 791 | int GUI_GetDispPosY (void); |
csyang2 |
1:c0f972361605 | 792 | const GUI_FONT * GUI_GetFont (void); |
csyang2 |
1:c0f972361605 | 793 | int GUI_GetCharDistX (U16 c); |
csyang2 |
1:c0f972361605 | 794 | int GUI_GetCharDistXEx (U16 c, int * pSizeX); |
csyang2 |
1:c0f972361605 | 795 | int GUI_GetStringDistX (const char * s); |
csyang2 |
1:c0f972361605 | 796 | GUI_DRAWMODE GUI_GetDrawMode (void); |
csyang2 |
1:c0f972361605 | 797 | int GUI_GetFontDistY (void); |
csyang2 |
1:c0f972361605 | 798 | int GUI_GetFontSizeY (void); |
csyang2 |
1:c0f972361605 | 799 | void GUI_GetFontInfo (const GUI_FONT * pFont, GUI_FONTINFO * pfi); |
csyang2 |
1:c0f972361605 | 800 | void GUI_GetOrg (int * px, int * py); |
csyang2 |
1:c0f972361605 | 801 | int GUI_GetYSizeOfFont (const GUI_FONT * pFont); |
csyang2 |
1:c0f972361605 | 802 | int GUI_GetYDistOfFont (const GUI_FONT * pFont); |
csyang2 |
1:c0f972361605 | 803 | int GUI_GetTextAlign (void); |
csyang2 |
1:c0f972361605 | 804 | int GUI_GetTextMode (void); |
csyang2 |
1:c0f972361605 | 805 | char GUI_IsInFont (const GUI_FONT * pFont, U16 c); |
csyang2 |
1:c0f972361605 | 806 | U8 GUI_SetClearTextRectMode (unsigned OnOff); |
csyang2 |
1:c0f972361605 | 807 | int GUI_SetTextAlign (int Align); |
csyang2 |
1:c0f972361605 | 808 | int GUI_SetTextMode (int Mode); |
csyang2 |
1:c0f972361605 | 809 | char GUI_SetTextStyle (char Style); |
csyang2 |
1:c0f972361605 | 810 | int GUI_SetLBorder (int x); |
csyang2 |
1:c0f972361605 | 811 | U8 GUI_SetStrikeWidth (U8 StrikeWidth); |
csyang2 |
1:c0f972361605 | 812 | const GUI_FONT * GUI_SetFont (const GUI_FONT * pNewFont); |
csyang2 |
1:c0f972361605 | 813 | char GUI_GotoXY (int x, int y); |
csyang2 |
1:c0f972361605 | 814 | char GUI_GotoX (int x); |
csyang2 |
1:c0f972361605 | 815 | char GUI_GotoY (int y); |
csyang2 |
1:c0f972361605 | 816 | int GUI_WrapGetNumLines (const char * pText, int xSize, GUI_WRAPMODE WrapMode); |
csyang2 |
1:c0f972361605 | 817 | int GUI_WrapGetPositions (const char * pText, int xSize, GUI_WRAPMODE WrapMode, int * aPos, int NumItems); |
csyang2 |
1:c0f972361605 | 818 | void GUI_WrapSetSeparators (const U16 * pSep, int NumSeps); |
csyang2 |
1:c0f972361605 | 819 | |
csyang2 |
1:c0f972361605 | 820 | int GUI_GetLeadingBlankCols (U16 c); |
csyang2 |
1:c0f972361605 | 821 | int GUI_GetTrailingBlankCols(U16 c); |
csyang2 |
1:c0f972361605 | 822 | |
csyang2 |
1:c0f972361605 | 823 | |
csyang2 |
1:c0f972361605 | 824 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 825 | * |
csyang2 |
1:c0f972361605 | 826 | * System independent fonts (SIF) |
csyang2 |
1:c0f972361605 | 827 | */ |
csyang2 |
1:c0f972361605 | 828 | void GUI_SIF_CreateFont(const void * pFontData, GUI_FONT * pFont, const GUI_SIF_TYPE * pFontType); |
csyang2 |
1:c0f972361605 | 829 | void GUI_SIF_DeleteFont(GUI_FONT * pFont); |
csyang2 |
1:c0f972361605 | 830 | |
csyang2 |
1:c0f972361605 | 831 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 832 | * |
csyang2 |
1:c0f972361605 | 833 | * External binary fonts (XBF) |
csyang2 |
1:c0f972361605 | 834 | */ |
csyang2 |
1:c0f972361605 | 835 | int GUI_XBF_CreateFont(GUI_FONT * pFont, GUI_XBF_DATA * pXBF, const GUI_XBF_TYPE * pFontType, GUI_XBF_GET_DATA_FUNC * pfGetData, void * pVoid); |
csyang2 |
1:c0f972361605 | 836 | void GUI_XBF_DeleteFont(GUI_FONT * pFont); |
csyang2 |
1:c0f972361605 | 837 | |
csyang2 |
1:c0f972361605 | 838 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 839 | * |
csyang2 |
1:c0f972361605 | 840 | * TrueType support (TTF) |
csyang2 |
1:c0f972361605 | 841 | */ |
csyang2 |
1:c0f972361605 | 842 | int GUI_TTF_CreateFont (GUI_FONT * pFont, GUI_TTF_CS * pCS); |
csyang2 |
1:c0f972361605 | 843 | int GUI_TTF_CreateFontAA (GUI_FONT * pFont, GUI_TTF_CS * pCS); |
csyang2 |
1:c0f972361605 | 844 | void GUI_TTF_DestroyCache (void); |
csyang2 |
1:c0f972361605 | 845 | void GUI_TTF_Done (void); |
csyang2 |
1:c0f972361605 | 846 | int GUI_TTF_GetFamilyName(GUI_FONT * pFont, char * pBuffer, int NumBytes); |
csyang2 |
1:c0f972361605 | 847 | int GUI_TTF_GetStyleName (GUI_FONT * pFont, char * pBuffer, int NumBytes); |
csyang2 |
1:c0f972361605 | 848 | void GUI_TTF_SetCacheSize (unsigned MaxFaces, unsigned MaxSizes, U32 MaxBytes); |
csyang2 |
1:c0f972361605 | 849 | |
csyang2 |
1:c0f972361605 | 850 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 851 | * |
csyang2 |
1:c0f972361605 | 852 | * Resource file support |
csyang2 |
1:c0f972361605 | 853 | */ |
csyang2 |
1:c0f972361605 | 854 | int GUI_LANG_GetLang (void); |
csyang2 |
1:c0f972361605 | 855 | int GUI_LANG_GetNumItems (int IndexLang); |
csyang2 |
1:c0f972361605 | 856 | const char * GUI_LANG_GetText (int IndexText); |
csyang2 |
1:c0f972361605 | 857 | int GUI_LANG_GetTextBuffered (int IndexText, char * pBuffer, int SizeOfBuffer); |
csyang2 |
1:c0f972361605 | 858 | int GUI_LANG_GetTextBufferedEx(int IndexText, int IndexLang, char * pBuffer, int SizeOfBuffer); |
csyang2 |
1:c0f972361605 | 859 | const char * GUI_LANG_GetTextEx (int IndexText, int IndexLang); |
csyang2 |
1:c0f972361605 | 860 | int GUI_LANG_LoadCSV (U8 * pFileData, U32 FileSize); |
csyang2 |
1:c0f972361605 | 861 | int GUI_LANG_LoadCSVEx (GUI_GET_DATA_FUNC * pfGetData, void * p); |
csyang2 |
1:c0f972361605 | 862 | int GUI_LANG_LoadText (U8 * pFileData, U32 FileSize, int IndexLang); |
csyang2 |
1:c0f972361605 | 863 | int GUI_LANG_LoadTextEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int IndexLang); |
csyang2 |
1:c0f972361605 | 864 | int GUI_LANG_SetLang (int IndexLang); |
csyang2 |
1:c0f972361605 | 865 | unsigned GUI_LANG_SetMaxNumLang (unsigned MaxNumLang); |
csyang2 |
1:c0f972361605 | 866 | U16 GUI_LANG_SetSep (U16 Sep); |
csyang2 |
1:c0f972361605 | 867 | |
csyang2 |
1:c0f972361605 | 868 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 869 | * |
csyang2 |
1:c0f972361605 | 870 | * Unicode support |
csyang2 |
1:c0f972361605 | 871 | */ |
csyang2 |
1:c0f972361605 | 872 | int GUI_UC_ConvertUC2UTF8(const U16 * s, int Len, char * pBuffer, int BufferSize); |
csyang2 |
1:c0f972361605 | 873 | int GUI_UC_ConvertUTF82UC(const char * s, int Len, U16 * pBuffer, int BufferSize); |
csyang2 |
1:c0f972361605 | 874 | int GUI_UC_EnableBIDI (int OnOff); |
csyang2 |
1:c0f972361605 | 875 | int GUI_UC_Encode (char * s, U16 Char); |
csyang2 |
1:c0f972361605 | 876 | int GUI_UC_GetCharSize (const char * s); |
csyang2 |
1:c0f972361605 | 877 | U16 GUI_UC_GetCharCode (const char * s); |
csyang2 |
1:c0f972361605 | 878 | void GUI_UC_SetEncodeNone (void); |
csyang2 |
1:c0f972361605 | 879 | void GUI_UC_SetEncodeSJIS (void); |
csyang2 |
1:c0f972361605 | 880 | void GUI_UC_SetEncodeUTF8 (void); |
csyang2 |
1:c0f972361605 | 881 | void GUI_UC_SetBaseDir (int Dir); // Only available with new version of BIDI algorithm (GUI_USE_BIDI2 == 1) |
csyang2 |
1:c0f972361605 | 882 | int GUI_UC_GetBaseDir (void); // Only available with new version of BIDI algorithm (GUI_USE_BIDI2 == 1) |
csyang2 |
1:c0f972361605 | 883 | |
csyang2 |
1:c0f972361605 | 884 | void GUI_UC_DispString(const U16 * s); |
csyang2 |
1:c0f972361605 | 885 | void GUI_UC2DB (U16 Code, U8 * pOut); |
csyang2 |
1:c0f972361605 | 886 | U16 GUI_DB2UC (U8 Byte0, U8 Byte1); |
csyang2 |
1:c0f972361605 | 887 | |
csyang2 |
1:c0f972361605 | 888 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 889 | * |
csyang2 |
1:c0f972361605 | 890 | * Bidi support |
csyang2 |
1:c0f972361605 | 891 | */ |
csyang2 |
1:c0f972361605 | 892 | #define GUI_BIDI_BASEDIR_LTR 0 |
csyang2 |
1:c0f972361605 | 893 | #define GUI_BIDI_BASEDIR_RTL 1 |
csyang2 |
1:c0f972361605 | 894 | #define GUI_BIDI_BASEDIR_AUTO 2 |
csyang2 |
1:c0f972361605 | 895 | |
csyang2 |
1:c0f972361605 | 896 | #define GUI_BIDI_LOG2VIS_CALC 0 |
csyang2 |
1:c0f972361605 | 897 | #define GUI_BIDI_LOG2VIS_GETCACHE 1 |
csyang2 |
1:c0f972361605 | 898 | |
csyang2 |
1:c0f972361605 | 899 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 900 | * |
csyang2 |
1:c0f972361605 | 901 | * Drawing of binary, decimal and hexadecimal values |
csyang2 |
1:c0f972361605 | 902 | */ |
csyang2 |
1:c0f972361605 | 903 | void GUI_DispBin (U32 v, U8 Len); |
csyang2 |
1:c0f972361605 | 904 | void GUI_DispBinAt(U32 v, I16P x, I16P y, U8 Len); |
csyang2 |
1:c0f972361605 | 905 | void GUI_DispDec (I32 v, U8 Len); |
csyang2 |
1:c0f972361605 | 906 | void GUI_DispDecAt (I32 v, I16P x, I16P y, U8 Len); |
csyang2 |
1:c0f972361605 | 907 | void GUI_DispDecMin(I32 v); |
csyang2 |
1:c0f972361605 | 908 | void GUI_DispDecShift(I32 v, U8 Len, U8 Shift); |
csyang2 |
1:c0f972361605 | 909 | void GUI_DispDecSpace(I32 v, U8 MaxDigits); |
csyang2 |
1:c0f972361605 | 910 | void GUI_DispHex (U32 v, U8 Len); |
csyang2 |
1:c0f972361605 | 911 | void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len); |
csyang2 |
1:c0f972361605 | 912 | void GUI_DispSDec(I32 v, U8 Len); |
csyang2 |
1:c0f972361605 | 913 | void GUI_DispSDecShift(I32 v, U8 Len, U8 Shift); |
csyang2 |
1:c0f972361605 | 914 | |
csyang2 |
1:c0f972361605 | 915 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 916 | * |
csyang2 |
1:c0f972361605 | 917 | * Drawing of floating point values |
csyang2 |
1:c0f972361605 | 918 | */ |
csyang2 |
1:c0f972361605 | 919 | void GUI_DispFloat (float v, char Len); |
csyang2 |
1:c0f972361605 | 920 | void GUI_DispFloatFix (float v, char Len, char Fract); |
csyang2 |
1:c0f972361605 | 921 | void GUI_DispFloatMin (float v, char Fract); |
csyang2 |
1:c0f972361605 | 922 | void GUI_DispSFloatFix(float v, char Len, char Fract); |
csyang2 |
1:c0f972361605 | 923 | void GUI_DispSFloatMin(float v, char Fract); |
csyang2 |
1:c0f972361605 | 924 | |
csyang2 |
1:c0f972361605 | 925 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 926 | * |
csyang2 |
1:c0f972361605 | 927 | * Dynamic memory management |
csyang2 |
1:c0f972361605 | 928 | */ |
csyang2 |
1:c0f972361605 | 929 | typedef struct { |
csyang2 |
1:c0f972361605 | 930 | U32 TotalBytes; |
csyang2 |
1:c0f972361605 | 931 | U32 FreeBytes; |
csyang2 |
1:c0f972361605 | 932 | U32 UsedBytes; |
csyang2 |
1:c0f972361605 | 933 | U32 AllocSize; |
csyang2 |
1:c0f972361605 | 934 | U32 NumFixedBytes; |
csyang2 |
1:c0f972361605 | 935 | U32 MaxUsedBytes; |
csyang2 |
1:c0f972361605 | 936 | } GUI_ALLOC_INFO; |
csyang2 |
1:c0f972361605 | 937 | |
csyang2 |
1:c0f972361605 | 938 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBlocks(void); |
csyang2 |
1:c0f972361605 | 939 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBytes (void); |
csyang2 |
1:c0f972361605 | 940 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBlocks(void); |
csyang2 |
1:c0f972361605 | 941 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBytes (void); |
csyang2 |
1:c0f972361605 | 942 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxUsedBytes (void); |
csyang2 |
1:c0f972361605 | 943 | |
csyang2 |
1:c0f972361605 | 944 | void GUI_ALLOC_GetMemInfo (GUI_ALLOC_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 945 | void GUI_ALLOC_SuppressPeak(int OnOff); |
csyang2 |
1:c0f972361605 | 946 | |
csyang2 |
1:c0f972361605 | 947 | GUI_HMEM GUI_ALLOC_AllocInit (const void * pInitData, GUI_ALLOC_DATATYPE Size); |
csyang2 |
1:c0f972361605 | 948 | GUI_HMEM GUI_ALLOC_AllocNoInit (GUI_ALLOC_DATATYPE size); |
csyang2 |
1:c0f972361605 | 949 | GUI_HMEM GUI_ALLOC_AllocZero (GUI_ALLOC_DATATYPE size); |
csyang2 |
1:c0f972361605 | 950 | void GUI_ALLOC_AssignMemory (void * p, U32 NumBytes); |
csyang2 |
1:c0f972361605 | 951 | void GUI_ALLOC_Free (GUI_HMEM hMem); |
csyang2 |
1:c0f972361605 | 952 | void GUI_ALLOC_FreeFixedBlock (void * p); |
csyang2 |
1:c0f972361605 | 953 | void GUI_ALLOC_FreePtrArray (GUI_HMEM * pArray, int NumElems); |
csyang2 |
1:c0f972361605 | 954 | void GUI_ALLOC_FreePtr (GUI_HMEM * phMem); |
csyang2 |
1:c0f972361605 | 955 | void * GUI_ALLOC_GetFixedBlock (GUI_ALLOC_DATATYPE Size); |
csyang2 |
1:c0f972361605 | 956 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxSize (void); |
csyang2 |
1:c0f972361605 | 957 | GUI_ALLOC_DATATYPE GUI_ALLOC_GetSize (GUI_HMEM hMem); |
csyang2 |
1:c0f972361605 | 958 | void * GUI_ALLOC_h2p (GUI_HMEM hMem); |
csyang2 |
1:c0f972361605 | 959 | GUI_HMEM GUI_ALLOC_p2h (void * p); |
csyang2 |
1:c0f972361605 | 960 | void GUI_ALLOC_Init (void); |
csyang2 |
1:c0f972361605 | 961 | void GUI_ALLOC_Lock (void); |
csyang2 |
1:c0f972361605 | 962 | void * GUI_ALLOC_LockH (GUI_HMEM hMem); |
csyang2 |
1:c0f972361605 | 963 | GUI_HMEM GUI_ALLOC_Realloc (GUI_HMEM hOld, int NewSize); |
csyang2 |
1:c0f972361605 | 964 | GUI_ALLOC_DATATYPE GUI_ALLOC_RequestSize (void); |
csyang2 |
1:c0f972361605 | 965 | void GUI_ALLOC_SetAvBlockSize (U32 BlockSize); |
csyang2 |
1:c0f972361605 | 966 | void GUI_ALLOC_Unlock (void); |
csyang2 |
1:c0f972361605 | 967 | void * GUI_ALLOC_UnlockH (void ** pp); |
csyang2 |
1:c0f972361605 | 968 | int GUI_ALLOC_SetMaxPercentage(int MaxPercentage); |
csyang2 |
1:c0f972361605 | 969 | void GUI_ALLOC_Exit (void); |
csyang2 |
1:c0f972361605 | 970 | |
csyang2 |
1:c0f972361605 | 971 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 972 | * |
csyang2 |
1:c0f972361605 | 973 | * Memory devices: GUI_MEMDEV |
csyang2 |
1:c0f972361605 | 974 | */ |
csyang2 |
1:c0f972361605 | 975 | #define GUI_MEMDEV_HASTRANS 0 |
csyang2 |
1:c0f972361605 | 976 | #define GUI_MEMDEV_NOTRANS (1 << 0) |
csyang2 |
1:c0f972361605 | 977 | |
csyang2 |
1:c0f972361605 | 978 | typedef GUI_HMEM GUI_MEMDEV_Handle; |
csyang2 |
1:c0f972361605 | 979 | typedef void GUI_CALLBACK_VOID_P (void * p); |
csyang2 |
1:c0f972361605 | 980 | typedef int GUI_ANIMATION_CALLBACK_FUNC(int TimeRem, void * pVoid); |
csyang2 |
1:c0f972361605 | 981 | typedef void GUI_DRAWMEMDEV_16BPP_FUNC (void * pDst, const void * pSrc, int xSize, int ySize, int BytesPerLineDst, int BytesPerLineSrc); |
csyang2 |
1:c0f972361605 | 982 | |
csyang2 |
1:c0f972361605 | 983 | #define GUI_DRAWMEMDEV_FUNC GUI_DRAWMEMDEV_16BPP_FUNC |
csyang2 |
1:c0f972361605 | 984 | |
csyang2 |
1:c0f972361605 | 985 | typedef void GUI_DRAWBITMAP_FUNC (int LayerIndex, int x, int y, const void * p, int xSize, int ySize, int BytesPerLine); |
csyang2 |
1:c0f972361605 | 986 | |
csyang2 |
1:c0f972361605 | 987 | int GUI_SetFuncDrawAlpha(GUI_DRAWMEMDEV_FUNC * pfDrawMemdevFunc, GUI_DRAWBITMAP_FUNC * pfDrawBitmapFunc); |
csyang2 |
1:c0f972361605 | 988 | int GUI_SetFuncDrawM565 (GUI_DRAWMEMDEV_FUNC * pfDrawMemdevFunc, GUI_DRAWBITMAP_FUNC * pfDrawBitmapFunc); |
csyang2 |
1:c0f972361605 | 989 | |
csyang2 |
1:c0f972361605 | 990 | extern GUI_ANIMATION_CALLBACK_FUNC * GUI_MEMDEV__pCbAnimation; |
csyang2 |
1:c0f972361605 | 991 | extern void * GUI_MEMDEV__pVoid; |
csyang2 |
1:c0f972361605 | 992 | |
csyang2 |
1:c0f972361605 | 993 | extern void (* GUI_MEMDEV__pfMEMDEV_Write) (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 994 | extern void (* GUI_MEMDEV__pfMEMDEV_CopyToLCD)(GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 995 | |
csyang2 |
1:c0f972361605 | 996 | typedef struct { |
csyang2 |
1:c0f972361605 | 997 | GUI_RECT rView, rPrev; |
csyang2 |
1:c0f972361605 | 998 | char FirstCall; |
csyang2 |
1:c0f972361605 | 999 | } GUI_AUTODEV; |
csyang2 |
1:c0f972361605 | 1000 | |
csyang2 |
1:c0f972361605 | 1001 | typedef struct { |
csyang2 |
1:c0f972361605 | 1002 | char DrawFixed; |
csyang2 |
1:c0f972361605 | 1003 | char IsMeasurement; |
csyang2 |
1:c0f972361605 | 1004 | } GUI_AUTODEV_INFO; |
csyang2 |
1:c0f972361605 | 1005 | |
csyang2 |
1:c0f972361605 | 1006 | int GUI_MEMDEV_CreateAuto(GUI_AUTODEV * pAutoDev); |
csyang2 |
1:c0f972361605 | 1007 | void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV * pAutoDev); |
csyang2 |
1:c0f972361605 | 1008 | int GUI_MEMDEV_DrawAuto (GUI_AUTODEV * pAutoDev, GUI_AUTODEV_INFO * pAutoDevInfo, GUI_CALLBACK_VOID_P * pfDraw, void * pData); |
csyang2 |
1:c0f972361605 | 1009 | |
csyang2 |
1:c0f972361605 | 1010 | /* Create a memory device which is compatible to the selected LCD */ |
csyang2 |
1:c0f972361605 | 1011 | GUI_MEMDEV_Handle GUI_MEMDEV_Create (int x0, int y0, int xSize, int ySize); |
csyang2 |
1:c0f972361605 | 1012 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateEx (int x0, int y0, int xSize, int ySize, int Flags); |
csyang2 |
1:c0f972361605 | 1013 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed (int x0, int y0, int xSize, int ySize, int Flags, |
csyang2 |
1:c0f972361605 | 1014 | const GUI_DEVICE_API * pDeviceAPI, |
csyang2 |
1:c0f972361605 | 1015 | const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 1016 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed32(int x0, int y0, int xSize, int ySize); |
csyang2 |
1:c0f972361605 | 1017 | |
csyang2 |
1:c0f972361605 | 1018 | void GUI_MEMDEV_Clear (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1019 | int GUI_MEMDEV_ClearAlpha (GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask); |
csyang2 |
1:c0f972361605 | 1020 | void GUI_MEMDEV_CopyFromLCD (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1021 | void GUI_MEMDEV_CopyFromLCDAA (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1022 | void GUI_MEMDEV_CopyToLCD (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1023 | void GUI_MEMDEV_CopyToLCDAA (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1024 | void GUI_MEMDEV_CopyToLCDAt (GUI_MEMDEV_Handle hMem, int x, int y); |
csyang2 |
1:c0f972361605 | 1025 | int GUI_MEMDEV_CompareWithLCD (GUI_MEMDEV_Handle hMem, int * px, int * py, int * pExp, int * pAct); |
csyang2 |
1:c0f972361605 | 1026 | void GUI_MEMDEV_Delete (GUI_MEMDEV_Handle MemDev); |
csyang2 |
1:c0f972361605 | 1027 | void GUI_MEMDEV_DrawPerspectiveX (GUI_MEMDEV_Handle hMem, int x, int y, int h0, int h1, int dx, int dy); |
csyang2 |
1:c0f972361605 | 1028 | int GUI_MEMDEV_GetXPos (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1029 | int GUI_MEMDEV_GetXSize (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1030 | int GUI_MEMDEV_GetYPos (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1031 | int GUI_MEMDEV_GetYSize (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1032 | void GUI_MEMDEV_MarkDirty (GUI_MEMDEV_Handle hMem, int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 1033 | void GUI_MEMDEV_ReduceYSize (GUI_MEMDEV_Handle hMem, int YSize); |
csyang2 |
1:c0f972361605 | 1034 | void GUI_MEMDEV_Rotate (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1035 | void GUI_MEMDEV_RotateAlpha (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U8 Alpha); |
csyang2 |
1:c0f972361605 | 1036 | void GUI_MEMDEV_RotateHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1037 | void GUI_MEMDEV__Rotate (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U32 Mask); |
csyang2 |
1:c0f972361605 | 1038 | void GUI_MEMDEV__RotateHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag, U32 Mask); |
csyang2 |
1:c0f972361605 | 1039 | void GUI_MEMDEV_RotateHQ (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1040 | void GUI_MEMDEV_RotateHQAlpha (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U8 Alpha); |
csyang2 |
1:c0f972361605 | 1041 | void GUI_MEMDEV_RotateHQHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1042 | void GUI_MEMDEV_RotateHQT (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1043 | void GUI_MEMDEV_RotateHQTI (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); |
csyang2 |
1:c0f972361605 | 1044 | GUI_MEMDEV_Handle GUI_MEMDEV_Select (GUI_MEMDEV_Handle hMem); /* Select (activate) a particular memory device. */ |
csyang2 |
1:c0f972361605 | 1045 | void GUI_MEMDEV_SetOrg (GUI_MEMDEV_Handle hMem, int x0, int y0); |
csyang2 |
1:c0f972361605 | 1046 | void GUI_MEMDEV_WriteAt (GUI_MEMDEV_Handle hMem, int x, int y); |
csyang2 |
1:c0f972361605 | 1047 | void GUI_MEMDEV_Write (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1048 | void GUI_MEMDEV_WriteAlphaAt (GUI_MEMDEV_Handle hMem, int Alpha, int x, int y); |
csyang2 |
1:c0f972361605 | 1049 | void GUI_MEMDEV_WriteAlpha (GUI_MEMDEV_Handle hMem, int Alpha); |
csyang2 |
1:c0f972361605 | 1050 | void GUI_MEMDEV_WriteExAt (GUI_MEMDEV_Handle hMem, int x, int y, int xMag, int yMag, int Alpha); |
csyang2 |
1:c0f972361605 | 1051 | void GUI_MEMDEV_WriteEx (GUI_MEMDEV_Handle hMem, int xMag, int yMag, int Alpha); |
csyang2 |
1:c0f972361605 | 1052 | void GUI_MEMDEV_WriteOpaque (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1053 | void GUI_MEMDEV_WriteOpaqueAt (GUI_MEMDEV_Handle hMem, int x, int y); |
csyang2 |
1:c0f972361605 | 1054 | int GUI_MEMDEV_Draw (GUI_RECT * pRect, GUI_CALLBACK_VOID_P * pfDraw, void * pData, int NumLines, int Flags); |
csyang2 |
1:c0f972361605 | 1055 | void* GUI_MEMDEV_GetDataPtr (GUI_MEMDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1056 | void GUI_MEMDEV_SetColorConv (GUI_MEMDEV_Handle hMem, const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 1057 | const LCD_API_COLOR_CONV * GUI_MEMDEV_GetColorConv(GUI_MEMDEV_Handle hMemDev); |
csyang2 |
1:c0f972361605 | 1058 | int GUI_MEMDEV_GetBitsPerPixel (GUI_MEMDEV_Handle hMemDev); |
csyang2 |
1:c0f972361605 | 1059 | int GUI_MEMDEV_FadeInDevices (GUI_MEMDEV_Handle hMem0, GUI_MEMDEV_Handle hMem1, int Period); |
csyang2 |
1:c0f972361605 | 1060 | int GUI_MEMDEV_FadeOutDevices (GUI_MEMDEV_Handle hMem0, GUI_MEMDEV_Handle hMem1, int Period); |
csyang2 |
1:c0f972361605 | 1061 | void GUI_MEMDEV_SerializeBMP (GUI_MEMDEV_Handle hDev, GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p); |
csyang2 |
1:c0f972361605 | 1062 | void GUI_MEMDEV_SetAnimationCallback(GUI_ANIMATION_CALLBACK_FUNC * pCbAnimation, void * pVoid); |
csyang2 |
1:c0f972361605 | 1063 | void GUI_MEMDEV__FadeDevice (GUI_MEMDEV_Handle hMemWin, GUI_MEMDEV_Handle hMemBk, GUI_MEMDEV_Handle hMemDst, U8 Intens); |
csyang2 |
1:c0f972361605 | 1064 | void GUI_MEMDEV__FadeDeviceEx (GUI_MEMDEV_Handle hMemWin, GUI_MEMDEV_Handle hMemBk, GUI_MEMDEV_Handle hMemDst, U8 Intens, int xPosWin, int yPosWin); |
csyang2 |
1:c0f972361605 | 1065 | int GUI_MEMDEV_PunchOutDevice (GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask); |
csyang2 |
1:c0f972361605 | 1066 | void GUI_MEMDEV_SetTimePerFrame (unsigned TimePerFrame); |
csyang2 |
1:c0f972361605 | 1067 | int GUI_MEMDEV_MULTIBUF_Enable (int OnOff); |
csyang2 |
1:c0f972361605 | 1068 | |
csyang2 |
1:c0f972361605 | 1069 | void GUI_SelectLCD(void); |
csyang2 |
1:c0f972361605 | 1070 | |
csyang2 |
1:c0f972361605 | 1071 | /* Blurring, dithering and blending */ |
csyang2 |
1:c0f972361605 | 1072 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32 (GUI_MEMDEV_Handle hMem, U8 Depth); |
csyang2 |
1:c0f972361605 | 1073 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32HQ(GUI_MEMDEV_Handle hMem, U8 Depth); |
csyang2 |
1:c0f972361605 | 1074 | GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32LQ(GUI_MEMDEV_Handle hMem, U8 Depth); |
csyang2 |
1:c0f972361605 | 1075 | void GUI_MEMDEV_SetBlurHQ (void); |
csyang2 |
1:c0f972361605 | 1076 | void GUI_MEMDEV_SetBlurLQ (void); |
csyang2 |
1:c0f972361605 | 1077 | int GUI_MEMDEV_BlendColor32 (GUI_MEMDEV_Handle hMem, U32 BlendColor, U8 BlendIntens); |
csyang2 |
1:c0f972361605 | 1078 | int GUI_MEMDEV_Dither32 (GUI_MEMDEV_Handle hMem, const LCD_API_COLOR_CONV * pColorConvAPI); |
csyang2 |
1:c0f972361605 | 1079 | |
csyang2 |
1:c0f972361605 | 1080 | /* Optional custom drawing of 16bpp memory devices */ |
csyang2 |
1:c0f972361605 | 1081 | void GUI_MEMDEV_SetDrawMemdev16bppFunc(GUI_DRAWMEMDEV_16BPP_FUNC * pfDrawMemdev16bppFunc); |
csyang2 |
1:c0f972361605 | 1082 | |
csyang2 |
1:c0f972361605 | 1083 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1084 | * |
csyang2 |
1:c0f972361605 | 1085 | * Alpha blending |
csyang2 |
1:c0f972361605 | 1086 | */ |
csyang2 |
1:c0f972361605 | 1087 | typedef struct { |
csyang2 |
1:c0f972361605 | 1088 | U32 UserAlpha; |
csyang2 |
1:c0f972361605 | 1089 | } GUI_ALPHA_STATE; |
csyang2 |
1:c0f972361605 | 1090 | |
csyang2 |
1:c0f972361605 | 1091 | #define GUI_MAKE_ALPHA(Alpha, Color) ((U32)(((U32)Alpha << 24) | (Color & 0xFFFFFF))) |
csyang2 |
1:c0f972361605 | 1092 | |
csyang2 |
1:c0f972361605 | 1093 | unsigned GUI_EnableAlpha (unsigned OnOff); |
csyang2 |
1:c0f972361605 | 1094 | U32 GUI_RestoreUserAlpha (GUI_ALPHA_STATE * pAlphaState); |
csyang2 |
1:c0f972361605 | 1095 | unsigned GUI_SetAlpha (U8 Alpha); |
csyang2 |
1:c0f972361605 | 1096 | U32 GUI_SetUserAlpha (GUI_ALPHA_STATE * pAlphaState, U32 UserAlpha); |
csyang2 |
1:c0f972361605 | 1097 | void (* GUI_SetFuncAlphaBlending(void (* pfAlphaBlending)(LCD_COLOR *, LCD_COLOR *, LCD_COLOR *, U32))) |
csyang2 |
1:c0f972361605 | 1098 | (LCD_COLOR *, LCD_COLOR *, LCD_COLOR *, U32); |
csyang2 |
1:c0f972361605 | 1099 | LCD_COLOR (* GUI_SetFuncMixColors (LCD_COLOR (* pFunc)(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens))) |
csyang2 |
1:c0f972361605 | 1100 | (LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens); |
csyang2 |
1:c0f972361605 | 1101 | void (* GUI_SetFuncMixColorsBulk(void (* pFunc)(U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens))) |
csyang2 |
1:c0f972361605 | 1102 | (U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens); |
csyang2 |
1:c0f972361605 | 1103 | unsigned GUI_PreserveTrans (unsigned OnOff); |
csyang2 |
1:c0f972361605 | 1104 | |
csyang2 |
1:c0f972361605 | 1105 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1106 | * |
csyang2 |
1:c0f972361605 | 1107 | * Multi layer support |
csyang2 |
1:c0f972361605 | 1108 | */ |
csyang2 |
1:c0f972361605 | 1109 | unsigned GUI_SelectLayer(unsigned Index); |
csyang2 |
1:c0f972361605 | 1110 | unsigned GUI_GetSelLayer(void); |
csyang2 |
1:c0f972361605 | 1111 | |
csyang2 |
1:c0f972361605 | 1112 | int GUI_SetLayerPosEx (unsigned Index, int xPos, int yPos); |
csyang2 |
1:c0f972361605 | 1113 | int GUI_SetLayerSizeEx (unsigned Index, int xSize, int ySize); |
csyang2 |
1:c0f972361605 | 1114 | int GUI_SetLayerVisEx (unsigned Index, int OnOff); |
csyang2 |
1:c0f972361605 | 1115 | int GUI_SetLayerAlphaEx(unsigned Index, int Alpha); |
csyang2 |
1:c0f972361605 | 1116 | int GUI_GetLayerPosEx (unsigned Index, int * pxPos, int * pyPos); |
csyang2 |
1:c0f972361605 | 1117 | |
csyang2 |
1:c0f972361605 | 1118 | void GUI_AssignCursorLayer(unsigned Index, unsigned CursorLayer); |
csyang2 |
1:c0f972361605 | 1119 | unsigned GUI_GetCursorLayer (unsigned Index); |
csyang2 |
1:c0f972361605 | 1120 | |
csyang2 |
1:c0f972361605 | 1121 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1122 | * |
csyang2 |
1:c0f972361605 | 1123 | * Multiple buffers and display origin |
csyang2 |
1:c0f972361605 | 1124 | */ |
csyang2 |
1:c0f972361605 | 1125 | void GUI_SetOrg(int x, int y); |
csyang2 |
1:c0f972361605 | 1126 | |
csyang2 |
1:c0f972361605 | 1127 | void GUI_MULTIBUF_Begin (void); |
csyang2 |
1:c0f972361605 | 1128 | void GUI_MULTIBUF_BeginEx (int LayerIndex); |
csyang2 |
1:c0f972361605 | 1129 | void GUI_MULTIBUF_End (void); |
csyang2 |
1:c0f972361605 | 1130 | void GUI_MULTIBUF_EndEx (int LayerIndex); |
csyang2 |
1:c0f972361605 | 1131 | void GUI_MULTIBUF_Config (int NumBuffers); |
csyang2 |
1:c0f972361605 | 1132 | void GUI_MULTIBUF_ConfigEx (int LayerIndex, int NumBuffers); |
csyang2 |
1:c0f972361605 | 1133 | void GUI_MULTIBUF_Confirm (int Index); |
csyang2 |
1:c0f972361605 | 1134 | void GUI_MULTIBUF_ConfirmEx (int LayerIndex, int BufferIndex); |
csyang2 |
1:c0f972361605 | 1135 | int GUI_MULTIBUF_GetNumBuffers (void); |
csyang2 |
1:c0f972361605 | 1136 | int GUI_MULTIBUF_GetNumBuffersEx(int LayerIndex); |
csyang2 |
1:c0f972361605 | 1137 | void GUI_MULTIBUF_SetLayerMask (U32 LayerMask); |
csyang2 |
1:c0f972361605 | 1138 | void GUI_MULTIBUF_UseSingleBuffer(void); |
csyang2 |
1:c0f972361605 | 1139 | |
csyang2 |
1:c0f972361605 | 1140 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1141 | * |
csyang2 |
1:c0f972361605 | 1142 | * emWinSPY |
csyang2 |
1:c0f972361605 | 1143 | */ |
csyang2 |
1:c0f972361605 | 1144 | int GUI_SPY_Process (GUI_tSend pfSend, GUI_tRecv pfRecv, void * pConnectInfo); |
csyang2 |
1:c0f972361605 | 1145 | void GUI_SPY_SetMemHandler(GUI_tMalloc pMalloc, GUI_tFree pFree); |
csyang2 |
1:c0f972361605 | 1146 | int GUI_SPY_StartServer (void); |
csyang2 |
1:c0f972361605 | 1147 | int GUI_SPY_StartServerEx(int (* pGUI_SPY_X_StartServer)(void)); |
csyang2 |
1:c0f972361605 | 1148 | int GUI_SPY_X_StartServer(void); |
csyang2 |
1:c0f972361605 | 1149 | |
csyang2 |
1:c0f972361605 | 1150 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1151 | * |
csyang2 |
1:c0f972361605 | 1152 | * QR-Codes |
csyang2 |
1:c0f972361605 | 1153 | */ |
csyang2 |
1:c0f972361605 | 1154 | #define GUI_QR_ECLEVEL_L 0 |
csyang2 |
1:c0f972361605 | 1155 | #define GUI_QR_ECLEVEL_M 1 |
csyang2 |
1:c0f972361605 | 1156 | #define GUI_QR_ECLEVEL_Q 2 |
csyang2 |
1:c0f972361605 | 1157 | #define GUI_QR_ECLEVEL_H 3 |
csyang2 |
1:c0f972361605 | 1158 | |
csyang2 |
1:c0f972361605 | 1159 | typedef struct { |
csyang2 |
1:c0f972361605 | 1160 | int Version; // Version according to QR code documentation |
csyang2 |
1:c0f972361605 | 1161 | int Width; // Number of 'Modules' |
csyang2 |
1:c0f972361605 | 1162 | int Size; // Size of bitmap in pixels |
csyang2 |
1:c0f972361605 | 1163 | } GUI_QR_INFO; |
csyang2 |
1:c0f972361605 | 1164 | |
csyang2 |
1:c0f972361605 | 1165 | GUI_HMEM GUI_QR_Create (const char * pText, int PixelSize, int EccLevel, int Version); |
csyang2 |
1:c0f972361605 | 1166 | void GUI_QR_Draw (GUI_HMEM hQR, int xPos, int yPos); |
csyang2 |
1:c0f972361605 | 1167 | void GUI_QR_GetInfo(GUI_HMEM hQR, GUI_QR_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 1168 | void GUI_QR_Delete (GUI_HMEM hQR); |
csyang2 |
1:c0f972361605 | 1169 | |
csyang2 |
1:c0f972361605 | 1170 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1171 | * |
csyang2 |
1:c0f972361605 | 1172 | * Basics for animations |
csyang2 |
1:c0f972361605 | 1173 | */ |
csyang2 |
1:c0f972361605 | 1174 | #define ANIM_LINEAR GUI_ANIM__Linear |
csyang2 |
1:c0f972361605 | 1175 | #define ANIM_ACCEL GUI_ANIM__Accel |
csyang2 |
1:c0f972361605 | 1176 | #define ANIM_DECEL GUI_ANIM__Decel |
csyang2 |
1:c0f972361605 | 1177 | #define ANIM_ACCELDECEL GUI_ANIM__AccelDecel |
csyang2 |
1:c0f972361605 | 1178 | |
csyang2 |
1:c0f972361605 | 1179 | #define GUI_ANIM_START 0 |
csyang2 |
1:c0f972361605 | 1180 | #define GUI_ANIM_RUNNING 1 |
csyang2 |
1:c0f972361605 | 1181 | #define GUI_ANIM_END 2 |
csyang2 |
1:c0f972361605 | 1182 | |
csyang2 |
1:c0f972361605 | 1183 | #ifndef GUI_ANIM_RANGE |
csyang2 |
1:c0f972361605 | 1184 | #define GUI_ANIM_RANGE 32767L |
csyang2 |
1:c0f972361605 | 1185 | #endif |
csyang2 |
1:c0f972361605 | 1186 | |
csyang2 |
1:c0f972361605 | 1187 | typedef GUI_HMEM GUI_ANIM_HANDLE; |
csyang2 |
1:c0f972361605 | 1188 | |
csyang2 |
1:c0f972361605 | 1189 | typedef I32 (* GUI_ANIM_GETPOS_FUNC)(GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); |
csyang2 |
1:c0f972361605 | 1190 | |
csyang2 |
1:c0f972361605 | 1191 | typedef struct { |
csyang2 |
1:c0f972361605 | 1192 | int Pos; |
csyang2 |
1:c0f972361605 | 1193 | int State; |
csyang2 |
1:c0f972361605 | 1194 | GUI_ANIM_HANDLE hAnim; |
csyang2 |
1:c0f972361605 | 1195 | GUI_TIMER_TIME Period; |
csyang2 |
1:c0f972361605 | 1196 | } GUI_ANIM_INFO; |
csyang2 |
1:c0f972361605 | 1197 | |
csyang2 |
1:c0f972361605 | 1198 | typedef void GUI_ANIMATION_FUNC(GUI_ANIM_INFO * pInfo, void * pVoid); |
csyang2 |
1:c0f972361605 | 1199 | |
csyang2 |
1:c0f972361605 | 1200 | I32 GUI_ANIM__Linear (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); |
csyang2 |
1:c0f972361605 | 1201 | I32 GUI_ANIM__Decel (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); |
csyang2 |
1:c0f972361605 | 1202 | I32 GUI_ANIM__Accel (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); |
csyang2 |
1:c0f972361605 | 1203 | I32 GUI_ANIM__AccelDecel(GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); |
csyang2 |
1:c0f972361605 | 1204 | |
csyang2 |
1:c0f972361605 | 1205 | int GUI_ANIM_AddItem(GUI_ANIM_HANDLE hAnim, GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_ANIM_GETPOS_FUNC pfGetPos, void * pVoid, GUI_ANIMATION_FUNC * pfAnim); |
csyang2 |
1:c0f972361605 | 1206 | GUI_ANIM_HANDLE GUI_ANIM_Create (GUI_TIMER_TIME Period, unsigned MinTimePerFrame, void * pVoid, void (* pfSliceInfo)(int State, void * _pVoid)); |
csyang2 |
1:c0f972361605 | 1207 | void GUI_ANIM_Delete (GUI_ANIM_HANDLE hAnim); |
csyang2 |
1:c0f972361605 | 1208 | int GUI_ANIM_Exec (GUI_ANIM_HANDLE hAnim); |
csyang2 |
1:c0f972361605 | 1209 | void GUI_ANIM_Start (GUI_ANIM_HANDLE hAnim); |
csyang2 |
1:c0f972361605 | 1210 | void GUI_ANIM_StartEx(GUI_ANIM_HANDLE hAnim, int NumLoops, void (* pfOnDelete)(void * pVoid)); |
csyang2 |
1:c0f972361605 | 1211 | void GUI_ANIM_Stop (GUI_ANIM_HANDLE hAnim); |
csyang2 |
1:c0f972361605 | 1212 | |
csyang2 |
1:c0f972361605 | 1213 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1214 | * |
csyang2 |
1:c0f972361605 | 1215 | * Display orientation |
csyang2 |
1:c0f972361605 | 1216 | */ |
csyang2 |
1:c0f972361605 | 1217 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1218 | * |
csyang2 |
1:c0f972361605 | 1219 | * GUI_ORIENTATION_API |
csyang2 |
1:c0f972361605 | 1220 | */ |
csyang2 |
1:c0f972361605 | 1221 | typedef struct { |
csyang2 |
1:c0f972361605 | 1222 | void (* pfDrawBitmap )(GUI_DEVICE * pDevice, int x0, int y0, int xsize, int ysize, int BitsPerPixel, int BytesPerLine, const U8 * pData, int Diff, const LCD_PIXELINDEX * pTrans); |
csyang2 |
1:c0f972361605 | 1223 | void (* pfDrawHLine )(GUI_DEVICE * pDevice, int x0, int y0, int x1); |
csyang2 |
1:c0f972361605 | 1224 | void (* pfDrawVLine )(GUI_DEVICE * pDevice, int x , int y0, int y1); |
csyang2 |
1:c0f972361605 | 1225 | void (* pfFillRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 1226 | LCD_PIXELINDEX (* pfGetPixelIndex)(GUI_DEVICE * pDevice, int x, int y); |
csyang2 |
1:c0f972361605 | 1227 | void (* pfSetPixelIndex)(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX ColorIndex); |
csyang2 |
1:c0f972361605 | 1228 | void (* pfXorPixel )(GUI_DEVICE * pDevice, int x, int y); |
csyang2 |
1:c0f972361605 | 1229 | int BytesPerPixel; |
csyang2 |
1:c0f972361605 | 1230 | } GUI_ORIENTATION_API; |
csyang2 |
1:c0f972361605 | 1231 | |
csyang2 |
1:c0f972361605 | 1232 | extern const GUI_ORIENTATION_API GUI_OrientationAPI_C0; |
csyang2 |
1:c0f972361605 | 1233 | extern const GUI_ORIENTATION_API GUI_OrientationAPI_C8; |
csyang2 |
1:c0f972361605 | 1234 | extern const GUI_ORIENTATION_API GUI_OrientationAPI_C16; |
csyang2 |
1:c0f972361605 | 1235 | extern const GUI_ORIENTATION_API GUI_OrientationAPI_C32; |
csyang2 |
1:c0f972361605 | 1236 | |
csyang2 |
1:c0f972361605 | 1237 | #define GUI_ORIENTATION_C0 &GUI_OrientationAPI_C0 |
csyang2 |
1:c0f972361605 | 1238 | #define GUI_ORIENTATION_C8 &GUI_OrientationAPI_C8 |
csyang2 |
1:c0f972361605 | 1239 | #define GUI_ORIENTATION_C16 &GUI_OrientationAPI_C16 |
csyang2 |
1:c0f972361605 | 1240 | #define GUI_ORIENTATION_C32 &GUI_OrientationAPI_C32 |
csyang2 |
1:c0f972361605 | 1241 | |
csyang2 |
1:c0f972361605 | 1242 | int GUI_SetOrientation (int Orientation); |
csyang2 |
1:c0f972361605 | 1243 | int GUI_SetOrientationEx (int Orientation, int LayerIndex); |
csyang2 |
1:c0f972361605 | 1244 | int GUI_SetOrientationExCached(int Orientation, int LayerIndex, const GUI_ORIENTATION_API * pAPI); |
csyang2 |
1:c0f972361605 | 1245 | |
csyang2 |
1:c0f972361605 | 1246 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1247 | * |
csyang2 |
1:c0f972361605 | 1248 | * Measure device: GUI_MEASDEV |
csyang2 |
1:c0f972361605 | 1249 | */ |
csyang2 |
1:c0f972361605 | 1250 | typedef GUI_HMEM GUI_MEASDEV_Handle; |
csyang2 |
1:c0f972361605 | 1251 | |
csyang2 |
1:c0f972361605 | 1252 | GUI_MEASDEV_Handle GUI_MEASDEV_Create (void); |
csyang2 |
1:c0f972361605 | 1253 | void GUI_MEASDEV_Delete (GUI_MEASDEV_Handle hMemDev); |
csyang2 |
1:c0f972361605 | 1254 | void GUI_MEASDEV_Select (GUI_MEASDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1255 | void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT * pRect); |
csyang2 |
1:c0f972361605 | 1256 | void GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMem); |
csyang2 |
1:c0f972361605 | 1257 | |
csyang2 |
1:c0f972361605 | 1258 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1259 | * |
csyang2 |
1:c0f972361605 | 1260 | * Polygon helpers |
csyang2 |
1:c0f972361605 | 1261 | */ |
csyang2 |
1:c0f972361605 | 1262 | void GUI_RotatePolygon (GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, float Angle); |
csyang2 |
1:c0f972361605 | 1263 | void GUI_MagnifyPolygon(GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, int Mag); |
csyang2 |
1:c0f972361605 | 1264 | void GUI_EnlargePolygon(GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, int Len); |
csyang2 |
1:c0f972361605 | 1265 | |
csyang2 |
1:c0f972361605 | 1266 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1267 | * |
csyang2 |
1:c0f972361605 | 1268 | * Streamed bitmaps |
csyang2 |
1:c0f972361605 | 1269 | */ |
csyang2 |
1:c0f972361605 | 1270 | #define GUI_BITMAPSTREAM_GET_BUFFER 1 |
csyang2 |
1:c0f972361605 | 1271 | #define GUI_BITMAPSTREAM_RELEASE_BUFFER 2 |
csyang2 |
1:c0f972361605 | 1272 | #define GUI_BITMAPSTREAM_MODIFY_PALETTE 3 |
csyang2 |
1:c0f972361605 | 1273 | |
csyang2 |
1:c0f972361605 | 1274 | #define DECLARE_CREATE_FROM_STREAM(ID) int GUI_CreateBitmapFromStream##ID(GUI_BITMAP * pBMP, GUI_LOGPALETTE * pPAL, const void * p); |
csyang2 |
1:c0f972361605 | 1275 | |
csyang2 |
1:c0f972361605 | 1276 | DECLARE_CREATE_FROM_STREAM(IDX) |
csyang2 |
1:c0f972361605 | 1277 | DECLARE_CREATE_FROM_STREAM(RLE4) |
csyang2 |
1:c0f972361605 | 1278 | DECLARE_CREATE_FROM_STREAM(RLE8) |
csyang2 |
1:c0f972361605 | 1279 | DECLARE_CREATE_FROM_STREAM(565) |
csyang2 |
1:c0f972361605 | 1280 | DECLARE_CREATE_FROM_STREAM(M565) |
csyang2 |
1:c0f972361605 | 1281 | DECLARE_CREATE_FROM_STREAM(555) |
csyang2 |
1:c0f972361605 | 1282 | DECLARE_CREATE_FROM_STREAM(M555) |
csyang2 |
1:c0f972361605 | 1283 | DECLARE_CREATE_FROM_STREAM(A565) |
csyang2 |
1:c0f972361605 | 1284 | DECLARE_CREATE_FROM_STREAM(AM565) |
csyang2 |
1:c0f972361605 | 1285 | DECLARE_CREATE_FROM_STREAM(A555) |
csyang2 |
1:c0f972361605 | 1286 | DECLARE_CREATE_FROM_STREAM(AM555) |
csyang2 |
1:c0f972361605 | 1287 | DECLARE_CREATE_FROM_STREAM(RLE16) |
csyang2 |
1:c0f972361605 | 1288 | DECLARE_CREATE_FROM_STREAM(RLEM16) |
csyang2 |
1:c0f972361605 | 1289 | DECLARE_CREATE_FROM_STREAM(24) |
csyang2 |
1:c0f972361605 | 1290 | DECLARE_CREATE_FROM_STREAM(Alpha) |
csyang2 |
1:c0f972361605 | 1291 | DECLARE_CREATE_FROM_STREAM(M8888I) |
csyang2 |
1:c0f972361605 | 1292 | DECLARE_CREATE_FROM_STREAM(RLEAlpha) |
csyang2 |
1:c0f972361605 | 1293 | DECLARE_CREATE_FROM_STREAM(RLE32) |
csyang2 |
1:c0f972361605 | 1294 | DECLARE_CREATE_FROM_STREAM(444_12) |
csyang2 |
1:c0f972361605 | 1295 | DECLARE_CREATE_FROM_STREAM(M444_12) |
csyang2 |
1:c0f972361605 | 1296 | DECLARE_CREATE_FROM_STREAM(444_12_1) |
csyang2 |
1:c0f972361605 | 1297 | DECLARE_CREATE_FROM_STREAM(M444_12_1) |
csyang2 |
1:c0f972361605 | 1298 | DECLARE_CREATE_FROM_STREAM(444_16) |
csyang2 |
1:c0f972361605 | 1299 | DECLARE_CREATE_FROM_STREAM(M444_16) |
csyang2 |
1:c0f972361605 | 1300 | |
csyang2 |
1:c0f972361605 | 1301 | int GUI_CreateBitmapFromStream (GUI_BITMAP * pBMP, GUI_LOGPALETTE * pPAL, const void * p); |
csyang2 |
1:c0f972361605 | 1302 | void GUI_DrawStreamedBitmap (const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1303 | void GUI_DrawStreamedBitmapAuto (const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1304 | int GUI_DrawStreamedBitmapEx (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1305 | int GUI_DrawStreamedBitmapExAuto (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1306 | int GUI_DrawStreamedBitmap555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1307 | int GUI_DrawStreamedBitmapM555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1308 | int GUI_DrawStreamedBitmap565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1309 | int GUI_DrawStreamedBitmapM565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1310 | int GUI_DrawStreamedBitmapA555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1311 | int GUI_DrawStreamedBitmapAM555Ex(GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1312 | int GUI_DrawStreamedBitmapA565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1313 | int GUI_DrawStreamedBitmapAM565Ex(GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1314 | int GUI_DrawStreamedBitmap24Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); |
csyang2 |
1:c0f972361605 | 1315 | void GUI_GetStreamedBitmapInfo (const void * p, GUI_BITMAPSTREAM_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 1316 | int GUI_GetStreamedBitmapInfoEx (GUI_GET_DATA_FUNC * pfGetData, const void * p, GUI_BITMAPSTREAM_INFO * pInfo); |
csyang2 |
1:c0f972361605 | 1317 | void GUI_SetStreamedBitmapHook (GUI_BITMAPSTREAM_CALLBACK pfStreamedBitmapHook); |
csyang2 |
1:c0f972361605 | 1318 | |
csyang2 |
1:c0f972361605 | 1319 | void LCD__RLE4_SetFunc (GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off, const LCD_LOGPALETTE * pLogPal); |
csyang2 |
1:c0f972361605 | 1320 | void LCD__RLE8_SetFunc (GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off, const LCD_LOGPALETTE * pLogPal); |
csyang2 |
1:c0f972361605 | 1321 | void LCD__RLE16_SetFunc(GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off); |
csyang2 |
1:c0f972361605 | 1322 | void LCD__RLE32_SetFunc(GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off); |
csyang2 |
1:c0f972361605 | 1323 | |
csyang2 |
1:c0f972361605 | 1324 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1325 | * |
csyang2 |
1:c0f972361605 | 1326 | * BMP-export |
csyang2 |
1:c0f972361605 | 1327 | */ |
csyang2 |
1:c0f972361605 | 1328 | void GUI_BMP_Serialize (GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p); |
csyang2 |
1:c0f972361605 | 1329 | void GUI_BMP_SerializeEx (GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p); |
csyang2 |
1:c0f972361605 | 1330 | void GUI_BMP_SerializeExBpp(GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p, int BitsPerPixel); |
csyang2 |
1:c0f972361605 | 1331 | |
csyang2 |
1:c0f972361605 | 1332 | void GUI_BMP__WriteBitmapHeader(GUI_CALLBACK_VOID_U8_P * pfSerialize, int xSize, int ySize, void * p, int BitsPerPixel, int BytesPerLine, int BytesPerPixel, int NumColors, int Padding); |
csyang2 |
1:c0f972361605 | 1333 | |
csyang2 |
1:c0f972361605 | 1334 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1335 | * |
csyang2 |
1:c0f972361605 | 1336 | * Time / execution related routines |
csyang2 |
1:c0f972361605 | 1337 | */ |
csyang2 |
1:c0f972361605 | 1338 | void GUI_Delay (int Period); |
csyang2 |
1:c0f972361605 | 1339 | GUI_TIMER_TIME GUI_GetTime (void); |
csyang2 |
1:c0f972361605 | 1340 | int GUI_GetTimeSlice(void); |
csyang2 |
1:c0f972361605 | 1341 | int GUI_Exec (void); /* Execute all jobs ... Return 0 if nothing was done. */ |
csyang2 |
1:c0f972361605 | 1342 | int GUI_Exec1 (void); /* Execute one job ... Return 0 if nothing was done. */ |
csyang2 |
1:c0f972361605 | 1343 | void GUI_SetTimeSlice(int TimeSlice); |
csyang2 |
1:c0f972361605 | 1344 | |
csyang2 |
1:c0f972361605 | 1345 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1346 | * |
csyang2 |
1:c0f972361605 | 1347 | * MessageBox |
csyang2 |
1:c0f972361605 | 1348 | */ |
csyang2 |
1:c0f972361605 | 1349 | int GUI_MessageBox (const char * sMessage, const char * sCaption, int Flags); |
csyang2 |
1:c0f972361605 | 1350 | #define GUI_MESSAGEBOX_CF_MOVEABLE (1 << 0) |
csyang2 |
1:c0f972361605 | 1351 | #define GUI_MESSAGEBOX_CF_MODAL (1 << 1) |
csyang2 |
1:c0f972361605 | 1352 | |
csyang2 |
1:c0f972361605 | 1353 | #define GUI_MB_OK 20 |
csyang2 |
1:c0f972361605 | 1354 | #define GUI_MB_WARNING 21 |
csyang2 |
1:c0f972361605 | 1355 | |
csyang2 |
1:c0f972361605 | 1356 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1357 | * |
csyang2 |
1:c0f972361605 | 1358 | * GUI_TIMER module |
csyang2 |
1:c0f972361605 | 1359 | */ |
csyang2 |
1:c0f972361605 | 1360 | #define GUI_TIMER_CF_WINDOW (1 << 0) |
csyang2 |
1:c0f972361605 | 1361 | #define GUI_TIMER_CF_CURSOR (1 << 1) |
csyang2 |
1:c0f972361605 | 1362 | |
csyang2 |
1:c0f972361605 | 1363 | typedef GUI_HMEM GUI_TIMER_HANDLE; |
csyang2 |
1:c0f972361605 | 1364 | |
csyang2 |
1:c0f972361605 | 1365 | typedef struct { |
csyang2 |
1:c0f972361605 | 1366 | GUI_TIMER_TIME Time; |
csyang2 |
1:c0f972361605 | 1367 | PTR_ADDR Context; |
csyang2 |
1:c0f972361605 | 1368 | GUI_TIMER_HANDLE hTimer; |
csyang2 |
1:c0f972361605 | 1369 | } GUI_TIMER_MESSAGE; |
csyang2 |
1:c0f972361605 | 1370 | |
csyang2 |
1:c0f972361605 | 1371 | typedef void GUI_TIMER_CALLBACK(/*const*/ GUI_TIMER_MESSAGE* pTM); |
csyang2 |
1:c0f972361605 | 1372 | |
csyang2 |
1:c0f972361605 | 1373 | GUI_TIMER_HANDLE GUI_TIMER_Create (GUI_TIMER_CALLBACK * cb, GUI_TIMER_TIME Time, PTR_ADDR Context, U16 Flags); |
csyang2 |
1:c0f972361605 | 1374 | void GUI_TIMER_Delete (GUI_TIMER_HANDLE hObj); |
csyang2 |
1:c0f972361605 | 1375 | |
csyang2 |
1:c0f972361605 | 1376 | /* Methods changing properties */ |
csyang2 |
1:c0f972361605 | 1377 | GUI_TIMER_TIME GUI_TIMER_GetPeriod(GUI_TIMER_HANDLE hObj); |
csyang2 |
1:c0f972361605 | 1378 | void GUI_TIMER_SetPeriod(GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period); |
csyang2 |
1:c0f972361605 | 1379 | void GUI_TIMER_SetTime (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period); |
csyang2 |
1:c0f972361605 | 1380 | void GUI_TIMER_SetDelay (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Delay); |
csyang2 |
1:c0f972361605 | 1381 | void GUI_TIMER_Restart (GUI_TIMER_HANDLE hObj); |
csyang2 |
1:c0f972361605 | 1382 | int GUI_TIMER_GetFlag (GUI_TIMER_HANDLE hObj, int Flag); /* Not to be documented */ |
csyang2 |
1:c0f972361605 | 1383 | int GUI_TIMER_Exec (void); |
csyang2 |
1:c0f972361605 | 1384 | |
csyang2 |
1:c0f972361605 | 1385 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1386 | * |
csyang2 |
1:c0f972361605 | 1387 | * Anti Aliasing |
csyang2 |
1:c0f972361605 | 1388 | */ |
csyang2 |
1:c0f972361605 | 1389 | #define GUI_AA_TRANS 0 // Foreground color mixed up with current content of framebuffer |
csyang2 |
1:c0f972361605 | 1390 | #define GUI_AA_NOTRANS 1 // Foreground color mixed up with current background color |
csyang2 |
1:c0f972361605 | 1391 | |
csyang2 |
1:c0f972361605 | 1392 | void GUI_AA_DisableHiRes (void); |
csyang2 |
1:c0f972361605 | 1393 | void GUI_AA_EnableHiRes (void); |
csyang2 |
1:c0f972361605 | 1394 | int GUI_AA_GetFactor (void); |
csyang2 |
1:c0f972361605 | 1395 | void GUI_AA_SetFactor (int Factor); |
csyang2 |
1:c0f972361605 | 1396 | void GUI_AA_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1); |
csyang2 |
1:c0f972361605 | 1397 | void GUI_AA_DrawCircle (int x0, int y0, int r); // Currently not implemented, only for Dave2D |
csyang2 |
1:c0f972361605 | 1398 | void GUI_AA_DrawLine (int x0, int y0, int x1, int y1); |
csyang2 |
1:c0f972361605 | 1399 | void GUI_AA_DrawPolyOutline (const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y); |
csyang2 |
1:c0f972361605 | 1400 | void GUI_AA_DrawPolyOutlineEx(const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y, GUI_POINT * pBuffer); |
csyang2 |
1:c0f972361605 | 1401 | void GUI_AA_DrawRoundedRect (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 1402 | void GUI_AA_DrawRoundedRectEx(GUI_RECT * pRect, int r); |
csyang2 |
1:c0f972361605 | 1403 | void GUI_AA_FillCircle (int x0, int y0, int r); |
csyang2 |
1:c0f972361605 | 1404 | void GUI_AA_FillEllipse (int x0, int y0, int rx, int ry); |
csyang2 |
1:c0f972361605 | 1405 | void GUI_AA_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); |
csyang2 |
1:c0f972361605 | 1406 | void GUI_AA_FillRoundedRect (int x0, int y0, int x1, int y1, int r); |
csyang2 |
1:c0f972361605 | 1407 | void GUI_AA_FillRoundedRectEx(GUI_RECT * pRect, int r); |
csyang2 |
1:c0f972361605 | 1408 | int GUI_AA_SetDrawMode (int Mode); |
csyang2 |
1:c0f972361605 | 1409 | void GUI_AA_SetpfDrawCharAA4 (int (* pfDrawChar)(int LayerIndex, int x, int y, U8 const * p, int xSize, int ySize, int BytesPerLine)); |
csyang2 |
1:c0f972361605 | 1410 | void GUI_AA_SetGammaAA4 (U8 * pGamma); |
csyang2 |
1:c0f972361605 | 1411 | void GUI_AA_GetGammaAA4 (U8 * pGamma); |
csyang2 |
1:c0f972361605 | 1412 | void GUI_AA_EnableGammaAA4 (int OnOff); |
csyang2 |
1:c0f972361605 | 1413 | |
csyang2 |
1:c0f972361605 | 1414 | #define GUI_AA_PreserveTrans(OnOff) GUI_PreserveTrans(OnOff) // For compatibility only |
csyang2 |
1:c0f972361605 | 1415 | |
csyang2 |
1:c0f972361605 | 1416 | void GUI_AA_SetFuncDrawArc (int (* pfDrawArc) (int x0, int y0, int rx, int ry, int a0, int a1)); |
csyang2 |
1:c0f972361605 | 1417 | void GUI_AA_SetFuncDrawCircle (int (* pfDrawCircle) (int x0, int y0, int r)); |
csyang2 |
1:c0f972361605 | 1418 | void GUI_AA_SetFuncDrawLine (int (* pfDrawLine) (int x0, int y0, int x1, int y1)); |
csyang2 |
1:c0f972361605 | 1419 | void GUI_AA_SetFuncDrawPolyOutline(int (* pfDrawPolyOutline)(const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y)); |
csyang2 |
1:c0f972361605 | 1420 | void GUI_AA_SetFuncFillCircle (int (* pfFillCircle) (int x0, int y0, int r)); |
csyang2 |
1:c0f972361605 | 1421 | void GUI_AA_SetFuncFillPolygon (int (* pfFillPolygon)(const GUI_POINT * pPoints, int NumPoints, int x0, int y0)); |
csyang2 |
1:c0f972361605 | 1422 | |
csyang2 |
1:c0f972361605 | 1423 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1424 | * |
csyang2 |
1:c0f972361605 | 1425 | * Keyboard |
csyang2 |
1:c0f972361605 | 1426 | */ |
csyang2 |
1:c0f972361605 | 1427 | /* Message layer */ |
csyang2 |
1:c0f972361605 | 1428 | void GUI_StoreKeyMsg(int Key, int Pressed); |
csyang2 |
1:c0f972361605 | 1429 | void GUI_SendKeyMsg (int Key, int Pressed); |
csyang2 |
1:c0f972361605 | 1430 | int GUI_PollKeyMsg (void); |
csyang2 |
1:c0f972361605 | 1431 | void GUI_GetKeyState(GUI_KEY_STATE * pState); |
csyang2 |
1:c0f972361605 | 1432 | |
csyang2 |
1:c0f972361605 | 1433 | void GUI_KEY__SetHook(void (* pfHook)(const GUI_KEY_STATE *)); |
csyang2 |
1:c0f972361605 | 1434 | |
csyang2 |
1:c0f972361605 | 1435 | /* Application layer */ |
csyang2 |
1:c0f972361605 | 1436 | int GUI_GetKey(void); |
csyang2 |
1:c0f972361605 | 1437 | int GUI_WaitKey(void); |
csyang2 |
1:c0f972361605 | 1438 | void GUI_StoreKey(int c); |
csyang2 |
1:c0f972361605 | 1439 | void GUI_ClearKeyBuffer(void); |
csyang2 |
1:c0f972361605 | 1440 | |
csyang2 |
1:c0f972361605 | 1441 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1442 | * |
csyang2 |
1:c0f972361605 | 1443 | * Task synchronization |
csyang2 |
1:c0f972361605 | 1444 | */ |
csyang2 |
1:c0f972361605 | 1445 | void GUI_WaitEvent (void); |
csyang2 |
1:c0f972361605 | 1446 | void GUI_SignalEvent (void); |
csyang2 |
1:c0f972361605 | 1447 | void GUI_SetSignalEventFunc (GUI_SIGNAL_EVENT_FUNC pfSignalEvent); |
csyang2 |
1:c0f972361605 | 1448 | void GUI_SetWaitEventFunc (GUI_WAIT_EVENT_FUNC pfWaitEvent); |
csyang2 |
1:c0f972361605 | 1449 | void GUI_SetWaitEventTimedFunc(GUI_WAIT_EVENT_TIMED_FUNC pfWaitEventTimed); |
csyang2 |
1:c0f972361605 | 1450 | |
csyang2 |
1:c0f972361605 | 1451 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1452 | * |
csyang2 |
1:c0f972361605 | 1453 | * Joystick, generic |
csyang2 |
1:c0f972361605 | 1454 | */ |
csyang2 |
1:c0f972361605 | 1455 | void GUI_JOYSTICK_StoreState(const GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1456 | |
csyang2 |
1:c0f972361605 | 1457 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1458 | * |
csyang2 |
1:c0f972361605 | 1459 | * PID (Pointer input device ... mouse/touch) |
csyang2 |
1:c0f972361605 | 1460 | */ |
csyang2 |
1:c0f972361605 | 1461 | void GUI_PID_StoreState (const GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1462 | int GUI_PID_GetState ( GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1463 | void GUI_PID_GetCurrentState( GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1464 | int GUI_PID_IsEmpty (void); |
csyang2 |
1:c0f972361605 | 1465 | int GUI_PID_IsPressed (void); |
csyang2 |
1:c0f972361605 | 1466 | void GUI_PID_RegisterHook (GUI_REGISTER_HOOK * pRegisterHook); |
csyang2 |
1:c0f972361605 | 1467 | void GUI_PID_SetHook (void (* pfHook)( GUI_PID_STATE *)); // Public |
csyang2 |
1:c0f972361605 | 1468 | void GUI_PID__SetHook (void (* pfHook)(const GUI_PID_STATE *)); // Private |
csyang2 |
1:c0f972361605 | 1469 | |
csyang2 |
1:c0f972361605 | 1470 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1471 | * |
csyang2 |
1:c0f972361605 | 1472 | * Mouse, generic |
csyang2 |
1:c0f972361605 | 1473 | */ |
csyang2 |
1:c0f972361605 | 1474 | int GUI_MOUSE_GetState ( GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1475 | void GUI_MOUSE_StoreState(const GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1476 | |
csyang2 |
1:c0f972361605 | 1477 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1478 | * |
csyang2 |
1:c0f972361605 | 1479 | * TOUCH screen, generic |
csyang2 |
1:c0f972361605 | 1480 | */ |
csyang2 |
1:c0f972361605 | 1481 | int GUI_TOUCH_GetLayer (void); |
csyang2 |
1:c0f972361605 | 1482 | int GUI_TOUCH_GetState (GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1483 | void GUI_TOUCH_GetUnstable (int * px, int * py); /* for diagnostics only */ |
csyang2 |
1:c0f972361605 | 1484 | void GUI_TOUCH_SetLayer (int Layer); |
csyang2 |
1:c0f972361605 | 1485 | void GUI_TOUCH_StoreState (int x, int y); |
csyang2 |
1:c0f972361605 | 1486 | void GUI_TOUCH_StoreStateEx (const GUI_PID_STATE * pState); |
csyang2 |
1:c0f972361605 | 1487 | void GUI_TOUCH_StoreUnstable(int x, int y); |
csyang2 |
1:c0f972361605 | 1488 | |
csyang2 |
1:c0f972361605 | 1489 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1490 | * |
csyang2 |
1:c0f972361605 | 1491 | * Mouse, PS2 driver |
csyang2 |
1:c0f972361605 | 1492 | */ |
csyang2 |
1:c0f972361605 | 1493 | void GUI_MOUSE_DRIVER_PS2_Init(void); /* optional */ |
csyang2 |
1:c0f972361605 | 1494 | void GUI_MOUSE_DRIVER_PS2_OnRx(unsigned char Data); |
csyang2 |
1:c0f972361605 | 1495 | |
csyang2 |
1:c0f972361605 | 1496 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1497 | * |
csyang2 |
1:c0f972361605 | 1498 | * TOUCH screen, analog driver |
csyang2 |
1:c0f972361605 | 1499 | */ |
csyang2 |
1:c0f972361605 | 1500 | int GUI_TOUCH_CalcCoefficients (int NumPoints, int * pxRef, int * pyRef, int * pxSample, int * pySample, int xSize, int ySize); |
csyang2 |
1:c0f972361605 | 1501 | int GUI_TOUCH_Calibrate (int Coord, int Log0, int Log1, int Phys0, int Phys1); |
csyang2 |
1:c0f972361605 | 1502 | int GUI_TOUCH_CalibratePoint (int * px, int * py); |
csyang2 |
1:c0f972361605 | 1503 | void GUI_TOUCH_EnableCalibration(int OnOff); |
csyang2 |
1:c0f972361605 | 1504 | void GUI_TOUCH_Exec (void); |
csyang2 |
1:c0f972361605 | 1505 | int GUI_TOUCH_GetxPhys (void); /* for diagnostics only */ |
csyang2 |
1:c0f972361605 | 1506 | int GUI_TOUCH_GetyPhys (void); /* for diagnostics only */ |
csyang2 |
1:c0f972361605 | 1507 | void GUI_TOUCH_SetCalibration (int (* pFunc)(int *, int *)); /* Not to be documented */ |
csyang2 |
1:c0f972361605 | 1508 | void GUI_TOUCH_SetOrientation (unsigned Orientation); |
csyang2 |
1:c0f972361605 | 1509 | int GUI_TOUCH_TransformPoint (int * px, int * py); /* Not to be documented */ |
csyang2 |
1:c0f972361605 | 1510 | |
csyang2 |
1:c0f972361605 | 1511 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1512 | * |
csyang2 |
1:c0f972361605 | 1513 | * TOUCH: imports |
csyang2 |
1:c0f972361605 | 1514 | * |
csyang2 |
1:c0f972361605 | 1515 | * Please note: The following functions are required by the module. |
csyang2 |
1:c0f972361605 | 1516 | * They need to be part of your application software (or rather, part |
csyang2 |
1:c0f972361605 | 1517 | * of the hardware-layer of your software). |
csyang2 |
1:c0f972361605 | 1518 | */ |
csyang2 |
1:c0f972361605 | 1519 | void GUI_TOUCH_X_ActivateX(void); |
csyang2 |
1:c0f972361605 | 1520 | void GUI_TOUCH_X_ActivateY(void); |
csyang2 |
1:c0f972361605 | 1521 | void GUI_TOUCH_X_Disable (void); |
csyang2 |
1:c0f972361605 | 1522 | int GUI_TOUCH_X_MeasureX (void); |
csyang2 |
1:c0f972361605 | 1523 | int GUI_TOUCH_X_MeasureY (void); |
csyang2 |
1:c0f972361605 | 1524 | |
csyang2 |
1:c0f972361605 | 1525 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1526 | * |
csyang2 |
1:c0f972361605 | 1527 | * GUI_X_ |
csyang2 |
1:c0f972361605 | 1528 | * |
csyang2 |
1:c0f972361605 | 1529 | * Externals, to be defined by application |
csyang2 |
1:c0f972361605 | 1530 | * |
csyang2 |
1:c0f972361605 | 1531 | * The externals defined below should be defined by the |
csyang2 |
1:c0f972361605 | 1532 | * application. They are per default contained in the module |
csyang2 |
1:c0f972361605 | 1533 | * GUI_X.c. |
csyang2 |
1:c0f972361605 | 1534 | * Note that a lot if not all of these are not required in most target |
csyang2 |
1:c0f972361605 | 1535 | * systems. |
csyang2 |
1:c0f972361605 | 1536 | * For this module, samples are available for configurations |
csyang2 |
1:c0f972361605 | 1537 | * with or without operating system. |
csyang2 |
1:c0f972361605 | 1538 | */ |
csyang2 |
1:c0f972361605 | 1539 | // |
csyang2 |
1:c0f972361605 | 1540 | // Configuration |
csyang2 |
1:c0f972361605 | 1541 | // |
csyang2 |
1:c0f972361605 | 1542 | void GUI_X_Config(void); |
csyang2 |
1:c0f972361605 | 1543 | void GUI_X_Init (void); |
csyang2 |
1:c0f972361605 | 1544 | |
csyang2 |
1:c0f972361605 | 1545 | // |
csyang2 |
1:c0f972361605 | 1546 | // Timing routines |
csyang2 |
1:c0f972361605 | 1547 | // |
csyang2 |
1:c0f972361605 | 1548 | GUI_TIMER_TIME GUI_X_GetTime(void); |
csyang2 |
1:c0f972361605 | 1549 | void GUI_X_Delay (int Period); |
csyang2 |
1:c0f972361605 | 1550 | |
csyang2 |
1:c0f972361605 | 1551 | // |
csyang2 |
1:c0f972361605 | 1552 | // Multitask routines - required only if multitasking is used (#define GUI_OS 1) |
csyang2 |
1:c0f972361605 | 1553 | // |
csyang2 |
1:c0f972361605 | 1554 | void GUI_X_Unlock (void); |
csyang2 |
1:c0f972361605 | 1555 | void GUI_X_Lock (void); |
csyang2 |
1:c0f972361605 | 1556 | U32 GUI_X_GetTaskId(void); |
csyang2 |
1:c0f972361605 | 1557 | void GUI_X_InitOS (void); |
csyang2 |
1:c0f972361605 | 1558 | |
csyang2 |
1:c0f972361605 | 1559 | // |
csyang2 |
1:c0f972361605 | 1560 | // Event driving (optional with multitasking) |
csyang2 |
1:c0f972361605 | 1561 | // |
csyang2 |
1:c0f972361605 | 1562 | void GUI_X_ExecIdle (void); |
csyang2 |
1:c0f972361605 | 1563 | void GUI_X_WaitEvent (void); |
csyang2 |
1:c0f972361605 | 1564 | void GUI_X_WaitEventTimed(int Period); |
csyang2 |
1:c0f972361605 | 1565 | void GUI_X_SignalEvent (void); |
csyang2 |
1:c0f972361605 | 1566 | |
csyang2 |
1:c0f972361605 | 1567 | // |
csyang2 |
1:c0f972361605 | 1568 | // Recording (logs/warnings and errors) - required only for higher levels |
csyang2 |
1:c0f972361605 | 1569 | // |
csyang2 |
1:c0f972361605 | 1570 | void GUI_X_Log (const char * s); |
csyang2 |
1:c0f972361605 | 1571 | void GUI_X_Warn (const char * s); |
csyang2 |
1:c0f972361605 | 1572 | void GUI_X_ErrorOut(const char * s); |
csyang2 |
1:c0f972361605 | 1573 | |
csyang2 |
1:c0f972361605 | 1574 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1575 | * |
csyang2 |
1:c0f972361605 | 1576 | * Constants for fonts and bitmaps |
csyang2 |
1:c0f972361605 | 1577 | */ |
csyang2 |
1:c0f972361605 | 1578 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE4; |
csyang2 |
1:c0f972361605 | 1579 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE4Ex; |
csyang2 |
1:c0f972361605 | 1580 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE8; |
csyang2 |
1:c0f972361605 | 1581 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE8Ex; |
csyang2 |
1:c0f972361605 | 1582 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE16; |
csyang2 |
1:c0f972361605 | 1583 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE16Ex; |
csyang2 |
1:c0f972361605 | 1584 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEM16; |
csyang2 |
1:c0f972361605 | 1585 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEM16Ex; |
csyang2 |
1:c0f972361605 | 1586 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE32; |
csyang2 |
1:c0f972361605 | 1587 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE32Ex; |
csyang2 |
1:c0f972361605 | 1588 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEAlpha; |
csyang2 |
1:c0f972361605 | 1589 | |
csyang2 |
1:c0f972361605 | 1590 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_12; |
csyang2 |
1:c0f972361605 | 1591 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_12; |
csyang2 |
1:c0f972361605 | 1592 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_12_1; |
csyang2 |
1:c0f972361605 | 1593 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_12_1; |
csyang2 |
1:c0f972361605 | 1594 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_16; |
csyang2 |
1:c0f972361605 | 1595 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_16; |
csyang2 |
1:c0f972361605 | 1596 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods555; |
csyang2 |
1:c0f972361605 | 1597 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM555; |
csyang2 |
1:c0f972361605 | 1598 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods565; |
csyang2 |
1:c0f972361605 | 1599 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM565; |
csyang2 |
1:c0f972361605 | 1600 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods24; |
csyang2 |
1:c0f972361605 | 1601 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods888; |
csyang2 |
1:c0f972361605 | 1602 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM888; |
csyang2 |
1:c0f972361605 | 1603 | extern const GUI_BITMAP_METHODS GUI_BitmapMethods8888; |
csyang2 |
1:c0f972361605 | 1604 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM8888I; |
csyang2 |
1:c0f972361605 | 1605 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsA565; |
csyang2 |
1:c0f972361605 | 1606 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsAM565; |
csyang2 |
1:c0f972361605 | 1607 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsA555; |
csyang2 |
1:c0f972361605 | 1608 | extern const GUI_BITMAP_METHODS GUI_BitmapMethodsAM555; |
csyang2 |
1:c0f972361605 | 1609 | |
csyang2 |
1:c0f972361605 | 1610 | #define GUI_COMPRESS_RLE4 0 |
csyang2 |
1:c0f972361605 | 1611 | #define GUI_COMPRESS_RLE8 0 |
csyang2 |
1:c0f972361605 | 1612 | |
csyang2 |
1:c0f972361605 | 1613 | #define GUI_DRAW_RLE4 &GUI_BitmapMethodsRLE4 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1614 | #define GUI_DRAW_RLE8 &GUI_BitmapMethodsRLE8 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1615 | #define GUI_DRAW_RLE16 &GUI_BitmapMethodsRLE16 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1616 | #define GUI_DRAW_RLEM16 &GUI_BitmapMethodsRLEM16 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1617 | #define GUI_DRAW_RLE32 &GUI_BitmapMethodsRLE32 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1618 | #define GUI_DRAW_RLEALPHA &GUI_BitmapMethodsRLEAlpha /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1619 | |
csyang2 |
1:c0f972361605 | 1620 | #define GUI_DRAW_BMP444_12 &GUI_BitmapMethods444_12 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1621 | #define GUI_DRAW_BMPM444_12 &GUI_BitmapMethodsM444_12 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1622 | #define GUI_DRAW_BMP444_12_1 &GUI_BitmapMethods444_12_1 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1623 | #define GUI_DRAW_BMPM444_12_1 &GUI_BitmapMethodsM444_12_1 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1624 | #define GUI_DRAW_BMP444_16 &GUI_BitmapMethods444_16 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1625 | #define GUI_DRAW_BMPM444_16 &GUI_BitmapMethodsM444_16 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1626 | #define GUI_DRAW_BMP555 &GUI_BitmapMethods555 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1627 | #define GUI_DRAW_BMPM555 &GUI_BitmapMethodsM555 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1628 | #define GUI_DRAW_BMP565 &GUI_BitmapMethods565 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1629 | #define GUI_DRAW_BMPM565 &GUI_BitmapMethodsM565 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1630 | #define GUI_DRAW_BMP24 &GUI_BitmapMethods24 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1631 | #define GUI_DRAW_BMP888 &GUI_BitmapMethods888 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1632 | #define GUI_DRAW_BMPM888 &GUI_BitmapMethodsM888 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1633 | #define GUI_DRAW_BMP8888 &GUI_BitmapMethods8888 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1634 | #define GUI_DRAW_BMPM8888I &GUI_BitmapMethodsM8888I /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1635 | #define GUI_DRAW_BMPA555 &GUI_BitmapMethodsA555 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1636 | #define GUI_DRAW_BMPAM555 &GUI_BitmapMethodsAM555 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1637 | #define GUI_DRAW_BMPA565 &GUI_BitmapMethodsA565 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1638 | #define GUI_DRAW_BMPAM565 &GUI_BitmapMethodsAM565 /* Method table ! */ |
csyang2 |
1:c0f972361605 | 1639 | |
csyang2 |
1:c0f972361605 | 1640 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop; |
csyang2 |
1:c0f972361605 | 1641 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_Ext; |
csyang2 |
1:c0f972361605 | 1642 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_Frm; |
csyang2 |
1:c0f972361605 | 1643 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA2; |
csyang2 |
1:c0f972361605 | 1644 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA4; |
csyang2 |
1:c0f972361605 | 1645 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA2_EXT; |
csyang2 |
1:c0f972361605 | 1646 | extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA4_EXT; |
csyang2 |
1:c0f972361605 | 1647 | |
csyang2 |
1:c0f972361605 | 1648 | extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop; |
csyang2 |
1:c0f972361605 | 1649 | extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_Ext; |
csyang2 |
1:c0f972361605 | 1650 | extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_Frm; |
csyang2 |
1:c0f972361605 | 1651 | extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_AA2_Ext; |
csyang2 |
1:c0f972361605 | 1652 | extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_AA4_Ext; |
csyang2 |
1:c0f972361605 | 1653 | |
csyang2 |
1:c0f972361605 | 1654 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1655 | * |
csyang2 |
1:c0f972361605 | 1656 | * GUI_KEY_... |
csyang2 |
1:c0f972361605 | 1657 | * |
csyang2 |
1:c0f972361605 | 1658 | * These ID values are basically meant to be used with widgets |
csyang2 |
1:c0f972361605 | 1659 | * Note that we have chosen the values to be close to existing |
csyang2 |
1:c0f972361605 | 1660 | * "standards", so do not change them unless forced to. |
csyang2 |
1:c0f972361605 | 1661 | * |
csyang2 |
1:c0f972361605 | 1662 | */ |
csyang2 |
1:c0f972361605 | 1663 | #define GUI_KEY_BACKSPACE 8 /* ASCII: BACKSPACE Crtl-H */ |
csyang2 |
1:c0f972361605 | 1664 | #define GUI_KEY_TAB 9 /* ASCII: TAB Crtl-I */ |
csyang2 |
1:c0f972361605 | 1665 | #define GUI_KEY_BACKTAB 10 |
csyang2 |
1:c0f972361605 | 1666 | #define GUI_KEY_ENTER 13 /* ASCII: ENTER Crtl-M */ |
csyang2 |
1:c0f972361605 | 1667 | #define GUI_KEY_LEFT 16 |
csyang2 |
1:c0f972361605 | 1668 | #define GUI_KEY_UP 17 |
csyang2 |
1:c0f972361605 | 1669 | #define GUI_KEY_RIGHT 18 |
csyang2 |
1:c0f972361605 | 1670 | #define GUI_KEY_DOWN 19 |
csyang2 |
1:c0f972361605 | 1671 | #define GUI_KEY_HOME 23 |
csyang2 |
1:c0f972361605 | 1672 | #define GUI_KEY_END 24 |
csyang2 |
1:c0f972361605 | 1673 | #define GUI_KEY_SHIFT 25 |
csyang2 |
1:c0f972361605 | 1674 | #define GUI_KEY_CONTROL 26 |
csyang2 |
1:c0f972361605 | 1675 | #define GUI_KEY_ESCAPE 27 /* ASCII: ESCAPE 0x1b */ |
csyang2 |
1:c0f972361605 | 1676 | #define GUI_KEY_INSERT 29 |
csyang2 |
1:c0f972361605 | 1677 | #define GUI_KEY_DELETE 30 |
csyang2 |
1:c0f972361605 | 1678 | #define GUI_KEY_SPACE 32 |
csyang2 |
1:c0f972361605 | 1679 | #define GUI_KEY_PGUP 33 |
csyang2 |
1:c0f972361605 | 1680 | #define GUI_KEY_PGDOWN 34 |
csyang2 |
1:c0f972361605 | 1681 | |
csyang2 |
1:c0f972361605 | 1682 | #define GUI_KEY_F1 40 |
csyang2 |
1:c0f972361605 | 1683 | #define GUI_KEY_F2 41 |
csyang2 |
1:c0f972361605 | 1684 | |
csyang2 |
1:c0f972361605 | 1685 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1686 | * |
csyang2 |
1:c0f972361605 | 1687 | * Dialog item IDs |
csyang2 |
1:c0f972361605 | 1688 | * |
csyang2 |
1:c0f972361605 | 1689 | * The IDs below are arbitrary values. They just have to be unique |
csyang2 |
1:c0f972361605 | 1690 | * within the dialog. |
csyang2 |
1:c0f972361605 | 1691 | * |
csyang2 |
1:c0f972361605 | 1692 | * If you use your own Ids, we recommend to use values above GUI_ID_USER. |
csyang2 |
1:c0f972361605 | 1693 | */ |
csyang2 |
1:c0f972361605 | 1694 | #define GUI_ID_OK 1 |
csyang2 |
1:c0f972361605 | 1695 | #define GUI_ID_CANCEL 2 |
csyang2 |
1:c0f972361605 | 1696 | #define GUI_ID_YES 3 |
csyang2 |
1:c0f972361605 | 1697 | #define GUI_ID_NO 4 |
csyang2 |
1:c0f972361605 | 1698 | #define GUI_ID_CLOSE 5 |
csyang2 |
1:c0f972361605 | 1699 | #define GUI_ID_HELP 6 |
csyang2 |
1:c0f972361605 | 1700 | #define GUI_ID_MAXIMIZE 7 |
csyang2 |
1:c0f972361605 | 1701 | #define GUI_ID_MINIMIZE 8 |
csyang2 |
1:c0f972361605 | 1702 | |
csyang2 |
1:c0f972361605 | 1703 | #define GUI_ID_VSCROLL 0xFE |
csyang2 |
1:c0f972361605 | 1704 | #define GUI_ID_HSCROLL 0xFF |
csyang2 |
1:c0f972361605 | 1705 | |
csyang2 |
1:c0f972361605 | 1706 | #define GUI_ID_EDIT0 0x100 |
csyang2 |
1:c0f972361605 | 1707 | #define GUI_ID_EDIT1 0x101 |
csyang2 |
1:c0f972361605 | 1708 | #define GUI_ID_EDIT2 0x102 |
csyang2 |
1:c0f972361605 | 1709 | #define GUI_ID_EDIT3 0x103 |
csyang2 |
1:c0f972361605 | 1710 | #define GUI_ID_EDIT4 0x104 |
csyang2 |
1:c0f972361605 | 1711 | #define GUI_ID_EDIT5 0x105 |
csyang2 |
1:c0f972361605 | 1712 | #define GUI_ID_EDIT6 0x106 |
csyang2 |
1:c0f972361605 | 1713 | #define GUI_ID_EDIT7 0x107 |
csyang2 |
1:c0f972361605 | 1714 | #define GUI_ID_EDIT8 0x108 |
csyang2 |
1:c0f972361605 | 1715 | #define GUI_ID_EDIT9 0x109 |
csyang2 |
1:c0f972361605 | 1716 | |
csyang2 |
1:c0f972361605 | 1717 | #define GUI_ID_LISTBOX0 0x110 |
csyang2 |
1:c0f972361605 | 1718 | #define GUI_ID_LISTBOX1 0x111 |
csyang2 |
1:c0f972361605 | 1719 | #define GUI_ID_LISTBOX2 0x112 |
csyang2 |
1:c0f972361605 | 1720 | #define GUI_ID_LISTBOX3 0x113 |
csyang2 |
1:c0f972361605 | 1721 | #define GUI_ID_LISTBOX4 0x114 |
csyang2 |
1:c0f972361605 | 1722 | #define GUI_ID_LISTBOX5 0x115 |
csyang2 |
1:c0f972361605 | 1723 | #define GUI_ID_LISTBOX6 0x116 |
csyang2 |
1:c0f972361605 | 1724 | #define GUI_ID_LISTBOX7 0x117 |
csyang2 |
1:c0f972361605 | 1725 | #define GUI_ID_LISTBOX8 0x118 |
csyang2 |
1:c0f972361605 | 1726 | #define GUI_ID_LISTBOX9 0x119 |
csyang2 |
1:c0f972361605 | 1727 | |
csyang2 |
1:c0f972361605 | 1728 | #define GUI_ID_CHECK0 0x120 |
csyang2 |
1:c0f972361605 | 1729 | #define GUI_ID_CHECK1 0x121 |
csyang2 |
1:c0f972361605 | 1730 | #define GUI_ID_CHECK2 0x122 |
csyang2 |
1:c0f972361605 | 1731 | #define GUI_ID_CHECK3 0x123 |
csyang2 |
1:c0f972361605 | 1732 | #define GUI_ID_CHECK4 0x124 |
csyang2 |
1:c0f972361605 | 1733 | #define GUI_ID_CHECK5 0x125 |
csyang2 |
1:c0f972361605 | 1734 | #define GUI_ID_CHECK6 0x126 |
csyang2 |
1:c0f972361605 | 1735 | #define GUI_ID_CHECK7 0x127 |
csyang2 |
1:c0f972361605 | 1736 | #define GUI_ID_CHECK8 0x128 |
csyang2 |
1:c0f972361605 | 1737 | #define GUI_ID_CHECK9 0x129 |
csyang2 |
1:c0f972361605 | 1738 | |
csyang2 |
1:c0f972361605 | 1739 | #define GUI_ID_SLIDER0 0x130 |
csyang2 |
1:c0f972361605 | 1740 | #define GUI_ID_SLIDER1 0x131 |
csyang2 |
1:c0f972361605 | 1741 | #define GUI_ID_SLIDER2 0x132 |
csyang2 |
1:c0f972361605 | 1742 | #define GUI_ID_SLIDER3 0x133 |
csyang2 |
1:c0f972361605 | 1743 | #define GUI_ID_SLIDER4 0x134 |
csyang2 |
1:c0f972361605 | 1744 | #define GUI_ID_SLIDER5 0x135 |
csyang2 |
1:c0f972361605 | 1745 | #define GUI_ID_SLIDER6 0x136 |
csyang2 |
1:c0f972361605 | 1746 | #define GUI_ID_SLIDER7 0x137 |
csyang2 |
1:c0f972361605 | 1747 | #define GUI_ID_SLIDER8 0x138 |
csyang2 |
1:c0f972361605 | 1748 | #define GUI_ID_SLIDER9 0x139 |
csyang2 |
1:c0f972361605 | 1749 | |
csyang2 |
1:c0f972361605 | 1750 | #define GUI_ID_SCROLLBAR0 0x140 |
csyang2 |
1:c0f972361605 | 1751 | #define GUI_ID_SCROLLBAR1 0x141 |
csyang2 |
1:c0f972361605 | 1752 | #define GUI_ID_SCROLLBAR2 0x142 |
csyang2 |
1:c0f972361605 | 1753 | #define GUI_ID_SCROLLBAR3 0x143 |
csyang2 |
1:c0f972361605 | 1754 | |
csyang2 |
1:c0f972361605 | 1755 | #define GUI_ID_RADIO0 0x150 |
csyang2 |
1:c0f972361605 | 1756 | #define GUI_ID_RADIO1 0x151 |
csyang2 |
1:c0f972361605 | 1757 | #define GUI_ID_RADIO2 0x152 |
csyang2 |
1:c0f972361605 | 1758 | #define GUI_ID_RADIO3 0x153 |
csyang2 |
1:c0f972361605 | 1759 | #define GUI_ID_RADIO4 0x154 |
csyang2 |
1:c0f972361605 | 1760 | #define GUI_ID_RADIO5 0x155 |
csyang2 |
1:c0f972361605 | 1761 | #define GUI_ID_RADIO6 0x156 |
csyang2 |
1:c0f972361605 | 1762 | #define GUI_ID_RADIO7 0x157 |
csyang2 |
1:c0f972361605 | 1763 | |
csyang2 |
1:c0f972361605 | 1764 | #define GUI_ID_TEXT0 0x160 |
csyang2 |
1:c0f972361605 | 1765 | #define GUI_ID_TEXT1 0x161 |
csyang2 |
1:c0f972361605 | 1766 | #define GUI_ID_TEXT2 0x162 |
csyang2 |
1:c0f972361605 | 1767 | #define GUI_ID_TEXT3 0x163 |
csyang2 |
1:c0f972361605 | 1768 | #define GUI_ID_TEXT4 0x164 |
csyang2 |
1:c0f972361605 | 1769 | #define GUI_ID_TEXT5 0x165 |
csyang2 |
1:c0f972361605 | 1770 | #define GUI_ID_TEXT6 0x166 |
csyang2 |
1:c0f972361605 | 1771 | #define GUI_ID_TEXT7 0x167 |
csyang2 |
1:c0f972361605 | 1772 | #define GUI_ID_TEXT8 0x168 |
csyang2 |
1:c0f972361605 | 1773 | #define GUI_ID_TEXT9 0x169 |
csyang2 |
1:c0f972361605 | 1774 | |
csyang2 |
1:c0f972361605 | 1775 | #define GUI_ID_BUTTON0 0x170 |
csyang2 |
1:c0f972361605 | 1776 | #define GUI_ID_BUTTON1 0x171 |
csyang2 |
1:c0f972361605 | 1777 | #define GUI_ID_BUTTON2 0x172 |
csyang2 |
1:c0f972361605 | 1778 | #define GUI_ID_BUTTON3 0x173 |
csyang2 |
1:c0f972361605 | 1779 | #define GUI_ID_BUTTON4 0x174 |
csyang2 |
1:c0f972361605 | 1780 | #define GUI_ID_BUTTON5 0x175 |
csyang2 |
1:c0f972361605 | 1781 | #define GUI_ID_BUTTON6 0x176 |
csyang2 |
1:c0f972361605 | 1782 | #define GUI_ID_BUTTON7 0x177 |
csyang2 |
1:c0f972361605 | 1783 | #define GUI_ID_BUTTON8 0x178 |
csyang2 |
1:c0f972361605 | 1784 | #define GUI_ID_BUTTON9 0x179 |
csyang2 |
1:c0f972361605 | 1785 | |
csyang2 |
1:c0f972361605 | 1786 | #define GUI_ID_DROPDOWN0 0x180 |
csyang2 |
1:c0f972361605 | 1787 | #define GUI_ID_DROPDOWN1 0x181 |
csyang2 |
1:c0f972361605 | 1788 | #define GUI_ID_DROPDOWN2 0x182 |
csyang2 |
1:c0f972361605 | 1789 | #define GUI_ID_DROPDOWN3 0x183 |
csyang2 |
1:c0f972361605 | 1790 | |
csyang2 |
1:c0f972361605 | 1791 | #define GUI_ID_MULTIEDIT0 0x190 |
csyang2 |
1:c0f972361605 | 1792 | #define GUI_ID_MULTIEDIT1 0x191 |
csyang2 |
1:c0f972361605 | 1793 | #define GUI_ID_MULTIEDIT2 0x192 |
csyang2 |
1:c0f972361605 | 1794 | #define GUI_ID_MULTIEDIT3 0x193 |
csyang2 |
1:c0f972361605 | 1795 | |
csyang2 |
1:c0f972361605 | 1796 | #define GUI_ID_LISTVIEW0 0x200 |
csyang2 |
1:c0f972361605 | 1797 | #define GUI_ID_LISTVIEW1 0x201 |
csyang2 |
1:c0f972361605 | 1798 | #define GUI_ID_LISTVIEW2 0x202 |
csyang2 |
1:c0f972361605 | 1799 | #define GUI_ID_LISTVIEW3 0x203 |
csyang2 |
1:c0f972361605 | 1800 | |
csyang2 |
1:c0f972361605 | 1801 | #define GUI_ID_PROGBAR0 0x210 |
csyang2 |
1:c0f972361605 | 1802 | #define GUI_ID_PROGBAR1 0x211 |
csyang2 |
1:c0f972361605 | 1803 | #define GUI_ID_PROGBAR2 0x212 |
csyang2 |
1:c0f972361605 | 1804 | #define GUI_ID_PROGBAR3 0x213 |
csyang2 |
1:c0f972361605 | 1805 | |
csyang2 |
1:c0f972361605 | 1806 | #define GUI_ID_GRAPH0 0x220 |
csyang2 |
1:c0f972361605 | 1807 | #define GUI_ID_GRAPH1 0x221 |
csyang2 |
1:c0f972361605 | 1808 | #define GUI_ID_GRAPH2 0x222 |
csyang2 |
1:c0f972361605 | 1809 | #define GUI_ID_GRAPH3 0x223 |
csyang2 |
1:c0f972361605 | 1810 | |
csyang2 |
1:c0f972361605 | 1811 | #define GUI_ID_MULTIPAGE0 0x230 |
csyang2 |
1:c0f972361605 | 1812 | #define GUI_ID_MULTIPAGE1 0x231 |
csyang2 |
1:c0f972361605 | 1813 | #define GUI_ID_MULTIPAGE2 0x232 |
csyang2 |
1:c0f972361605 | 1814 | #define GUI_ID_MULTIPAGE3 0x233 |
csyang2 |
1:c0f972361605 | 1815 | |
csyang2 |
1:c0f972361605 | 1816 | #define GUI_ID_TREEVIEW0 0x240 |
csyang2 |
1:c0f972361605 | 1817 | #define GUI_ID_TREEVIEW1 0x241 |
csyang2 |
1:c0f972361605 | 1818 | #define GUI_ID_TREEVIEW2 0x242 |
csyang2 |
1:c0f972361605 | 1819 | #define GUI_ID_TREEVIEW3 0x243 |
csyang2 |
1:c0f972361605 | 1820 | |
csyang2 |
1:c0f972361605 | 1821 | #define GUI_ID_ICONVIEW0 0x250 |
csyang2 |
1:c0f972361605 | 1822 | #define GUI_ID_ICONVIEW1 0x251 |
csyang2 |
1:c0f972361605 | 1823 | #define GUI_ID_ICONVIEW2 0x252 |
csyang2 |
1:c0f972361605 | 1824 | #define GUI_ID_ICONVIEW3 0x253 |
csyang2 |
1:c0f972361605 | 1825 | |
csyang2 |
1:c0f972361605 | 1826 | #define GUI_ID_LISTWHEEL0 0x260 |
csyang2 |
1:c0f972361605 | 1827 | #define GUI_ID_LISTWHEEL1 0x261 |
csyang2 |
1:c0f972361605 | 1828 | #define GUI_ID_LISTWHEEL2 0x262 |
csyang2 |
1:c0f972361605 | 1829 | #define GUI_ID_LISTWHEEL3 0x263 |
csyang2 |
1:c0f972361605 | 1830 | |
csyang2 |
1:c0f972361605 | 1831 | #define GUI_ID_IMAGE0 0x270 |
csyang2 |
1:c0f972361605 | 1832 | #define GUI_ID_IMAGE1 0x271 |
csyang2 |
1:c0f972361605 | 1833 | #define GUI_ID_IMAGE2 0x272 |
csyang2 |
1:c0f972361605 | 1834 | #define GUI_ID_IMAGE3 0x273 |
csyang2 |
1:c0f972361605 | 1835 | #define GUI_ID_IMAGE4 0x274 |
csyang2 |
1:c0f972361605 | 1836 | #define GUI_ID_IMAGE5 0x275 |
csyang2 |
1:c0f972361605 | 1837 | #define GUI_ID_IMAGE6 0x276 |
csyang2 |
1:c0f972361605 | 1838 | #define GUI_ID_IMAGE7 0x277 |
csyang2 |
1:c0f972361605 | 1839 | #define GUI_ID_IMAGE8 0x278 |
csyang2 |
1:c0f972361605 | 1840 | #define GUI_ID_IMAGE9 0x279 |
csyang2 |
1:c0f972361605 | 1841 | |
csyang2 |
1:c0f972361605 | 1842 | #define GUI_ID_SPINBOX0 0x280 |
csyang2 |
1:c0f972361605 | 1843 | #define GUI_ID_SPINBOX1 0x281 |
csyang2 |
1:c0f972361605 | 1844 | #define GUI_ID_SPINBOX2 0x282 |
csyang2 |
1:c0f972361605 | 1845 | #define GUI_ID_SPINBOX3 0x283 |
csyang2 |
1:c0f972361605 | 1846 | #define GUI_ID_SPINBOX4 0x284 |
csyang2 |
1:c0f972361605 | 1847 | #define GUI_ID_SPINBOX5 0x285 |
csyang2 |
1:c0f972361605 | 1848 | #define GUI_ID_SPINBOX6 0x286 |
csyang2 |
1:c0f972361605 | 1849 | #define GUI_ID_SPINBOX7 0x287 |
csyang2 |
1:c0f972361605 | 1850 | #define GUI_ID_SPINBOX8 0x288 |
csyang2 |
1:c0f972361605 | 1851 | #define GUI_ID_SPINBOX9 0x289 |
csyang2 |
1:c0f972361605 | 1852 | |
csyang2 |
1:c0f972361605 | 1853 | #define GUI_ID_CALENDAR0 0x290 |
csyang2 |
1:c0f972361605 | 1854 | |
csyang2 |
1:c0f972361605 | 1855 | #define GUI_ID_KNOB0 0x300 |
csyang2 |
1:c0f972361605 | 1856 | #define GUI_ID_KNOB1 0x301 |
csyang2 |
1:c0f972361605 | 1857 | #define GUI_ID_KNOB2 0x302 |
csyang2 |
1:c0f972361605 | 1858 | #define GUI_ID_KNOB3 0x303 |
csyang2 |
1:c0f972361605 | 1859 | #define GUI_ID_KNOB4 0x304 |
csyang2 |
1:c0f972361605 | 1860 | #define GUI_ID_KNOB5 0x305 |
csyang2 |
1:c0f972361605 | 1861 | #define GUI_ID_KNOB6 0x306 |
csyang2 |
1:c0f972361605 | 1862 | #define GUI_ID_KNOB7 0x307 |
csyang2 |
1:c0f972361605 | 1863 | #define GUI_ID_KNOB8 0x308 |
csyang2 |
1:c0f972361605 | 1864 | #define GUI_ID_KNOB9 0x309 |
csyang2 |
1:c0f972361605 | 1865 | |
csyang2 |
1:c0f972361605 | 1866 | #define GUI_ID_SWIPELIST0 0x320 |
csyang2 |
1:c0f972361605 | 1867 | #define GUI_ID_SWIPELIST1 0x321 |
csyang2 |
1:c0f972361605 | 1868 | #define GUI_ID_SWIPELIST2 0x322 |
csyang2 |
1:c0f972361605 | 1869 | |
csyang2 |
1:c0f972361605 | 1870 | #define GUI_ID_USER 0x800 |
csyang2 |
1:c0f972361605 | 1871 | |
csyang2 |
1:c0f972361605 | 1872 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1873 | * |
csyang2 |
1:c0f972361605 | 1874 | * Mouse buttons |
csyang2 |
1:c0f972361605 | 1875 | */ |
csyang2 |
1:c0f972361605 | 1876 | #define GUI_LBUTTON (1 << 0) /* Left button */ |
csyang2 |
1:c0f972361605 | 1877 | #define GUI_RBUTTON (1 << 1) /* Right button */ |
csyang2 |
1:c0f972361605 | 1878 | #define GUI_MBUTTON (1 << 2) /* Middle button */ |
csyang2 |
1:c0f972361605 | 1879 | #define GUI_DBUTTON (1 << 7) /* Double-click button */ |
csyang2 |
1:c0f972361605 | 1880 | |
csyang2 |
1:c0f972361605 | 1881 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1882 | * |
csyang2 |
1:c0f972361605 | 1883 | * Text styles |
csyang2 |
1:c0f972361605 | 1884 | */ |
csyang2 |
1:c0f972361605 | 1885 | #define GUI_TS_NORMAL (0) |
csyang2 |
1:c0f972361605 | 1886 | #define GUI_TS_UNDERLINE (1 << 0) |
csyang2 |
1:c0f972361605 | 1887 | #define GUI_TS_STRIKETHRU (1 << 1) |
csyang2 |
1:c0f972361605 | 1888 | #define GUI_TS_OVERLINE (1 << 2) |
csyang2 |
1:c0f972361605 | 1889 | |
csyang2 |
1:c0f972361605 | 1890 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1891 | * |
csyang2 |
1:c0f972361605 | 1892 | * Line styles |
csyang2 |
1:c0f972361605 | 1893 | */ |
csyang2 |
1:c0f972361605 | 1894 | #define GUI_LS_SOLID (0) |
csyang2 |
1:c0f972361605 | 1895 | #define GUI_LS_DASH (1) |
csyang2 |
1:c0f972361605 | 1896 | #define GUI_LS_DOT (2) |
csyang2 |
1:c0f972361605 | 1897 | #define GUI_LS_DASHDOT (3) |
csyang2 |
1:c0f972361605 | 1898 | #define GUI_LS_DASHDOTDOT (4) |
csyang2 |
1:c0f972361605 | 1899 | |
csyang2 |
1:c0f972361605 | 1900 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1901 | * |
csyang2 |
1:c0f972361605 | 1902 | * Pen shapes |
csyang2 |
1:c0f972361605 | 1903 | */ |
csyang2 |
1:c0f972361605 | 1904 | #define GUI_PS_ROUND (0) |
csyang2 |
1:c0f972361605 | 1905 | #define GUI_PS_FLAT (1) |
csyang2 |
1:c0f972361605 | 1906 | #define GUI_PS_SQUARE (2) |
csyang2 |
1:c0f972361605 | 1907 | |
csyang2 |
1:c0f972361605 | 1908 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1909 | * |
csyang2 |
1:c0f972361605 | 1910 | * Standard colors |
csyang2 |
1:c0f972361605 | 1911 | */ |
csyang2 |
1:c0f972361605 | 1912 | #define GUI_INVALID_COLOR ((((U32)GUI_TRANS_BYTE) << 24) | 0x12345678ul) /* Invalid color (transparency + determined color) */ |
csyang2 |
1:c0f972361605 | 1913 | |
csyang2 |
1:c0f972361605 | 1914 | #if (GUI_USE_ARGB) |
csyang2 |
1:c0f972361605 | 1915 | #define GUI_MAKE_COLOR(ABGR) (((((U32)ABGR) & 0xFF000000ul) ^ 0xFF000000ul) | ((((U32)ABGR) & 0x00FF0000ul) >> 16) | (((U32)ABGR) & 0x0000FF00ul) | ((((U32)ABGR) & 0x000000FFul) << 16)) |
csyang2 |
1:c0f972361605 | 1916 | #define GUI_MAKE_TRANS(Alpha) (255 - (Alpha)) |
csyang2 |
1:c0f972361605 | 1917 | #else |
csyang2 |
1:c0f972361605 | 1918 | #define GUI_MAKE_COLOR(ABGR) (ABGR) |
csyang2 |
1:c0f972361605 | 1919 | #define GUI_MAKE_TRANS(Alpha) (Alpha) |
csyang2 |
1:c0f972361605 | 1920 | #endif |
csyang2 |
1:c0f972361605 | 1921 | |
csyang2 |
1:c0f972361605 | 1922 | #if (GUI_USE_ARGB) |
csyang2 |
1:c0f972361605 | 1923 | #define GUI_TRANS_BYTE 0x00 |
csyang2 |
1:c0f972361605 | 1924 | #else |
csyang2 |
1:c0f972361605 | 1925 | #define GUI_TRANS_BYTE 0xFF |
csyang2 |
1:c0f972361605 | 1926 | #endif |
csyang2 |
1:c0f972361605 | 1927 | |
csyang2 |
1:c0f972361605 | 1928 | #define GUI_BLUE GUI_MAKE_COLOR(0x00FF0000) |
csyang2 |
1:c0f972361605 | 1929 | #define GUI_GREEN GUI_MAKE_COLOR(0x0000FF00) |
csyang2 |
1:c0f972361605 | 1930 | #define GUI_RED GUI_MAKE_COLOR(0x000000FF) |
csyang2 |
1:c0f972361605 | 1931 | #define GUI_CYAN GUI_MAKE_COLOR(0x00FFFF00) |
csyang2 |
1:c0f972361605 | 1932 | #define GUI_MAGENTA GUI_MAKE_COLOR(0x00FF00FF) |
csyang2 |
1:c0f972361605 | 1933 | #define GUI_YELLOW GUI_MAKE_COLOR(0x0000FFFF) |
csyang2 |
1:c0f972361605 | 1934 | #define GUI_LIGHTBLUE GUI_MAKE_COLOR(0x00FF8080) |
csyang2 |
1:c0f972361605 | 1935 | #define GUI_LIGHTGREEN GUI_MAKE_COLOR(0x0080FF80) |
csyang2 |
1:c0f972361605 | 1936 | #define GUI_LIGHTRED GUI_MAKE_COLOR(0x008080FF) |
csyang2 |
1:c0f972361605 | 1937 | #define GUI_LIGHTCYAN GUI_MAKE_COLOR(0x00FFFF80) |
csyang2 |
1:c0f972361605 | 1938 | #define GUI_LIGHTMAGENTA GUI_MAKE_COLOR(0x00FF80FF) |
csyang2 |
1:c0f972361605 | 1939 | #define GUI_LIGHTYELLOW GUI_MAKE_COLOR(0x0080FFFF) |
csyang2 |
1:c0f972361605 | 1940 | #define GUI_DARKBLUE GUI_MAKE_COLOR(0x00800000) |
csyang2 |
1:c0f972361605 | 1941 | #define GUI_DARKGREEN GUI_MAKE_COLOR(0x00008000) |
csyang2 |
1:c0f972361605 | 1942 | #define GUI_DARKRED GUI_MAKE_COLOR(0x00000080) |
csyang2 |
1:c0f972361605 | 1943 | #define GUI_DARKCYAN GUI_MAKE_COLOR(0x00808000) |
csyang2 |
1:c0f972361605 | 1944 | #define GUI_DARKMAGENTA GUI_MAKE_COLOR(0x00800080) |
csyang2 |
1:c0f972361605 | 1945 | #define GUI_DARKYELLOW GUI_MAKE_COLOR(0x00008080) |
csyang2 |
1:c0f972361605 | 1946 | #define GUI_WHITE GUI_MAKE_COLOR(0x00FFFFFF) |
csyang2 |
1:c0f972361605 | 1947 | #define GUI_LIGHTGRAY GUI_MAKE_COLOR(0x00D3D3D3) |
csyang2 |
1:c0f972361605 | 1948 | #define GUI_GRAY GUI_MAKE_COLOR(0x00808080) |
csyang2 |
1:c0f972361605 | 1949 | #define GUI_DARKGRAY GUI_MAKE_COLOR(0x00404040) |
csyang2 |
1:c0f972361605 | 1950 | #define GUI_BLACK GUI_MAKE_COLOR(0x00000000) |
csyang2 |
1:c0f972361605 | 1951 | #define GUI_BROWN GUI_MAKE_COLOR(0x002A2AA5) |
csyang2 |
1:c0f972361605 | 1952 | #define GUI_ORANGE GUI_MAKE_COLOR(0x0000A5FF) |
csyang2 |
1:c0f972361605 | 1953 | #define GUI_TRANSPARENT GUI_MAKE_COLOR(0xFF000000) |
csyang2 |
1:c0f972361605 | 1954 | |
csyang2 |
1:c0f972361605 | 1955 | #define GUI_GRAY_3F GUI_MAKE_COLOR(0x003F3F3F) |
csyang2 |
1:c0f972361605 | 1956 | #define GUI_GRAY_50 GUI_MAKE_COLOR(0x00505050) |
csyang2 |
1:c0f972361605 | 1957 | #define GUI_GRAY_55 GUI_MAKE_COLOR(0x00555555) |
csyang2 |
1:c0f972361605 | 1958 | #define GUI_GRAY_60 GUI_MAKE_COLOR(0x00606060) |
csyang2 |
1:c0f972361605 | 1959 | #define GUI_GRAY_7C GUI_MAKE_COLOR(0x007C7C7C) |
csyang2 |
1:c0f972361605 | 1960 | #define GUI_GRAY_9A GUI_MAKE_COLOR(0x009A9A9A) |
csyang2 |
1:c0f972361605 | 1961 | #define GUI_GRAY_AA GUI_MAKE_COLOR(0x00AAAAAA) |
csyang2 |
1:c0f972361605 | 1962 | #define GUI_GRAY_C0 GUI_MAKE_COLOR(0x00C0C0C0) |
csyang2 |
1:c0f972361605 | 1963 | #define GUI_GRAY_C8 GUI_MAKE_COLOR(0x00C8C8C8) |
csyang2 |
1:c0f972361605 | 1964 | #define GUI_GRAY_D0 GUI_MAKE_COLOR(0x00D0D0D0) |
csyang2 |
1:c0f972361605 | 1965 | #define GUI_GRAY_E7 GUI_MAKE_COLOR(0x00E7E7E7) |
csyang2 |
1:c0f972361605 | 1966 | #define GUI_BLUE_98 GUI_MAKE_COLOR(0x00980000) |
csyang2 |
1:c0f972361605 | 1967 | |
csyang2 |
1:c0f972361605 | 1968 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1969 | * |
csyang2 |
1:c0f972361605 | 1970 | * MultiTouch-Support |
csyang2 |
1:c0f972361605 | 1971 | */ |
csyang2 |
1:c0f972361605 | 1972 | // |
csyang2 |
1:c0f972361605 | 1973 | // Defines |
csyang2 |
1:c0f972361605 | 1974 | // |
csyang2 |
1:c0f972361605 | 1975 | #define GUI_MTOUCH_FLAG_DOWN (1 << 0) |
csyang2 |
1:c0f972361605 | 1976 | #define GUI_MTOUCH_FLAG_MOVE (1 << 1) |
csyang2 |
1:c0f972361605 | 1977 | #define GUI_MTOUCH_FLAG_UP (1 << 2) |
csyang2 |
1:c0f972361605 | 1978 | |
csyang2 |
1:c0f972361605 | 1979 | // |
csyang2 |
1:c0f972361605 | 1980 | // Variables |
csyang2 |
1:c0f972361605 | 1981 | // |
csyang2 |
1:c0f972361605 | 1982 | extern T_GUI_MTOUCH_STOREEVENT GUI_MTOUCH__pStoreEvent; |
csyang2 |
1:c0f972361605 | 1983 | |
csyang2 |
1:c0f972361605 | 1984 | // |
csyang2 |
1:c0f972361605 | 1985 | // Interface |
csyang2 |
1:c0f972361605 | 1986 | // |
csyang2 |
1:c0f972361605 | 1987 | void GUI_MTOUCH_Enable (int OnOff); |
csyang2 |
1:c0f972361605 | 1988 | int GUI_MTOUCH_GetEvent (GUI_MTOUCH_EVENT * pEvent); |
csyang2 |
1:c0f972361605 | 1989 | int GUI_MTOUCH_GetTouchInput (GUI_MTOUCH_EVENT * pEvent, GUI_MTOUCH_INPUT * pBuffer, unsigned Index); |
csyang2 |
1:c0f972361605 | 1990 | int GUI_MTOUCH_IsEmpty (void); |
csyang2 |
1:c0f972361605 | 1991 | void GUI_MTOUCH_SetOrientation (int Orientation); |
csyang2 |
1:c0f972361605 | 1992 | void GUI_MTOUCH_SetOrientationEx(int Orientation, int LayerIndex); |
csyang2 |
1:c0f972361605 | 1993 | void GUI_MTOUCH_StoreEvent (GUI_MTOUCH_EVENT * pEvent, GUI_MTOUCH_INPUT * pInput); |
csyang2 |
1:c0f972361605 | 1994 | |
csyang2 |
1:c0f972361605 | 1995 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 1996 | * |
csyang2 |
1:c0f972361605 | 1997 | * Coordinates used in touch driver |
csyang2 |
1:c0f972361605 | 1998 | */ |
csyang2 |
1:c0f972361605 | 1999 | #define GUI_COORD_X 0 |
csyang2 |
1:c0f972361605 | 2000 | #define GUI_COORD_Y 1 |
csyang2 |
1:c0f972361605 | 2001 | |
csyang2 |
1:c0f972361605 | 2002 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2003 | * |
csyang2 |
1:c0f972361605 | 2004 | * Addresses of standard fonts |
csyang2 |
1:c0f972361605 | 2005 | */ |
csyang2 |
1:c0f972361605 | 2006 | // |
csyang2 |
1:c0f972361605 | 2007 | // Proportional fonts |
csyang2 |
1:c0f972361605 | 2008 | // |
csyang2 |
1:c0f972361605 | 2009 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8_ASCII, GUI_Font8_1; |
csyang2 |
1:c0f972361605 | 2010 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font10S_ASCII, GUI_Font10S_1; |
csyang2 |
1:c0f972361605 | 2011 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font10_ASCII, GUI_Font10_1; |
csyang2 |
1:c0f972361605 | 2012 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font13_ASCII, GUI_Font13_1; |
csyang2 |
1:c0f972361605 | 2013 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font13B_ASCII, GUI_Font13B_1; |
csyang2 |
1:c0f972361605 | 2014 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font13H_ASCII, GUI_Font13H_1; |
csyang2 |
1:c0f972361605 | 2015 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font13HB_ASCII, GUI_Font13HB_1; |
csyang2 |
1:c0f972361605 | 2016 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font16_ASCII, GUI_Font16_1, GUI_Font16_HK, GUI_Font16_1HK; |
csyang2 |
1:c0f972361605 | 2017 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font16B_ASCII, GUI_Font16B_1; |
csyang2 |
1:c0f972361605 | 2018 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font20_ASCII, GUI_Font20_1; |
csyang2 |
1:c0f972361605 | 2019 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font20B_ASCII, GUI_Font20B_1; |
csyang2 |
1:c0f972361605 | 2020 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font24_ASCII, GUI_Font24_1; |
csyang2 |
1:c0f972361605 | 2021 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font24B_ASCII, GUI_Font24B_1; |
csyang2 |
1:c0f972361605 | 2022 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font32_ASCII, GUI_Font32_1; |
csyang2 |
1:c0f972361605 | 2023 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font32B_ASCII, GUI_Font32B_1; |
csyang2 |
1:c0f972361605 | 2024 | |
csyang2 |
1:c0f972361605 | 2025 | // |
csyang2 |
1:c0f972361605 | 2026 | // Proportional fonts, framed |
csyang2 |
1:c0f972361605 | 2027 | // |
csyang2 |
1:c0f972361605 | 2028 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font20F_ASCII; |
csyang2 |
1:c0f972361605 | 2029 | |
csyang2 |
1:c0f972361605 | 2030 | // |
csyang2 |
1:c0f972361605 | 2031 | // Monospaced |
csyang2 |
1:c0f972361605 | 2032 | // |
csyang2 |
1:c0f972361605 | 2033 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font4x6; |
csyang2 |
1:c0f972361605 | 2034 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font6x8, GUI_Font6x9; |
csyang2 |
1:c0f972361605 | 2035 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font6x8_ASCII, GUI_Font6x8_1; |
csyang2 |
1:c0f972361605 | 2036 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x8, GUI_Font8x9; |
csyang2 |
1:c0f972361605 | 2037 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x8_ASCII, GUI_Font8x8_1; |
csyang2 |
1:c0f972361605 | 2038 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x10_ASCII; |
csyang2 |
1:c0f972361605 | 2039 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x12_ASCII; |
csyang2 |
1:c0f972361605 | 2040 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x13_ASCII, GUI_Font8x13_1; |
csyang2 |
1:c0f972361605 | 2041 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x15B_ASCII, GUI_Font8x15B_1; |
csyang2 |
1:c0f972361605 | 2042 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16, GUI_Font8x17, GUI_Font8x18; |
csyang2 |
1:c0f972361605 | 2043 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16x1x2, GUI_Font8x16x2x2, GUI_Font8x16x3x3; |
csyang2 |
1:c0f972361605 | 2044 | extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16_ASCII, GUI_Font8x16_1; |
csyang2 |
1:c0f972361605 | 2045 | |
csyang2 |
1:c0f972361605 | 2046 | // |
csyang2 |
1:c0f972361605 | 2047 | // Digits |
csyang2 |
1:c0f972361605 | 2048 | // |
csyang2 |
1:c0f972361605 | 2049 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD24x32; |
csyang2 |
1:c0f972361605 | 2050 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD32; |
csyang2 |
1:c0f972361605 | 2051 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD36x48; |
csyang2 |
1:c0f972361605 | 2052 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD48; |
csyang2 |
1:c0f972361605 | 2053 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD48x64; |
csyang2 |
1:c0f972361605 | 2054 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD64; |
csyang2 |
1:c0f972361605 | 2055 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD60x80; |
csyang2 |
1:c0f972361605 | 2056 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontD80; |
csyang2 |
1:c0f972361605 | 2057 | |
csyang2 |
1:c0f972361605 | 2058 | // |
csyang2 |
1:c0f972361605 | 2059 | // Comic fonts |
csyang2 |
1:c0f972361605 | 2060 | // |
csyang2 |
1:c0f972361605 | 2061 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontComic18B_ASCII, GUI_FontComic18B_1; |
csyang2 |
1:c0f972361605 | 2062 | extern GUI_CONST_STORAGE GUI_FONT GUI_FontComic24B_ASCII, GUI_FontComic24B_1; |
csyang2 |
1:c0f972361605 | 2063 | |
csyang2 |
1:c0f972361605 | 2064 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2065 | * |
csyang2 |
1:c0f972361605 | 2066 | * Macros to be used |
csyang2 |
1:c0f972361605 | 2067 | */ |
csyang2 |
1:c0f972361605 | 2068 | // |
csyang2 |
1:c0f972361605 | 2069 | // Proportional fonts |
csyang2 |
1:c0f972361605 | 2070 | // |
csyang2 |
1:c0f972361605 | 2071 | #define GUI_FONT_8_ASCII &GUI_Font8_ASCII |
csyang2 |
1:c0f972361605 | 2072 | #define GUI_FONT_8_1 &GUI_Font8_1 |
csyang2 |
1:c0f972361605 | 2073 | #define GUI_FONT_10S_ASCII &GUI_Font10S_ASCII |
csyang2 |
1:c0f972361605 | 2074 | #define GUI_FONT_10S_1 &GUI_Font10S_1 |
csyang2 |
1:c0f972361605 | 2075 | #define GUI_FONT_10_ASCII &GUI_Font10_ASCII |
csyang2 |
1:c0f972361605 | 2076 | #define GUI_FONT_10_1 &GUI_Font10_1 |
csyang2 |
1:c0f972361605 | 2077 | #define GUI_FONT_13_ASCII &GUI_Font13_ASCII |
csyang2 |
1:c0f972361605 | 2078 | #define GUI_FONT_13_1 &GUI_Font13_1 |
csyang2 |
1:c0f972361605 | 2079 | #define GUI_FONT_13B_ASCII &GUI_Font13B_ASCII |
csyang2 |
1:c0f972361605 | 2080 | #define GUI_FONT_13B_1 &GUI_Font13B_1 |
csyang2 |
1:c0f972361605 | 2081 | #define GUI_FONT_13H_ASCII &GUI_Font13H_ASCII |
csyang2 |
1:c0f972361605 | 2082 | #define GUI_FONT_13H_1 &GUI_Font13H_1 |
csyang2 |
1:c0f972361605 | 2083 | #define GUI_FONT_13HB_ASCII &GUI_Font13HB_ASCII |
csyang2 |
1:c0f972361605 | 2084 | #define GUI_FONT_13HB_1 &GUI_Font13HB_1 |
csyang2 |
1:c0f972361605 | 2085 | #define GUI_FONT_16_ASCII &GUI_Font16_ASCII |
csyang2 |
1:c0f972361605 | 2086 | #define GUI_FONT_16_1 &GUI_Font16_1 |
csyang2 |
1:c0f972361605 | 2087 | #define GUI_FONT_16_HK &GUI_Font16_HK |
csyang2 |
1:c0f972361605 | 2088 | #define GUI_FONT_16_1HK &GUI_Font16_1HK |
csyang2 |
1:c0f972361605 | 2089 | #define GUI_FONT_16B_ASCII &GUI_Font16B_ASCII |
csyang2 |
1:c0f972361605 | 2090 | #define GUI_FONT_16B_1 &GUI_Font16B_1 |
csyang2 |
1:c0f972361605 | 2091 | #define GUI_FONT_20_ASCII &GUI_Font20_ASCII |
csyang2 |
1:c0f972361605 | 2092 | #define GUI_FONT_20_1 &GUI_Font20_1 |
csyang2 |
1:c0f972361605 | 2093 | #define GUI_FONT_20B_ASCII &GUI_Font20B_ASCII |
csyang2 |
1:c0f972361605 | 2094 | #define GUI_FONT_20B_1 &GUI_Font20B_1 |
csyang2 |
1:c0f972361605 | 2095 | #define GUI_FONT_24_ASCII &GUI_Font24_ASCII |
csyang2 |
1:c0f972361605 | 2096 | #define GUI_FONT_24_1 &GUI_Font24_1 |
csyang2 |
1:c0f972361605 | 2097 | #define GUI_FONT_24B_ASCII &GUI_Font24B_ASCII |
csyang2 |
1:c0f972361605 | 2098 | #define GUI_FONT_24B_1 &GUI_Font24B_1 |
csyang2 |
1:c0f972361605 | 2099 | #define GUI_FONT_32_ASCII &GUI_Font32_ASCII |
csyang2 |
1:c0f972361605 | 2100 | #define GUI_FONT_32_1 &GUI_Font32_1 |
csyang2 |
1:c0f972361605 | 2101 | #define GUI_FONT_32B_ASCII &GUI_Font32B_ASCII |
csyang2 |
1:c0f972361605 | 2102 | #define GUI_FONT_32B_1 &GUI_Font32B_1 |
csyang2 |
1:c0f972361605 | 2103 | |
csyang2 |
1:c0f972361605 | 2104 | // |
csyang2 |
1:c0f972361605 | 2105 | // Proportional fonts, framed |
csyang2 |
1:c0f972361605 | 2106 | // |
csyang2 |
1:c0f972361605 | 2107 | #define GUI_FONT_20F_ASCII &GUI_Font20F_ASCII |
csyang2 |
1:c0f972361605 | 2108 | |
csyang2 |
1:c0f972361605 | 2109 | // |
csyang2 |
1:c0f972361605 | 2110 | // Monospaced |
csyang2 |
1:c0f972361605 | 2111 | // |
csyang2 |
1:c0f972361605 | 2112 | #define GUI_FONT_4X6 &GUI_Font4x6 |
csyang2 |
1:c0f972361605 | 2113 | #define GUI_FONT_6X8 &GUI_Font6x8 |
csyang2 |
1:c0f972361605 | 2114 | #define GUI_FONT_6X8_ASCII &GUI_Font6x8_ASCII |
csyang2 |
1:c0f972361605 | 2115 | #define GUI_FONT_6X8_1 &GUI_Font6x8_1 |
csyang2 |
1:c0f972361605 | 2116 | #define GUI_FONT_6X9 &GUI_Font6x9 |
csyang2 |
1:c0f972361605 | 2117 | #define GUI_FONT_8X8 &GUI_Font8x8 |
csyang2 |
1:c0f972361605 | 2118 | #define GUI_FONT_8X8_ASCII &GUI_Font8x8_ASCII |
csyang2 |
1:c0f972361605 | 2119 | #define GUI_FONT_8X8_1 &GUI_Font8x8_1 |
csyang2 |
1:c0f972361605 | 2120 | #define GUI_FONT_8X9 &GUI_Font8x9 |
csyang2 |
1:c0f972361605 | 2121 | #define GUI_FONT_8X10_ASCII &GUI_Font8x10_ASCII |
csyang2 |
1:c0f972361605 | 2122 | #define GUI_FONT_8X12_ASCII &GUI_Font8x12_ASCII |
csyang2 |
1:c0f972361605 | 2123 | #define GUI_FONT_8X13_ASCII &GUI_Font8x13_ASCII |
csyang2 |
1:c0f972361605 | 2124 | #define GUI_FONT_8X13_1 &GUI_Font8x13_1 |
csyang2 |
1:c0f972361605 | 2125 | #define GUI_FONT_8X15B_ASCII &GUI_Font8x15B_ASCII |
csyang2 |
1:c0f972361605 | 2126 | #define GUI_FONT_8X15B_1 &GUI_Font8x15B_1 |
csyang2 |
1:c0f972361605 | 2127 | #define GUI_FONT_8X16 &GUI_Font8x16 |
csyang2 |
1:c0f972361605 | 2128 | #define GUI_FONT_8X17 &GUI_Font8x17 |
csyang2 |
1:c0f972361605 | 2129 | #define GUI_FONT_8X18 &GUI_Font8x18 |
csyang2 |
1:c0f972361605 | 2130 | #define GUI_FONT_8X16X1X2 &GUI_Font8x16x1x2 |
csyang2 |
1:c0f972361605 | 2131 | #define GUI_FONT_8X16X2X2 &GUI_Font8x16x2x2 |
csyang2 |
1:c0f972361605 | 2132 | #define GUI_FONT_8X16X3X3 &GUI_Font8x16x3x3 |
csyang2 |
1:c0f972361605 | 2133 | #define GUI_FONT_8X16_ASCII &GUI_Font8x16_ASCII |
csyang2 |
1:c0f972361605 | 2134 | #define GUI_FONT_8X16_1 &GUI_Font8x16_1 |
csyang2 |
1:c0f972361605 | 2135 | |
csyang2 |
1:c0f972361605 | 2136 | // |
csyang2 |
1:c0f972361605 | 2137 | // Digits |
csyang2 |
1:c0f972361605 | 2138 | // |
csyang2 |
1:c0f972361605 | 2139 | #define GUI_FONT_D24X32 &GUI_FontD24x32 |
csyang2 |
1:c0f972361605 | 2140 | #define GUI_FONT_D32 &GUI_FontD32 |
csyang2 |
1:c0f972361605 | 2141 | #define GUI_FONT_D36X48 &GUI_FontD36x48 |
csyang2 |
1:c0f972361605 | 2142 | #define GUI_FONT_D48 &GUI_FontD48 |
csyang2 |
1:c0f972361605 | 2143 | #define GUI_FONT_D48X64 &GUI_FontD48x64 |
csyang2 |
1:c0f972361605 | 2144 | #define GUI_FONT_D64 &GUI_FontD64 |
csyang2 |
1:c0f972361605 | 2145 | #define GUI_FONT_D60X80 &GUI_FontD60x80 |
csyang2 |
1:c0f972361605 | 2146 | #define GUI_FONT_D80 &GUI_FontD80 |
csyang2 |
1:c0f972361605 | 2147 | |
csyang2 |
1:c0f972361605 | 2148 | // |
csyang2 |
1:c0f972361605 | 2149 | // Comic fonts |
csyang2 |
1:c0f972361605 | 2150 | // |
csyang2 |
1:c0f972361605 | 2151 | #define GUI_FONT_COMIC18B_ASCII &GUI_FontComic18B_ASCII |
csyang2 |
1:c0f972361605 | 2152 | #define GUI_FONT_COMIC18B_1 &GUI_FontComic18B_1 |
csyang2 |
1:c0f972361605 | 2153 | #define GUI_FONT_COMIC24B_ASCII &GUI_FontComic24B_ASCII |
csyang2 |
1:c0f972361605 | 2154 | #define GUI_FONT_COMIC24B_1 &GUI_FontComic24B_1 |
csyang2 |
1:c0f972361605 | 2155 | |
csyang2 |
1:c0f972361605 | 2156 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2157 | * |
csyang2 |
1:c0f972361605 | 2158 | * Text and drawing modes |
csyang2 |
1:c0f972361605 | 2159 | * |
csyang2 |
1:c0f972361605 | 2160 | * These defines come in two flavors: the long version (.._DRAWMODE_..) |
csyang2 |
1:c0f972361605 | 2161 | * and the short ones (.._DM_..). They are identical, feel free to use |
csyang2 |
1:c0f972361605 | 2162 | * which ever one you like best. |
csyang2 |
1:c0f972361605 | 2163 | */ |
csyang2 |
1:c0f972361605 | 2164 | #define GUI_DRAWMODE_NORMAL LCD_DRAWMODE_NORMAL |
csyang2 |
1:c0f972361605 | 2165 | #define GUI_DRAWMODE_XOR LCD_DRAWMODE_XOR |
csyang2 |
1:c0f972361605 | 2166 | #define GUI_DRAWMODE_TRANS LCD_DRAWMODE_TRANS |
csyang2 |
1:c0f972361605 | 2167 | #define GUI_DRAWMODE_REV LCD_DRAWMODE_REV |
csyang2 |
1:c0f972361605 | 2168 | #define GUI_DM_NORMAL LCD_DRAWMODE_NORMAL |
csyang2 |
1:c0f972361605 | 2169 | #define GUI_DM_XOR LCD_DRAWMODE_XOR |
csyang2 |
1:c0f972361605 | 2170 | #define GUI_DM_TRANS LCD_DRAWMODE_TRANS |
csyang2 |
1:c0f972361605 | 2171 | #define GUI_DM_REV LCD_DRAWMODE_REV |
csyang2 |
1:c0f972361605 | 2172 | |
csyang2 |
1:c0f972361605 | 2173 | #define GUI_TEXTMODE_NORMAL LCD_DRAWMODE_NORMAL |
csyang2 |
1:c0f972361605 | 2174 | #define GUI_TEXTMODE_XOR LCD_DRAWMODE_XOR |
csyang2 |
1:c0f972361605 | 2175 | #define GUI_TEXTMODE_TRANS LCD_DRAWMODE_TRANS |
csyang2 |
1:c0f972361605 | 2176 | #define GUI_TEXTMODE_REV LCD_DRAWMODE_REV |
csyang2 |
1:c0f972361605 | 2177 | #define GUI_TM_NORMAL LCD_DRAWMODE_NORMAL |
csyang2 |
1:c0f972361605 | 2178 | #define GUI_TM_XOR LCD_DRAWMODE_XOR |
csyang2 |
1:c0f972361605 | 2179 | #define GUI_TM_TRANS LCD_DRAWMODE_TRANS |
csyang2 |
1:c0f972361605 | 2180 | #define GUI_TM_REV LCD_DRAWMODE_REV |
csyang2 |
1:c0f972361605 | 2181 | |
csyang2 |
1:c0f972361605 | 2182 | /* Text alignment flags, horizontal */ |
csyang2 |
1:c0f972361605 | 2183 | #define GUI_TA_LEFT (0) |
csyang2 |
1:c0f972361605 | 2184 | #define GUI_TA_HORIZONTAL (3 << 0) |
csyang2 |
1:c0f972361605 | 2185 | #define GUI_TA_RIGHT (1 << 0) |
csyang2 |
1:c0f972361605 | 2186 | #define GUI_TA_CENTER (2 << 0) |
csyang2 |
1:c0f972361605 | 2187 | #define GUI_TA_HCENTER GUI_TA_CENTER /* easier to remember :-) */ |
csyang2 |
1:c0f972361605 | 2188 | |
csyang2 |
1:c0f972361605 | 2189 | /* Text alignment flags, vertical */ |
csyang2 |
1:c0f972361605 | 2190 | #define GUI_TA_TOP (0) |
csyang2 |
1:c0f972361605 | 2191 | #define GUI_TA_VERTICAL (3 << 2) |
csyang2 |
1:c0f972361605 | 2192 | #define GUI_TA_BOTTOM (1 << 2) |
csyang2 |
1:c0f972361605 | 2193 | #define GUI_TA_BASELINE (2 << 2) |
csyang2 |
1:c0f972361605 | 2194 | #define GUI_TA_VCENTER (3 << 2) |
csyang2 |
1:c0f972361605 | 2195 | |
csyang2 |
1:c0f972361605 | 2196 | /* General alignment flags */ |
csyang2 |
1:c0f972361605 | 2197 | #define GUI_ALIGN_LEFT GUI_TA_LEFT |
csyang2 |
1:c0f972361605 | 2198 | #define GUI_ALIGN_HCENTER GUI_TA_HCENTER |
csyang2 |
1:c0f972361605 | 2199 | #define GUI_ALIGN_RIGHT GUI_TA_RIGHT |
csyang2 |
1:c0f972361605 | 2200 | #define GUI_ALIGN_TOP GUI_TA_TOP |
csyang2 |
1:c0f972361605 | 2201 | #define GUI_ALIGN_VCENTER GUI_TA_VCENTER |
csyang2 |
1:c0f972361605 | 2202 | #define GUI_ALIGN_BOTTOM GUI_TA_BOTTOM |
csyang2 |
1:c0f972361605 | 2203 | #define GUI_ALIGN_HORIZONTAL GUI_TA_HORIZONTAL |
csyang2 |
1:c0f972361605 | 2204 | #define GUI_ALIGN_VERTICAL GUI_TA_VERTICAL |
csyang2 |
1:c0f972361605 | 2205 | |
csyang2 |
1:c0f972361605 | 2206 | /* General orientation flags */ |
csyang2 |
1:c0f972361605 | 2207 | #define GUI_MIRROR_X (1 << 0) |
csyang2 |
1:c0f972361605 | 2208 | #define GUI_MIRROR_Y (1 << 1) |
csyang2 |
1:c0f972361605 | 2209 | #define GUI_SWAP_XY (1 << 2) |
csyang2 |
1:c0f972361605 | 2210 | |
csyang2 |
1:c0f972361605 | 2211 | #define GUI_ROTATION_0 (0) |
csyang2 |
1:c0f972361605 | 2212 | #define GUI_ROTATION_CW (GUI_MIRROR_X | GUI_SWAP_XY) |
csyang2 |
1:c0f972361605 | 2213 | #define GUI_ROTATION_180 (GUI_MIRROR_X | GUI_MIRROR_Y) |
csyang2 |
1:c0f972361605 | 2214 | #define GUI_ROTATION_CCW (GUI_MIRROR_Y | GUI_SWAP_XY) |
csyang2 |
1:c0f972361605 | 2215 | |
csyang2 |
1:c0f972361605 | 2216 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2217 | * |
csyang2 |
1:c0f972361605 | 2218 | * Min/Max coordinates |
csyang2 |
1:c0f972361605 | 2219 | * |
csyang2 |
1:c0f972361605 | 2220 | * Define minimum and maximum coordinates in x and y |
csyang2 |
1:c0f972361605 | 2221 | */ |
csyang2 |
1:c0f972361605 | 2222 | #define GUI_XMIN -16383 |
csyang2 |
1:c0f972361605 | 2223 | #define GUI_XMAX 16383 |
csyang2 |
1:c0f972361605 | 2224 | #define GUI_YMIN -16383 |
csyang2 |
1:c0f972361605 | 2225 | #define GUI_YMAX 16383 |
csyang2 |
1:c0f972361605 | 2226 | |
csyang2 |
1:c0f972361605 | 2227 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2228 | * |
csyang2 |
1:c0f972361605 | 2229 | * Defines for constants |
csyang2 |
1:c0f972361605 | 2230 | */ |
csyang2 |
1:c0f972361605 | 2231 | #define ________ 0x0 |
csyang2 |
1:c0f972361605 | 2232 | #define _______X 0x1 |
csyang2 |
1:c0f972361605 | 2233 | #define ______X_ 0x2 |
csyang2 |
1:c0f972361605 | 2234 | #define ______XX 0x3 |
csyang2 |
1:c0f972361605 | 2235 | #define _____X__ 0x4 |
csyang2 |
1:c0f972361605 | 2236 | #define _____X_X 0x5 |
csyang2 |
1:c0f972361605 | 2237 | #define _____XX_ 0x6 |
csyang2 |
1:c0f972361605 | 2238 | #define _____XXX 0x7 |
csyang2 |
1:c0f972361605 | 2239 | #define ____X___ 0x8 |
csyang2 |
1:c0f972361605 | 2240 | #define ____X__X 0x9 |
csyang2 |
1:c0f972361605 | 2241 | #define ____X_X_ 0xa |
csyang2 |
1:c0f972361605 | 2242 | #define ____X_XX 0xb |
csyang2 |
1:c0f972361605 | 2243 | #define ____XX__ 0xc |
csyang2 |
1:c0f972361605 | 2244 | #define ____XX_X 0xd |
csyang2 |
1:c0f972361605 | 2245 | #define ____XXX_ 0xe |
csyang2 |
1:c0f972361605 | 2246 | #define ____XXXX 0xf |
csyang2 |
1:c0f972361605 | 2247 | #define ___X____ 0x10 |
csyang2 |
1:c0f972361605 | 2248 | #define ___X___X 0x11 |
csyang2 |
1:c0f972361605 | 2249 | #define ___X__X_ 0x12 |
csyang2 |
1:c0f972361605 | 2250 | #define ___X__XX 0x13 |
csyang2 |
1:c0f972361605 | 2251 | #define ___X_X__ 0x14 |
csyang2 |
1:c0f972361605 | 2252 | #define ___X_X_X 0x15 |
csyang2 |
1:c0f972361605 | 2253 | #define ___X_XX_ 0x16 |
csyang2 |
1:c0f972361605 | 2254 | #define ___X_XXX 0x17 |
csyang2 |
1:c0f972361605 | 2255 | #define ___XX___ 0x18 |
csyang2 |
1:c0f972361605 | 2256 | #define ___XX__X 0x19 |
csyang2 |
1:c0f972361605 | 2257 | #define ___XX_X_ 0x1a |
csyang2 |
1:c0f972361605 | 2258 | #define ___XX_XX 0x1b |
csyang2 |
1:c0f972361605 | 2259 | #define ___XXX__ 0x1c |
csyang2 |
1:c0f972361605 | 2260 | #define ___XXX_X 0x1d |
csyang2 |
1:c0f972361605 | 2261 | #define ___XXXX_ 0x1e |
csyang2 |
1:c0f972361605 | 2262 | #define ___XXXXX 0x1f |
csyang2 |
1:c0f972361605 | 2263 | #define __X_____ 0x20 |
csyang2 |
1:c0f972361605 | 2264 | #define __X____X 0x21 |
csyang2 |
1:c0f972361605 | 2265 | #define __X___X_ 0x22 |
csyang2 |
1:c0f972361605 | 2266 | #define __X___XX 0x23 |
csyang2 |
1:c0f972361605 | 2267 | #define __X__X__ 0x24 |
csyang2 |
1:c0f972361605 | 2268 | #define __X__X_X 0x25 |
csyang2 |
1:c0f972361605 | 2269 | #define __X__XX_ 0x26 |
csyang2 |
1:c0f972361605 | 2270 | #define __X__XXX 0x27 |
csyang2 |
1:c0f972361605 | 2271 | #define __X_X___ 0x28 |
csyang2 |
1:c0f972361605 | 2272 | #define __X_X__X 0x29 |
csyang2 |
1:c0f972361605 | 2273 | #define __X_X_X_ 0x2a |
csyang2 |
1:c0f972361605 | 2274 | #define __X_X_XX 0x2b |
csyang2 |
1:c0f972361605 | 2275 | #define __X_XX__ 0x2c |
csyang2 |
1:c0f972361605 | 2276 | #define __X_XX_X 0x2d |
csyang2 |
1:c0f972361605 | 2277 | #define __X_XXX_ 0x2e |
csyang2 |
1:c0f972361605 | 2278 | #define __X_XXXX 0x2f |
csyang2 |
1:c0f972361605 | 2279 | #define __XX____ 0x30 |
csyang2 |
1:c0f972361605 | 2280 | #define __XX___X 0x31 |
csyang2 |
1:c0f972361605 | 2281 | #define __XX__X_ 0x32 |
csyang2 |
1:c0f972361605 | 2282 | #define __XX__XX 0x33 |
csyang2 |
1:c0f972361605 | 2283 | #define __XX_X__ 0x34 |
csyang2 |
1:c0f972361605 | 2284 | #define __XX_X_X 0x35 |
csyang2 |
1:c0f972361605 | 2285 | #define __XX_XX_ 0x36 |
csyang2 |
1:c0f972361605 | 2286 | #define __XX_XXX 0x37 |
csyang2 |
1:c0f972361605 | 2287 | #define __XXX___ 0x38 |
csyang2 |
1:c0f972361605 | 2288 | #define __XXX__X 0x39 |
csyang2 |
1:c0f972361605 | 2289 | #define __XXX_X_ 0x3a |
csyang2 |
1:c0f972361605 | 2290 | #define __XXX_XX 0x3b |
csyang2 |
1:c0f972361605 | 2291 | #define __XXXX__ 0x3c |
csyang2 |
1:c0f972361605 | 2292 | #define __XXXX_X 0x3d |
csyang2 |
1:c0f972361605 | 2293 | #define __XXXXX_ 0x3e |
csyang2 |
1:c0f972361605 | 2294 | #define __XXXXXX 0x3f |
csyang2 |
1:c0f972361605 | 2295 | #define _X______ 0x40 |
csyang2 |
1:c0f972361605 | 2296 | #define _X_____X 0x41 |
csyang2 |
1:c0f972361605 | 2297 | #define _X____X_ 0x42 |
csyang2 |
1:c0f972361605 | 2298 | #define _X____XX 0x43 |
csyang2 |
1:c0f972361605 | 2299 | #define _X___X__ 0x44 |
csyang2 |
1:c0f972361605 | 2300 | #define _X___X_X 0x45 |
csyang2 |
1:c0f972361605 | 2301 | #define _X___XX_ 0x46 |
csyang2 |
1:c0f972361605 | 2302 | #define _X___XXX 0x47 |
csyang2 |
1:c0f972361605 | 2303 | #define _X__X___ 0x48 |
csyang2 |
1:c0f972361605 | 2304 | #define _X__X__X 0x49 |
csyang2 |
1:c0f972361605 | 2305 | #define _X__X_X_ 0x4a |
csyang2 |
1:c0f972361605 | 2306 | #define _X__X_XX 0x4b |
csyang2 |
1:c0f972361605 | 2307 | #define _X__XX__ 0x4c |
csyang2 |
1:c0f972361605 | 2308 | #define _X__XX_X 0x4d |
csyang2 |
1:c0f972361605 | 2309 | #define _X__XXX_ 0x4e |
csyang2 |
1:c0f972361605 | 2310 | #define _X__XXXX 0x4f |
csyang2 |
1:c0f972361605 | 2311 | #define _X_X____ 0x50 |
csyang2 |
1:c0f972361605 | 2312 | #define _X_X___X 0x51 |
csyang2 |
1:c0f972361605 | 2313 | #define _X_X__X_ 0x52 |
csyang2 |
1:c0f972361605 | 2314 | #define _X_X__XX 0x53 |
csyang2 |
1:c0f972361605 | 2315 | #define _X_X_X__ 0x54 |
csyang2 |
1:c0f972361605 | 2316 | #define _X_X_X_X 0x55 |
csyang2 |
1:c0f972361605 | 2317 | #define _X_X_XX_ 0x56 |
csyang2 |
1:c0f972361605 | 2318 | #define _X_X_XXX 0x57 |
csyang2 |
1:c0f972361605 | 2319 | #define _X_XX___ 0x58 |
csyang2 |
1:c0f972361605 | 2320 | #define _X_XX__X 0x59 |
csyang2 |
1:c0f972361605 | 2321 | #define _X_XX_X_ 0x5a |
csyang2 |
1:c0f972361605 | 2322 | #define _X_XX_XX 0x5b |
csyang2 |
1:c0f972361605 | 2323 | #define _X_XXX__ 0x5c |
csyang2 |
1:c0f972361605 | 2324 | #define _X_XXX_X 0x5d |
csyang2 |
1:c0f972361605 | 2325 | #define _X_XXXX_ 0x5e |
csyang2 |
1:c0f972361605 | 2326 | #define _X_XXXXX 0x5f |
csyang2 |
1:c0f972361605 | 2327 | #define _XX_____ 0x60 |
csyang2 |
1:c0f972361605 | 2328 | #define _XX____X 0x61 |
csyang2 |
1:c0f972361605 | 2329 | #define _XX___X_ 0x62 |
csyang2 |
1:c0f972361605 | 2330 | #define _XX___XX 0x63 |
csyang2 |
1:c0f972361605 | 2331 | #define _XX__X__ 0x64 |
csyang2 |
1:c0f972361605 | 2332 | #define _XX__X_X 0x65 |
csyang2 |
1:c0f972361605 | 2333 | #define _XX__XX_ 0x66 |
csyang2 |
1:c0f972361605 | 2334 | #define _XX__XXX 0x67 |
csyang2 |
1:c0f972361605 | 2335 | #define _XX_X___ 0x68 |
csyang2 |
1:c0f972361605 | 2336 | #define _XX_X__X 0x69 |
csyang2 |
1:c0f972361605 | 2337 | #define _XX_X_X_ 0x6a |
csyang2 |
1:c0f972361605 | 2338 | #define _XX_X_XX 0x6b |
csyang2 |
1:c0f972361605 | 2339 | #define _XX_XX__ 0x6c |
csyang2 |
1:c0f972361605 | 2340 | #define _XX_XX_X 0x6d |
csyang2 |
1:c0f972361605 | 2341 | #define _XX_XXX_ 0x6e |
csyang2 |
1:c0f972361605 | 2342 | #define _XX_XXXX 0x6f |
csyang2 |
1:c0f972361605 | 2343 | #define _XXX____ 0x70 |
csyang2 |
1:c0f972361605 | 2344 | #define _XXX___X 0x71 |
csyang2 |
1:c0f972361605 | 2345 | #define _XXX__X_ 0x72 |
csyang2 |
1:c0f972361605 | 2346 | #define _XXX__XX 0x73 |
csyang2 |
1:c0f972361605 | 2347 | #define _XXX_X__ 0x74 |
csyang2 |
1:c0f972361605 | 2348 | #define _XXX_X_X 0x75 |
csyang2 |
1:c0f972361605 | 2349 | #define _XXX_XX_ 0x76 |
csyang2 |
1:c0f972361605 | 2350 | #define _XXX_XXX 0x77 |
csyang2 |
1:c0f972361605 | 2351 | #define _XXXX___ 0x78 |
csyang2 |
1:c0f972361605 | 2352 | #define _XXXX__X 0x79 |
csyang2 |
1:c0f972361605 | 2353 | #define _XXXX_X_ 0x7a |
csyang2 |
1:c0f972361605 | 2354 | #define _XXXX_XX 0x7b |
csyang2 |
1:c0f972361605 | 2355 | #define _XXXXX__ 0x7c |
csyang2 |
1:c0f972361605 | 2356 | #define _XXXXX_X 0x7d |
csyang2 |
1:c0f972361605 | 2357 | #define _XXXXXX_ 0x7e |
csyang2 |
1:c0f972361605 | 2358 | #define _XXXXXXX 0x7f |
csyang2 |
1:c0f972361605 | 2359 | #define X_______ 0x80 |
csyang2 |
1:c0f972361605 | 2360 | #define X______X 0x81 |
csyang2 |
1:c0f972361605 | 2361 | #define X_____X_ 0x82 |
csyang2 |
1:c0f972361605 | 2362 | #define X_____XX 0x83 |
csyang2 |
1:c0f972361605 | 2363 | #define X____X__ 0x84 |
csyang2 |
1:c0f972361605 | 2364 | #define X____X_X 0x85 |
csyang2 |
1:c0f972361605 | 2365 | #define X____XX_ 0x86 |
csyang2 |
1:c0f972361605 | 2366 | #define X____XXX 0x87 |
csyang2 |
1:c0f972361605 | 2367 | #define X___X___ 0x88 |
csyang2 |
1:c0f972361605 | 2368 | #define X___X__X 0x89 |
csyang2 |
1:c0f972361605 | 2369 | #define X___X_X_ 0x8a |
csyang2 |
1:c0f972361605 | 2370 | #define X___X_XX 0x8b |
csyang2 |
1:c0f972361605 | 2371 | #define X___XX__ 0x8c |
csyang2 |
1:c0f972361605 | 2372 | #define X___XX_X 0x8d |
csyang2 |
1:c0f972361605 | 2373 | #define X___XXX_ 0x8e |
csyang2 |
1:c0f972361605 | 2374 | #define X___XXXX 0x8f |
csyang2 |
1:c0f972361605 | 2375 | #define X__X____ 0x90 |
csyang2 |
1:c0f972361605 | 2376 | #define X__X___X 0x91 |
csyang2 |
1:c0f972361605 | 2377 | #define X__X__X_ 0x92 |
csyang2 |
1:c0f972361605 | 2378 | #define X__X__XX 0x93 |
csyang2 |
1:c0f972361605 | 2379 | #define X__X_X__ 0x94 |
csyang2 |
1:c0f972361605 | 2380 | #define X__X_X_X 0x95 |
csyang2 |
1:c0f972361605 | 2381 | #define X__X_XX_ 0x96 |
csyang2 |
1:c0f972361605 | 2382 | #define X__X_XXX 0x97 |
csyang2 |
1:c0f972361605 | 2383 | #define X__XX___ 0x98 |
csyang2 |
1:c0f972361605 | 2384 | #define X__XX__X 0x99 |
csyang2 |
1:c0f972361605 | 2385 | #define X__XX_X_ 0x9a |
csyang2 |
1:c0f972361605 | 2386 | #define X__XX_XX 0x9b |
csyang2 |
1:c0f972361605 | 2387 | #define X__XXX__ 0x9c |
csyang2 |
1:c0f972361605 | 2388 | #define X__XXX_X 0x9d |
csyang2 |
1:c0f972361605 | 2389 | #define X__XXXX_ 0x9e |
csyang2 |
1:c0f972361605 | 2390 | #define X__XXXXX 0x9f |
csyang2 |
1:c0f972361605 | 2391 | #define X_X_____ 0xa0 |
csyang2 |
1:c0f972361605 | 2392 | #define X_X____X 0xa1 |
csyang2 |
1:c0f972361605 | 2393 | #define X_X___X_ 0xa2 |
csyang2 |
1:c0f972361605 | 2394 | #define X_X___XX 0xa3 |
csyang2 |
1:c0f972361605 | 2395 | #define X_X__X__ 0xa4 |
csyang2 |
1:c0f972361605 | 2396 | #define X_X__X_X 0xa5 |
csyang2 |
1:c0f972361605 | 2397 | #define X_X__XX_ 0xa6 |
csyang2 |
1:c0f972361605 | 2398 | #define X_X__XXX 0xa7 |
csyang2 |
1:c0f972361605 | 2399 | #define X_X_X___ 0xa8 |
csyang2 |
1:c0f972361605 | 2400 | #define X_X_X__X 0xa9 |
csyang2 |
1:c0f972361605 | 2401 | #define X_X_X_X_ 0xaa |
csyang2 |
1:c0f972361605 | 2402 | #define X_X_X_XX 0xab |
csyang2 |
1:c0f972361605 | 2403 | #define X_X_XX__ 0xac |
csyang2 |
1:c0f972361605 | 2404 | #define X_X_XX_X 0xad |
csyang2 |
1:c0f972361605 | 2405 | #define X_X_XXX_ 0xae |
csyang2 |
1:c0f972361605 | 2406 | #define X_X_XXXX 0xaf |
csyang2 |
1:c0f972361605 | 2407 | #define X_XX____ 0xb0 |
csyang2 |
1:c0f972361605 | 2408 | #define X_XX___X 0xb1 |
csyang2 |
1:c0f972361605 | 2409 | #define X_XX__X_ 0xb2 |
csyang2 |
1:c0f972361605 | 2410 | #define X_XX__XX 0xb3 |
csyang2 |
1:c0f972361605 | 2411 | #define X_XX_X__ 0xb4 |
csyang2 |
1:c0f972361605 | 2412 | #define X_XX_X_X 0xb5 |
csyang2 |
1:c0f972361605 | 2413 | #define X_XX_XX_ 0xb6 |
csyang2 |
1:c0f972361605 | 2414 | #define X_XX_XXX 0xb7 |
csyang2 |
1:c0f972361605 | 2415 | #define X_XXX___ 0xb8 |
csyang2 |
1:c0f972361605 | 2416 | #define X_XXX__X 0xb9 |
csyang2 |
1:c0f972361605 | 2417 | #define X_XXX_X_ 0xba |
csyang2 |
1:c0f972361605 | 2418 | #define X_XXX_XX 0xbb |
csyang2 |
1:c0f972361605 | 2419 | #define X_XXXX__ 0xbc |
csyang2 |
1:c0f972361605 | 2420 | #define X_XXXX_X 0xbd |
csyang2 |
1:c0f972361605 | 2421 | #define X_XXXXX_ 0xbe |
csyang2 |
1:c0f972361605 | 2422 | #define X_XXXXXX 0xbf |
csyang2 |
1:c0f972361605 | 2423 | #define XX______ 0xc0 |
csyang2 |
1:c0f972361605 | 2424 | #define XX_____X 0xc1 |
csyang2 |
1:c0f972361605 | 2425 | #define XX____X_ 0xc2 |
csyang2 |
1:c0f972361605 | 2426 | #define XX____XX 0xc3 |
csyang2 |
1:c0f972361605 | 2427 | #define XX___X__ 0xc4 |
csyang2 |
1:c0f972361605 | 2428 | #define XX___X_X 0xc5 |
csyang2 |
1:c0f972361605 | 2429 | #define XX___XX_ 0xc6 |
csyang2 |
1:c0f972361605 | 2430 | #define XX___XXX 0xc7 |
csyang2 |
1:c0f972361605 | 2431 | #define XX__X___ 0xc8 |
csyang2 |
1:c0f972361605 | 2432 | #define XX__X__X 0xc9 |
csyang2 |
1:c0f972361605 | 2433 | #define XX__X_X_ 0xca |
csyang2 |
1:c0f972361605 | 2434 | #define XX__X_XX 0xcb |
csyang2 |
1:c0f972361605 | 2435 | #define XX__XX__ 0xcc |
csyang2 |
1:c0f972361605 | 2436 | #define XX__XX_X 0xcd |
csyang2 |
1:c0f972361605 | 2437 | #define XX__XXX_ 0xce |
csyang2 |
1:c0f972361605 | 2438 | #define XX__XXXX 0xcf |
csyang2 |
1:c0f972361605 | 2439 | #define XX_X____ 0xd0 |
csyang2 |
1:c0f972361605 | 2440 | #define XX_X___X 0xd1 |
csyang2 |
1:c0f972361605 | 2441 | #define XX_X__X_ 0xd2 |
csyang2 |
1:c0f972361605 | 2442 | #define XX_X__XX 0xd3 |
csyang2 |
1:c0f972361605 | 2443 | #define XX_X_X__ 0xd4 |
csyang2 |
1:c0f972361605 | 2444 | #define XX_X_X_X 0xd5 |
csyang2 |
1:c0f972361605 | 2445 | #define XX_X_XX_ 0xd6 |
csyang2 |
1:c0f972361605 | 2446 | #define XX_X_XXX 0xd7 |
csyang2 |
1:c0f972361605 | 2447 | #define XX_XX___ 0xd8 |
csyang2 |
1:c0f972361605 | 2448 | #define XX_XX__X 0xd9 |
csyang2 |
1:c0f972361605 | 2449 | #define XX_XX_X_ 0xda |
csyang2 |
1:c0f972361605 | 2450 | #define XX_XX_XX 0xdb |
csyang2 |
1:c0f972361605 | 2451 | #define XX_XXX__ 0xdc |
csyang2 |
1:c0f972361605 | 2452 | #define XX_XXX_X 0xdd |
csyang2 |
1:c0f972361605 | 2453 | #define XX_XXXX_ 0xde |
csyang2 |
1:c0f972361605 | 2454 | #define XX_XXXXX 0xdf |
csyang2 |
1:c0f972361605 | 2455 | #define XXX_____ 0xe0 |
csyang2 |
1:c0f972361605 | 2456 | #define XXX____X 0xe1 |
csyang2 |
1:c0f972361605 | 2457 | #define XXX___X_ 0xe2 |
csyang2 |
1:c0f972361605 | 2458 | #define XXX___XX 0xe3 |
csyang2 |
1:c0f972361605 | 2459 | #define XXX__X__ 0xe4 |
csyang2 |
1:c0f972361605 | 2460 | #define XXX__X_X 0xe5 |
csyang2 |
1:c0f972361605 | 2461 | #define XXX__XX_ 0xe6 |
csyang2 |
1:c0f972361605 | 2462 | #define XXX__XXX 0xe7 |
csyang2 |
1:c0f972361605 | 2463 | #define XXX_X___ 0xe8 |
csyang2 |
1:c0f972361605 | 2464 | #define XXX_X__X 0xe9 |
csyang2 |
1:c0f972361605 | 2465 | #define XXX_X_X_ 0xea |
csyang2 |
1:c0f972361605 | 2466 | #define XXX_X_XX 0xeb |
csyang2 |
1:c0f972361605 | 2467 | #define XXX_XX__ 0xec |
csyang2 |
1:c0f972361605 | 2468 | #define XXX_XX_X 0xed |
csyang2 |
1:c0f972361605 | 2469 | #define XXX_XXX_ 0xee |
csyang2 |
1:c0f972361605 | 2470 | #define XXX_XXXX 0xef |
csyang2 |
1:c0f972361605 | 2471 | #define XXXX____ 0xf0 |
csyang2 |
1:c0f972361605 | 2472 | #define XXXX___X 0xf1 |
csyang2 |
1:c0f972361605 | 2473 | #define XXXX__X_ 0xf2 |
csyang2 |
1:c0f972361605 | 2474 | #define XXXX__XX 0xf3 |
csyang2 |
1:c0f972361605 | 2475 | #define XXXX_X__ 0xf4 |
csyang2 |
1:c0f972361605 | 2476 | #define XXXX_X_X 0xf5 |
csyang2 |
1:c0f972361605 | 2477 | #define XXXX_XX_ 0xf6 |
csyang2 |
1:c0f972361605 | 2478 | #define XXXX_XXX 0xf7 |
csyang2 |
1:c0f972361605 | 2479 | #define XXXXX___ 0xf8 |
csyang2 |
1:c0f972361605 | 2480 | #define XXXXX__X 0xf9 |
csyang2 |
1:c0f972361605 | 2481 | #define XXXXX_X_ 0xfa |
csyang2 |
1:c0f972361605 | 2482 | #define XXXXX_XX 0xfb |
csyang2 |
1:c0f972361605 | 2483 | #define XXXXXX__ 0xfc |
csyang2 |
1:c0f972361605 | 2484 | #define XXXXXX_X 0xfd |
csyang2 |
1:c0f972361605 | 2485 | #define XXXXXXX_ 0xfe |
csyang2 |
1:c0f972361605 | 2486 | #define XXXXXXXX 0xff |
csyang2 |
1:c0f972361605 | 2487 | |
csyang2 |
1:c0f972361605 | 2488 | /********************************************************************* |
csyang2 |
1:c0f972361605 | 2489 | * |
csyang2 |
1:c0f972361605 | 2490 | * Compatibility with older versions |
csyang2 |
1:c0f972361605 | 2491 | */ |
csyang2 |
1:c0f972361605 | 2492 | #define GUI_DispString_UC GUI_UC_DispString |
csyang2 |
1:c0f972361605 | 2493 | #define TOUCH_X_ActivateX GUI_TOUCH_X_ActivateX |
csyang2 |
1:c0f972361605 | 2494 | #define TOUCH_X_ActivateY GUI_TOUCH_X_ActivateY |
csyang2 |
1:c0f972361605 | 2495 | #define TOUCH_X_Disable GUI_TOUCH_X_Disable |
csyang2 |
1:c0f972361605 | 2496 | #define TOUCH_X_MeasureX GUI_TOUCH_X_MeasureX |
csyang2 |
1:c0f972361605 | 2497 | #define TOUCH_X_MeasureY GUI_TOUCH_X_MeasureY |
csyang2 |
1:c0f972361605 | 2498 | #define GUI_SelLayer GUI_SelectLayer |
csyang2 |
1:c0f972361605 | 2499 | #define GUI_MEMDEV_FadeDevices GUI_MEMDEV_FadeInDevices |
csyang2 |
1:c0f972361605 | 2500 | #if defined(__cplusplus) |
csyang2 |
1:c0f972361605 | 2501 | } |
csyang2 |
1:c0f972361605 | 2502 | #endif |
csyang2 |
1:c0f972361605 | 2503 | |
csyang2 |
1:c0f972361605 | 2504 | #endif /* ifdef GUI_H */ |
csyang2 |
1:c0f972361605 | 2505 | |
csyang2 |
1:c0f972361605 | 2506 | /*************************** End of file ****************************/ |