NuMaker emWin HMI

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GUI.h Source File

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 ****************************/