RT1050 GUI demo using emWin library

Committer:
alejandroRL
Date:
Thu Sep 20 19:16:34 2018 +0000
Revision:
0:dd702039127a
emWin GUI Demo for RT1050

Who changed what in which revision?

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