Nuvoton
/
NuMaker-mbed-emWin-example
NuMaker emWin HMI
Embed:
(wiki syntax)
Show/hide line numbers
GUI.h
00001 /********************************************************************* 00002 * SEGGER Software GmbH * 00003 * Solutions for real time microcontroller applications * 00004 ********************************************************************** 00005 * * 00006 * (c) 1996 - 2018 SEGGER Microcontroller GmbH * 00007 * * 00008 * Internet: www.segger.com Support: support@segger.com * 00009 * * 00010 ********************************************************************** 00011 00012 ** emWin V5.48 - Graphical user interface for embedded applications ** 00013 All Intellectual Property rights in the Software belongs to SEGGER. 00014 emWin is protected by international copyright laws. Knowledge of the 00015 source code may not be used to write a similar product. This file may 00016 only be used in accordance with the following terms: 00017 00018 The software has been licensed by SEGGER Software GmbH to Nuvoton Technology Corporationat the address: No. 4, Creation Rd. III, Hsinchu Science Park, Taiwan 00019 for the purposes of creating libraries for its 00020 Arm Cortex-M and Arm9 32-bit microcontrollers, commercialized and distributed by Nuvoton Technology Corporation 00021 under the terms and conditions of an End User 00022 License Agreement supplied with the libraries. 00023 Full source code is available at: www.segger.com 00024 00025 We appreciate your understanding and fairness. 00026 ---------------------------------------------------------------------- 00027 Licensing information 00028 Licensor: SEGGER Software GmbH 00029 Licensed to: Nuvoton Technology Corporation, No. 4, Creation Rd. III, Hsinchu Science Park, 30077 Hsinchu City, Taiwan 00030 Licensed SEGGER software: emWin 00031 License number: GUI-00735 00032 License model: emWin License Agreement, signed February 27, 2018 00033 Licensed platform: Cortex-M and ARM9 32-bit series microcontroller designed and manufactured by or for Nuvoton Technology Corporation 00034 ---------------------------------------------------------------------- 00035 Support and Update Agreement (SUA) 00036 SUA period: 2018-03-26 - 2019-03-27 00037 Contact to extend SUA: sales@segger.com 00038 ---------------------------------------------------------------------- 00039 File : GUI.h 00040 Purpose : GUI API include file 00041 ---------------------------END-OF-HEADER------------------------------ 00042 */ 00043 00044 #ifndef GUI_H 00045 #define GUI_H 00046 00047 #include <stddef.h> 00048 00049 #include "GUI_ConfDefaults.h" 00050 #include "GUI_Type.h" 00051 #include "GUI_Version.h" 00052 00053 #if defined(__cplusplus) 00054 extern "C" { /* Make sure we have C-declarations in C++ programs */ 00055 #endif 00056 00057 /********************************************************************* 00058 * 00059 * Disable string function warning with newer MSVC versions 00060 */ 00061 #if defined (_MSC_VER) 00062 #if (_MSC_VER > 1200) 00063 #pragma warning( disable : 4996) 00064 #endif 00065 #endif 00066 00067 /********************************************************************* 00068 * 00069 * Macros, function replacement 00070 */ 00071 #define GUI_COUNTOF(a) (sizeof(a) / sizeof(a[0])) 00072 #define GUI_MIN(a,b) (((a) < (b)) ? (a) : (b)) 00073 #define GUI_MAX(a,b) (((a) > (b)) ? (a) : (b)) 00074 #define GUI_ZEROFILL(p, Size) (memset(p, 0, Size)) /**/ 00075 00076 /********************************************************************* 00077 * 00078 * Support for multitasking systems (locking) 00079 */ 00080 typedef struct GUI_CONTEXT GUI_CONTEXT; 00081 00082 #if !GUI_OS 00083 #define GUI_LOCK() 00084 #define GUI_UNLOCK() 00085 #define GUITASK_INIT() 00086 #define GUITASK_COPY_CONTEXT() 00087 #else 00088 void GUI_Lock(void); 00089 void GUI_Unlock(void); 00090 void GUITASK_Init(void); 00091 void GUITASK_CopyContext(void); 00092 void GUITASK_SetMaxTask(int MaxTask); 00093 int GUITASK_GetMaxTask(void); 00094 GUI_CONTEXT * GUITASK_GetpContext(int Index); 00095 #define GUI_LOCK() GUI_Lock() 00096 #define GUI_UNLOCK() GUI_Unlock() 00097 #define GUITASK_INIT() GUITASK_Init() 00098 #define GUITASK_COPY_CONTEXT() GUITASK_CopyContext() 00099 #endif 00100 00101 /********************************************************************* 00102 * 00103 * API table of a display driver 00104 */ 00105 struct GUI_DEVICE_API { 00106 // 00107 // Data 00108 // 00109 int DeviceClassIndex; 00110 // 00111 // Drawing functions 00112 // 00113 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); 00114 void (* pfDrawHLine )(GUI_DEVICE * pDevice, int x0, int y0, int x1); 00115 void (* pfDrawVLine )(GUI_DEVICE * pDevice, int x , int y0, int y1); 00116 void (* pfFillRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); 00117 LCD_PIXELINDEX (* pfGetPixelIndex)(GUI_DEVICE * pDevice, int x, int y); 00118 void (* pfSetPixelIndex)(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX ColorIndex); 00119 void (* pfXorPixel )(GUI_DEVICE * pDevice, int x, int y); 00120 // 00121 // Set origin 00122 // 00123 void (* pfSetOrg )(GUI_DEVICE * pDevice, int x, int y); 00124 // 00125 // Request information 00126 // 00127 void (*(* pfGetDevFunc) (GUI_DEVICE ** ppDevice, int Index))(void); 00128 I32 (* pfGetDevProp )(GUI_DEVICE * pDevice, int Index); 00129 void *(* pfGetDevData )(GUI_DEVICE * pDevice, int Index); 00130 void (* pfGetRect )(GUI_DEVICE * pDevice, LCD_RECT * pRect); 00131 }; 00132 00133 /********************************************************************* 00134 * 00135 * Device classes 00136 */ 00137 typedef enum { 00138 DEVICE_CLASS_DRIVER = 0, 00139 DEVICE_CLASS_DRIVER_MODIFIER, // Zoom or delta-pixel modifier 00140 DEVICE_CLASS_VNC, 00141 DEVICE_CLASS_SPRITE, 00142 DEVICE_CLASS_MEMDEV, 00143 DEVICE_CLASS_ALPHA, 00144 DEVICE_CLASS_AUTOALPHA, 00145 DEVICE_CLASS_MEASDEV 00146 } DEVICE_CLASS; 00147 00148 #define GUI_DEVICE_STAYONTOP 1 00149 00150 /********************************************************************* 00151 * 00152 * Display drivers 00153 */ 00154 // 00155 // Addresses 00156 // 00157 extern const GUI_DEVICE_API GUIDRV_Win_API; 00158 extern const GUI_DEVICE_API GUIDRV_Template_API; 00159 00160 // 00161 // Macros to be used in configuration files 00162 // 00163 #define GUIDRV_WIN32 &GUIDRV_Win_API 00164 00165 #if defined(WIN32) && !defined(LCD_SIMCONTROLLER) 00166 #define GUIDRV_TEMPLATE &GUIDRV_Win_API 00167 #else 00168 #define GUIDRV_TEMPLATE &GUIDRV_Template_API 00169 #endif 00170 00171 /********************************************************************* 00172 * 00173 * Definition of GUI_DEVICE structure 00174 */ 00175 struct GUI_DEVICE { 00176 // 00177 // Linking 00178 // 00179 GUI_DEVICE * pNext; 00180 GUI_DEVICE * pPrev; 00181 // 00182 // Data 00183 // 00184 union { 00185 GUI_HMEM hContext; // Handle of payload data like sprite- or memory device context 00186 void * pContext; // Pointer for context data in a fixed block 00187 } u; 00188 // 00189 // API pointers 00190 // 00191 const GUI_DEVICE_API * pDeviceAPI; 00192 const LCD_API_COLOR_CONV * pColorConvAPI; 00193 U16 Flags; 00194 int LayerIndex; 00195 }; 00196 00197 extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_1; 00198 extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_8; 00199 extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_16; 00200 extern const GUI_DEVICE_API GUI_MEMDEV_DEVICE_32; 00201 00202 /********************************************************************* 00203 * 00204 * GUI_CONTEXT 00205 * 00206 * This structure is public for one reason only: 00207 * To allow the application to save and restore the context. 00208 */ 00209 typedef union { 00210 U8 aColorIndex8[2]; 00211 U16 aColorIndex16[2]; 00212 U32 aColorIndex32[2]; 00213 } LCD_COLORINDEX_UNION; 00214 00215 struct GUI_CONTEXT { 00216 // 00217 // Variables in LCD module 00218 // 00219 LCD_COLORINDEX_UNION uLCD; 00220 LCD_RECT ClipRect; 00221 U8 DrawMode; 00222 U8 SelLayer; 00223 U8 TextStyle; 00224 // 00225 // Variables in GL module 00226 // 00227 GUI_RECT * pClipRect_HL; // High level clip rectangle ... Speed optimization so drawing routines can optimize 00228 U8 PenSize; 00229 U8 PenShape; 00230 U8 LineStyle; 00231 U8 StrikeWidth; 00232 // 00233 // Variables in GUICHAR module 00234 // 00235 const GUI_FONT * pAFont; 00236 I16P LBorder; 00237 I16P DispPosX, DispPosY; 00238 I16P DrawPosX, DrawPosY; 00239 I16P TextMode, TextAlign; 00240 GUI_COLOR Color, BkColor; // Required only when changing devices and for speed opt (caching) 00241 // 00242 // Pointer to color indices 00243 // 00244 LCD_PIXELINDEX * LCD_pBkColorIndex; 00245 LCD_PIXELINDEX * LCD_pColorIndex; 00246 // 00247 // Variables in WM module 00248 // 00249 #if GUI_WINSUPPORT 00250 const GUI_RECT * WM__pUserClipRect; 00251 GUI_HWIN hAWin; 00252 int xOff, yOff; 00253 U8 WM_IsActive; 00254 #endif 00255 // 00256 // Array of pointers to device chains 00257 // 00258 GUI_DEVICE * apDriver[GUI_NUM_LAYERS]; 00259 // 00260 // Variables in MEMDEV module (with memory devices only) 00261 // 00262 GUI_HMEM hDevData; 00263 // 00264 // Variables in Anitaliasing module 00265 // 00266 const tLCD_HL_APIList * pLCD_HL; // Required to reroute drawing (HLine & Pixel) to the AA module 00267 U8 AA_Factor; 00268 U8 AA_HiResEnable; 00269 void (* AA_pfSetPixelAA)(int x, int y, U8 Intens); // Function to be used for drawing a single pixel 00270 // 00271 // Used to reference and link in the copyright string for libraries. 00272 // 00273 const char * sCopyright; 00274 }; 00275 00276 /* Rename GUI_SaveContext in order to avoid crashes if wrong GUIConf is used */ 00277 #if (GUI_WINSUPPORT == 1) 00278 #define GUI_SaveContext GUI_SaveContext_W 00279 #else 00280 #define GUI_SaveContext GUI_SaveContext_ 00281 #endif 00282 00283 /********************************************************************* 00284 * 00285 * Device management 00286 */ 00287 GUI_DEVICE * GUI_DEVICE_Create (const GUI_DEVICE_API * pDeviceAPI, const LCD_API_COLOR_CONV * pColorConvAPI, U16 Flags, int LayerIndex); 00288 GUI_DEVICE * GUI_DEVICE_CreateAndLink(const GUI_DEVICE_API * pDeviceAPI, const LCD_API_COLOR_CONV * pColorConvAPI, U16 Flags, int LayerIndex); 00289 void GUI_DEVICE_Delete (GUI_DEVICE * pDevice); 00290 int GUI_DEVICE_Link (GUI_DEVICE * pDevice); 00291 void GUI_DEVICE_Unlink (GUI_DEVICE * pDevice); 00292 GUI_DEVICE * GUI_DEVICE__GetpDriver (int LayerIndex); 00293 GUI_DEVICE * GUI_DEVICE__GetpDevice (int LayerIndex, int DeviceClass); 00294 00295 GUI_DEVICE * GUI_DEVICE_UnlinkTaskDevices(void); 00296 void GUI_DEVICE_LinkDevices (GUI_DEVICE * pDevice); 00297 00298 /********************************************************************* 00299 * 00300 * GUI_DIRTYDEVICE 00301 */ 00302 typedef struct { 00303 void * pData; // Pointer to first pixel 00304 int x0, y0; // Coordinates of the upper left pixel 00305 int xSize, ySize; // Size of dirty rectangle 00306 int LineOff; // Virtual xSize in pixels 00307 int BytesPerPixel; // Number of bytes required per pixel 00308 int IsDirty; // Indicates if dirty pixels exist 00309 } GUI_DIRTYDEVICE_INFO; 00310 00311 int GUI_DIRTYDEVICE_Create (void); 00312 int GUI_DIRTYDEVICE_CreateEx (int LayerIndex); 00313 int GUI_DIRTYDEVICE_CreateExInfo(GUI_DIRTYDEVICE_INFO * pInfo, int LayerIndex); 00314 int GUI_DIRTYDEVICE_Delete (void); 00315 int GUI_DIRTYDEVICE_DeleteEx (int LayerIndex); 00316 int GUI_DIRTYDEVICE_Fetch (GUI_DIRTYDEVICE_INFO * pInfo); 00317 int GUI_DIRTYDEVICE_FetchEx (GUI_DIRTYDEVICE_INFO * pInfo, int LayerIndex); 00318 00319 /********************************************************************* 00320 * 00321 * GUI_GCACHE 00322 */ 00323 int GUI_GCACHE_4_Create(const LCD_API_COLOR_CONV * pColorConvAPI); 00324 int GUI_GCACHE_4_CreateEx(int LayerIndex, const LCD_API_COLOR_CONV * pColorConvAPI); 00325 00326 /********************************************************************* 00327 * 00328 * GUI_DCACHE 00329 */ 00330 void GUI_DCACHE_SetClearCacheHook(void (* pFunc)(U32 LayerMask)); 00331 void GUI_DCACHE_Clear (U32 LayerMask); 00332 00333 extern void (* GUI_DCACHE__pfClearCacheHook)(U32 LayerMask); 00334 00335 /********************************************************************* 00336 * 00337 * GUI_SOFTLAYER 00338 */ 00339 typedef struct { 00340 int xPos; 00341 int yPos; 00342 int xSize; 00343 int ySize; 00344 int Visible; 00345 } GUI_SOFTLAYER_CONFIG; 00346 00347 int GUI_SOFTLAYER_Enable (GUI_SOFTLAYER_CONFIG * pConfig, int NumLayers, GUI_COLOR CompositeColor); 00348 int GUI_SOFTLAYER_Refresh (void); 00349 void GUI_SOFTLAYER_SetCompositeColor(U32 Color); 00350 int GUI_SOFTLAYER_MULTIBUF_Enable (int OnOff); 00351 00352 /********************************************************************* 00353 * 00354 * General routines 00355 */ 00356 void GUI_Exit (void); 00357 GUI_COLOR GUI_GetDefaultBkColor (void); 00358 GUI_COLOR GUI_GetDefaultColor (void); 00359 const GUI_FONT * GUI_GetDefaultFont (void); 00360 int GUI_GetScreenSizeX (void); 00361 int GUI_GetScreenSizeY (void); 00362 const char * GUI_GetVersionString (void); 00363 int GUI_Init (void); 00364 int GUI_IsInitialized (void); 00365 void GUI_SetAfterInitHook (void (* pFunc)(void)); 00366 void GUI_RegisterAfterInitHook(void (* pFunc)(void), GUI_REGISTER_INIT * pRegisterInit); 00367 void GUI_RestoreContext (const GUI_CONTEXT * pContext); 00368 void GUI_SaveContext (GUI_CONTEXT * pContext); 00369 const GUI_RECT * GUI_SetClipRect (const GUI_RECT * pRect); 00370 void GUI_SetControlHook (void (* pFunc)(int LayerIndex, int Cmd)); 00371 void GUI_SetDefault (void); 00372 void GUI_SetDefaultBkColor (GUI_COLOR Color); 00373 void GUI_SetDefaultColor (GUI_COLOR Color); 00374 void GUI_SetDefaultFont (const GUI_FONT * pFont); 00375 GUI_DRAWMODE GUI_SetDrawMode (GUI_DRAWMODE dm); 00376 void GUI_SetScreenSizeX (int xSize); 00377 void GUI_SetScreenSizeY (int ySize); 00378 void GUI_SetRefreshHook (void (* pFunc)(void)); 00379 void MainTask (void); 00380 00381 #define GUI_PID_SetInitFunc(x) GUI_SetAfterInitHook(x) // Compatibility 00382 00383 /********************************************************************* 00384 * 00385 * Function replacement 00386 */ 00387 void GUI_SetpfMemset(void * (* pFunc)(void * pDest, int c, size_t Cnt)); 00388 void GUI_SetpfMemcpy(void * (* pFunc)(void * pDest, const void * pSrc, size_t Cnt)); 00389 void GUI_SetpfStrcmp(int (* pFunc)(const char *, const char *)); 00390 void GUI_SetpfStrlen(size_t (* pFunc)(const char *)); 00391 void GUI_SetpfStrcpy(char * (* pFunc)(char *, const char *)); 00392 00393 /********************************************************************* 00394 * 00395 * Rectangle helper functions 00396 */ 00397 void GUI_AddRect (GUI_RECT * pDest, const GUI_RECT * pRect, int Dist); 00398 int GUI_RectsIntersect(const GUI_RECT * pr0, const GUI_RECT * pr1); 00399 void GUI_MoveRect (GUI_RECT * pRect, int x, int y); 00400 void GUI_MergeRect (GUI_RECT * pDest, const GUI_RECT * pr0, const GUI_RECT * pr1); 00401 int GUI__IntersectRects(GUI_RECT * pDest, const GUI_RECT * pr0, const GUI_RECT * pr1); 00402 void GUI__IntersectRect (GUI_RECT * pDest, const GUI_RECT * pr0); 00403 void GUI__ReduceRect (GUI_RECT * pDest, const GUI_RECT * pRect, int Dist); 00404 00405 /********************************************************************* 00406 * 00407 * Misc helper functions 00408 */ 00409 I32 GUI__ATan2(I32 x, I32 y, I32 * ph); 00410 I32 GUI__ASinHQ(I32 SinHQ); 00411 int GUI__CompactPixelIndices (LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel); 00412 int GUI__CompactPixelIndicesEx(LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI); 00413 int GUI__ConvertColor2Index (LCD_PIXELINDEX * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI, void * pResult); 00414 void GUI__Config(void); 00415 I32 GUI__CosHQ(I32 Ang1000); 00416 int GUI__DivideRound (int a, int b); 00417 I32 GUI__DivideRound32 (I32 a, I32 b); 00418 void GUI__ExpandPixelIndices (void * pBuffer, int NumPixels, int BitsPerPixel); 00419 void GUI__ExpandPixelIndicesEx (void * pBuffer, int NumPixels, int BitsPerPixel, const LCD_API_COLOR_CONV * pColorConvAPI); 00420 int GUI__SetText(GUI_HMEM * phText, const char * s); 00421 I32 GUI__SinHQ(I32 Ang1000); 00422 I32 GUI__sqrt32(I32 Square); 00423 void GUI__DrawTwinArc2(int xl, int xr, int y0, int r, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorFill); 00424 void GUI__DrawTwinArc4(int x0, int y0, int x1, int y1, int r, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorFill); 00425 void GUI__FillTrippleArc(int x0, int y0, int Size, GUI_COLOR ColorR0, GUI_COLOR ColorR1, GUI_COLOR ColorR2, GUI_COLOR ColorFill); 00426 void GUI__RegisterExit(GUI_REGISTER_EXIT * pRegisterExit); 00427 void GUI__RegisterInit(GUI_REGISTER_INIT * pRegisterInit); 00428 00429 /********************************************************************* 00430 * 00431 * Optional function replacement 00432 */ 00433 void * GUI__memcpy(void * pDest, const void * pSrc, size_t NumBytes); 00434 void * GUI__memset(void * pDest, int c, size_t Cnt); 00435 00436 /********************************************************************* 00437 * 00438 * Get / Set Attributes 00439 */ 00440 GUI_COLOR GUI_GetBkColor (void); 00441 int GUI_GetBkColorIndex(void); 00442 GUI_COLOR GUI_GetColor (void); 00443 int GUI_GetColorIndex (void); 00444 U8 GUI_GetLineStyle (void); 00445 U8 GUI_GetPenSize (void); 00446 U8 GUI_GetPenShape (void); 00447 unsigned GUI_GetPixelIndex (int x, int y); 00448 00449 void GUI_SetBkColor (GUI_COLOR); 00450 void GUI_SetColor (GUI_COLOR); 00451 void GUI_SetBkColorIndex(int Index); 00452 void GUI_SetColorIndex(int Index); 00453 00454 U8 GUI_SetPenSize (U8 Size); 00455 U8 GUI_SetPenShape (U8 Shape); 00456 U8 GUI_SetLineStyle (U8 Style); 00457 00458 /* Get/Set Character used as decimal point (usually '.' or ',') */ 00459 char GUI_GetDecChar(void); 00460 char GUI_SetDecChar(char c); 00461 00462 /********************************************************************* 00463 * 00464 * Color / Index related functions 00465 */ 00466 int GUI_Color2Index(GUI_COLOR color); 00467 GUI_COLOR GUI_Color2VisColor(GUI_COLOR color); 00468 char GUI_ColorIsAvailable(GUI_COLOR color); 00469 GUI_COLOR GUI_Index2Color(int Index); 00470 U32 GUI_CalcColorDist (GUI_COLOR Color0, GUI_COLOR Color1); 00471 U32 GUI_CalcVisColorError(GUI_COLOR color); 00472 00473 /********************************************************************* 00474 * 00475 * Error handler 00476 */ 00477 void GUI_SetOnErrorFunc(void (* pFunc)(const char * s)); 00478 00479 /********************************************************************* 00480 * 00481 * Logging (for debugging primarily) 00482 */ 00483 void GUI_Log (const char * s); 00484 void GUI_Log1 (const char * s, I32 p0); 00485 void GUI_Log2 (const char * s, I32 p0, I32 p1); 00486 void GUI_Log3 (const char * s, I32 p0, I32 p1, I32 p2); 00487 void GUI_Log4 (const char * s, I32 p0, I32 p1, I32 p2,I32 p3); 00488 void GUI_Warn (const char * s); 00489 void GUI_Warn1 (const char * s, I32 p0); 00490 void GUI_Warn2 (const char * s, I32 p0, I32 p1); 00491 void GUI_Warn3 (const char * s, I32 p0, I32 p1, I32 p2); 00492 void GUI_Warn4 (const char * s, I32 p0, I32 p1, I32 p2, I32 p3); 00493 void GUI_ErrorOut (const char * s); 00494 void GUI_ErrorOut1(const char * s, I32 p0); 00495 void GUI_ErrorOut2(const char * s, I32 p0, I32 p1); 00496 void GUI_ErrorOut3(const char * s, I32 p0, I32 p1, I32 p2); 00497 void GUI_ErrorOut4(const char * s, I32 p0, I32 p1, I32 p2, I32 p3); 00498 00499 /********************************************************************* 00500 * 00501 * 2d - GL 00502 */ 00503 void GUI_Clear (void); 00504 void GUI_ClearRect (int x0, int y0, int x1, int y1); 00505 void GUI_ClearRectEx (const GUI_RECT * pRect); 00506 void GUI_CopyRect (int x0, int y0, int x1, int y1, int dx, int dy); 00507 void GUI_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1); 00508 void GUI_DrawBitmap (const GUI_BITMAP * pBM, int x0, int y0); 00509 void GUI_DrawBitmapMag (const GUI_BITMAP * pBM, int x0, int y0, int XMul, int YMul); 00510 void GUI_DrawBitmapEx (const GUI_BITMAP * pBM, int x0, int y0, int xCenter, int yCenter, int xMag, int yMag); 00511 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); 00512 void GUI_DrawBitmapHWAlpha(const GUI_BITMAP * pBM, int x0, int y0); 00513 void GUI_DrawCircle (int x0, int y0, int r); 00514 void GUI_DrawEllipse (int x0, int y0, int rx, int ry); 00515 void GUI_DrawGradientH (int x0, int y0, int x1, int y1, GUI_COLOR Color0, GUI_COLOR Color1); 00516 void GUI_DrawGradientV (int x0, int y0, int x1, int y1, GUI_COLOR Color0, GUI_COLOR Color1); 00517 void GUI_DrawGradientRoundedH(int x0, int y0, int x1, int y1, int rd, GUI_COLOR Color0, GUI_COLOR Color1); 00518 void GUI_DrawGradientRoundedV(int x0, int y0, int x1, int y1, int rd, GUI_COLOR Color0, GUI_COLOR Color1); 00519 void GUI_DrawGraph (I16 * pay, int NumPoints, int x0, int y0); 00520 void GUI_DrawGraphEx (I16 * pay, int NumPoints, int x0, int y0, int Numerator, int Denominator, int MirrorX); 00521 void GUI_DrawHLine (int y0, int x0, int x1); 00522 void GUI_DrawLine (int x0, int y0, int x1, int y1); 00523 void GUI_DrawLineRel (int dx, int dy); 00524 void GUI_DrawLineTo (int x, int y); 00525 void GUI_DrawPie (int x0, int y0, int r, int a0, int a1, int Type); 00526 void GUI_DrawPixel (int x, int y); 00527 void GUI_DrawPoint (int x, int y); 00528 void GUI_DrawPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); 00529 void GUI_DrawPolyLine (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); 00530 void GUI_DrawFocusRect (const GUI_RECT * pRect, int Dist); 00531 void GUI_DrawRect (int x0, int y0, int x1, int y1); 00532 void GUI_DrawRectEx (const GUI_RECT * pRect); 00533 void GUI_DrawRoundedFrame (int x0, int y0, int x1, int y1, int r, int w); 00534 void GUI_DrawRoundedRect (int x0, int y0, int x1, int y1, int r); 00535 void GUI_DrawVLine (int x0, int y0, int y1); 00536 void GUI_FillCircle (int x0, int y0, int r); 00537 void GUI_FillEllipse (int x0, int y0, int rx, int ry); 00538 void GUI_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); 00539 void GUI_FillRect (int x0, int y0, int x1, int y1); 00540 void GUI_FillRectEx (const GUI_RECT * pRect); 00541 void GUI_FillRoundedFrame (int x0, int y0, int x1, int y1, int r, int w); 00542 void GUI_FillRoundedRect (int x0, int y0, int x1, int y1, int r); 00543 void GUI_FillRoundedRectB (int x0, int y0, int x1, int y1, int r); 00544 void GUI_FillRoundedRectT (int x0, int y0, int x1, int y1, int r); 00545 void GUI_GetClientRect (GUI_RECT * pRect); 00546 void GUI_InvertRect (int x0, int y0, int x1, int y1); 00547 void GUI_MoveRel (int dx, int dy); 00548 void GUI_MoveTo (int x, int y); 00549 void GUI_SetAlphaMask8888 (U32 OrMask, U32 AndMask); 00550 00551 /********************************************************************* 00552 * 00553 * IMAGE file support 00554 */ 00555 typedef int GUI_GET_DATA_FUNC(void * p, const U8 ** ppData, unsigned NumBytes, U32 Off); 00556 00557 /********************************************************************* 00558 * 00559 * GIF file support 00560 */ 00561 int GUI_GIF_Draw (const void * pGIF, U32 NumBytes, int x0, int y0); 00562 int GUI_GIF_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); 00563 int GUI_GIF_DrawSub (const void * pGIF, U32 NumBytes, int x0, int y0, int Index); 00564 int GUI_GIF_DrawSubEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Index); 00565 int GUI_GIF_DrawSubScaled (const void * pGIF, U32 NumBytes, int x0, int y0, int Index, int Num, int Denom); 00566 int GUI_GIF_DrawSubScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Index, int Num, int Denom); 00567 int GUI_GIF_GetComment (const void * pGIF, U32 NumBytes, U8 * pBuffer, int MaxSize, int Index); 00568 int GUI_GIF_GetCommentEx (GUI_GET_DATA_FUNC * pfGetData, void * p, U8 * pBuffer, int MaxSize, int Index); 00569 int GUI_GIF_GetImageInfo (const void * pGIF, U32 NumBytes, GUI_GIF_IMAGE_INFO * pInfo, int Index); 00570 int GUI_GIF_GetImageInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_GIF_IMAGE_INFO * pInfo, int Index); 00571 int GUI_GIF_GetInfo (const void * pGIF, U32 NumBytes, GUI_GIF_INFO * pInfo); 00572 int GUI_GIF_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_GIF_INFO * pInfo); 00573 int GUI_GIF_GetXSize (const void * pGIF); 00574 int GUI_GIF_GetXSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); 00575 int GUI_GIF_GetYSize (const void * pGIF); 00576 int GUI_GIF_GetYSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); 00577 int GUI_GIF_SetFillTrans (int OnOff); 00578 00579 /********************************************************************* 00580 * 00581 * BMP file support 00582 */ 00583 int GUI_BMP_Draw (const void * pFileData, int x0, int y0); 00584 int GUI_BMP_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); 00585 int GUI_BMP_DrawScaled (const void * pFileData, int x0, int y0, int Num, int Denom); 00586 int GUI_BMP_DrawScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Num, int Denom); 00587 int GUI_BMP_GetXSize (const void * pFileData); 00588 int GUI_BMP_GetXSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); 00589 int GUI_BMP_GetYSize (const void * pFileData); 00590 int GUI_BMP_GetYSizeEx (GUI_GET_DATA_FUNC * pfGetData, void * p); 00591 void GUI_BMP_EnableAlpha (void); 00592 void GUI_BMP_DisableAlpha(void); 00593 00594 /********************************************************************* 00595 * 00596 * PNG file support 00597 */ 00598 int GUI_PNG_Draw (const void * pFileData, int DataSize, int x0, int y0); 00599 int GUI_PNG_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); 00600 int GUI_PNG_GetXSize (const void * pFileData, int FileSize); 00601 int GUI_PNG_GetXSizeEx(GUI_GET_DATA_FUNC * pfGetData, void * p); 00602 int GUI_PNG_GetYSize (const void * pFileData, int FileSize); 00603 int GUI_PNG_GetYSizeEx(GUI_GET_DATA_FUNC * pfGetData, void * p); 00604 00605 /********************************************************************* 00606 * 00607 * JPEG file support 00608 */ 00609 typedef struct { 00610 int XSize; 00611 int YSize; 00612 } GUI_JPEG_INFO; 00613 00614 int GUI_JPEG_Draw (const void * pFileData, int DataSize, int x0, int y0); 00615 int GUI_JPEG_DrawEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0); 00616 int GUI_JPEG_DrawScaled (const void * pFileData, int DataSize, int x0, int y0, int Num, int Denom); 00617 int GUI_JPEG_DrawScaledEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0, int Num, int Denom); 00618 int GUI_JPEG_GetInfo (const void * pFileData, int DataSize, GUI_JPEG_INFO * pInfo); 00619 int GUI_JPEG_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * p, GUI_JPEG_INFO * pInfo); 00620 00621 void GUI_JPEG_SetpfDrawEx(int (* pfDrawEx)(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0)); 00622 00623 /********************************************************************* 00624 * 00625 * MOVIE file support 00626 */ 00627 #define GUI_MOVIE_NOTIFICATION_PREDRAW 0 // Immediately before frame is drawn 00628 #define GUI_MOVIE_NOTIFICATION_POSTDRAW 1 // Immediately after a frame is drawn 00629 #define GUI_MOVIE_NOTIFICATION_START 2 // Send when start playing a movie 00630 #define GUI_MOVIE_NOTIFICATION_STOP 3 // Movie has stopped 00631 #define GUI_MOVIE_NOTIFICATION_DELETE 4 // Movie has been deleted 00632 00633 typedef GUI_HMEM GUI_MOVIE_HANDLE; 00634 00635 typedef void GUI_MOVIE_FUNC(GUI_MOVIE_HANDLE hMovie, int Notification, U32 CurrentFrame); 00636 00637 typedef struct { 00638 int xSize; // X-size of images 00639 int ySize; // Y-size of images 00640 int msPerFrame; // Default duration of 1 frame 00641 U32 NumFrames; // Number of frames 00642 } GUI_MOVIE_INFO; 00643 00644 GUI_MOVIE_HANDLE GUI_MOVIE_Create (const void * pFileData, U32 FileSize, GUI_MOVIE_FUNC * pfNotify); 00645 GUI_MOVIE_HANDLE GUI_MOVIE_CreateEx (GUI_GET_DATA_FUNC * pfGetData, void * pParam, GUI_MOVIE_FUNC * pfNotify); 00646 int GUI_MOVIE_Delete (GUI_MOVIE_HANDLE hMovie); 00647 void GUI_MOVIE_DrawFrame (GUI_MOVIE_HANDLE hMovie, int Index, int x, int y); 00648 U32 GUI_MOVIE_GetFrameIndex(GUI_MOVIE_HANDLE hMovie); 00649 int GUI_MOVIE_GetInfo (const void * pFileData, U32 FileSize, GUI_MOVIE_INFO * pInfo); 00650 int GUI_MOVIE_GetInfoEx (GUI_GET_DATA_FUNC * pfGetData, void * pParam, GUI_MOVIE_INFO * pInfo); 00651 int GUI_MOVIE_GetNumFrames (GUI_MOVIE_HANDLE hMovie); 00652 int GUI_MOVIE_GetPos (GUI_MOVIE_HANDLE hMovie, int * pxPos, int * pyPos, int * pxSize, int * pySize); 00653 int GUI_MOVIE_GotoFrame (GUI_MOVIE_HANDLE hMovie, U32 Frame); 00654 int GUI_MOVIE_Pause (GUI_MOVIE_HANDLE hMovie); 00655 int GUI_MOVIE_Play (GUI_MOVIE_HANDLE hMovie); 00656 int GUI_MOVIE_SetPeriod (GUI_MOVIE_HANDLE hMovie, unsigned Period); 00657 void GUI_MOVIE_SetpfNotify (GUI_MOVIE_FUNC * pfNotify); 00658 int GUI_MOVIE_SetPos (GUI_MOVIE_HANDLE hMovie, int xPos, int yPos); 00659 int GUI_MOVIE_Show (GUI_MOVIE_HANDLE hMovie, int xPos, int yPos, int DoLoop); 00660 00661 /********************************************************************* 00662 * 00663 * Splines 00664 */ 00665 GUI_HMEM GUI_SPLINE_Create (const int * px, const int * py, unsigned NumPoints); 00666 void GUI_SPLINE_Draw (GUI_HMEM hSpline, int x, int y); 00667 void GUI_SPLINE_Delete (GUI_HMEM hSpline); 00668 I16 GUI_SPLINE_GetY (GUI_HMEM hSpline, unsigned Index, float * py); 00669 unsigned GUI_SPLINE_GetXSize(GUI_HMEM hSpline); 00670 void GUI_SPLINE_DrawAA (GUI_HMEM hSpline, int x, int y, unsigned Width); 00671 00672 /********************************************************************* 00673 * 00674 * Cursor routines 00675 */ 00676 #define GUI_CURSOR_SHOW 0 00677 #define GUI_CURSOR_HIDE 1 00678 00679 typedef struct { 00680 const GUI_BITMAP * pBitmap; 00681 int xHot; 00682 int yHot; 00683 } GUI_CURSOR; 00684 00685 typedef struct { 00686 const GUI_BITMAP ** ppBm; 00687 int xHot; 00688 int yHot; 00689 unsigned Period; 00690 const unsigned * pPeriod; 00691 int NumItems; 00692 } GUI_CURSOR_ANIM; 00693 00694 #if GUI_SUPPORT_CURSOR 00695 int GUI_CURSOR_GetState (void); 00696 int GUI_CURSOR_GetStateEx (int Layer); 00697 void GUI_CURSOR_Hide (void); 00698 void GUI_CURSOR_HideEx (int Layer); 00699 const GUI_CURSOR * GUI_CURSOR_Select (const GUI_CURSOR * pCursor); 00700 const GUI_CURSOR * GUI_CURSOR_SelectEx (const GUI_CURSOR * pCursor, int Layer); 00701 int GUI_CURSOR_SelectAnim (const GUI_CURSOR_ANIM * pCursorAnim); 00702 int GUI_CURSOR_SelectAnimEx (const GUI_CURSOR_ANIM * pCursorAnim, int LayerIndex); 00703 int GUI_CURSOR_SetBitmap (const GUI_BITMAP * pBM); 00704 int GUI_CURSOR_SetBitmapEx (const GUI_BITMAP * pBM, int Layer); 00705 void GUI_CURSOR_SetPosition (int x, int y); 00706 void GUI_CURSOR_SetPositionEx(int xNewPos, int yNewPos, int Layer); 00707 void GUI_CURSOR_Show (void); 00708 void GUI_CURSOR_ShowEx (int Layer); 00709 GUI_HSPRITE GUI_CURSOR__GetSpriteEx (int LayerIndex, int * pxPos, int * pyPos); 00710 void GUI_CURSOR__SetSpriteEx (GUI_HSPRITE hSprite, const GUI_CURSOR * pCursor, int LayerIndex); 00711 #else 00712 #define GUI_CURSOR_Show(); 00713 #define GUI_CURSOR_Clear(); 00714 #endif 00715 00716 /********************************************************************* 00717 * 00718 * Sprite support 00719 */ 00720 #define GUI_SPRITE_CF_STAYONTOP (1 << 0) 00721 #define GUI_SPRITE_CF_SHOW (1 << 1) 00722 00723 #define GUI_SPRITE_SHOW 0 00724 #define GUI_SPRITE_HIDE 1 00725 00726 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 */ 00727 void GUI_SPRITE__SetCallback (GUI_HSPRITE hSprite, GUI_HMEM hContext, void (* pCB)(GUI_HSPRITE, int)); 00728 GUI_HSPRITE GUI_SPRITE_Create (const GUI_BITMAP * pBM, int x, int y); 00729 GUI_HSPRITE GUI_SPRITE_CreateAnim (const GUI_BITMAP ** ppBm, int x, int y, unsigned Period, const unsigned * pPeriod, int NumItems); 00730 GUI_HSPRITE GUI_SPRITE_CreateEx (const GUI_BITMAP * pBM, int x, int y, int Layer); 00731 GUI_HSPRITE GUI_SPRITE_CreateExAnim (const GUI_BITMAP ** ppBm, int x, int y, unsigned Period, const unsigned * pPeriod, int NumItems, int LayerIndex); 00732 GUI_HSPRITE GUI_SPRITE_CreateHidden (const GUI_BITMAP * pBM, int x, int y); 00733 GUI_HSPRITE GUI_SPRITE_CreateHiddenEx (const GUI_BITMAP * pBM, int x, int y, int Layer); 00734 void GUI_SPRITE_Delete (GUI_HSPRITE hSprite); 00735 int GUI_SPRITE_GetState (GUI_HSPRITE hSprite); 00736 void GUI_SPRITE_Hide (GUI_HSPRITE hSprite); 00737 int GUI_SPRITE_SetBitmap (GUI_HSPRITE hSprite, const GUI_BITMAP * pBM); 00738 int GUI_SPRITE_SetBitmapAndPosition(GUI_HSPRITE hSprite, const GUI_BITMAP * pBM, int x, int y); 00739 int GUI_SPRITE_SetLoop (GUI_HSPRITE hSprite, int OnOff); 00740 void GUI_SPRITE_SetPosition (GUI_HSPRITE hSprite, int x, int y); 00741 int GUI_SPRITE_StartAnim (GUI_HSPRITE hSprite); 00742 int GUI_SPRITE_StopAnim (GUI_HSPRITE hSprite); 00743 void GUI_SPRITE_Show (GUI_HSPRITE hSprite); 00744 00745 /********************************************************************* 00746 * 00747 * Cursors and their bitmaps 00748 */ 00749 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowS, GUI_CursorArrowSI; 00750 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowM, GUI_CursorArrowMI; 00751 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorArrowL, GUI_CursorArrowLI; 00752 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossS, GUI_CursorCrossSI; 00753 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossM, GUI_CursorCrossMI; 00754 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorCrossL, GUI_CursorCrossLI; 00755 extern GUI_CONST_STORAGE GUI_CURSOR GUI_CursorHeaderM, GUI_CursorHeaderMI; 00756 extern GUI_CONST_STORAGE GUI_CURSOR_ANIM GUI_CursorAnimHourglassM; 00757 00758 /********************************************************************* 00759 * 00760 * Wrap modes 00761 */ 00762 typedef enum { GUI_WRAPMODE_NONE, GUI_WRAPMODE_WORD, GUI_WRAPMODE_CHAR } GUI_WRAPMODE; 00763 00764 /********************************************************************* 00765 * 00766 * Text related routines 00767 */ 00768 void GUI_DispCEOL (void); 00769 void GUI_DispChar (U16 c); 00770 void GUI_DispCharAt (U16 c, I16P x, I16P y); 00771 void GUI_DispChars (U16 c, int Cnt); 00772 void GUI_DispNextLine (void); 00773 void GUI_DispString (const char * s); 00774 void GUI_DispStringAt (const char * s, int x, int y); 00775 void GUI_DispStringAtCEOL (const char * s, int x, int y); 00776 void GUI_DispStringHCenterAt (const char * s, int x, int y); 00777 void GUI__DispStringInRect (const char * s, GUI_RECT * pRect, int TextAlign, int MaxNumChars); 00778 void GUI_DispStringInRect (const char * s, GUI_RECT * pRect, int TextAlign); 00779 #if GUI_SUPPORT_ROTATION 00780 void GUI_DispStringInRectEx (const char * s, GUI_RECT * pRect, int TextAlign, int MaxLen, const GUI_ROTATION * pLCD_Api); 00781 #endif 00782 void GUI_DispStringInRectMax (const char * s, GUI_RECT * pRect, int TextAlign, int MaxLen); /* Not to be doc. */ 00783 void GUI_DispStringInRectWrap (const char * s, GUI_RECT * pRect, int TextAlign, GUI_WRAPMODE WrapMode); /* Not to be doc. */ 00784 #if GUI_SUPPORT_ROTATION 00785 void GUI_DispStringInRectWrapEx(const char * s, GUI_RECT * pRect, int TextAlign, GUI_WRAPMODE WrapMode, const GUI_ROTATION * pLCD_Api); 00786 #endif 00787 void GUI_DispStringLen (const char * s, int Len); 00788 void GUI_GetTextExtend (GUI_RECT* pRect, const char * s, int Len); 00789 int GUI_GetYAdjust (void); 00790 int GUI_GetDispPosX (void); 00791 int GUI_GetDispPosY (void); 00792 const GUI_FONT * GUI_GetFont (void); 00793 int GUI_GetCharDistX (U16 c); 00794 int GUI_GetCharDistXEx (U16 c, int * pSizeX); 00795 int GUI_GetStringDistX (const char * s); 00796 GUI_DRAWMODE GUI_GetDrawMode (void); 00797 int GUI_GetFontDistY (void); 00798 int GUI_GetFontSizeY (void); 00799 void GUI_GetFontInfo (const GUI_FONT * pFont, GUI_FONTINFO * pfi); 00800 void GUI_GetOrg (int * px, int * py); 00801 int GUI_GetYSizeOfFont (const GUI_FONT * pFont); 00802 int GUI_GetYDistOfFont (const GUI_FONT * pFont); 00803 int GUI_GetTextAlign (void); 00804 int GUI_GetTextMode (void); 00805 char GUI_IsInFont (const GUI_FONT * pFont, U16 c); 00806 U8 GUI_SetClearTextRectMode (unsigned OnOff); 00807 int GUI_SetTextAlign (int Align); 00808 int GUI_SetTextMode (int Mode); 00809 char GUI_SetTextStyle (char Style); 00810 int GUI_SetLBorder (int x); 00811 U8 GUI_SetStrikeWidth (U8 StrikeWidth); 00812 const GUI_FONT * GUI_SetFont (const GUI_FONT * pNewFont); 00813 char GUI_GotoXY (int x, int y); 00814 char GUI_GotoX (int x); 00815 char GUI_GotoY (int y); 00816 int GUI_WrapGetNumLines (const char * pText, int xSize, GUI_WRAPMODE WrapMode); 00817 int GUI_WrapGetPositions (const char * pText, int xSize, GUI_WRAPMODE WrapMode, int * aPos, int NumItems); 00818 void GUI_WrapSetSeparators (const U16 * pSep, int NumSeps); 00819 00820 int GUI_GetLeadingBlankCols (U16 c); 00821 int GUI_GetTrailingBlankCols(U16 c); 00822 00823 00824 /********************************************************************* 00825 * 00826 * System independent fonts (SIF) 00827 */ 00828 void GUI_SIF_CreateFont(const void * pFontData, GUI_FONT * pFont, const GUI_SIF_TYPE * pFontType); 00829 void GUI_SIF_DeleteFont(GUI_FONT * pFont); 00830 00831 /********************************************************************* 00832 * 00833 * External binary fonts (XBF) 00834 */ 00835 int GUI_XBF_CreateFont(GUI_FONT * pFont, GUI_XBF_DATA * pXBF, const GUI_XBF_TYPE * pFontType, GUI_XBF_GET_DATA_FUNC * pfGetData, void * pVoid); 00836 void GUI_XBF_DeleteFont(GUI_FONT * pFont); 00837 00838 /********************************************************************* 00839 * 00840 * TrueType support (TTF) 00841 */ 00842 int GUI_TTF_CreateFont (GUI_FONT * pFont, GUI_TTF_CS * pCS); 00843 int GUI_TTF_CreateFontAA (GUI_FONT * pFont, GUI_TTF_CS * pCS); 00844 void GUI_TTF_DestroyCache (void); 00845 void GUI_TTF_Done (void); 00846 int GUI_TTF_GetFamilyName(GUI_FONT * pFont, char * pBuffer, int NumBytes); 00847 int GUI_TTF_GetStyleName (GUI_FONT * pFont, char * pBuffer, int NumBytes); 00848 void GUI_TTF_SetCacheSize (unsigned MaxFaces, unsigned MaxSizes, U32 MaxBytes); 00849 00850 /********************************************************************* 00851 * 00852 * Resource file support 00853 */ 00854 int GUI_LANG_GetLang (void); 00855 int GUI_LANG_GetNumItems (int IndexLang); 00856 const char * GUI_LANG_GetText (int IndexText); 00857 int GUI_LANG_GetTextBuffered (int IndexText, char * pBuffer, int SizeOfBuffer); 00858 int GUI_LANG_GetTextBufferedEx(int IndexText, int IndexLang, char * pBuffer, int SizeOfBuffer); 00859 const char * GUI_LANG_GetTextEx (int IndexText, int IndexLang); 00860 int GUI_LANG_LoadCSV (U8 * pFileData, U32 FileSize); 00861 int GUI_LANG_LoadCSVEx (GUI_GET_DATA_FUNC * pfGetData, void * p); 00862 int GUI_LANG_LoadText (U8 * pFileData, U32 FileSize, int IndexLang); 00863 int GUI_LANG_LoadTextEx (GUI_GET_DATA_FUNC * pfGetData, void * p, int IndexLang); 00864 int GUI_LANG_SetLang (int IndexLang); 00865 unsigned GUI_LANG_SetMaxNumLang (unsigned MaxNumLang); 00866 U16 GUI_LANG_SetSep (U16 Sep); 00867 00868 /********************************************************************* 00869 * 00870 * Unicode support 00871 */ 00872 int GUI_UC_ConvertUC2UTF8(const U16 * s, int Len, char * pBuffer, int BufferSize); 00873 int GUI_UC_ConvertUTF82UC(const char * s, int Len, U16 * pBuffer, int BufferSize); 00874 int GUI_UC_EnableBIDI (int OnOff); 00875 int GUI_UC_Encode (char * s, U16 Char); 00876 int GUI_UC_GetCharSize (const char * s); 00877 U16 GUI_UC_GetCharCode (const char * s); 00878 void GUI_UC_SetEncodeNone (void); 00879 void GUI_UC_SetEncodeSJIS (void); 00880 void GUI_UC_SetEncodeUTF8 (void); 00881 void GUI_UC_SetBaseDir (int Dir); // Only available with new version of BIDI algorithm (GUI_USE_BIDI2 == 1) 00882 int GUI_UC_GetBaseDir (void); // Only available with new version of BIDI algorithm (GUI_USE_BIDI2 == 1) 00883 00884 void GUI_UC_DispString(const U16 * s); 00885 void GUI_UC2DB (U16 Code, U8 * pOut); 00886 U16 GUI_DB2UC (U8 Byte0, U8 Byte1); 00887 00888 /********************************************************************* 00889 * 00890 * Bidi support 00891 */ 00892 #define GUI_BIDI_BASEDIR_LTR 0 00893 #define GUI_BIDI_BASEDIR_RTL 1 00894 #define GUI_BIDI_BASEDIR_AUTO 2 00895 00896 #define GUI_BIDI_LOG2VIS_CALC 0 00897 #define GUI_BIDI_LOG2VIS_GETCACHE 1 00898 00899 /********************************************************************* 00900 * 00901 * Drawing of binary, decimal and hexadecimal values 00902 */ 00903 void GUI_DispBin (U32 v, U8 Len); 00904 void GUI_DispBinAt(U32 v, I16P x, I16P y, U8 Len); 00905 void GUI_DispDec (I32 v, U8 Len); 00906 void GUI_DispDecAt (I32 v, I16P x, I16P y, U8 Len); 00907 void GUI_DispDecMin(I32 v); 00908 void GUI_DispDecShift(I32 v, U8 Len, U8 Shift); 00909 void GUI_DispDecSpace(I32 v, U8 MaxDigits); 00910 void GUI_DispHex (U32 v, U8 Len); 00911 void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len); 00912 void GUI_DispSDec(I32 v, U8 Len); 00913 void GUI_DispSDecShift(I32 v, U8 Len, U8 Shift); 00914 00915 /********************************************************************* 00916 * 00917 * Drawing of floating point values 00918 */ 00919 void GUI_DispFloat (float v, char Len); 00920 void GUI_DispFloatFix (float v, char Len, char Fract); 00921 void GUI_DispFloatMin (float v, char Fract); 00922 void GUI_DispSFloatFix(float v, char Len, char Fract); 00923 void GUI_DispSFloatMin(float v, char Fract); 00924 00925 /********************************************************************* 00926 * 00927 * Dynamic memory management 00928 */ 00929 typedef struct { 00930 U32 TotalBytes; 00931 U32 FreeBytes; 00932 U32 UsedBytes; 00933 U32 AllocSize; 00934 U32 NumFixedBytes; 00935 U32 MaxUsedBytes; 00936 } GUI_ALLOC_INFO; 00937 00938 GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBlocks(void); 00939 GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBytes (void); 00940 GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBlocks(void); 00941 GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBytes (void); 00942 GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxUsedBytes (void); 00943 00944 void GUI_ALLOC_GetMemInfo (GUI_ALLOC_INFO * pInfo); 00945 void GUI_ALLOC_SuppressPeak(int OnOff); 00946 00947 GUI_HMEM GUI_ALLOC_AllocInit (const void * pInitData, GUI_ALLOC_DATATYPE Size); 00948 GUI_HMEM GUI_ALLOC_AllocNoInit (GUI_ALLOC_DATATYPE size); 00949 GUI_HMEM GUI_ALLOC_AllocZero (GUI_ALLOC_DATATYPE size); 00950 void GUI_ALLOC_AssignMemory (void * p, U32 NumBytes); 00951 void GUI_ALLOC_Free (GUI_HMEM hMem); 00952 void GUI_ALLOC_FreeFixedBlock (void * p); 00953 void GUI_ALLOC_FreePtrArray (GUI_HMEM * pArray, int NumElems); 00954 void GUI_ALLOC_FreePtr (GUI_HMEM * phMem); 00955 void * GUI_ALLOC_GetFixedBlock (GUI_ALLOC_DATATYPE Size); 00956 GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxSize (void); 00957 GUI_ALLOC_DATATYPE GUI_ALLOC_GetSize (GUI_HMEM hMem); 00958 void * GUI_ALLOC_h2p (GUI_HMEM hMem); 00959 GUI_HMEM GUI_ALLOC_p2h (void * p); 00960 void GUI_ALLOC_Init (void); 00961 void GUI_ALLOC_Lock (void); 00962 void * GUI_ALLOC_LockH (GUI_HMEM hMem); 00963 GUI_HMEM GUI_ALLOC_Realloc (GUI_HMEM hOld, int NewSize); 00964 GUI_ALLOC_DATATYPE GUI_ALLOC_RequestSize (void); 00965 void GUI_ALLOC_SetAvBlockSize (U32 BlockSize); 00966 void GUI_ALLOC_Unlock (void); 00967 void * GUI_ALLOC_UnlockH (void ** pp); 00968 int GUI_ALLOC_SetMaxPercentage(int MaxPercentage); 00969 void GUI_ALLOC_Exit (void); 00970 00971 /********************************************************************* 00972 * 00973 * Memory devices: GUI_MEMDEV 00974 */ 00975 #define GUI_MEMDEV_HASTRANS 0 00976 #define GUI_MEMDEV_NOTRANS (1 << 0) 00977 00978 typedef GUI_HMEM GUI_MEMDEV_Handle; 00979 typedef void GUI_CALLBACK_VOID_P (void * p); 00980 typedef int GUI_ANIMATION_CALLBACK_FUNC(int TimeRem, void * pVoid); 00981 typedef void GUI_DRAWMEMDEV_16BPP_FUNC (void * pDst, const void * pSrc, int xSize, int ySize, int BytesPerLineDst, int BytesPerLineSrc); 00982 00983 #define GUI_DRAWMEMDEV_FUNC GUI_DRAWMEMDEV_16BPP_FUNC 00984 00985 typedef void GUI_DRAWBITMAP_FUNC (int LayerIndex, int x, int y, const void * p, int xSize, int ySize, int BytesPerLine); 00986 00987 int GUI_SetFuncDrawAlpha(GUI_DRAWMEMDEV_FUNC * pfDrawMemdevFunc, GUI_DRAWBITMAP_FUNC * pfDrawBitmapFunc); 00988 int GUI_SetFuncDrawM565 (GUI_DRAWMEMDEV_FUNC * pfDrawMemdevFunc, GUI_DRAWBITMAP_FUNC * pfDrawBitmapFunc); 00989 00990 extern GUI_ANIMATION_CALLBACK_FUNC * GUI_MEMDEV__pCbAnimation; 00991 extern void * GUI_MEMDEV__pVoid; 00992 00993 extern void (* GUI_MEMDEV__pfMEMDEV_Write) (GUI_MEMDEV_Handle hMem); 00994 extern void (* GUI_MEMDEV__pfMEMDEV_CopyToLCD)(GUI_MEMDEV_Handle hMem); 00995 00996 typedef struct { 00997 GUI_RECT rView, rPrev; 00998 char FirstCall; 00999 } GUI_AUTODEV; 01000 01001 typedef struct { 01002 char DrawFixed; 01003 char IsMeasurement; 01004 } GUI_AUTODEV_INFO; 01005 01006 int GUI_MEMDEV_CreateAuto(GUI_AUTODEV * pAutoDev); 01007 void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV * pAutoDev); 01008 int GUI_MEMDEV_DrawAuto (GUI_AUTODEV * pAutoDev, GUI_AUTODEV_INFO * pAutoDevInfo, GUI_CALLBACK_VOID_P * pfDraw, void * pData); 01009 01010 /* Create a memory device which is compatible to the selected LCD */ 01011 GUI_MEMDEV_Handle GUI_MEMDEV_Create (int x0, int y0, int xSize, int ySize); 01012 GUI_MEMDEV_Handle GUI_MEMDEV_CreateEx (int x0, int y0, int xSize, int ySize, int Flags); 01013 GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed (int x0, int y0, int xSize, int ySize, int Flags, 01014 const GUI_DEVICE_API * pDeviceAPI, 01015 const LCD_API_COLOR_CONV * pColorConvAPI); 01016 GUI_MEMDEV_Handle GUI_MEMDEV_CreateFixed32(int x0, int y0, int xSize, int ySize); 01017 01018 void GUI_MEMDEV_Clear (GUI_MEMDEV_Handle hMem); 01019 int GUI_MEMDEV_ClearAlpha (GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask); 01020 void GUI_MEMDEV_CopyFromLCD (GUI_MEMDEV_Handle hMem); 01021 void GUI_MEMDEV_CopyFromLCDAA (GUI_MEMDEV_Handle hMem); 01022 void GUI_MEMDEV_CopyToLCD (GUI_MEMDEV_Handle hMem); 01023 void GUI_MEMDEV_CopyToLCDAA (GUI_MEMDEV_Handle hMem); 01024 void GUI_MEMDEV_CopyToLCDAt (GUI_MEMDEV_Handle hMem, int x, int y); 01025 int GUI_MEMDEV_CompareWithLCD (GUI_MEMDEV_Handle hMem, int * px, int * py, int * pExp, int * pAct); 01026 void GUI_MEMDEV_Delete (GUI_MEMDEV_Handle MemDev); 01027 void GUI_MEMDEV_DrawPerspectiveX (GUI_MEMDEV_Handle hMem, int x, int y, int h0, int h1, int dx, int dy); 01028 int GUI_MEMDEV_GetXPos (GUI_MEMDEV_Handle hMem); 01029 int GUI_MEMDEV_GetXSize (GUI_MEMDEV_Handle hMem); 01030 int GUI_MEMDEV_GetYPos (GUI_MEMDEV_Handle hMem); 01031 int GUI_MEMDEV_GetYSize (GUI_MEMDEV_Handle hMem); 01032 void GUI_MEMDEV_MarkDirty (GUI_MEMDEV_Handle hMem, int x0, int y0, int x1, int y1); 01033 void GUI_MEMDEV_ReduceYSize (GUI_MEMDEV_Handle hMem, int YSize); 01034 void GUI_MEMDEV_Rotate (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); 01035 void GUI_MEMDEV_RotateAlpha (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U8 Alpha); 01036 void GUI_MEMDEV_RotateHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag); 01037 void GUI_MEMDEV__Rotate (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U32 Mask); 01038 void GUI_MEMDEV__RotateHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag, U32 Mask); 01039 void GUI_MEMDEV_RotateHQ (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); 01040 void GUI_MEMDEV_RotateHQAlpha (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag, U8 Alpha); 01041 void GUI_MEMDEV_RotateHQHR (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, I32 dx, I32 dy, int a, int Mag); 01042 void GUI_MEMDEV_RotateHQT (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); 01043 void GUI_MEMDEV_RotateHQTI (GUI_MEMDEV_Handle hSrc, GUI_MEMDEV_Handle hDst, int dx, int dy, int a, int Mag); 01044 GUI_MEMDEV_Handle GUI_MEMDEV_Select (GUI_MEMDEV_Handle hMem); /* Select (activate) a particular memory device. */ 01045 void GUI_MEMDEV_SetOrg (GUI_MEMDEV_Handle hMem, int x0, int y0); 01046 void GUI_MEMDEV_WriteAt (GUI_MEMDEV_Handle hMem, int x, int y); 01047 void GUI_MEMDEV_Write (GUI_MEMDEV_Handle hMem); 01048 void GUI_MEMDEV_WriteAlphaAt (GUI_MEMDEV_Handle hMem, int Alpha, int x, int y); 01049 void GUI_MEMDEV_WriteAlpha (GUI_MEMDEV_Handle hMem, int Alpha); 01050 void GUI_MEMDEV_WriteExAt (GUI_MEMDEV_Handle hMem, int x, int y, int xMag, int yMag, int Alpha); 01051 void GUI_MEMDEV_WriteEx (GUI_MEMDEV_Handle hMem, int xMag, int yMag, int Alpha); 01052 void GUI_MEMDEV_WriteOpaque (GUI_MEMDEV_Handle hMem); 01053 void GUI_MEMDEV_WriteOpaqueAt (GUI_MEMDEV_Handle hMem, int x, int y); 01054 int GUI_MEMDEV_Draw (GUI_RECT * pRect, GUI_CALLBACK_VOID_P * pfDraw, void * pData, int NumLines, int Flags); 01055 void* GUI_MEMDEV_GetDataPtr (GUI_MEMDEV_Handle hMem); 01056 void GUI_MEMDEV_SetColorConv (GUI_MEMDEV_Handle hMem, const LCD_API_COLOR_CONV * pColorConvAPI); 01057 const LCD_API_COLOR_CONV * GUI_MEMDEV_GetColorConv(GUI_MEMDEV_Handle hMemDev); 01058 int GUI_MEMDEV_GetBitsPerPixel (GUI_MEMDEV_Handle hMemDev); 01059 int GUI_MEMDEV_FadeInDevices (GUI_MEMDEV_Handle hMem0, GUI_MEMDEV_Handle hMem1, int Period); 01060 int GUI_MEMDEV_FadeOutDevices (GUI_MEMDEV_Handle hMem0, GUI_MEMDEV_Handle hMem1, int Period); 01061 void GUI_MEMDEV_SerializeBMP (GUI_MEMDEV_Handle hDev, GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p); 01062 void GUI_MEMDEV_SetAnimationCallback(GUI_ANIMATION_CALLBACK_FUNC * pCbAnimation, void * pVoid); 01063 void GUI_MEMDEV__FadeDevice (GUI_MEMDEV_Handle hMemWin, GUI_MEMDEV_Handle hMemBk, GUI_MEMDEV_Handle hMemDst, U8 Intens); 01064 void GUI_MEMDEV__FadeDeviceEx (GUI_MEMDEV_Handle hMemWin, GUI_MEMDEV_Handle hMemBk, GUI_MEMDEV_Handle hMemDst, U8 Intens, int xPosWin, int yPosWin); 01065 int GUI_MEMDEV_PunchOutDevice (GUI_MEMDEV_Handle hMemData, GUI_MEMDEV_Handle hMemMask); 01066 void GUI_MEMDEV_SetTimePerFrame (unsigned TimePerFrame); 01067 int GUI_MEMDEV_MULTIBUF_Enable (int OnOff); 01068 01069 void GUI_SelectLCD(void); 01070 01071 /* Blurring, dithering and blending */ 01072 GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32 (GUI_MEMDEV_Handle hMem, U8 Depth); 01073 GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32HQ(GUI_MEMDEV_Handle hMem, U8 Depth); 01074 GUI_MEMDEV_Handle GUI_MEMDEV_CreateBlurredDevice32LQ(GUI_MEMDEV_Handle hMem, U8 Depth); 01075 void GUI_MEMDEV_SetBlurHQ (void); 01076 void GUI_MEMDEV_SetBlurLQ (void); 01077 int GUI_MEMDEV_BlendColor32 (GUI_MEMDEV_Handle hMem, U32 BlendColor, U8 BlendIntens); 01078 int GUI_MEMDEV_Dither32 (GUI_MEMDEV_Handle hMem, const LCD_API_COLOR_CONV * pColorConvAPI); 01079 01080 /* Optional custom drawing of 16bpp memory devices */ 01081 void GUI_MEMDEV_SetDrawMemdev16bppFunc(GUI_DRAWMEMDEV_16BPP_FUNC * pfDrawMemdev16bppFunc); 01082 01083 /********************************************************************* 01084 * 01085 * Alpha blending 01086 */ 01087 typedef struct { 01088 U32 UserAlpha; 01089 } GUI_ALPHA_STATE; 01090 01091 #define GUI_MAKE_ALPHA(Alpha, Color) ((U32)(((U32)Alpha << 24) | (Color & 0xFFFFFF))) 01092 01093 unsigned GUI_EnableAlpha (unsigned OnOff); 01094 U32 GUI_RestoreUserAlpha (GUI_ALPHA_STATE * pAlphaState); 01095 unsigned GUI_SetAlpha (U8 Alpha); 01096 U32 GUI_SetUserAlpha (GUI_ALPHA_STATE * pAlphaState, U32 UserAlpha); 01097 void (* GUI_SetFuncAlphaBlending(void (* pfAlphaBlending)(LCD_COLOR *, LCD_COLOR *, LCD_COLOR *, U32))) 01098 (LCD_COLOR *, LCD_COLOR *, LCD_COLOR *, U32); 01099 LCD_COLOR (* GUI_SetFuncMixColors (LCD_COLOR (* pFunc)(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens))) 01100 (LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens); 01101 void (* GUI_SetFuncMixColorsBulk(void (* pFunc)(U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens))) 01102 (U32 * pFG, U32 * pBG, U32 * pDst, unsigned OffFG, unsigned OffBG, unsigned OffDest, unsigned xSize, unsigned ySize, U8 Intens); 01103 unsigned GUI_PreserveTrans (unsigned OnOff); 01104 01105 /********************************************************************* 01106 * 01107 * Multi layer support 01108 */ 01109 unsigned GUI_SelectLayer(unsigned Index); 01110 unsigned GUI_GetSelLayer(void); 01111 01112 int GUI_SetLayerPosEx (unsigned Index, int xPos, int yPos); 01113 int GUI_SetLayerSizeEx (unsigned Index, int xSize, int ySize); 01114 int GUI_SetLayerVisEx (unsigned Index, int OnOff); 01115 int GUI_SetLayerAlphaEx(unsigned Index, int Alpha); 01116 int GUI_GetLayerPosEx (unsigned Index, int * pxPos, int * pyPos); 01117 01118 void GUI_AssignCursorLayer(unsigned Index, unsigned CursorLayer); 01119 unsigned GUI_GetCursorLayer (unsigned Index); 01120 01121 /********************************************************************* 01122 * 01123 * Multiple buffers and display origin 01124 */ 01125 void GUI_SetOrg(int x, int y); 01126 01127 void GUI_MULTIBUF_Begin (void); 01128 void GUI_MULTIBUF_BeginEx (int LayerIndex); 01129 void GUI_MULTIBUF_End (void); 01130 void GUI_MULTIBUF_EndEx (int LayerIndex); 01131 void GUI_MULTIBUF_Config (int NumBuffers); 01132 void GUI_MULTIBUF_ConfigEx (int LayerIndex, int NumBuffers); 01133 void GUI_MULTIBUF_Confirm (int Index); 01134 void GUI_MULTIBUF_ConfirmEx (int LayerIndex, int BufferIndex); 01135 int GUI_MULTIBUF_GetNumBuffers (void); 01136 int GUI_MULTIBUF_GetNumBuffersEx(int LayerIndex); 01137 void GUI_MULTIBUF_SetLayerMask (U32 LayerMask); 01138 void GUI_MULTIBUF_UseSingleBuffer(void); 01139 01140 /********************************************************************* 01141 * 01142 * emWinSPY 01143 */ 01144 int GUI_SPY_Process (GUI_tSend pfSend, GUI_tRecv pfRecv, void * pConnectInfo); 01145 void GUI_SPY_SetMemHandler(GUI_tMalloc pMalloc, GUI_tFree pFree); 01146 int GUI_SPY_StartServer (void); 01147 int GUI_SPY_StartServerEx(int (* pGUI_SPY_X_StartServer)(void)); 01148 int GUI_SPY_X_StartServer(void); 01149 01150 /********************************************************************* 01151 * 01152 * QR-Codes 01153 */ 01154 #define GUI_QR_ECLEVEL_L 0 01155 #define GUI_QR_ECLEVEL_M 1 01156 #define GUI_QR_ECLEVEL_Q 2 01157 #define GUI_QR_ECLEVEL_H 3 01158 01159 typedef struct { 01160 int Version; // Version according to QR code documentation 01161 int Width; // Number of 'Modules' 01162 int Size; // Size of bitmap in pixels 01163 } GUI_QR_INFO; 01164 01165 GUI_HMEM GUI_QR_Create (const char * pText, int PixelSize, int EccLevel, int Version); 01166 void GUI_QR_Draw (GUI_HMEM hQR, int xPos, int yPos); 01167 void GUI_QR_GetInfo(GUI_HMEM hQR, GUI_QR_INFO * pInfo); 01168 void GUI_QR_Delete (GUI_HMEM hQR); 01169 01170 /********************************************************************* 01171 * 01172 * Basics for animations 01173 */ 01174 #define ANIM_LINEAR GUI_ANIM__Linear 01175 #define ANIM_ACCEL GUI_ANIM__Accel 01176 #define ANIM_DECEL GUI_ANIM__Decel 01177 #define ANIM_ACCELDECEL GUI_ANIM__AccelDecel 01178 01179 #define GUI_ANIM_START 0 01180 #define GUI_ANIM_RUNNING 1 01181 #define GUI_ANIM_END 2 01182 01183 #ifndef GUI_ANIM_RANGE 01184 #define GUI_ANIM_RANGE 32767L 01185 #endif 01186 01187 typedef GUI_HMEM GUI_ANIM_HANDLE; 01188 01189 typedef I32 (* GUI_ANIM_GETPOS_FUNC)(GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); 01190 01191 typedef struct { 01192 int Pos; 01193 int State; 01194 GUI_ANIM_HANDLE hAnim; 01195 GUI_TIMER_TIME Period; 01196 } GUI_ANIM_INFO; 01197 01198 typedef void GUI_ANIMATION_FUNC(GUI_ANIM_INFO * pInfo, void * pVoid); 01199 01200 I32 GUI_ANIM__Linear (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); 01201 I32 GUI_ANIM__Decel (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); 01202 I32 GUI_ANIM__Accel (GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); 01203 I32 GUI_ANIM__AccelDecel(GUI_TIMER_TIME ts, GUI_TIMER_TIME te, GUI_TIMER_TIME tNow); 01204 01205 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); 01206 GUI_ANIM_HANDLE GUI_ANIM_Create (GUI_TIMER_TIME Period, unsigned MinTimePerFrame, void * pVoid, void (* pfSliceInfo)(int State, void * _pVoid)); 01207 void GUI_ANIM_Delete (GUI_ANIM_HANDLE hAnim); 01208 int GUI_ANIM_Exec (GUI_ANIM_HANDLE hAnim); 01209 void GUI_ANIM_Start (GUI_ANIM_HANDLE hAnim); 01210 void GUI_ANIM_StartEx(GUI_ANIM_HANDLE hAnim, int NumLoops, void (* pfOnDelete)(void * pVoid)); 01211 void GUI_ANIM_Stop (GUI_ANIM_HANDLE hAnim); 01212 01213 /********************************************************************* 01214 * 01215 * Display orientation 01216 */ 01217 /********************************************************************* 01218 * 01219 * GUI_ORIENTATION_API 01220 */ 01221 typedef struct { 01222 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); 01223 void (* pfDrawHLine )(GUI_DEVICE * pDevice, int x0, int y0, int x1); 01224 void (* pfDrawVLine )(GUI_DEVICE * pDevice, int x , int y0, int y1); 01225 void (* pfFillRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); 01226 LCD_PIXELINDEX (* pfGetPixelIndex)(GUI_DEVICE * pDevice, int x, int y); 01227 void (* pfSetPixelIndex)(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX ColorIndex); 01228 void (* pfXorPixel )(GUI_DEVICE * pDevice, int x, int y); 01229 int BytesPerPixel; 01230 } GUI_ORIENTATION_API; 01231 01232 extern const GUI_ORIENTATION_API GUI_OrientationAPI_C0; 01233 extern const GUI_ORIENTATION_API GUI_OrientationAPI_C8; 01234 extern const GUI_ORIENTATION_API GUI_OrientationAPI_C16; 01235 extern const GUI_ORIENTATION_API GUI_OrientationAPI_C32; 01236 01237 #define GUI_ORIENTATION_C0 &GUI_OrientationAPI_C0 01238 #define GUI_ORIENTATION_C8 &GUI_OrientationAPI_C8 01239 #define GUI_ORIENTATION_C16 &GUI_OrientationAPI_C16 01240 #define GUI_ORIENTATION_C32 &GUI_OrientationAPI_C32 01241 01242 int GUI_SetOrientation (int Orientation); 01243 int GUI_SetOrientationEx (int Orientation, int LayerIndex); 01244 int GUI_SetOrientationExCached(int Orientation, int LayerIndex, const GUI_ORIENTATION_API * pAPI); 01245 01246 /********************************************************************* 01247 * 01248 * Measure device: GUI_MEASDEV 01249 */ 01250 typedef GUI_HMEM GUI_MEASDEV_Handle; 01251 01252 GUI_MEASDEV_Handle GUI_MEASDEV_Create (void); 01253 void GUI_MEASDEV_Delete (GUI_MEASDEV_Handle hMemDev); 01254 void GUI_MEASDEV_Select (GUI_MEASDEV_Handle hMem); 01255 void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT * pRect); 01256 void GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMem); 01257 01258 /********************************************************************* 01259 * 01260 * Polygon helpers 01261 */ 01262 void GUI_RotatePolygon (GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, float Angle); 01263 void GUI_MagnifyPolygon(GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, int Mag); 01264 void GUI_EnlargePolygon(GUI_POINT * pDest, const GUI_POINT * pSrc, int NumPoints, int Len); 01265 01266 /********************************************************************* 01267 * 01268 * Streamed bitmaps 01269 */ 01270 #define GUI_BITMAPSTREAM_GET_BUFFER 1 01271 #define GUI_BITMAPSTREAM_RELEASE_BUFFER 2 01272 #define GUI_BITMAPSTREAM_MODIFY_PALETTE 3 01273 01274 #define DECLARE_CREATE_FROM_STREAM(ID) int GUI_CreateBitmapFromStream##ID(GUI_BITMAP * pBMP, GUI_LOGPALETTE * pPAL, const void * p); 01275 01276 DECLARE_CREATE_FROM_STREAM(IDX) 01277 DECLARE_CREATE_FROM_STREAM(RLE4) 01278 DECLARE_CREATE_FROM_STREAM(RLE8) 01279 DECLARE_CREATE_FROM_STREAM(565) 01280 DECLARE_CREATE_FROM_STREAM(M565) 01281 DECLARE_CREATE_FROM_STREAM(555) 01282 DECLARE_CREATE_FROM_STREAM(M555) 01283 DECLARE_CREATE_FROM_STREAM(A565) 01284 DECLARE_CREATE_FROM_STREAM(AM565) 01285 DECLARE_CREATE_FROM_STREAM(A555) 01286 DECLARE_CREATE_FROM_STREAM(AM555) 01287 DECLARE_CREATE_FROM_STREAM(RLE16) 01288 DECLARE_CREATE_FROM_STREAM(RLEM16) 01289 DECLARE_CREATE_FROM_STREAM(24) 01290 DECLARE_CREATE_FROM_STREAM(Alpha) 01291 DECLARE_CREATE_FROM_STREAM(M8888I) 01292 DECLARE_CREATE_FROM_STREAM(RLEAlpha) 01293 DECLARE_CREATE_FROM_STREAM(RLE32) 01294 DECLARE_CREATE_FROM_STREAM(444_12) 01295 DECLARE_CREATE_FROM_STREAM(M444_12) 01296 DECLARE_CREATE_FROM_STREAM(444_12_1) 01297 DECLARE_CREATE_FROM_STREAM(M444_12_1) 01298 DECLARE_CREATE_FROM_STREAM(444_16) 01299 DECLARE_CREATE_FROM_STREAM(M444_16) 01300 01301 int GUI_CreateBitmapFromStream (GUI_BITMAP * pBMP, GUI_LOGPALETTE * pPAL, const void * p); 01302 void GUI_DrawStreamedBitmap (const void * p, int x, int y); 01303 void GUI_DrawStreamedBitmapAuto (const void * p, int x, int y); 01304 int GUI_DrawStreamedBitmapEx (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01305 int GUI_DrawStreamedBitmapExAuto (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01306 int GUI_DrawStreamedBitmap555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01307 int GUI_DrawStreamedBitmapM555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01308 int GUI_DrawStreamedBitmap565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01309 int GUI_DrawStreamedBitmapM565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01310 int GUI_DrawStreamedBitmapA555Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01311 int GUI_DrawStreamedBitmapAM555Ex(GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01312 int GUI_DrawStreamedBitmapA565Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01313 int GUI_DrawStreamedBitmapAM565Ex(GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01314 int GUI_DrawStreamedBitmap24Ex (GUI_GET_DATA_FUNC * pfGetData, const void * p, int x, int y); 01315 void GUI_GetStreamedBitmapInfo (const void * p, GUI_BITMAPSTREAM_INFO * pInfo); 01316 int GUI_GetStreamedBitmapInfoEx (GUI_GET_DATA_FUNC * pfGetData, const void * p, GUI_BITMAPSTREAM_INFO * pInfo); 01317 void GUI_SetStreamedBitmapHook (GUI_BITMAPSTREAM_CALLBACK pfStreamedBitmapHook); 01318 01319 void LCD__RLE4_SetFunc (GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off, const LCD_LOGPALETTE * pLogPal); 01320 void LCD__RLE8_SetFunc (GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off, const LCD_LOGPALETTE * pLogPal); 01321 void LCD__RLE16_SetFunc(GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off); 01322 void LCD__RLE32_SetFunc(GUI_GET_DATA_FUNC * pfGetData, void * pVoid, U32 Off); 01323 01324 /********************************************************************* 01325 * 01326 * BMP-export 01327 */ 01328 void GUI_BMP_Serialize (GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p); 01329 void GUI_BMP_SerializeEx (GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p); 01330 void GUI_BMP_SerializeExBpp(GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p, int BitsPerPixel); 01331 01332 void GUI_BMP__WriteBitmapHeader(GUI_CALLBACK_VOID_U8_P * pfSerialize, int xSize, int ySize, void * p, int BitsPerPixel, int BytesPerLine, int BytesPerPixel, int NumColors, int Padding); 01333 01334 /********************************************************************* 01335 * 01336 * Time / execution related routines 01337 */ 01338 void GUI_Delay (int Period); 01339 GUI_TIMER_TIME GUI_GetTime (void); 01340 int GUI_GetTimeSlice(void); 01341 int GUI_Exec (void); /* Execute all jobs ... Return 0 if nothing was done. */ 01342 int GUI_Exec1 (void); /* Execute one job ... Return 0 if nothing was done. */ 01343 void GUI_SetTimeSlice(int TimeSlice); 01344 01345 /********************************************************************* 01346 * 01347 * MessageBox 01348 */ 01349 int GUI_MessageBox (const char * sMessage, const char * sCaption, int Flags); 01350 #define GUI_MESSAGEBOX_CF_MOVEABLE (1 << 0) 01351 #define GUI_MESSAGEBOX_CF_MODAL (1 << 1) 01352 01353 #define GUI_MB_OK 20 01354 #define GUI_MB_WARNING 21 01355 01356 /********************************************************************* 01357 * 01358 * GUI_TIMER module 01359 */ 01360 #define GUI_TIMER_CF_WINDOW (1 << 0) 01361 #define GUI_TIMER_CF_CURSOR (1 << 1) 01362 01363 typedef GUI_HMEM GUI_TIMER_HANDLE; 01364 01365 typedef struct { 01366 GUI_TIMER_TIME Time; 01367 PTR_ADDR Context; 01368 GUI_TIMER_HANDLE hTimer; 01369 } GUI_TIMER_MESSAGE; 01370 01371 typedef void GUI_TIMER_CALLBACK(/*const*/ GUI_TIMER_MESSAGE* pTM); 01372 01373 GUI_TIMER_HANDLE GUI_TIMER_Create (GUI_TIMER_CALLBACK * cb, GUI_TIMER_TIME Time, PTR_ADDR Context, U16 Flags); 01374 void GUI_TIMER_Delete (GUI_TIMER_HANDLE hObj); 01375 01376 /* Methods changing properties */ 01377 GUI_TIMER_TIME GUI_TIMER_GetPeriod(GUI_TIMER_HANDLE hObj); 01378 void GUI_TIMER_SetPeriod(GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period); 01379 void GUI_TIMER_SetTime (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Period); 01380 void GUI_TIMER_SetDelay (GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Delay); 01381 void GUI_TIMER_Restart (GUI_TIMER_HANDLE hObj); 01382 int GUI_TIMER_GetFlag (GUI_TIMER_HANDLE hObj, int Flag); /* Not to be documented */ 01383 int GUI_TIMER_Exec (void); 01384 01385 /********************************************************************* 01386 * 01387 * Anti Aliasing 01388 */ 01389 #define GUI_AA_TRANS 0 // Foreground color mixed up with current content of framebuffer 01390 #define GUI_AA_NOTRANS 1 // Foreground color mixed up with current background color 01391 01392 void GUI_AA_DisableHiRes (void); 01393 void GUI_AA_EnableHiRes (void); 01394 int GUI_AA_GetFactor (void); 01395 void GUI_AA_SetFactor (int Factor); 01396 void GUI_AA_DrawArc (int x0, int y0, int rx, int ry, int a0, int a1); 01397 void GUI_AA_DrawCircle (int x0, int y0, int r); // Currently not implemented, only for Dave2D 01398 void GUI_AA_DrawLine (int x0, int y0, int x1, int y1); 01399 void GUI_AA_DrawPolyOutline (const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y); 01400 void GUI_AA_DrawPolyOutlineEx(const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y, GUI_POINT * pBuffer); 01401 void GUI_AA_DrawRoundedRect (int x0, int y0, int x1, int y1, int r); 01402 void GUI_AA_DrawRoundedRectEx(GUI_RECT * pRect, int r); 01403 void GUI_AA_FillCircle (int x0, int y0, int r); 01404 void GUI_AA_FillEllipse (int x0, int y0, int rx, int ry); 01405 void GUI_AA_FillPolygon (const GUI_POINT * pPoints, int NumPoints, int x0, int y0); 01406 void GUI_AA_FillRoundedRect (int x0, int y0, int x1, int y1, int r); 01407 void GUI_AA_FillRoundedRectEx(GUI_RECT * pRect, int r); 01408 int GUI_AA_SetDrawMode (int Mode); 01409 void GUI_AA_SetpfDrawCharAA4 (int (* pfDrawChar)(int LayerIndex, int x, int y, U8 const * p, int xSize, int ySize, int BytesPerLine)); 01410 void GUI_AA_SetGammaAA4 (U8 * pGamma); 01411 void GUI_AA_GetGammaAA4 (U8 * pGamma); 01412 void GUI_AA_EnableGammaAA4 (int OnOff); 01413 01414 #define GUI_AA_PreserveTrans(OnOff) GUI_PreserveTrans(OnOff) // For compatibility only 01415 01416 void GUI_AA_SetFuncDrawArc (int (* pfDrawArc) (int x0, int y0, int rx, int ry, int a0, int a1)); 01417 void GUI_AA_SetFuncDrawCircle (int (* pfDrawCircle) (int x0, int y0, int r)); 01418 void GUI_AA_SetFuncDrawLine (int (* pfDrawLine) (int x0, int y0, int x1, int y1)); 01419 void GUI_AA_SetFuncDrawPolyOutline(int (* pfDrawPolyOutline)(const GUI_POINT * pSrc, int NumPoints, int Thickness, int x, int y)); 01420 void GUI_AA_SetFuncFillCircle (int (* pfFillCircle) (int x0, int y0, int r)); 01421 void GUI_AA_SetFuncFillPolygon (int (* pfFillPolygon)(const GUI_POINT * pPoints, int NumPoints, int x0, int y0)); 01422 01423 /********************************************************************* 01424 * 01425 * Keyboard 01426 */ 01427 /* Message layer */ 01428 void GUI_StoreKeyMsg(int Key, int Pressed); 01429 void GUI_SendKeyMsg (int Key, int Pressed); 01430 int GUI_PollKeyMsg (void); 01431 void GUI_GetKeyState(GUI_KEY_STATE * pState); 01432 01433 void GUI_KEY__SetHook(void (* pfHook)(const GUI_KEY_STATE *)); 01434 01435 /* Application layer */ 01436 int GUI_GetKey(void); 01437 int GUI_WaitKey(void); 01438 void GUI_StoreKey(int c); 01439 void GUI_ClearKeyBuffer(void); 01440 01441 /********************************************************************* 01442 * 01443 * Task synchronization 01444 */ 01445 void GUI_WaitEvent (void); 01446 void GUI_SignalEvent (void); 01447 void GUI_SetSignalEventFunc (GUI_SIGNAL_EVENT_FUNC pfSignalEvent); 01448 void GUI_SetWaitEventFunc (GUI_WAIT_EVENT_FUNC pfWaitEvent); 01449 void GUI_SetWaitEventTimedFunc(GUI_WAIT_EVENT_TIMED_FUNC pfWaitEventTimed); 01450 01451 /********************************************************************* 01452 * 01453 * Joystick, generic 01454 */ 01455 void GUI_JOYSTICK_StoreState(const GUI_PID_STATE * pState); 01456 01457 /********************************************************************* 01458 * 01459 * PID (Pointer input device ... mouse/touch) 01460 */ 01461 void GUI_PID_StoreState (const GUI_PID_STATE * pState); 01462 int GUI_PID_GetState ( GUI_PID_STATE * pState); 01463 void GUI_PID_GetCurrentState( GUI_PID_STATE * pState); 01464 int GUI_PID_IsEmpty (void); 01465 int GUI_PID_IsPressed (void); 01466 void GUI_PID_RegisterHook (GUI_REGISTER_HOOK * pRegisterHook); 01467 void GUI_PID_SetHook (void (* pfHook)( GUI_PID_STATE *)); // Public 01468 void GUI_PID__SetHook (void (* pfHook)(const GUI_PID_STATE *)); // Private 01469 01470 /********************************************************************* 01471 * 01472 * Mouse, generic 01473 */ 01474 int GUI_MOUSE_GetState ( GUI_PID_STATE * pState); 01475 void GUI_MOUSE_StoreState(const GUI_PID_STATE * pState); 01476 01477 /********************************************************************* 01478 * 01479 * TOUCH screen, generic 01480 */ 01481 int GUI_TOUCH_GetLayer (void); 01482 int GUI_TOUCH_GetState (GUI_PID_STATE * pState); 01483 void GUI_TOUCH_GetUnstable (int * px, int * py); /* for diagnostics only */ 01484 void GUI_TOUCH_SetLayer (int Layer); 01485 void GUI_TOUCH_StoreState (int x, int y); 01486 void GUI_TOUCH_StoreStateEx (const GUI_PID_STATE * pState); 01487 void GUI_TOUCH_StoreUnstable(int x, int y); 01488 01489 /********************************************************************* 01490 * 01491 * Mouse, PS2 driver 01492 */ 01493 void GUI_MOUSE_DRIVER_PS2_Init(void); /* optional */ 01494 void GUI_MOUSE_DRIVER_PS2_OnRx(unsigned char Data); 01495 01496 /********************************************************************* 01497 * 01498 * TOUCH screen, analog driver 01499 */ 01500 int GUI_TOUCH_CalcCoefficients (int NumPoints, int * pxRef, int * pyRef, int * pxSample, int * pySample, int xSize, int ySize); 01501 int GUI_TOUCH_Calibrate (int Coord, int Log0, int Log1, int Phys0, int Phys1); 01502 int GUI_TOUCH_CalibratePoint (int * px, int * py); 01503 void GUI_TOUCH_EnableCalibration(int OnOff); 01504 void GUI_TOUCH_Exec (void); 01505 int GUI_TOUCH_GetxPhys (void); /* for diagnostics only */ 01506 int GUI_TOUCH_GetyPhys (void); /* for diagnostics only */ 01507 void GUI_TOUCH_SetCalibration (int (* pFunc)(int *, int *)); /* Not to be documented */ 01508 void GUI_TOUCH_SetOrientation (unsigned Orientation); 01509 int GUI_TOUCH_TransformPoint (int * px, int * py); /* Not to be documented */ 01510 01511 /********************************************************************* 01512 * 01513 * TOUCH: imports 01514 * 01515 * Please note: The following functions are required by the module. 01516 * They need to be part of your application software (or rather, part 01517 * of the hardware-layer of your software). 01518 */ 01519 void GUI_TOUCH_X_ActivateX(void); 01520 void GUI_TOUCH_X_ActivateY(void); 01521 void GUI_TOUCH_X_Disable (void); 01522 int GUI_TOUCH_X_MeasureX (void); 01523 int GUI_TOUCH_X_MeasureY (void); 01524 01525 /********************************************************************* 01526 * 01527 * GUI_X_ 01528 * 01529 * Externals, to be defined by application 01530 * 01531 * The externals defined below should be defined by the 01532 * application. They are per default contained in the module 01533 * GUI_X.c. 01534 * Note that a lot if not all of these are not required in most target 01535 * systems. 01536 * For this module, samples are available for configurations 01537 * with or without operating system. 01538 */ 01539 // 01540 // Configuration 01541 // 01542 void GUI_X_Config(void); 01543 void GUI_X_Init (void); 01544 01545 // 01546 // Timing routines 01547 // 01548 GUI_TIMER_TIME GUI_X_GetTime(void); 01549 void GUI_X_Delay (int Period); 01550 01551 // 01552 // Multitask routines - required only if multitasking is used (#define GUI_OS 1) 01553 // 01554 void GUI_X_Unlock (void); 01555 void GUI_X_Lock (void); 01556 U32 GUI_X_GetTaskId(void); 01557 void GUI_X_InitOS (void); 01558 01559 // 01560 // Event driving (optional with multitasking) 01561 // 01562 void GUI_X_ExecIdle (void); 01563 void GUI_X_WaitEvent (void); 01564 void GUI_X_WaitEventTimed(int Period); 01565 void GUI_X_SignalEvent (void); 01566 01567 // 01568 // Recording (logs/warnings and errors) - required only for higher levels 01569 // 01570 void GUI_X_Log (const char * s); 01571 void GUI_X_Warn (const char * s); 01572 void GUI_X_ErrorOut(const char * s); 01573 01574 /********************************************************************* 01575 * 01576 * Constants for fonts and bitmaps 01577 */ 01578 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE4; 01579 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE4Ex; 01580 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE8; 01581 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE8Ex; 01582 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE16; 01583 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE16Ex; 01584 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEM16; 01585 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEM16Ex; 01586 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE32; 01587 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLE32Ex; 01588 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsRLEAlpha; 01589 01590 extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_12; 01591 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_12; 01592 extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_12_1; 01593 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_12_1; 01594 extern const GUI_BITMAP_METHODS GUI_BitmapMethods444_16; 01595 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM444_16; 01596 extern const GUI_BITMAP_METHODS GUI_BitmapMethods555; 01597 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM555; 01598 extern const GUI_BITMAP_METHODS GUI_BitmapMethods565; 01599 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM565; 01600 extern const GUI_BITMAP_METHODS GUI_BitmapMethods24; 01601 extern const GUI_BITMAP_METHODS GUI_BitmapMethods888; 01602 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM888; 01603 extern const GUI_BITMAP_METHODS GUI_BitmapMethods8888; 01604 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsM8888I; 01605 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsA565; 01606 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsAM565; 01607 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsA555; 01608 extern const GUI_BITMAP_METHODS GUI_BitmapMethodsAM555; 01609 01610 #define GUI_COMPRESS_RLE4 0 01611 #define GUI_COMPRESS_RLE8 0 01612 01613 #define GUI_DRAW_RLE4 &GUI_BitmapMethodsRLE4 /* Method table ! */ 01614 #define GUI_DRAW_RLE8 &GUI_BitmapMethodsRLE8 /* Method table ! */ 01615 #define GUI_DRAW_RLE16 &GUI_BitmapMethodsRLE16 /* Method table ! */ 01616 #define GUI_DRAW_RLEM16 &GUI_BitmapMethodsRLEM16 /* Method table ! */ 01617 #define GUI_DRAW_RLE32 &GUI_BitmapMethodsRLE32 /* Method table ! */ 01618 #define GUI_DRAW_RLEALPHA &GUI_BitmapMethodsRLEAlpha /* Method table ! */ 01619 01620 #define GUI_DRAW_BMP444_12 &GUI_BitmapMethods444_12 /* Method table ! */ 01621 #define GUI_DRAW_BMPM444_12 &GUI_BitmapMethodsM444_12 /* Method table ! */ 01622 #define GUI_DRAW_BMP444_12_1 &GUI_BitmapMethods444_12_1 /* Method table ! */ 01623 #define GUI_DRAW_BMPM444_12_1 &GUI_BitmapMethodsM444_12_1 /* Method table ! */ 01624 #define GUI_DRAW_BMP444_16 &GUI_BitmapMethods444_16 /* Method table ! */ 01625 #define GUI_DRAW_BMPM444_16 &GUI_BitmapMethodsM444_16 /* Method table ! */ 01626 #define GUI_DRAW_BMP555 &GUI_BitmapMethods555 /* Method table ! */ 01627 #define GUI_DRAW_BMPM555 &GUI_BitmapMethodsM555 /* Method table ! */ 01628 #define GUI_DRAW_BMP565 &GUI_BitmapMethods565 /* Method table ! */ 01629 #define GUI_DRAW_BMPM565 &GUI_BitmapMethodsM565 /* Method table ! */ 01630 #define GUI_DRAW_BMP24 &GUI_BitmapMethods24 /* Method table ! */ 01631 #define GUI_DRAW_BMP888 &GUI_BitmapMethods888 /* Method table ! */ 01632 #define GUI_DRAW_BMPM888 &GUI_BitmapMethodsM888 /* Method table ! */ 01633 #define GUI_DRAW_BMP8888 &GUI_BitmapMethods8888 /* Method table ! */ 01634 #define GUI_DRAW_BMPM8888I &GUI_BitmapMethodsM8888I /* Method table ! */ 01635 #define GUI_DRAW_BMPA555 &GUI_BitmapMethodsA555 /* Method table ! */ 01636 #define GUI_DRAW_BMPAM555 &GUI_BitmapMethodsAM555 /* Method table ! */ 01637 #define GUI_DRAW_BMPA565 &GUI_BitmapMethodsA565 /* Method table ! */ 01638 #define GUI_DRAW_BMPAM565 &GUI_BitmapMethodsAM565 /* Method table ! */ 01639 01640 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop; 01641 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_Ext; 01642 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_Frm; 01643 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA2; 01644 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA4; 01645 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA2_EXT; 01646 extern const tGUI_SIF_APIList GUI_SIF_APIList_Prop_AA4_EXT; 01647 01648 extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop; 01649 extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_Ext; 01650 extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_Frm; 01651 extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_AA2_Ext; 01652 extern const tGUI_XBF_APIList GUI_XBF_APIList_Prop_AA4_Ext; 01653 01654 /********************************************************************* 01655 * 01656 * GUI_KEY_... 01657 * 01658 * These ID values are basically meant to be used with widgets 01659 * Note that we have chosen the values to be close to existing 01660 * "standards", so do not change them unless forced to. 01661 * 01662 */ 01663 #define GUI_KEY_BACKSPACE 8 /* ASCII: BACKSPACE Crtl-H */ 01664 #define GUI_KEY_TAB 9 /* ASCII: TAB Crtl-I */ 01665 #define GUI_KEY_BACKTAB 10 01666 #define GUI_KEY_ENTER 13 /* ASCII: ENTER Crtl-M */ 01667 #define GUI_KEY_LEFT 16 01668 #define GUI_KEY_UP 17 01669 #define GUI_KEY_RIGHT 18 01670 #define GUI_KEY_DOWN 19 01671 #define GUI_KEY_HOME 23 01672 #define GUI_KEY_END 24 01673 #define GUI_KEY_SHIFT 25 01674 #define GUI_KEY_CONTROL 26 01675 #define GUI_KEY_ESCAPE 27 /* ASCII: ESCAPE 0x1b */ 01676 #define GUI_KEY_INSERT 29 01677 #define GUI_KEY_DELETE 30 01678 #define GUI_KEY_SPACE 32 01679 #define GUI_KEY_PGUP 33 01680 #define GUI_KEY_PGDOWN 34 01681 01682 #define GUI_KEY_F1 40 01683 #define GUI_KEY_F2 41 01684 01685 /********************************************************************* 01686 * 01687 * Dialog item IDs 01688 * 01689 * The IDs below are arbitrary values. They just have to be unique 01690 * within the dialog. 01691 * 01692 * If you use your own Ids, we recommend to use values above GUI_ID_USER. 01693 */ 01694 #define GUI_ID_OK 1 01695 #define GUI_ID_CANCEL 2 01696 #define GUI_ID_YES 3 01697 #define GUI_ID_NO 4 01698 #define GUI_ID_CLOSE 5 01699 #define GUI_ID_HELP 6 01700 #define GUI_ID_MAXIMIZE 7 01701 #define GUI_ID_MINIMIZE 8 01702 01703 #define GUI_ID_VSCROLL 0xFE 01704 #define GUI_ID_HSCROLL 0xFF 01705 01706 #define GUI_ID_EDIT0 0x100 01707 #define GUI_ID_EDIT1 0x101 01708 #define GUI_ID_EDIT2 0x102 01709 #define GUI_ID_EDIT3 0x103 01710 #define GUI_ID_EDIT4 0x104 01711 #define GUI_ID_EDIT5 0x105 01712 #define GUI_ID_EDIT6 0x106 01713 #define GUI_ID_EDIT7 0x107 01714 #define GUI_ID_EDIT8 0x108 01715 #define GUI_ID_EDIT9 0x109 01716 01717 #define GUI_ID_LISTBOX0 0x110 01718 #define GUI_ID_LISTBOX1 0x111 01719 #define GUI_ID_LISTBOX2 0x112 01720 #define GUI_ID_LISTBOX3 0x113 01721 #define GUI_ID_LISTBOX4 0x114 01722 #define GUI_ID_LISTBOX5 0x115 01723 #define GUI_ID_LISTBOX6 0x116 01724 #define GUI_ID_LISTBOX7 0x117 01725 #define GUI_ID_LISTBOX8 0x118 01726 #define GUI_ID_LISTBOX9 0x119 01727 01728 #define GUI_ID_CHECK0 0x120 01729 #define GUI_ID_CHECK1 0x121 01730 #define GUI_ID_CHECK2 0x122 01731 #define GUI_ID_CHECK3 0x123 01732 #define GUI_ID_CHECK4 0x124 01733 #define GUI_ID_CHECK5 0x125 01734 #define GUI_ID_CHECK6 0x126 01735 #define GUI_ID_CHECK7 0x127 01736 #define GUI_ID_CHECK8 0x128 01737 #define GUI_ID_CHECK9 0x129 01738 01739 #define GUI_ID_SLIDER0 0x130 01740 #define GUI_ID_SLIDER1 0x131 01741 #define GUI_ID_SLIDER2 0x132 01742 #define GUI_ID_SLIDER3 0x133 01743 #define GUI_ID_SLIDER4 0x134 01744 #define GUI_ID_SLIDER5 0x135 01745 #define GUI_ID_SLIDER6 0x136 01746 #define GUI_ID_SLIDER7 0x137 01747 #define GUI_ID_SLIDER8 0x138 01748 #define GUI_ID_SLIDER9 0x139 01749 01750 #define GUI_ID_SCROLLBAR0 0x140 01751 #define GUI_ID_SCROLLBAR1 0x141 01752 #define GUI_ID_SCROLLBAR2 0x142 01753 #define GUI_ID_SCROLLBAR3 0x143 01754 01755 #define GUI_ID_RADIO0 0x150 01756 #define GUI_ID_RADIO1 0x151 01757 #define GUI_ID_RADIO2 0x152 01758 #define GUI_ID_RADIO3 0x153 01759 #define GUI_ID_RADIO4 0x154 01760 #define GUI_ID_RADIO5 0x155 01761 #define GUI_ID_RADIO6 0x156 01762 #define GUI_ID_RADIO7 0x157 01763 01764 #define GUI_ID_TEXT0 0x160 01765 #define GUI_ID_TEXT1 0x161 01766 #define GUI_ID_TEXT2 0x162 01767 #define GUI_ID_TEXT3 0x163 01768 #define GUI_ID_TEXT4 0x164 01769 #define GUI_ID_TEXT5 0x165 01770 #define GUI_ID_TEXT6 0x166 01771 #define GUI_ID_TEXT7 0x167 01772 #define GUI_ID_TEXT8 0x168 01773 #define GUI_ID_TEXT9 0x169 01774 01775 #define GUI_ID_BUTTON0 0x170 01776 #define GUI_ID_BUTTON1 0x171 01777 #define GUI_ID_BUTTON2 0x172 01778 #define GUI_ID_BUTTON3 0x173 01779 #define GUI_ID_BUTTON4 0x174 01780 #define GUI_ID_BUTTON5 0x175 01781 #define GUI_ID_BUTTON6 0x176 01782 #define GUI_ID_BUTTON7 0x177 01783 #define GUI_ID_BUTTON8 0x178 01784 #define GUI_ID_BUTTON9 0x179 01785 01786 #define GUI_ID_DROPDOWN0 0x180 01787 #define GUI_ID_DROPDOWN1 0x181 01788 #define GUI_ID_DROPDOWN2 0x182 01789 #define GUI_ID_DROPDOWN3 0x183 01790 01791 #define GUI_ID_MULTIEDIT0 0x190 01792 #define GUI_ID_MULTIEDIT1 0x191 01793 #define GUI_ID_MULTIEDIT2 0x192 01794 #define GUI_ID_MULTIEDIT3 0x193 01795 01796 #define GUI_ID_LISTVIEW0 0x200 01797 #define GUI_ID_LISTVIEW1 0x201 01798 #define GUI_ID_LISTVIEW2 0x202 01799 #define GUI_ID_LISTVIEW3 0x203 01800 01801 #define GUI_ID_PROGBAR0 0x210 01802 #define GUI_ID_PROGBAR1 0x211 01803 #define GUI_ID_PROGBAR2 0x212 01804 #define GUI_ID_PROGBAR3 0x213 01805 01806 #define GUI_ID_GRAPH0 0x220 01807 #define GUI_ID_GRAPH1 0x221 01808 #define GUI_ID_GRAPH2 0x222 01809 #define GUI_ID_GRAPH3 0x223 01810 01811 #define GUI_ID_MULTIPAGE0 0x230 01812 #define GUI_ID_MULTIPAGE1 0x231 01813 #define GUI_ID_MULTIPAGE2 0x232 01814 #define GUI_ID_MULTIPAGE3 0x233 01815 01816 #define GUI_ID_TREEVIEW0 0x240 01817 #define GUI_ID_TREEVIEW1 0x241 01818 #define GUI_ID_TREEVIEW2 0x242 01819 #define GUI_ID_TREEVIEW3 0x243 01820 01821 #define GUI_ID_ICONVIEW0 0x250 01822 #define GUI_ID_ICONVIEW1 0x251 01823 #define GUI_ID_ICONVIEW2 0x252 01824 #define GUI_ID_ICONVIEW3 0x253 01825 01826 #define GUI_ID_LISTWHEEL0 0x260 01827 #define GUI_ID_LISTWHEEL1 0x261 01828 #define GUI_ID_LISTWHEEL2 0x262 01829 #define GUI_ID_LISTWHEEL3 0x263 01830 01831 #define GUI_ID_IMAGE0 0x270 01832 #define GUI_ID_IMAGE1 0x271 01833 #define GUI_ID_IMAGE2 0x272 01834 #define GUI_ID_IMAGE3 0x273 01835 #define GUI_ID_IMAGE4 0x274 01836 #define GUI_ID_IMAGE5 0x275 01837 #define GUI_ID_IMAGE6 0x276 01838 #define GUI_ID_IMAGE7 0x277 01839 #define GUI_ID_IMAGE8 0x278 01840 #define GUI_ID_IMAGE9 0x279 01841 01842 #define GUI_ID_SPINBOX0 0x280 01843 #define GUI_ID_SPINBOX1 0x281 01844 #define GUI_ID_SPINBOX2 0x282 01845 #define GUI_ID_SPINBOX3 0x283 01846 #define GUI_ID_SPINBOX4 0x284 01847 #define GUI_ID_SPINBOX5 0x285 01848 #define GUI_ID_SPINBOX6 0x286 01849 #define GUI_ID_SPINBOX7 0x287 01850 #define GUI_ID_SPINBOX8 0x288 01851 #define GUI_ID_SPINBOX9 0x289 01852 01853 #define GUI_ID_CALENDAR0 0x290 01854 01855 #define GUI_ID_KNOB0 0x300 01856 #define GUI_ID_KNOB1 0x301 01857 #define GUI_ID_KNOB2 0x302 01858 #define GUI_ID_KNOB3 0x303 01859 #define GUI_ID_KNOB4 0x304 01860 #define GUI_ID_KNOB5 0x305 01861 #define GUI_ID_KNOB6 0x306 01862 #define GUI_ID_KNOB7 0x307 01863 #define GUI_ID_KNOB8 0x308 01864 #define GUI_ID_KNOB9 0x309 01865 01866 #define GUI_ID_SWIPELIST0 0x320 01867 #define GUI_ID_SWIPELIST1 0x321 01868 #define GUI_ID_SWIPELIST2 0x322 01869 01870 #define GUI_ID_USER 0x800 01871 01872 /********************************************************************* 01873 * 01874 * Mouse buttons 01875 */ 01876 #define GUI_LBUTTON (1 << 0) /* Left button */ 01877 #define GUI_RBUTTON (1 << 1) /* Right button */ 01878 #define GUI_MBUTTON (1 << 2) /* Middle button */ 01879 #define GUI_DBUTTON (1 << 7) /* Double-click button */ 01880 01881 /********************************************************************* 01882 * 01883 * Text styles 01884 */ 01885 #define GUI_TS_NORMAL (0) 01886 #define GUI_TS_UNDERLINE (1 << 0) 01887 #define GUI_TS_STRIKETHRU (1 << 1) 01888 #define GUI_TS_OVERLINE (1 << 2) 01889 01890 /********************************************************************* 01891 * 01892 * Line styles 01893 */ 01894 #define GUI_LS_SOLID (0) 01895 #define GUI_LS_DASH (1) 01896 #define GUI_LS_DOT (2) 01897 #define GUI_LS_DASHDOT (3) 01898 #define GUI_LS_DASHDOTDOT (4) 01899 01900 /********************************************************************* 01901 * 01902 * Pen shapes 01903 */ 01904 #define GUI_PS_ROUND (0) 01905 #define GUI_PS_FLAT (1) 01906 #define GUI_PS_SQUARE (2) 01907 01908 /********************************************************************* 01909 * 01910 * Standard colors 01911 */ 01912 #define GUI_INVALID_COLOR ((((U32)GUI_TRANS_BYTE) << 24) | 0x12345678ul) /* Invalid color (transparency + determined color) */ 01913 01914 #if (GUI_USE_ARGB) 01915 #define GUI_MAKE_COLOR(ABGR) (((((U32)ABGR) & 0xFF000000ul) ^ 0xFF000000ul) | ((((U32)ABGR) & 0x00FF0000ul) >> 16) | (((U32)ABGR) & 0x0000FF00ul) | ((((U32)ABGR) & 0x000000FFul) << 16)) 01916 #define GUI_MAKE_TRANS(Alpha) (255 - (Alpha)) 01917 #else 01918 #define GUI_MAKE_COLOR(ABGR) (ABGR) 01919 #define GUI_MAKE_TRANS(Alpha) (Alpha) 01920 #endif 01921 01922 #if (GUI_USE_ARGB) 01923 #define GUI_TRANS_BYTE 0x00 01924 #else 01925 #define GUI_TRANS_BYTE 0xFF 01926 #endif 01927 01928 #define GUI_BLUE GUI_MAKE_COLOR(0x00FF0000) 01929 #define GUI_GREEN GUI_MAKE_COLOR(0x0000FF00) 01930 #define GUI_RED GUI_MAKE_COLOR(0x000000FF) 01931 #define GUI_CYAN GUI_MAKE_COLOR(0x00FFFF00) 01932 #define GUI_MAGENTA GUI_MAKE_COLOR(0x00FF00FF) 01933 #define GUI_YELLOW GUI_MAKE_COLOR(0x0000FFFF) 01934 #define GUI_LIGHTBLUE GUI_MAKE_COLOR(0x00FF8080) 01935 #define GUI_LIGHTGREEN GUI_MAKE_COLOR(0x0080FF80) 01936 #define GUI_LIGHTRED GUI_MAKE_COLOR(0x008080FF) 01937 #define GUI_LIGHTCYAN GUI_MAKE_COLOR(0x00FFFF80) 01938 #define GUI_LIGHTMAGENTA GUI_MAKE_COLOR(0x00FF80FF) 01939 #define GUI_LIGHTYELLOW GUI_MAKE_COLOR(0x0080FFFF) 01940 #define GUI_DARKBLUE GUI_MAKE_COLOR(0x00800000) 01941 #define GUI_DARKGREEN GUI_MAKE_COLOR(0x00008000) 01942 #define GUI_DARKRED GUI_MAKE_COLOR(0x00000080) 01943 #define GUI_DARKCYAN GUI_MAKE_COLOR(0x00808000) 01944 #define GUI_DARKMAGENTA GUI_MAKE_COLOR(0x00800080) 01945 #define GUI_DARKYELLOW GUI_MAKE_COLOR(0x00008080) 01946 #define GUI_WHITE GUI_MAKE_COLOR(0x00FFFFFF) 01947 #define GUI_LIGHTGRAY GUI_MAKE_COLOR(0x00D3D3D3) 01948 #define GUI_GRAY GUI_MAKE_COLOR(0x00808080) 01949 #define GUI_DARKGRAY GUI_MAKE_COLOR(0x00404040) 01950 #define GUI_BLACK GUI_MAKE_COLOR(0x00000000) 01951 #define GUI_BROWN GUI_MAKE_COLOR(0x002A2AA5) 01952 #define GUI_ORANGE GUI_MAKE_COLOR(0x0000A5FF) 01953 #define GUI_TRANSPARENT GUI_MAKE_COLOR(0xFF000000) 01954 01955 #define GUI_GRAY_3F GUI_MAKE_COLOR(0x003F3F3F) 01956 #define GUI_GRAY_50 GUI_MAKE_COLOR(0x00505050) 01957 #define GUI_GRAY_55 GUI_MAKE_COLOR(0x00555555) 01958 #define GUI_GRAY_60 GUI_MAKE_COLOR(0x00606060) 01959 #define GUI_GRAY_7C GUI_MAKE_COLOR(0x007C7C7C) 01960 #define GUI_GRAY_9A GUI_MAKE_COLOR(0x009A9A9A) 01961 #define GUI_GRAY_AA GUI_MAKE_COLOR(0x00AAAAAA) 01962 #define GUI_GRAY_C0 GUI_MAKE_COLOR(0x00C0C0C0) 01963 #define GUI_GRAY_C8 GUI_MAKE_COLOR(0x00C8C8C8) 01964 #define GUI_GRAY_D0 GUI_MAKE_COLOR(0x00D0D0D0) 01965 #define GUI_GRAY_E7 GUI_MAKE_COLOR(0x00E7E7E7) 01966 #define GUI_BLUE_98 GUI_MAKE_COLOR(0x00980000) 01967 01968 /********************************************************************* 01969 * 01970 * MultiTouch-Support 01971 */ 01972 // 01973 // Defines 01974 // 01975 #define GUI_MTOUCH_FLAG_DOWN (1 << 0) 01976 #define GUI_MTOUCH_FLAG_MOVE (1 << 1) 01977 #define GUI_MTOUCH_FLAG_UP (1 << 2) 01978 01979 // 01980 // Variables 01981 // 01982 extern T_GUI_MTOUCH_STOREEVENT GUI_MTOUCH__pStoreEvent; 01983 01984 // 01985 // Interface 01986 // 01987 void GUI_MTOUCH_Enable (int OnOff); 01988 int GUI_MTOUCH_GetEvent (GUI_MTOUCH_EVENT * pEvent); 01989 int GUI_MTOUCH_GetTouchInput (GUI_MTOUCH_EVENT * pEvent, GUI_MTOUCH_INPUT * pBuffer, unsigned Index); 01990 int GUI_MTOUCH_IsEmpty (void); 01991 void GUI_MTOUCH_SetOrientation (int Orientation); 01992 void GUI_MTOUCH_SetOrientationEx(int Orientation, int LayerIndex); 01993 void GUI_MTOUCH_StoreEvent (GUI_MTOUCH_EVENT * pEvent, GUI_MTOUCH_INPUT * pInput); 01994 01995 /********************************************************************* 01996 * 01997 * Coordinates used in touch driver 01998 */ 01999 #define GUI_COORD_X 0 02000 #define GUI_COORD_Y 1 02001 02002 /********************************************************************* 02003 * 02004 * Addresses of standard fonts 02005 */ 02006 // 02007 // Proportional fonts 02008 // 02009 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8_ASCII, GUI_Font8_1; 02010 extern GUI_CONST_STORAGE GUI_FONT GUI_Font10S_ASCII, GUI_Font10S_1; 02011 extern GUI_CONST_STORAGE GUI_FONT GUI_Font10_ASCII, GUI_Font10_1; 02012 extern GUI_CONST_STORAGE GUI_FONT GUI_Font13_ASCII, GUI_Font13_1; 02013 extern GUI_CONST_STORAGE GUI_FONT GUI_Font13B_ASCII, GUI_Font13B_1; 02014 extern GUI_CONST_STORAGE GUI_FONT GUI_Font13H_ASCII, GUI_Font13H_1; 02015 extern GUI_CONST_STORAGE GUI_FONT GUI_Font13HB_ASCII, GUI_Font13HB_1; 02016 extern GUI_CONST_STORAGE GUI_FONT GUI_Font16_ASCII, GUI_Font16_1, GUI_Font16_HK, GUI_Font16_1HK; 02017 extern GUI_CONST_STORAGE GUI_FONT GUI_Font16B_ASCII, GUI_Font16B_1; 02018 extern GUI_CONST_STORAGE GUI_FONT GUI_Font20_ASCII, GUI_Font20_1; 02019 extern GUI_CONST_STORAGE GUI_FONT GUI_Font20B_ASCII, GUI_Font20B_1; 02020 extern GUI_CONST_STORAGE GUI_FONT GUI_Font24_ASCII, GUI_Font24_1; 02021 extern GUI_CONST_STORAGE GUI_FONT GUI_Font24B_ASCII, GUI_Font24B_1; 02022 extern GUI_CONST_STORAGE GUI_FONT GUI_Font32_ASCII, GUI_Font32_1; 02023 extern GUI_CONST_STORAGE GUI_FONT GUI_Font32B_ASCII, GUI_Font32B_1; 02024 02025 // 02026 // Proportional fonts, framed 02027 // 02028 extern GUI_CONST_STORAGE GUI_FONT GUI_Font20F_ASCII; 02029 02030 // 02031 // Monospaced 02032 // 02033 extern GUI_CONST_STORAGE GUI_FONT GUI_Font4x6; 02034 extern GUI_CONST_STORAGE GUI_FONT GUI_Font6x8, GUI_Font6x9; 02035 extern GUI_CONST_STORAGE GUI_FONT GUI_Font6x8_ASCII, GUI_Font6x8_1; 02036 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x8, GUI_Font8x9; 02037 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x8_ASCII, GUI_Font8x8_1; 02038 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x10_ASCII; 02039 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x12_ASCII; 02040 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x13_ASCII, GUI_Font8x13_1; 02041 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x15B_ASCII, GUI_Font8x15B_1; 02042 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16, GUI_Font8x17, GUI_Font8x18; 02043 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16x1x2, GUI_Font8x16x2x2, GUI_Font8x16x3x3; 02044 extern GUI_CONST_STORAGE GUI_FONT GUI_Font8x16_ASCII, GUI_Font8x16_1; 02045 02046 // 02047 // Digits 02048 // 02049 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD24x32; 02050 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD32; 02051 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD36x48; 02052 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD48; 02053 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD48x64; 02054 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD64; 02055 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD60x80; 02056 extern GUI_CONST_STORAGE GUI_FONT GUI_FontD80; 02057 02058 // 02059 // Comic fonts 02060 // 02061 extern GUI_CONST_STORAGE GUI_FONT GUI_FontComic18B_ASCII, GUI_FontComic18B_1; 02062 extern GUI_CONST_STORAGE GUI_FONT GUI_FontComic24B_ASCII, GUI_FontComic24B_1; 02063 02064 /********************************************************************* 02065 * 02066 * Macros to be used 02067 */ 02068 // 02069 // Proportional fonts 02070 // 02071 #define GUI_FONT_8_ASCII &GUI_Font8_ASCII 02072 #define GUI_FONT_8_1 &GUI_Font8_1 02073 #define GUI_FONT_10S_ASCII &GUI_Font10S_ASCII 02074 #define GUI_FONT_10S_1 &GUI_Font10S_1 02075 #define GUI_FONT_10_ASCII &GUI_Font10_ASCII 02076 #define GUI_FONT_10_1 &GUI_Font10_1 02077 #define GUI_FONT_13_ASCII &GUI_Font13_ASCII 02078 #define GUI_FONT_13_1 &GUI_Font13_1 02079 #define GUI_FONT_13B_ASCII &GUI_Font13B_ASCII 02080 #define GUI_FONT_13B_1 &GUI_Font13B_1 02081 #define GUI_FONT_13H_ASCII &GUI_Font13H_ASCII 02082 #define GUI_FONT_13H_1 &GUI_Font13H_1 02083 #define GUI_FONT_13HB_ASCII &GUI_Font13HB_ASCII 02084 #define GUI_FONT_13HB_1 &GUI_Font13HB_1 02085 #define GUI_FONT_16_ASCII &GUI_Font16_ASCII 02086 #define GUI_FONT_16_1 &GUI_Font16_1 02087 #define GUI_FONT_16_HK &GUI_Font16_HK 02088 #define GUI_FONT_16_1HK &GUI_Font16_1HK 02089 #define GUI_FONT_16B_ASCII &GUI_Font16B_ASCII 02090 #define GUI_FONT_16B_1 &GUI_Font16B_1 02091 #define GUI_FONT_20_ASCII &GUI_Font20_ASCII 02092 #define GUI_FONT_20_1 &GUI_Font20_1 02093 #define GUI_FONT_20B_ASCII &GUI_Font20B_ASCII 02094 #define GUI_FONT_20B_1 &GUI_Font20B_1 02095 #define GUI_FONT_24_ASCII &GUI_Font24_ASCII 02096 #define GUI_FONT_24_1 &GUI_Font24_1 02097 #define GUI_FONT_24B_ASCII &GUI_Font24B_ASCII 02098 #define GUI_FONT_24B_1 &GUI_Font24B_1 02099 #define GUI_FONT_32_ASCII &GUI_Font32_ASCII 02100 #define GUI_FONT_32_1 &GUI_Font32_1 02101 #define GUI_FONT_32B_ASCII &GUI_Font32B_ASCII 02102 #define GUI_FONT_32B_1 &GUI_Font32B_1 02103 02104 // 02105 // Proportional fonts, framed 02106 // 02107 #define GUI_FONT_20F_ASCII &GUI_Font20F_ASCII 02108 02109 // 02110 // Monospaced 02111 // 02112 #define GUI_FONT_4X6 &GUI_Font4x6 02113 #define GUI_FONT_6X8 &GUI_Font6x8 02114 #define GUI_FONT_6X8_ASCII &GUI_Font6x8_ASCII 02115 #define GUI_FONT_6X8_1 &GUI_Font6x8_1 02116 #define GUI_FONT_6X9 &GUI_Font6x9 02117 #define GUI_FONT_8X8 &GUI_Font8x8 02118 #define GUI_FONT_8X8_ASCII &GUI_Font8x8_ASCII 02119 #define GUI_FONT_8X8_1 &GUI_Font8x8_1 02120 #define GUI_FONT_8X9 &GUI_Font8x9 02121 #define GUI_FONT_8X10_ASCII &GUI_Font8x10_ASCII 02122 #define GUI_FONT_8X12_ASCII &GUI_Font8x12_ASCII 02123 #define GUI_FONT_8X13_ASCII &GUI_Font8x13_ASCII 02124 #define GUI_FONT_8X13_1 &GUI_Font8x13_1 02125 #define GUI_FONT_8X15B_ASCII &GUI_Font8x15B_ASCII 02126 #define GUI_FONT_8X15B_1 &GUI_Font8x15B_1 02127 #define GUI_FONT_8X16 &GUI_Font8x16 02128 #define GUI_FONT_8X17 &GUI_Font8x17 02129 #define GUI_FONT_8X18 &GUI_Font8x18 02130 #define GUI_FONT_8X16X1X2 &GUI_Font8x16x1x2 02131 #define GUI_FONT_8X16X2X2 &GUI_Font8x16x2x2 02132 #define GUI_FONT_8X16X3X3 &GUI_Font8x16x3x3 02133 #define GUI_FONT_8X16_ASCII &GUI_Font8x16_ASCII 02134 #define GUI_FONT_8X16_1 &GUI_Font8x16_1 02135 02136 // 02137 // Digits 02138 // 02139 #define GUI_FONT_D24X32 &GUI_FontD24x32 02140 #define GUI_FONT_D32 &GUI_FontD32 02141 #define GUI_FONT_D36X48 &GUI_FontD36x48 02142 #define GUI_FONT_D48 &GUI_FontD48 02143 #define GUI_FONT_D48X64 &GUI_FontD48x64 02144 #define GUI_FONT_D64 &GUI_FontD64 02145 #define GUI_FONT_D60X80 &GUI_FontD60x80 02146 #define GUI_FONT_D80 &GUI_FontD80 02147 02148 // 02149 // Comic fonts 02150 // 02151 #define GUI_FONT_COMIC18B_ASCII &GUI_FontComic18B_ASCII 02152 #define GUI_FONT_COMIC18B_1 &GUI_FontComic18B_1 02153 #define GUI_FONT_COMIC24B_ASCII &GUI_FontComic24B_ASCII 02154 #define GUI_FONT_COMIC24B_1 &GUI_FontComic24B_1 02155 02156 /********************************************************************* 02157 * 02158 * Text and drawing modes 02159 * 02160 * These defines come in two flavors: the long version (.._DRAWMODE_..) 02161 * and the short ones (.._DM_..). They are identical, feel free to use 02162 * which ever one you like best. 02163 */ 02164 #define GUI_DRAWMODE_NORMAL LCD_DRAWMODE_NORMAL 02165 #define GUI_DRAWMODE_XOR LCD_DRAWMODE_XOR 02166 #define GUI_DRAWMODE_TRANS LCD_DRAWMODE_TRANS 02167 #define GUI_DRAWMODE_REV LCD_DRAWMODE_REV 02168 #define GUI_DM_NORMAL LCD_DRAWMODE_NORMAL 02169 #define GUI_DM_XOR LCD_DRAWMODE_XOR 02170 #define GUI_DM_TRANS LCD_DRAWMODE_TRANS 02171 #define GUI_DM_REV LCD_DRAWMODE_REV 02172 02173 #define GUI_TEXTMODE_NORMAL LCD_DRAWMODE_NORMAL 02174 #define GUI_TEXTMODE_XOR LCD_DRAWMODE_XOR 02175 #define GUI_TEXTMODE_TRANS LCD_DRAWMODE_TRANS 02176 #define GUI_TEXTMODE_REV LCD_DRAWMODE_REV 02177 #define GUI_TM_NORMAL LCD_DRAWMODE_NORMAL 02178 #define GUI_TM_XOR LCD_DRAWMODE_XOR 02179 #define GUI_TM_TRANS LCD_DRAWMODE_TRANS 02180 #define GUI_TM_REV LCD_DRAWMODE_REV 02181 02182 /* Text alignment flags, horizontal */ 02183 #define GUI_TA_LEFT (0) 02184 #define GUI_TA_HORIZONTAL (3 << 0) 02185 #define GUI_TA_RIGHT (1 << 0) 02186 #define GUI_TA_CENTER (2 << 0) 02187 #define GUI_TA_HCENTER GUI_TA_CENTER /* easier to remember :-) */ 02188 02189 /* Text alignment flags, vertical */ 02190 #define GUI_TA_TOP (0) 02191 #define GUI_TA_VERTICAL (3 << 2) 02192 #define GUI_TA_BOTTOM (1 << 2) 02193 #define GUI_TA_BASELINE (2 << 2) 02194 #define GUI_TA_VCENTER (3 << 2) 02195 02196 /* General alignment flags */ 02197 #define GUI_ALIGN_LEFT GUI_TA_LEFT 02198 #define GUI_ALIGN_HCENTER GUI_TA_HCENTER 02199 #define GUI_ALIGN_RIGHT GUI_TA_RIGHT 02200 #define GUI_ALIGN_TOP GUI_TA_TOP 02201 #define GUI_ALIGN_VCENTER GUI_TA_VCENTER 02202 #define GUI_ALIGN_BOTTOM GUI_TA_BOTTOM 02203 #define GUI_ALIGN_HORIZONTAL GUI_TA_HORIZONTAL 02204 #define GUI_ALIGN_VERTICAL GUI_TA_VERTICAL 02205 02206 /* General orientation flags */ 02207 #define GUI_MIRROR_X (1 << 0) 02208 #define GUI_MIRROR_Y (1 << 1) 02209 #define GUI_SWAP_XY (1 << 2) 02210 02211 #define GUI_ROTATION_0 (0) 02212 #define GUI_ROTATION_CW (GUI_MIRROR_X | GUI_SWAP_XY) 02213 #define GUI_ROTATION_180 (GUI_MIRROR_X | GUI_MIRROR_Y) 02214 #define GUI_ROTATION_CCW (GUI_MIRROR_Y | GUI_SWAP_XY) 02215 02216 /********************************************************************* 02217 * 02218 * Min/Max coordinates 02219 * 02220 * Define minimum and maximum coordinates in x and y 02221 */ 02222 #define GUI_XMIN -16383 02223 #define GUI_XMAX 16383 02224 #define GUI_YMIN -16383 02225 #define GUI_YMAX 16383 02226 02227 /********************************************************************* 02228 * 02229 * Defines for constants 02230 */ 02231 #define ________ 0x0 02232 #define _______X 0x1 02233 #define ______X_ 0x2 02234 #define ______XX 0x3 02235 #define _____X__ 0x4 02236 #define _____X_X 0x5 02237 #define _____XX_ 0x6 02238 #define _____XXX 0x7 02239 #define ____X___ 0x8 02240 #define ____X__X 0x9 02241 #define ____X_X_ 0xa 02242 #define ____X_XX 0xb 02243 #define ____XX__ 0xc 02244 #define ____XX_X 0xd 02245 #define ____XXX_ 0xe 02246 #define ____XXXX 0xf 02247 #define ___X____ 0x10 02248 #define ___X___X 0x11 02249 #define ___X__X_ 0x12 02250 #define ___X__XX 0x13 02251 #define ___X_X__ 0x14 02252 #define ___X_X_X 0x15 02253 #define ___X_XX_ 0x16 02254 #define ___X_XXX 0x17 02255 #define ___XX___ 0x18 02256 #define ___XX__X 0x19 02257 #define ___XX_X_ 0x1a 02258 #define ___XX_XX 0x1b 02259 #define ___XXX__ 0x1c 02260 #define ___XXX_X 0x1d 02261 #define ___XXXX_ 0x1e 02262 #define ___XXXXX 0x1f 02263 #define __X_____ 0x20 02264 #define __X____X 0x21 02265 #define __X___X_ 0x22 02266 #define __X___XX 0x23 02267 #define __X__X__ 0x24 02268 #define __X__X_X 0x25 02269 #define __X__XX_ 0x26 02270 #define __X__XXX 0x27 02271 #define __X_X___ 0x28 02272 #define __X_X__X 0x29 02273 #define __X_X_X_ 0x2a 02274 #define __X_X_XX 0x2b 02275 #define __X_XX__ 0x2c 02276 #define __X_XX_X 0x2d 02277 #define __X_XXX_ 0x2e 02278 #define __X_XXXX 0x2f 02279 #define __XX____ 0x30 02280 #define __XX___X 0x31 02281 #define __XX__X_ 0x32 02282 #define __XX__XX 0x33 02283 #define __XX_X__ 0x34 02284 #define __XX_X_X 0x35 02285 #define __XX_XX_ 0x36 02286 #define __XX_XXX 0x37 02287 #define __XXX___ 0x38 02288 #define __XXX__X 0x39 02289 #define __XXX_X_ 0x3a 02290 #define __XXX_XX 0x3b 02291 #define __XXXX__ 0x3c 02292 #define __XXXX_X 0x3d 02293 #define __XXXXX_ 0x3e 02294 #define __XXXXXX 0x3f 02295 #define _X______ 0x40 02296 #define _X_____X 0x41 02297 #define _X____X_ 0x42 02298 #define _X____XX 0x43 02299 #define _X___X__ 0x44 02300 #define _X___X_X 0x45 02301 #define _X___XX_ 0x46 02302 #define _X___XXX 0x47 02303 #define _X__X___ 0x48 02304 #define _X__X__X 0x49 02305 #define _X__X_X_ 0x4a 02306 #define _X__X_XX 0x4b 02307 #define _X__XX__ 0x4c 02308 #define _X__XX_X 0x4d 02309 #define _X__XXX_ 0x4e 02310 #define _X__XXXX 0x4f 02311 #define _X_X____ 0x50 02312 #define _X_X___X 0x51 02313 #define _X_X__X_ 0x52 02314 #define _X_X__XX 0x53 02315 #define _X_X_X__ 0x54 02316 #define _X_X_X_X 0x55 02317 #define _X_X_XX_ 0x56 02318 #define _X_X_XXX 0x57 02319 #define _X_XX___ 0x58 02320 #define _X_XX__X 0x59 02321 #define _X_XX_X_ 0x5a 02322 #define _X_XX_XX 0x5b 02323 #define _X_XXX__ 0x5c 02324 #define _X_XXX_X 0x5d 02325 #define _X_XXXX_ 0x5e 02326 #define _X_XXXXX 0x5f 02327 #define _XX_____ 0x60 02328 #define _XX____X 0x61 02329 #define _XX___X_ 0x62 02330 #define _XX___XX 0x63 02331 #define _XX__X__ 0x64 02332 #define _XX__X_X 0x65 02333 #define _XX__XX_ 0x66 02334 #define _XX__XXX 0x67 02335 #define _XX_X___ 0x68 02336 #define _XX_X__X 0x69 02337 #define _XX_X_X_ 0x6a 02338 #define _XX_X_XX 0x6b 02339 #define _XX_XX__ 0x6c 02340 #define _XX_XX_X 0x6d 02341 #define _XX_XXX_ 0x6e 02342 #define _XX_XXXX 0x6f 02343 #define _XXX____ 0x70 02344 #define _XXX___X 0x71 02345 #define _XXX__X_ 0x72 02346 #define _XXX__XX 0x73 02347 #define _XXX_X__ 0x74 02348 #define _XXX_X_X 0x75 02349 #define _XXX_XX_ 0x76 02350 #define _XXX_XXX 0x77 02351 #define _XXXX___ 0x78 02352 #define _XXXX__X 0x79 02353 #define _XXXX_X_ 0x7a 02354 #define _XXXX_XX 0x7b 02355 #define _XXXXX__ 0x7c 02356 #define _XXXXX_X 0x7d 02357 #define _XXXXXX_ 0x7e 02358 #define _XXXXXXX 0x7f 02359 #define X_______ 0x80 02360 #define X______X 0x81 02361 #define X_____X_ 0x82 02362 #define X_____XX 0x83 02363 #define X____X__ 0x84 02364 #define X____X_X 0x85 02365 #define X____XX_ 0x86 02366 #define X____XXX 0x87 02367 #define X___X___ 0x88 02368 #define X___X__X 0x89 02369 #define X___X_X_ 0x8a 02370 #define X___X_XX 0x8b 02371 #define X___XX__ 0x8c 02372 #define X___XX_X 0x8d 02373 #define X___XXX_ 0x8e 02374 #define X___XXXX 0x8f 02375 #define X__X____ 0x90 02376 #define X__X___X 0x91 02377 #define X__X__X_ 0x92 02378 #define X__X__XX 0x93 02379 #define X__X_X__ 0x94 02380 #define X__X_X_X 0x95 02381 #define X__X_XX_ 0x96 02382 #define X__X_XXX 0x97 02383 #define X__XX___ 0x98 02384 #define X__XX__X 0x99 02385 #define X__XX_X_ 0x9a 02386 #define X__XX_XX 0x9b 02387 #define X__XXX__ 0x9c 02388 #define X__XXX_X 0x9d 02389 #define X__XXXX_ 0x9e 02390 #define X__XXXXX 0x9f 02391 #define X_X_____ 0xa0 02392 #define X_X____X 0xa1 02393 #define X_X___X_ 0xa2 02394 #define X_X___XX 0xa3 02395 #define X_X__X__ 0xa4 02396 #define X_X__X_X 0xa5 02397 #define X_X__XX_ 0xa6 02398 #define X_X__XXX 0xa7 02399 #define X_X_X___ 0xa8 02400 #define X_X_X__X 0xa9 02401 #define X_X_X_X_ 0xaa 02402 #define X_X_X_XX 0xab 02403 #define X_X_XX__ 0xac 02404 #define X_X_XX_X 0xad 02405 #define X_X_XXX_ 0xae 02406 #define X_X_XXXX 0xaf 02407 #define X_XX____ 0xb0 02408 #define X_XX___X 0xb1 02409 #define X_XX__X_ 0xb2 02410 #define X_XX__XX 0xb3 02411 #define X_XX_X__ 0xb4 02412 #define X_XX_X_X 0xb5 02413 #define X_XX_XX_ 0xb6 02414 #define X_XX_XXX 0xb7 02415 #define X_XXX___ 0xb8 02416 #define X_XXX__X 0xb9 02417 #define X_XXX_X_ 0xba 02418 #define X_XXX_XX 0xbb 02419 #define X_XXXX__ 0xbc 02420 #define X_XXXX_X 0xbd 02421 #define X_XXXXX_ 0xbe 02422 #define X_XXXXXX 0xbf 02423 #define XX______ 0xc0 02424 #define XX_____X 0xc1 02425 #define XX____X_ 0xc2 02426 #define XX____XX 0xc3 02427 #define XX___X__ 0xc4 02428 #define XX___X_X 0xc5 02429 #define XX___XX_ 0xc6 02430 #define XX___XXX 0xc7 02431 #define XX__X___ 0xc8 02432 #define XX__X__X 0xc9 02433 #define XX__X_X_ 0xca 02434 #define XX__X_XX 0xcb 02435 #define XX__XX__ 0xcc 02436 #define XX__XX_X 0xcd 02437 #define XX__XXX_ 0xce 02438 #define XX__XXXX 0xcf 02439 #define XX_X____ 0xd0 02440 #define XX_X___X 0xd1 02441 #define XX_X__X_ 0xd2 02442 #define XX_X__XX 0xd3 02443 #define XX_X_X__ 0xd4 02444 #define XX_X_X_X 0xd5 02445 #define XX_X_XX_ 0xd6 02446 #define XX_X_XXX 0xd7 02447 #define XX_XX___ 0xd8 02448 #define XX_XX__X 0xd9 02449 #define XX_XX_X_ 0xda 02450 #define XX_XX_XX 0xdb 02451 #define XX_XXX__ 0xdc 02452 #define XX_XXX_X 0xdd 02453 #define XX_XXXX_ 0xde 02454 #define XX_XXXXX 0xdf 02455 #define XXX_____ 0xe0 02456 #define XXX____X 0xe1 02457 #define XXX___X_ 0xe2 02458 #define XXX___XX 0xe3 02459 #define XXX__X__ 0xe4 02460 #define XXX__X_X 0xe5 02461 #define XXX__XX_ 0xe6 02462 #define XXX__XXX 0xe7 02463 #define XXX_X___ 0xe8 02464 #define XXX_X__X 0xe9 02465 #define XXX_X_X_ 0xea 02466 #define XXX_X_XX 0xeb 02467 #define XXX_XX__ 0xec 02468 #define XXX_XX_X 0xed 02469 #define XXX_XXX_ 0xee 02470 #define XXX_XXXX 0xef 02471 #define XXXX____ 0xf0 02472 #define XXXX___X 0xf1 02473 #define XXXX__X_ 0xf2 02474 #define XXXX__XX 0xf3 02475 #define XXXX_X__ 0xf4 02476 #define XXXX_X_X 0xf5 02477 #define XXXX_XX_ 0xf6 02478 #define XXXX_XXX 0xf7 02479 #define XXXXX___ 0xf8 02480 #define XXXXX__X 0xf9 02481 #define XXXXX_X_ 0xfa 02482 #define XXXXX_XX 0xfb 02483 #define XXXXXX__ 0xfc 02484 #define XXXXXX_X 0xfd 02485 #define XXXXXXX_ 0xfe 02486 #define XXXXXXXX 0xff 02487 02488 /********************************************************************* 02489 * 02490 * Compatibility with older versions 02491 */ 02492 #define GUI_DispString_UC GUI_UC_DispString 02493 #define TOUCH_X_ActivateX GUI_TOUCH_X_ActivateX 02494 #define TOUCH_X_ActivateY GUI_TOUCH_X_ActivateY 02495 #define TOUCH_X_Disable GUI_TOUCH_X_Disable 02496 #define TOUCH_X_MeasureX GUI_TOUCH_X_MeasureX 02497 #define TOUCH_X_MeasureY GUI_TOUCH_X_MeasureY 02498 #define GUI_SelLayer GUI_SelectLayer 02499 #define GUI_MEMDEV_FadeDevices GUI_MEMDEV_FadeInDevices 02500 #if defined(__cplusplus) 02501 } 02502 #endif 02503 02504 #endif /* ifdef GUI_H */ 02505 02506 /*************************** End of file ****************************/
Generated on Mon Mar 4 2024 07:48:13 by 1.7.2