GUI.H
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:41k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUI.H
  16. Purpose     : Include file for 2DGL incl. character related routines.
  17. ---------------------------END-OF-HEADER------------------------------
  18. Attention : Do not modify this file ! If you do, you will not
  19.             be able do update to a later version of emWin !
  20. */
  21. #ifndef  GUI_H
  22. #define  GUI_H
  23. #define __EMWIN_GSC__   /* Allow "C" to find out that emWin GSC is used */
  24. #if defined(__cplusplus)
  25. extern "C" {     /* Make sure we have C-declarations in C++ programs */
  26. #endif
  27. #include "GUITYPE.H"
  28. #include "GUICONF.H"
  29. #if GUI_WINSUPPORT
  30.   #include "WM.h"
  31. #endif
  32. #define GUI_VERSION 32404
  33. /**********************************************************************
  34. *
  35. *                        Defaults for config switches
  36. *
  37. ***********************************************************************
  38. */
  39. #ifndef GUI_SUPPORT_TOUCH
  40.   #define GUI_SUPPORT_TOUCH   0
  41. #endif
  42. #ifndef GUI_SUPPORT_MOUSE
  43.   #define GUI_SUPPORT_MOUSE   0
  44. #endif
  45. #ifndef GUI_SUPPORT_MEMDEV
  46.   #define GUI_SUPPORT_MEMDEV  0
  47. #endif
  48. #ifndef GUI_SUPPORT_CURSOR
  49.   #define GUI_SUPPORT_CURSOR  GUI_SUPPORT_MOUSE
  50. #endif
  51. #ifndef GUI_OS
  52.   #define GUI_OS              0
  53. #endif
  54. #ifndef GUI_DEFAULT_FONT
  55.   #define GUI_DEFAULT_FONT    &GUI_Font6x8
  56. #endif
  57. #ifndef GUI_DEFAULT_BKCOLOR
  58.   #define GUI_DEFAULT_BKCOLOR GUI_BLACK
  59. #endif
  60. #ifndef GUI_DEFAULT_COLOR
  61.   #define GUI_DEFAULT_COLOR   GUI_WHITE
  62. #endif
  63. #ifndef GUI_SUPPORT_UNICODE
  64.   #define GUI_SUPPORT_UNICODE 0
  65. #endif
  66. /* In order to avoid warnings for undefined parameters */
  67. #ifndef GUI_USE_PARA
  68.   #ifdef __BORLANDC__
  69.     #define GUI_USE_PARA(para)
  70.   #else
  71.     #define GUI_USE_PARA(para) para=para;
  72.   #endif
  73. #endif
  74. /* GUI_FLASH allows to put constants into a special memory area
  75.    For most CPUs, this is not necessary hence the default is "".
  76.    (This makes sense for CPUs like ATMEL AT90 or 8051, where
  77.    default pointers are unable to reach ROM/FLASH memory in some
  78.    memory models)
  79. */
  80. #ifndef GUI_FLASH
  81.   #define GUI_FLASH
  82. #endif
  83. #ifndef GUI_FAR
  84.   #define GUI_FAR
  85. #endif
  86. /* Default for types */
  87. #ifndef GUI_TIMER_TIME
  88.   #define GUI_TIMER_TIME int  /* default is to use 16 bits for 16 bit CPUs,
  89.                            32 bits on 32 bit CPUs for timing */
  90. #endif
  91. #ifndef GUI_COMPATIBLE_MODE
  92.   #define GUI_COMPATIBLE_MODE 1
  93. #endif
  94. /*********************************************************************
  95. *
  96. *        Limitations for certain C51 Keil  (__C51__)
  97. *
  98. **********************************************************************
  99. */
  100. #if defined (__C51__) && GUI_SUPPORT_MEMDEV
  101.   #error __C51__ (Keil) can not support function pointers sufficiently !  -> Disable memory devices  -> GUI_SUPPORT_MEMDEV 0
  102. #endif
  103. /*********************************************************************
  104. *
  105. *        macros, function replacement
  106. *
  107. **********************************************************************
  108. */
  109. #define GUI_COUNTOF(a) (sizeof(a) / sizeof(a[0]))
  110. /************************************************************
  111. *
  112. *                    GUI_KEY_...
  113. *
  114. *************************************************************
  115. These ID values are basically meant to be used with widgets
  116. */
  117. #define GUI_KEY_BACKSPACE          8         /* ASCII: BACKSPACE Crtl-H */
  118. #define GUI_KEY_TAB                9         /* ASCII: TAB       Crtl-I */
  119. #define GUI_KEY_ENTER              13        /* ASCII: ENTER     Crtl-M */
  120. #define GUI_KEY_LEFT               16
  121. #define GUI_KEY_UP                 17
  122. #define GUI_KEY_RIGHT              18
  123. #define GUI_KEY_DOWN               19
  124. #define GUI_KEY_HOME               23
  125. #define GUI_KEY_END                24
  126. #define GUI_KEY_SHIFT              25
  127. #define GUI_KEY_CONTROL            26
  128. #define GUI_KEY_ESCAPE             27        /* ASCII: ESCAPE    0x1b   */
  129. #define GUI_KEY_INSERT             29
  130. #define GUI_KEY_DELETE             30
  131. /***************** added by scw ********************/
  132. #define GUI_KEY_0 48
  133. #define GUI_KEY_1 49
  134. #define GUI_KEY_2 50
  135. #define GUI_KEY_3 51
  136. #define GUI_KEY_4 52
  137. #define GUI_KEY_5 53
  138. #define GUI_KEY_6 54
  139. #define GUI_KEY_7 55
  140. #define GUI_KEY_8 56
  141. #define GUI_KEY_9 57
  142. /******************** end added ********************/
  143. /*********************************************************************
  144. *
  145. *       Dialog item IDs
  146. *
  147. *  The IDs below are arbitrary values. They just have to be unique
  148. *  within the dialog.
  149. *
  150. *  If you use your own Ids, we recommend to use values above GUI_ID_USER.
  151. */
  152. #define GUI_ID_OK                1
  153. #define GUI_ID_CANCEL            2
  154. #define GUI_ID_YES               3
  155. #define GUI_ID_NO                4
  156. #define GUI_ID_CLOSE             5
  157. #define GUI_ID_HELP              6
  158. #define GUI_ID_VSCROLL  0xFE
  159. #define GUI_ID_HSCROLL  0xFF
  160. #define GUI_ID_EDIT0    0x100
  161. #define GUI_ID_EDIT1    0x101
  162. #define GUI_ID_EDIT2    0x102
  163. #define GUI_ID_EDIT3    0x103
  164. #define GUI_ID_EDIT4    0x104
  165. #define GUI_ID_EDIT5    0x105
  166. #define GUI_ID_EDIT6    0x106
  167. #define GUI_ID_EDIT7    0x107
  168. #define GUI_ID_EDIT8    0x108
  169. #define GUI_ID_EDIT9    0x109
  170. #define GUI_ID_LISTBOX0 0x110
  171. #define GUI_ID_LISTBOX1 0x111
  172. #define GUI_ID_LISTBOX2 0x112
  173. #define GUI_ID_LISTBOX3 0x113
  174. #define GUI_ID_LISTBOX4 0x114
  175. #define GUI_ID_LISTBOX5 0x115
  176. #define GUI_ID_LISTBOX6 0x116
  177. #define GUI_ID_LISTBOX7 0x117
  178. #define GUI_ID_LISTBOX8 0x118
  179. #define GUI_ID_LISTBOX9 0x119
  180. #define GUI_ID_CHECK0   0x120
  181. #define GUI_ID_CHECK1   0x121
  182. #define GUI_ID_CHECK2   0x122
  183. #define GUI_ID_CHECK3   0x123
  184. #define GUI_ID_CHECK4   0x124
  185. #define GUI_ID_CHECK5   0x125
  186. #define GUI_ID_CHECK6   0x126
  187. #define GUI_ID_CHECK7   0x127
  188. #define GUI_ID_CHECK8   0x128
  189. #define GUI_ID_SLIDER0  0x130
  190. #define GUI_ID_SLIDER1  0x131
  191. #define GUI_ID_SLIDER2  0x132
  192. #define GUI_ID_SLIDER3  0x133
  193. #define GUI_ID_SLIDER4  0x134
  194. #define GUI_ID_SLIDER5  0x135
  195. #define GUI_ID_SLIDER6  0x136
  196. #define GUI_ID_SLIDER7  0x137
  197. #define GUI_ID_SLIDER8  0x138
  198. #define GUI_ID_SLIDER9  0x139
  199. #define GUI_ID_SCROLLBAR0 0x140
  200. #define GUI_ID_SCROLLBAR1 0x141
  201. #define GUI_ID_SCROLLBAR2 0x142
  202. #define GUI_ID_SCROLLBAR3 0x142
  203. #define GUI_ID_RADIO0 0x150
  204. #define GUI_ID_RADIO1 0x151
  205. #define GUI_ID_RADIO2 0x152
  206. #define GUI_ID_RADIO3 0x152
  207. #define GUI_ID_USER     0x800
  208. /*********************************************************************
  209. *
  210. *               Constants  needed for GL
  211. *
  212. **********************************************************************
  213. */
  214. /*      *********************************
  215.         *
  216.         *      Linestyles
  217.         *
  218.         *********************************
  219. */
  220. #define GUI_LS_SOLID        (0)
  221. #define GUI_LS_DASH         (1)
  222. #define GUI_LS_DOT          (2)
  223. #define GUI_LS_DASHDOT      (3)
  224. #define GUI_LS_DASHDOTDOT   (4)
  225. /*      *********************************
  226.         *
  227.         *      Pen shapes
  228.         *
  229.         *********************************
  230. */
  231. #define GUI_PS_ROUND        (0)
  232. #define GUI_PS_FLAT         (1)
  233. #define GUI_PS_SQUARE       (2)
  234. /*      *********************************
  235.         *
  236.         *      Standard colors
  237.         *
  238.         *********************************
  239. */
  240. #define GUI_BLACK         0x000000
  241. #define GUI_BLUE          0x0000FF
  242. #define GUI_GREEN         0x00ff00
  243. #define GUI_CYAN          0x00ffff
  244. #define GUI_RED           0xff0000
  245. #define GUI_MAGENTA       0x8b008b
  246. #define GUI_BROWN         0xa52a2a
  247. #define GUI_DARKGRAY      0x404040
  248. #define GUI_GRAY          0x808080
  249. #define GUI_LIGHTGRAY     0xd3d3d3
  250. #define GUI_LIGHTBLUE     0x8080ff
  251. #define GUI_LIGHTGREEN    0x80ff80
  252. #define GUI_LIGHTCYAN     0xffff80
  253. #define GUI_LIGHTRED      0xff8080
  254. #define GUI_LIGHTMAGENTA  0xff80ff
  255. #define GUI_YELLOW        0xffff00
  256. #define GUI_WHITE         0xffffff
  257. #define GUI_INVALID_COLOR 0xfffffff      /* Invalid color - more than 24 bits */
  258. /*      *********************************
  259.         *
  260.         *      Coordinates
  261.         *
  262.         *********************************
  263. */
  264. #define GUI_COORD_X 0
  265. #define GUI_COORD_Y 1
  266. /*      *********************************
  267.         *
  268.         *      UNICODE support macros
  269.         *
  270.         *********************************
  271. */
  272. #define GUI_UC_STARTCHAR     0x1a
  273. #define GUI_UC_ENDCHAR       0xe2
  274. #define GUI_UC_STARTSTRING   "x1a"
  275. #define GUI_UC_ENDSTRING     "xe2"
  276. #define GUI_UC_START         GUI_UC_STARTSTRING
  277. #define GUI_UC_END           GUI_UC_ENDSTRING
  278. #define GUI_UC_NL            "xe0x0a"
  279. /*********************************************************************
  280. *
  281. *            Standard Fonts supplied with emWin
  282. *
  283. **********************************************************************
  284. Note: The external declarations for the fonts are now also included in
  285.       this file.
  286. */
  287. /* Proportional fonts */
  288. extern const GUI_FONT GUI_Font8_ASCII,        GUI_Font8_1;
  289. extern const GUI_FONT GUI_Font10S_ASCII,      GUI_Font10S_1;
  290. extern const GUI_FONT GUI_Font10_ASCII,       GUI_Font10_1;
  291. extern const GUI_FONT GUI_Font13_ASCII,       GUI_Font13_1;
  292. extern const GUI_FONT GUI_Font13B_ASCII,      GUI_Font13B_1;
  293. extern const GUI_FONT GUI_Font13H_ASCII,      GUI_Font13H_1;
  294. extern const GUI_FONT GUI_Font13HB_ASCII,     GUI_Font13HB_1;
  295. extern const GUI_FONT GUI_Font16_ASCII,       GUI_Font16_1,       GUI_Font16_HK,    GUI_Font16_1HK;
  296. extern const GUI_FONT GUI_Font16B_ASCII,      GUI_Font16B_1;
  297. extern const GUI_FONT GUI_Font24_ASCII,       GUI_Font24_1;
  298. extern const GUI_FONT GUI_Font24B_ASCII,      GUI_Font24B_1;
  299. extern const GUI_FONT GUI_Font32_ASCII,       GUI_Font32_1;
  300. extern const GUI_FONT GUI_Font32B_ASCII,      GUI_Font32B_1;
  301. /* Monospaced */
  302. extern const GUI_FONT GUI_Font4x6;
  303. extern const GUI_FONT GUI_Font6x8,            GUI_Font6x9;
  304. extern const GUI_FONT GUI_Font8x8,            GUI_Font8x9;
  305. extern const GUI_FONT GUI_Font8x10_ASCII;
  306. extern const GUI_FONT GUI_Font8x12_ASCII;
  307. extern const GUI_FONT GUI_Font8x13_ASCII,     GUI_Font8x13_1;
  308. extern const GUI_FONT GUI_Font8x15B_ASCII,    GUI_Font8x15B_1;
  309. extern const GUI_FONT GUI_Font8x16,           GUI_Font8x17,       GUI_Font8x18;
  310. extern const GUI_FONT GUI_Font8x16x1x2,       GUI_Font8x16x2x2,   GUI_Font8x16x3x3;
  311. /* Digits */
  312. extern const GUI_FONT GUI_FontD24x32;
  313. extern const GUI_FONT GUI_FontD32;
  314. /* Comic fonts */
  315. extern const GUI_FONT GUI_FontComic18B_ASCII, GUI_FontComic18B_1;
  316. extern const GUI_FONT GUI_FontComic24B_ASCII, GUI_FontComic24B_1;
  317. /* 汉字库 */
  318. //extern const GUI_FONT GUI_FontHZ12;
  319. extern const GUI_FONT GUI_FontHZ12;
  320. /*
  321.       *********************************
  322.       *                               *
  323.       * Text and drawing mode defines *
  324.       *                               *
  325.       *********************************
  326. These defines come in two flavors: the long version (.._DRAWMODE_..)
  327. and the short ones (.._DM_..). They are identical, feel free to use
  328. which ever one you like best.
  329. */
  330. #define GUI_DRAWMODE_NORMAL  LCD_DRAWMODE_NORMAL
  331. #define GUI_DRAWMODE_XOR     LCD_DRAWMODE_XOR
  332. #define GUI_DRAWMODE_TRANS   LCD_DRAWMODE_TRANS
  333. #define GUI_DRAWMODE_REV     LCD_DRAWMODE_REV
  334. #define GUI_DM_NORMAL        LCD_DRAWMODE_NORMAL
  335. #define GUI_DM_XOR           LCD_DRAWMODE_XOR
  336. #define GUI_DM_TRANS         LCD_DRAWMODE_TRANS
  337. #define GUI_DM_REV           LCD_DRAWMODE_REV
  338. #define GUI_TEXTMODE_NORMAL  LCD_DRAWMODE_NORMAL
  339. #define GUI_TEXTMODE_XOR     LCD_DRAWMODE_XOR
  340. #define GUI_TEXTMODE_TRANS   LCD_DRAWMODE_TRANS
  341. #define GUI_TEXTMODE_REV     LCD_DRAWMODE_REV
  342. #define GUI_TM_NORMAL        LCD_DRAWMODE_NORMAL
  343. #define GUI_TM_XOR           LCD_DRAWMODE_XOR
  344. #define GUI_TM_TRANS         LCD_DRAWMODE_TRANS
  345. #define GUI_TM_REV           LCD_DRAWMODE_REV
  346. /* Text alignment flags, horizontal */
  347. #define GUI_TA_HORIZONTAL  (3<<0)
  348. #define GUI_TA_LEFT        (0<<0)
  349. #define GUI_TA_RIGHT      (1<<0)
  350. #define GUI_TA_CENTER      (2<<0)
  351. #define GUI_TA_HCENTER    GUI_TA_CENTER  /* easier to remember :-)  */
  352. /* Text alignment flags, vertical */
  353. #define GUI_TA_VERTICAL   (3<<2)
  354. #define GUI_TA_TOP       (0<<2)
  355. #define GUI_TA_BOTTOM     (1<<2)
  356. #define GUI_TA_BASELINE   (2<<2)
  357. #define GUI_TA_VCENTER    (3<<2)
  358. /*    *********************************
  359.       *
  360.       *     Min/Max coordinates
  361.       *
  362.       *********************************
  363. */
  364. /* Define minimum and maximum coordinates in x and y */
  365. #define GUI_XMIN -4095
  366. #define GUI_XMAX  4095
  367. #define GUI_YMIN -4095
  368. #define GUI_YMAX  4095
  369. /*********************************************************************
  370. *
  371. *             GUI_CONTEXT
  372. *
  373. **********************************************************************
  374.   This structure is public for one reason only:
  375.   To allow the application to save and restore the context.
  376. */
  377. typedef union {
  378.   U8  aColorIndex8[2];
  379.   U16 aColorIndex16[2];
  380. } LCD_COLORINDEX_UNION;
  381. typedef struct GUI_Context_struct GUI_CONTEXT;
  382. #if !defined (__C51__) /* To bypass Keil-compiler bug */
  383.   typedef struct tLCDDEV_APIList_struct tLCDDEV_APIList;
  384. #endif
  385. struct GUI_Context_struct {
  386. /* Variables in LCD module */
  387.   LCD_COLORINDEX_UNION LCD;
  388.   LCD_RECT       ClipRect;
  389.   const tLCD_HL_APIList* pLCD_HL;
  390.   U8             DrawMode;
  391. /* Variables in GL module */
  392.   GUI_RECT* pClipRect_HL;
  393.   U8        PenSize;
  394.   U8        PenShape;
  395.   U8        LineStyle;
  396.   U8        FillStyle;
  397. /* Variables in GUICHAR module */
  398.   const GUI_FONT* pAFont;
  399.   I16P LBorder;
  400.   I16P DispPosX, DispPosY;
  401.   I16P DrawPosX, DrawPosY;
  402.   I16P TextMode;
  403.   I16P TextAlign;
  404. /* Variables in WM module */
  405.   #if GUI_WINSUPPORT
  406.     const GUI_RECT* WM__pUserClipRect;
  407.     GUI_HWIN hAWin;
  408.   #endif
  409. /* Variables in MEMDEV module (with memory devices only) */
  410.   #if GUI_SUPPORT_MEMDEV
  411.     const tLCDDEV_APIList* pDeviceAPI;  /* function pointers only */
  412.     GUI_HMEM    hDevData;
  413.     GUI_RECT    ClipRectPrev;
  414.   #endif
  415. /* Variables Anitaliasing module */
  416.   U8 AA_Factor;
  417.   U8 AA_HiResEnable;
  418. };
  419. /*********************************************************************
  420. *
  421. *             General routines
  422. *
  423. **********************************************************************
  424. */
  425. int  GUI_Init(void);
  426. void GUI_SetDefault(void);
  427. GUI_DRAWMODE GUI_SetDrawMode(GUI_DRAWMODE dm);
  428. const char * GUI_GetVersionString(void);
  429. void GUI_SaveContext   (      GUI_CONTEXT* pContext);
  430. void GUI_RestoreContext(const GUI_CONTEXT* pContext);
  431. /*********************************************************************
  432. *
  433. *           Rectangle helper functions
  434. *
  435. ***********************************************************************
  436. */
  437. int  GUI_RectsIntersect(const GUI_RECT* pr0, const GUI_RECT* pr1);
  438. void GUI_MoveRect       (GUI_RECT *pRect, int x, int y);
  439. void GUI_MergeRect      (GUI_RECT* pDest, const GUI_RECT* pr0, const GUI_RECT* pr1);
  440. int  GUI__IntersectRects(GUI_RECT* pDest, const GUI_RECT* pr0, const GUI_RECT* pr1);
  441. void GUI__IntersectRect (GUI_RECT* pDest, const GUI_RECT* pr0);
  442. void GUI__ReduceRect    (GUI_RECT* pDest, const GUI_RECT *pRect, int Dist);
  443. /*********************************************************************
  444. *
  445. *       Misc helper functions
  446. *
  447. ***********************************************************************
  448. */
  449. int  GUI__DivideRound   (int a, int b);
  450. /*********************************************************************
  451. *
  452. *      Get / Set Attributes
  453. *
  454. **********************************************************************
  455. */
  456.  
  457. GUI_COLOR GUI_GetBkColor     (void);
  458. GUI_COLOR GUI_GetColor       (void);
  459. int       GUI_GetBkColorIndex(void);
  460. int       GUI_GetColorIndex  (void);
  461. U8        GUI_GetPenSize     (void);
  462. U8        GUI_GetLineStyle   (void);
  463. U8        GUI_GetFillStyle   (void);
  464. void      GUI_SetBkColor   (GUI_COLOR);
  465. void      GUI_SetColor     (GUI_COLOR);
  466. void      GUI_SetBkColorIndex(int Index);
  467. void      GUI_SetColorIndex(int Index);
  468. U8        GUI_SetPenSize   (U8 Size);
  469. U8        GUI_SetPenShape  (U8 Shape);
  470. U8        GUI_SetLineStyle (U8 Style);
  471. U8        GUI_SetFillStyle (U8 Style);
  472. /* Get/Set Character used as decimal point (usually '.' or ',') */
  473. char      GUI_GetDecChar(void);
  474. char      GUI_SetDecChar(char c);
  475. /*********************************************************************
  476. *
  477. *             Color / Index related functions
  478. *
  479. **********************************************************************
  480. */
  481. int       GUI_Color2Index(GUI_COLOR color);
  482. GUI_COLOR GUI_Color2VisColor(GUI_COLOR color);
  483. char      GUI_ColorIsAvailable(GUI_COLOR color);
  484. GUI_COLOR GUI_Index2Color(int Index);
  485. void      GUI_InitLUT(void);
  486. void      GUI_SetLUTEntry (U8 Pos, GUI_COLOR Color);
  487. void      GUI_SetLUTColor (U8 Pos, GUI_COLOR Color);
  488. void      GUI_SetPhysColor(U8 Pos, GUI_COLOR Color);
  489. /*********************************************************************
  490. *
  491. *       Logging
  492. *
  493. **********************************************************************
  494. */
  495. void GUI_Log      (const char *s);
  496. void GUI_Log1     (const char *s, int p0);
  497. void GUI_Log2     (const char *s, int p0, int p1);
  498. void GUI_Log3     (const char *s, int p0, int p1, int p2);
  499. void GUI_Log4     (const char *s, int p0, int p1, int p2,int p3);
  500. void GUI_Warn     (const char *s);
  501. void GUI_Warn1    (const char *s, int p0);
  502. void GUI_Warn2    (const char *s, int p0, int p1);
  503. void GUI_Warn3    (const char *s, int p0, int p1, int p2);
  504. void GUI_Warn4    (const char *s, int p0, int p1, int p2, int p3);
  505. void GUI_ErrorOut (const char *s);
  506. void GUI_ErrorOut1(const char *s, int p0);
  507. void GUI_ErrorOut2(const char *s, int p0, int p1);
  508. void GUI_ErrorOut3(const char *s, int p0, int p1, int p2);
  509. void GUI_ErrorOut4(const char *s, int p0, int p1, int p2, int p3);
  510. /*********************************************************************
  511. *
  512. *             2d - GUI
  513. *
  514. **********************************************************************
  515. */
  516. void GUI_Clear            (void);
  517. void GUI_ClearRect        (int x0, int y0, int x1, int y1);
  518. void GUI_DrawArc          (int x0, int y0, int rx, int ry, int a0, int a1);
  519. void GUI_DrawBitmap       (const GUI_BITMAP* pBM, int x0, int y0);
  520. void GUI_DrawBitmapMag    (const GUI_BITMAP* pBM, int x0, int y0, int XMul, int YMul);
  521. void GUI_DrawBitmapExp    (int x0, int y0, int XSize, int YSize, int XMul,  int YMul, 
  522.                            int BitsPerPixel, int BytesPerLine, 
  523.                            const U8* pData, const GUI_LOGPALETTE* pPal);
  524. void GUI_DrawCircle       (int x0, int y0, int r);
  525. void GUI_DrawEllipse      (int x0, int y0, int rx, int ry);
  526. void GUI_DrawGraph        (I16 *pay, int NumPoints, int x0, int y0);
  527. void GUI_DrawHLine        (int y0, int x0, int x1);
  528. void GUI_DrawLine         (int x0, int y0, int x1, int y1);
  529. void GUI_DrawLineRel      (int dx, int dy);
  530. void GUI_DrawLineTo       (int x, int y);
  531. void GUI_DrawPie          (int x0, int y0, int r, int a0, int a1, int Type);
  532. void GUI_DrawPixel        (int x, int y);
  533. void GUI_DrawPoint        (int x, int y);
  534. void GUI_DrawPolygon      (const GUI_POINT*, int NumPoints, int x0, int y0);
  535. void GUI_DrawPolyLine     (const GUI_POINT*, int NumPoints, int x0, int y0);
  536. void GUI_DrawFocusRect    (const GUI_RECT *pRect, int Dist);
  537. void GUI_DrawRect         (int x0, int y0, int x1, int y1);
  538. void GUI_DrawRectEx       (const GUI_RECT *pRect);
  539. void GUI_DrawVLine        (int x0, int y0, int y1);
  540. void GUI_FillCircle       (int x0, int y0, int r);
  541. void GUI_FillEllipse      (int x0, int y0, int rx, int ry);
  542. void GUI_FillPolygon      (const GUI_POINT*, int NumPoints, int x0, int y0);
  543. void GUI_FillRect         (int x0, int y0, int x1, int y1);
  544. void GUI_FillRectEx       (const GUI_RECT* pRect);
  545. void GUI_GetClientRect    (GUI_RECT* pRect);
  546. void GUI_InvertRect       (int x0, int y0, int x1, int y1);
  547. void GUI_MoveRel          (int dx, int dy);
  548. void GUI_MoveTo           (int x, int y);
  549. /*********************************************************************
  550. *
  551. *              Cursor routines
  552. *
  553. **********************************************************************
  554. */
  555. #if GUI_SUPPORT_CURSOR
  556.   void GUI_CURSOR_Activate(void);
  557.   void GUI_CURSOR_Deactivate(void);
  558.   void GUI_CURSOR_Clear(void);
  559.   void GUI_CURSOR_SetXor(const GUI_BITMAP* pBM, int x, int y);
  560.   void GUI_CURSOR_SetPosition(int x, int y);
  561.   void GUI_CURSOR_TempHide  (const GUI_RECT* pRect);
  562.   void GUI_CURSOR_TempUnhide(const GUI_RECT* pRect);
  563.   void GUI_CURSOR_Show(void);
  564. #else
  565.   #define GUI_CURSOR_Show()
  566. #endif
  567. extern const GUI_BITMAP GUI_MouseArrow;
  568. /*********************************************************************
  569. *
  570. *              Text related routines
  571. *
  572. **********************************************************************
  573. */
  574. void  GUI_DispChar  (U16 c);
  575. void  GUI_DispChars (U16 c, int Cnt);
  576. void  GUI_DispCharAt(U16 c, I16P x, I16P y);
  577. void  GUI_DispString(const char GUI_FAR *s);
  578. void  GUI_DispStringAt(const char GUI_FAR *s, int x, int y);
  579. void  GUI_DispStringAtCEOL(const char GUI_FAR *s, int x, int y);
  580. void  GUI_DispStringInRect(const char GUI_FAR *s, GUI_RECT* pRect, int Flags);
  581. void  GUI_DispStringLen(const char GUI_FAR *s, int Len);
  582. void  GUI_GetTextExtend(GUI_RECT* pRect, const char* s, int Len);
  583. int   GUI_GetYAdjust(void);
  584. int   GUI_GetDispPosX(void);
  585. int   GUI_GetDispPosY(void);
  586. const GUI_FONT* GUI_GetFont(void);
  587. int   GUI_GetCharDistX(U16 c);
  588. int   GUI_GetStringDistX(const char GUI_FAR *s);
  589. int   GUI_GetFontDistY(void);
  590. int   GUI_GetFontSizeY(void);
  591. int   GUI_GetFontSizeYOf(const GUI_FONT* pFont);
  592. void  GUI_GetFontInfo(const GUI_FONT*pFont, GUI_FONTINFO* pfi);
  593. int   GUI_GetYSizeOfFont(const GUI_FONT* pFont);
  594. int   GUI_GetYDistOfFont(const GUI_FONT* pFont);
  595. int   GUI_GetTextAlign(void);
  596. int   GUI_GetTextMode(void);
  597. char  GUI_IsInFont(const GUI_FONT*pFont, U16 c);
  598. void  GUI_ScrollWin(int Win, int xDiff, int yDiff);
  599. int   GUI_SetTextAlign(int Align);
  600. int   GUI_SetTextMode(int Mode);
  601. int   GUI_SetLBorder(int x);
  602. void  GUI_SetOrg(int x, int y);
  603. void  GUI_SetCursor(int x, int y, int xlen);
  604. void  GUI_DispFatal(char*s);
  605. const GUI_FONT* GUI_SetFont(const GUI_FONT* pNewFont);
  606. char  GUI_GotoXY(int x, int y);
  607. char  GUI_GotoX(int x);
  608. char  GUI_GotoY(int y);
  609. void  GUI_Scroll(int x, int y);
  610. void  GUI_DispNextLine(void);
  611. #if GUI_SUPPORT_UNICODE
  612.   void GUI_DispString_UC(const U16 GUI_FAR *s);
  613.   void GUI_UC2DB (U16 Code, U8* pOut);
  614.   U16  GUI_DB2UC (U8 Byte0, U8 Byte1);
  615. #endif
  616. /*    *********************************
  617.       *                               *
  618.       *         GUISTR.C              *
  619.       *                               *
  620.       *********************************
  621. String functions.
  622. */
  623. void GUI_DispStringHCenterAt(const char GUI_FAR *s, int x, int y);
  624. /*    *********************************
  625.       *                               *
  626.       *         GUIVAL.C              *
  627.       *                               *
  628.       *********************************
  629. */
  630. void GUI_AddHex(U32 v, U8 Len, char**ps);
  631. void GUI_AddDec(I32 v, U8 Len, char**ps);
  632. void GUI_AddDecMin(I32 v, char**ps);
  633. void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps);
  634. void GUI_DispBin  (U32  v, U8 Len);
  635. void GUI_DispBinAt(U32  v, I16P x, I16P y, U8 Len);
  636. void GUI_DispCEOL (void);
  637. void GUI_DispDec  (I32 v, U8 Len);
  638. void GUI_DispDecMin(I32 v);
  639. void GUI_DispDecAt (I32 v, I16P x, I16P y, U8 Len);
  640. void GUI_DispDecShift(I32 v, U8 Len, U8 Shift);
  641. void GUI_DispDecSpace(I32 v, U8 MaxDigits);
  642. void GUI_DispHex  (U32 v, U8 Len);
  643. void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len);
  644. void GUI_DispSDec(I32 v, U8 Len);
  645. void GUI_DispSDecShift(I32 v, U8 Len, U8 Shift);
  646. int  GUI_Long2Len(I32 v);
  647. /*    *********************************
  648.       *                               *
  649.       *         GUIVALF.C             *
  650.       *                               *
  651.       *********************************
  652. Routines to display floating point values. These routines use the routines
  653. defined in the module GUIVAL.C as base routines.
  654. */
  655. void GUI_DispFloat    (float v, char Len);
  656. void GUI_DispFloatFix (float v, char Len, char Fract);
  657. void GUI_DispFloatMin (float v, char Fract);
  658. void GUI_DispSFloatFix(float v, char Len, char Fract);
  659. void GUI_DispSFloatMin(float v, char Fract);
  660. /*********************************************************************
  661. *
  662. *         Dynamic memory management
  663. *
  664. **********************************************************************
  665. */
  666. #if !defined(GUI_ALLOC_ALLOC)
  667.   void        GUI_ALLOC_Init(void);
  668.   void*       GUI_ALLOC_h2p     (GUI_HMEM  hMem);
  669.   void        GUI_ALLOC_Free    (GUI_HMEM  hMem);
  670.   void        GUI_ALLOC_FreePtr (GUI_HMEM *phMem);
  671.   GUI_HMEM    GUI_ALLOC_Alloc(int size);
  672.   /* diagnostics */
  673.   int         GUI_ALLOC_GetUsed(void);
  674.   int         GUI_ALLOC_GetNumFreeBytes(void);
  675.   int         GUI_ALLOC_GetMaxSize(void);
  676.   /* macros */
  677.   #define GUI_ALLOC_ALLOC(size)     GUI_ALLOC_Alloc(size)
  678.   #define GUI_ALLOC_H2P(h)          GUI_ALLOC_h2p(h)
  679.   #define GUI_ALLOC_FREE(handle)    GUI_ALLOC_Free(handle)
  680.   #define GUI_ALLOC_LOCK(handle)    GUI_ALLOC_h2p(handle)
  681.   #define GUI_ALLOC_UNLOCK(handle)
  682. #endif
  683. /*********************************************************************
  684. *
  685. *      Memory device: GUI_MEMDEV
  686. *
  687. **********************************************************************
  688. */
  689. #define GUI_MEMDEV_HASTRANS       0
  690. #define GUI_MEMDEV_NOTRANS    (1<<0)
  691. #if GUI_SUPPORT_MEMDEV
  692.   typedef GUI_HMEM GUI_MEMDEV_Handle;
  693.   typedef void GUI_CALLBACK_VOID_P(void* p);
  694.   typedef struct {
  695.     GUI_RECT rView, rPrev;
  696.     char FirstCall;
  697.   } GUI_AUTODEV;
  698.   typedef struct {
  699.     char DrawFixed;
  700.   } GUI_AUTODEV_INFO;
  701.   int  GUI_MEMDEV_CreateAuto(GUI_AUTODEV * pAutoDev);
  702.   void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV * pAutoDev);
  703.   int  GUI_MEMDEV_DrawAuto  (GUI_AUTODEV * pAutoDev, GUI_AUTODEV_INFO * pAutoDevInfo, GUI_CALLBACK_VOID_P * pfDraw, void * pData);
  704.   /* Create a memory device which is compatible to the selected LCD */
  705.   GUI_MEMDEV_Handle GUI_MEMDEV_Create  ( int x0, int y0, int XSize, int YSize);
  706.   GUI_MEMDEV_Handle GUI_MEMDEV_CreateEx( int x0, int y0, int XSize, int YSize, int Flags);
  707.   void GUI_MEMDEV_Clear         (GUI_MEMDEV_Handle hMem);
  708.   void GUI_MEMDEV_CopyFromLCD   (GUI_MEMDEV_Handle hMem);
  709.   void GUI_MEMDEV_CopyFromLCDAA (GUI_MEMDEV_Handle hMem);
  710.   void GUI_MEMDEV_CopyToLCD     (GUI_MEMDEV_Handle hMem);
  711.   void GUI_MEMDEV_CopyToLCDAA   (GUI_MEMDEV_Handle hMem);
  712.   void GUI_MEMDEV_CopyToLCDAt   (GUI_MEMDEV_Handle hMem, int x, int y);
  713.   int  GUI_MEMDEV_CompareWithLCD(GUI_MEMDEV_Handle hMem, int*px, int*py, int *pExp, int*pAct);
  714.   void GUI_MEMDEV_Delete        (GUI_MEMDEV_Handle MemDev);
  715.   int  GUI_MEMDEV_GetYSize      (GUI_MEMDEV_Handle hMem);
  716.   void GUI_MEMDEV_ReduceYSize   (GUI_MEMDEV_Handle hMem, int YSize);
  717.   void GUI_MEMDEV_Select        (GUI_MEMDEV_Handle hMem);  /* Select (activate) a particular memory device. */
  718.   void GUI_MEMDEV_SetOrg        (GUI_MEMDEV_Handle hMem, int x0, int y0);
  719.   void GUI_SelectLCD(void);
  720.   unsigned int GUI_SelLCD(unsigned int Index);
  721.   int  GUI_MEMDEV_Draw(GUI_RECT* pRect, GUI_CALLBACK_VOID_P* pfDraw, void* pData, int MemSize, int Flags);
  722. #else
  723.   #define GUI_SelectLCD()
  724. #endif
  725. /**************************************************************
  726. *
  727. *      Measure device: GUI_MEASDEV
  728. *
  729. ***************************************************************
  730. */
  731. typedef GUI_HMEM GUI_MEASDEV_Handle;
  732. GUI_MEASDEV_Handle GUI_MEASDEV_Create (void);
  733. void               GUI_MEASDEV_Delete (GUI_MEASDEV_Handle hMemDev);
  734. void               GUI_MEASDEV_Select (GUI_MEASDEV_Handle hMem);
  735. void               GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT *pRect);
  736. void               GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMem);
  737. /************************************************************
  738. *
  739. *                 Polygon helpers
  740. *
  741. *************************************************************
  742. */
  743. void GUI_RotatePolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, float Angle);
  744. void GUI_MagnifyPolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, int Mag);
  745. void GUI_EnlargePolygon(GUI_POINT* pDest, const GUI_POINT* pSrc, int NumPoints, int Len);
  746. /************************************************************
  747. *
  748. *                 Streamed bitmap
  749. *
  750. *************************************************************
  751. */
  752. typedef void GUI_CALLBACK_VOID_U8_P(U8 Data, void* p);
  753. void GUI_DrawStreamedBitmap(const GUI_BITMAP_STREAM *pBitmapStream, int x, int y);
  754. void GUI_StreamBMP (GUI_RECT* pRect, GUI_CALLBACK_VOID_U8_P* pfStream, void*p);
  755. /*********************************************************************
  756. *
  757. *      Time / execution related routines
  758. *
  759. **********************************************************************
  760. */
  761. void GUI_Delay  (int Period);
  762. int  GUI_GetTime(void);
  763. int  GUI_Exec(void);         /* Execute all jobs ... Return 0 if nothing was done. */
  764. int  GUI_Exec1(void);        /* Execute one job  ... Return 0 if nothing was done. */
  765. /*********************************************************************
  766. *
  767. *                 MessageBox
  768. *
  769. **********************************************************************
  770. */
  771. int GUI_MessageBox(const char* sMessage, const char*sCaption, int Flags);
  772. #define GUI_MESSAGEBOX_CF_MOVEABLE (1<<4)
  773. #define GUI_MB_OK                20
  774. #define GUI_MB_WARNING           21
  775. /*********************************************************************
  776. *
  777. *                 GUI_TIMER module
  778. *
  779. **********************************************************************
  780. */
  781. typedef struct GUI_TIMER_Message GUI_TIMER_MESSAGE;
  782. struct GUI_TIMER_Message {
  783.   GUI_TIMER_TIME Time;
  784. U32        Context;
  785. };
  786. typedef GUI_HMEM GUI_TIMER_Handle;
  787. typedef void GUI_TIMER_CALLBACK(/*const*/ GUI_TIMER_MESSAGE* pTM);
  788. GUI_TIMER_Handle GUI_TIMER_Create      (    GUI_TIMER_CALLBACK* cb, int Time,  U32 Context, int Flags);
  789. void         GUI_TIMER_Delete      (GUI_TIMER_Handle pObj);
  790. /* Methods changing properties */
  791. void GUI_TIMER_SetPeriod (GUI_TIMER_Handle hObj, GUI_TIMER_TIME Period);
  792. void GUI_TIMER_SetTime   (GUI_TIMER_Handle hObj, GUI_TIMER_TIME Period);
  793. void GUI_TIMER_SetDelay  (GUI_TIMER_Handle hObj, GUI_TIMER_TIME Delay);
  794. void GUI_TIMER_Restart   (GUI_TIMER_Handle hObj);
  795. int  GUI_TIMER_Exec(void);
  796. /******************************************************************
  797. *
  798. *                 Anti Aliasing
  799. *
  800. *******************************************************************
  801. */
  802. void GUI_AA_DisableHiRes   (void);
  803. void GUI_AA_EnableHiRes    (void);
  804. int  GUI_AA_GetFactor      (void);
  805. void GUI_AA_SetFactor      (int Factor);
  806. void GUI_AA_DrawArc        (int x0, int y0, int rx, int ry, int a0, int a1);
  807. void GUI_AA_DrawLine       (int x0, int y0, int x1, int y1);
  808. void GUI_AA_DrawPolyOutline(const GUI_POINT* pSrc, int NumPoints, int Thickness, int x, int y);
  809. void GUI_AA_FillCircle     (int x0, int y0, int r);
  810. void GUI_AA_FillPolygon    (GUI_POINT* pPoints, int NumPoints, int x0, int y0);
  811. /* Defines for compatibility with older versins*/
  812. #if GUI_COMPATIBLE_MODE
  813.   #define GUI_DrawArcAA             GUI_AA_DrawArc
  814.   #define GUI_DrawPolyOutlineAA     GUI_AA_DrawPolyOutline
  815.   #define GUI_FillCircleAA          GUI_AA_FillCircle
  816.   #define GUI_FillPolygonAA         GUI_AA_FillPolygon
  817.   #define GUI_MEMDEV_Load()
  818. #endif
  819. /******************************************************************
  820. *
  821. *                 Keyboard
  822. *
  823. *******************************************************************
  824. */
  825. int  GUI_GetKey(void);
  826. int  GUI_WaitKey(void);
  827. void GUI_StoreKey(int c);
  828. void GUI_ClearKeyBuffer(void);
  829. void GUI_StoreKeyMsg(int Key, int Pressed);
  830. void GUI_SendKeyMsg (int Key, int Pressed);
  831. int  GUI_PollKeyMsg(void);
  832. /*********************************************************************
  833. *
  834. *          HID 
  835. *
  836. **********************************************************************
  837. */
  838. typedef struct {
  839.   int x,y;
  840.   unsigned char Pressed;
  841. } GUI_HID_STATE;
  842. void GUI_HID_StoreState(const GUI_HID_STATE *pState);
  843. int  GUI_HID_GetState   (      GUI_HID_STATE *pState);
  844. /*********************************************************************
  845. *
  846. *        Mouse, generic
  847. */
  848. void GUI_MOUSE_StoreState(const GUI_HID_STATE *pState);
  849. /*********************************************************************
  850. *
  851. *        Mouse, PS2 driver
  852. */
  853. void GUI_MOUSE_DRIVER_PS2_Init(void);               /* optional */
  854. void GUI_MOUSE_DRIVER_PS2_OnRx(unsigned char Data);
  855. /*********************************************************************
  856. *
  857. *          TOUCH screen, generic (any kind of hardware)
  858. */
  859. int  GUI_TOUCH_GetState(GUI_HID_STATE *pState);
  860. void GUI_TOUCH_StoreState(int x, int y);
  861. /*********************************************************************
  862. *
  863. *          TOUCH screen, analog driver
  864. */
  865. void GUI_TOUCH_Exec(void);
  866. int  GUI_TOUCH_Calibrate(int Coord, int Log0, int Log1, int Phys0, int Phys1);
  867. void GUI_TOUCH_SetDefaultCalibration(void);
  868. int  GUI_TOUCH_GetxPhys(void);    /* for diagnostics only */
  869. int  GUI_TOUCH_GetyPhys(void);    /* for diagnostics only */
  870. /*********************************************************************
  871. *
  872. *          TOUCH
  873. *
  874. *          imports
  875. *
  876. **********************************************************************
  877. Please note: The following functions are required by the module.
  878. They need to be part of your application software (or rather, part
  879. of the hardware-layer of your software). If you do not like the names
  880. of these routines, you may rename them easily by defining them in
  881. the Configuration file GUITouch.conf.h
  882. Example:
  883. #define TOUCH_X_MeasureY HARDWARE_ReadY
  884. This will rename the routine TOUCH_X_MeasureY into HARDWARE_ReadY.
  885. */
  886. void TOUCH_X_ActivateX(void);
  887. void TOUCH_X_ActivateY(void);
  888. void TOUCH_X_Disable(void);
  889. int  TOUCH_X_MeasureX(void);
  890. int  TOUCH_X_MeasureY(void);
  891. /**************************************************************
  892. *
  893. *   Constants for fonts and bitmaps
  894. *
  895. ***************************************************************
  896. */
  897. #define GUI_COMPRESS_RLE4 0
  898. #define GUI_COMPRESS_RLE8 0
  899. #define GUI_DRAW_RLE4 LCD_DrawBitmap_RLE4  /* Function pointer ! */
  900. #define GUI_DRAW_RLE8 LCD_DrawBitmap_RLE8  /* Function pointer ! */
  901. /**************************************************************
  902. *
  903. *   Heap public
  904. *
  905. ***************************************************************
  906.   The main reason why the heap is declared public here is that
  907.   an application can perform additional error checking on
  908.   pointers. The variable itself is defined in the allocation
  909.   module and will only be linke if required.
  910. */
  911. typedef union {
  912.   int aintHeap[GUI_ALLOC_SIZE/4];     /* required for proper alignement */
  913.   U8  abHeap[GUI_ALLOC_SIZE];
  914. } GUI_HEAP;
  915. extern GUI_HEAP GUI_Heap;     /* Public for debugging only */
  916. /**************************************************************
  917. *
  918. *      Defines for constants
  919. *
  920. ***************************************************************
  921. */
  922. #define ________ 0x0
  923. #define _______X 0x1
  924. #define ______X_ 0x2
  925. #define ______XX 0x3
  926. #define _____X__ 0x4
  927. #define _____X_X 0x5
  928. #define _____XX_ 0x6
  929. #define _____XXX 0x7
  930. #define ____X___ 0x8
  931. #define ____X__X 0x9
  932. #define ____X_X_ 0xa
  933. #define ____X_XX 0xb
  934. #define ____XX__ 0xc
  935. #define ____XX_X 0xd
  936. #define ____XXX_ 0xe
  937. #define ____XXXX 0xf
  938. #define ___X____ 0x10
  939. #define ___X___X 0x11
  940. #define ___X__X_ 0x12
  941. #define ___X__XX 0x13
  942. #define ___X_X__ 0x14
  943. #define ___X_X_X 0x15
  944. #define ___X_XX_ 0x16
  945. #define ___X_XXX 0x17
  946. #define ___XX___ 0x18
  947. #define ___XX__X 0x19
  948. #define ___XX_X_ 0x1a
  949. #define ___XX_XX 0x1b
  950. #define ___XXX__ 0x1c
  951. #define ___XXX_X 0x1d
  952. #define ___XXXX_ 0x1e
  953. #define ___XXXXX 0x1f
  954. #define __X_____ 0x20
  955. #define __X____X 0x21
  956. #define __X___X_ 0x22
  957. #define __X___XX 0x23
  958. #define __X__X__ 0x24
  959. #define __X__X_X 0x25
  960. #define __X__XX_ 0x26
  961. #define __X__XXX 0x27
  962. #define __X_X___ 0x28
  963. #define __X_X__X 0x29
  964. #define __X_X_X_ 0x2a
  965. #define __X_X_XX 0x2b
  966. #define __X_XX__ 0x2c
  967. #define __X_XX_X 0x2d
  968. #define __X_XXX_ 0x2e
  969. #define __X_XXXX 0x2f
  970. #define __XX____ 0x30
  971. #define __XX___X 0x31
  972. #define __XX__X_ 0x32
  973. #define __XX__XX 0x33
  974. #define __XX_X__ 0x34
  975. #define __XX_X_X 0x35
  976. #define __XX_XX_ 0x36
  977. #define __XX_XXX 0x37
  978. #define __XXX___ 0x38
  979. #define __XXX__X 0x39
  980. #define __XXX_X_ 0x3a
  981. #define __XXX_XX 0x3b
  982. #define __XXXX__ 0x3c
  983. #define __XXXX_X 0x3d
  984. #define __XXXXX_ 0x3e
  985. #define __XXXXXX 0x3f
  986. #define _X______ 0x40
  987. #define _X_____X 0x41
  988. #define _X____X_ 0x42
  989. #define _X____XX 0x43
  990. #define _X___X__ 0x44
  991. #define _X___X_X 0x45
  992. #define _X___XX_ 0x46
  993. #define _X___XXX 0x47
  994. #define _X__X___ 0x48
  995. #define _X__X__X 0x49
  996. #define _X__X_X_ 0x4a
  997. #define _X__X_XX 0x4b
  998. #define _X__XX__ 0x4c
  999. #define _X__XX_X 0x4d
  1000. #define _X__XXX_ 0x4e
  1001. #define _X__XXXX 0x4f
  1002. #define _X_X____ 0x50
  1003. #define _X_X___X 0x51
  1004. #define _X_X__X_ 0x52
  1005. #define _X_X__XX 0x53
  1006. #define _X_X_X__ 0x54
  1007. #define _X_X_X_X 0x55
  1008. #define _X_X_XX_ 0x56
  1009. #define _X_X_XXX 0x57
  1010. #define _X_XX___ 0x58
  1011. #define _X_XX__X 0x59
  1012. #define _X_XX_X_ 0x5a
  1013. #define _X_XX_XX 0x5b
  1014. #define _X_XXX__ 0x5c
  1015. #define _X_XXX_X 0x5d
  1016. #define _X_XXXX_ 0x5e
  1017. #define _X_XXXXX 0x5f
  1018. #define _XX_____ 0x60
  1019. #define _XX____X 0x61
  1020. #define _XX___X_ 0x62
  1021. #define _XX___XX 0x63
  1022. #define _XX__X__ 0x64
  1023. #define _XX__X_X 0x65
  1024. #define _XX__XX_ 0x66
  1025. #define _XX__XXX 0x67
  1026. #define _XX_X___ 0x68
  1027. #define _XX_X__X 0x69
  1028. #define _XX_X_X_ 0x6a
  1029. #define _XX_X_XX 0x6b
  1030. #define _XX_XX__ 0x6c
  1031. #define _XX_XX_X 0x6d
  1032. #define _XX_XXX_ 0x6e
  1033. #define _XX_XXXX 0x6f
  1034. #define _XXX____ 0x70
  1035. #define _XXX___X 0x71
  1036. #define _XXX__X_ 0x72
  1037. #define _XXX__XX 0x73
  1038. #define _XXX_X__ 0x74
  1039. #define _XXX_X_X 0x75
  1040. #define _XXX_XX_ 0x76
  1041. #define _XXX_XXX 0x77
  1042. #define _XXXX___ 0x78
  1043. #define _XXXX__X 0x79
  1044. #define _XXXX_X_ 0x7a
  1045. #define _XXXX_XX 0x7b
  1046. #define _XXXXX__ 0x7c
  1047. #define _XXXXX_X 0x7d
  1048. #define _XXXXXX_ 0x7e
  1049. #define _XXXXXXX 0x7f
  1050. #define X_______ 0x80
  1051. #define X______X 0x81
  1052. #define X_____X_ 0x82
  1053. #define X_____XX 0x83
  1054. #define X____X__ 0x84
  1055. #define X____X_X 0x85
  1056. #define X____XX_ 0x86
  1057. #define X____XXX 0x87
  1058. #define X___X___ 0x88
  1059. #define X___X__X 0x89
  1060. #define X___X_X_ 0x8a
  1061. #define X___X_XX 0x8b
  1062. #define X___XX__ 0x8c
  1063. #define X___XX_X 0x8d
  1064. #define X___XXX_ 0x8e
  1065. #define X___XXXX 0x8f
  1066. #define X__X____ 0x90
  1067. #define X__X___X 0x91
  1068. #define X__X__X_ 0x92
  1069. #define X__X__XX 0x93
  1070. #define X__X_X__ 0x94
  1071. #define X__X_X_X 0x95
  1072. #define X__X_XX_ 0x96
  1073. #define X__X_XXX 0x97
  1074. #define X__XX___ 0x98
  1075. #define X__XX__X 0x99
  1076. #define X__XX_X_ 0x9a
  1077. #define X__XX_XX 0x9b
  1078. #define X__XXX__ 0x9c
  1079. #define X__XXX_X 0x9d
  1080. #define X__XXXX_ 0x9e
  1081. #define X__XXXXX 0x9f
  1082. #define X_X_____ 0xa0
  1083. #define X_X____X 0xa1
  1084. #define X_X___X_ 0xa2
  1085. #define X_X___XX 0xa3
  1086. #define X_X__X__ 0xa4
  1087. #define X_X__X_X 0xa5
  1088. #define X_X__XX_ 0xa6
  1089. #define X_X__XXX 0xa7
  1090. #define X_X_X___ 0xa8
  1091. #define X_X_X__X 0xa9
  1092. #define X_X_X_X_ 0xaa
  1093. #define X_X_X_XX 0xab
  1094. #define X_X_XX__ 0xac
  1095. #define X_X_XX_X 0xad
  1096. #define X_X_XXX_ 0xae
  1097. #define X_X_XXXX 0xaf
  1098. #define X_XX____ 0xb0
  1099. #define X_XX___X 0xb1
  1100. #define X_XX__X_ 0xb2
  1101. #define X_XX__XX 0xb3
  1102. #define X_XX_X__ 0xb4
  1103. #define X_XX_X_X 0xb5
  1104. #define X_XX_XX_ 0xb6
  1105. #define X_XX_XXX 0xb7
  1106. #define X_XXX___ 0xb8
  1107. #define X_XXX__X 0xb9
  1108. #define X_XXX_X_ 0xba
  1109. #define X_XXX_XX 0xbb
  1110. #define X_XXXX__ 0xbc
  1111. #define X_XXXX_X 0xbd
  1112. #define X_XXXXX_ 0xbe
  1113. #define X_XXXXXX 0xbf
  1114. #define XX______ 0xc0
  1115. #define XX_____X 0xc1
  1116. #define XX____X_ 0xc2
  1117. #define XX____XX 0xc3
  1118. #define XX___X__ 0xc4
  1119. #define XX___X_X 0xc5
  1120. #define XX___XX_ 0xc6
  1121. #define XX___XXX 0xc7
  1122. #define XX__X___ 0xc8
  1123. #define XX__X__X 0xc9
  1124. #define XX__X_X_ 0xca
  1125. #define XX__X_XX 0xcb
  1126. #define XX__XX__ 0xcc
  1127. #define XX__XX_X 0xcd
  1128. #define XX__XXX_ 0xce
  1129. #define XX__XXXX 0xcf
  1130. #define XX_X____ 0xd0
  1131. #define XX_X___X 0xd1
  1132. #define XX_X__X_ 0xd2
  1133. #define XX_X__XX 0xd3
  1134. #define XX_X_X__ 0xd4
  1135. #define XX_X_X_X 0xd5
  1136. #define XX_X_XX_ 0xd6
  1137. #define XX_X_XXX 0xd7
  1138. #define XX_XX___ 0xd8
  1139. #define XX_XX__X 0xd9
  1140. #define XX_XX_X_ 0xda
  1141. #define XX_XX_XX 0xdb
  1142. #define XX_XXX__ 0xdc
  1143. #define XX_XXX_X 0xdd
  1144. #define XX_XXXX_ 0xde
  1145. #define XX_XXXXX 0xdf
  1146. #define XXX_____ 0xe0
  1147. #define XXX____X 0xe1
  1148. #define XXX___X_ 0xe2
  1149. #define XXX___XX 0xe3
  1150. #define XXX__X__ 0xe4
  1151. #define XXX__X_X 0xe5
  1152. #define XXX__XX_ 0xe6
  1153. #define XXX__XXX 0xe7
  1154. #define XXX_X___ 0xe8
  1155. #define XXX_X__X 0xe9
  1156. #define XXX_X_X_ 0xea
  1157. #define XXX_X_XX 0xeb
  1158. #define XXX_XX__ 0xec
  1159. #define XXX_XX_X 0xed
  1160. #define XXX_XXX_ 0xee
  1161. #define XXX_XXXX 0xef
  1162. #define XXXX____ 0xf0
  1163. #define XXXX___X 0xf1
  1164. #define XXXX__X_ 0xf2
  1165. #define XXXX__XX 0xf3
  1166. #define XXXX_X__ 0xf4
  1167. #define XXXX_X_X 0xf5
  1168. #define XXXX_XX_ 0xf6
  1169. #define XXXX_XXX 0xf7
  1170. #define XXXXX___ 0xf8
  1171. #define XXXXX__X 0xf9
  1172. #define XXXXX_X_ 0xfa
  1173. #define XXXXX_XX 0xfb
  1174. #define XXXXXX__ 0xfc
  1175. #define XXXXXX_X 0xfd
  1176. #define XXXXXXX_ 0xfe
  1177. #define XXXXXXXX 0xff
  1178. /**************************************************************
  1179. *
  1180. *      Compatibility with older version
  1181. *
  1182. ***************************************************************
  1183. */
  1184. #define GUI_DrawBitMap(x,y,pBM)   GUI_DrawBitmap(pBM,x,y)
  1185. #define GUI_TOUCH_tState          GUI_HID_STATE
  1186. #define GUI_ID_BACKSPACE         GUI_KEY_BACKSPACE
  1187. #define GUI_ID_TAB               GUI_KEY_TAB
  1188. #define GUI_ID_ENTER             GUI_KEY_ENTER
  1189. #define GUI_ID_LEFT              GUI_KEY_LEFT
  1190. #define GUI_ID_UP                GUI_KEY_UP
  1191. #define GUI_ID_RIGHT             GUI_KEY_RIGHT
  1192. #define GUI_ID_DOWN              GUI_KEY_DOWN
  1193. #define GUI_ID_HOME              GUI_KEY_HOME
  1194. #define GUI_ID_END               GUI_KEY_END
  1195. #define GUI_ID_SHIFT             GUI_KEY_SHIFT
  1196. #define GUI_ID_CONTROL           GUI_KEY_CONTROL
  1197. #define GUI_ID_ESCAPE            GUI_KEY_ESCAPE
  1198. #define GUI_ID_INSERT            GUI_KEY_INSERT
  1199. #define GUI_ID_DELETE            GUI_KEY_DELETE
  1200. /**************************************************************
  1201. *
  1202. *      scw added
  1203. *
  1204. ***************************************************************
  1205. */
  1206. /*********************************  end  **********************/
  1207. #if defined(__cplusplus)
  1208. }
  1209. #endif 
  1210. #endif   /* ifdef GUI_H */