gel_private.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. /** @file
  2. * Header file for gel internal used functions.
  3. *
  4. * @author mandy.wu 2010/12/06 (Add duplicate controls' core struct)
  5. * @version 0.1
  6. */
  7. #ifndef __GEL_PRIVATE__
  8. #define __GEL_PRIVATE__
  9. #include "gel_text.h"
  10. #include "device_font.h"
  11. #include "gl_types.h"
  12. #define GUIENG_MAX_BLIT_ID (0x7FFFFFFF)
  13. #define GUIENG_INVALID_BLIT_ID (-1)
  14. #define GUI_RENDER_STACK_SIZE (8192)
  15. #define GUI_RENDER_POLLING_STACK_SIZE (2048)
  16. #define KEEP_WIDGET_STYLE (0xFFE00000)
  17. #define KEEP_COMMON_STYLE (0x001FFFFF)
  18. #define GET_COMMON_STYLE(control) ((control)->c_style)
  19. #define GET_WIDGET_STYLE(control) ((control)->p_style)
  20. #define COMMON_STYLE(control) ((control)->c_style)
  21. #define WIDGET_STYLE(control) ((control)->p_style)
  22. /* 32 bits control flags for control rendering */
  23. #define GENG_CF_PARENT_STATE (0x000000FF) // parent's state
  24. #define GENG_CF_CLEAR_BG (0x100 << 2) //0x400
  25. #define GENG_CF_RGNBUF_PAINT (0x100 << 3) //0x800
  26. #define GENG_CF_BORDER_PAINT (0x100 << 4) //0x1000
  27. #define GENG_CF_FLIP_HORIZ (0x100 << 5) //0x2000
  28. /* Marquee internal control */
  29. #define GENG_MARQUEE_ALTERNATE_FORWARD (0x1000000)
  30. #define GENG_MARQUEE_ALTERNATE_BACKWARD (0x1000000 << 1)
  31. #define GENG_MARQUEE_ALTERNATE_IN_BITS (0x3000000) // internal control bits
  32. /* Animation controls */
  33. #define MARQUEE_BUF_BPP (8)
  34. #define MARQUEE_BUF_FORMAT (PF_LUT8)
  35. #define MAX_TIMER_ACCUMULATOR (0xFFFF)
  36. #define GENG_TIMER_PERIOD (50) //50 ms
  37. //#define WM_MARQUEE (WM_MSG_MAX - 1)
  38. /* Value checking */
  39. #define GENG_MAX_UINT8_VALUE (0xFF)// The max INT8 value limitation
  40. #define GENG_MAX_INT16_VALUE (0x7FFF)// The max INT16 value limitation
  41. /* The max supported bar size for SCROLL bar */
  42. #define GENG_MAX_BAR_RESIZE_H (1920) // The max bar resized total size in horizontal
  43. #define GENG_MAX_BAR_RESIZE_V (1080) // The max bar resized total size in vertical
  44. /* Render sleep control */
  45. #define GENG_RENDER_SLEEP (2)
  46. #define STR_LINE_LIMIT (64) // Line limitation for direct rendering.
  47. /* Multiline textbox buffer size definition */
  48. #define TXT_BUF_SIZE_BOUND (1024) // 1K, size limit of a string buffer.
  49. #define FOCUSED_STR_BORDER_OFFSET_LEFT (8)
  50. #define FOCUSED_STR_BORDER_OFFSET_RIGHT (16)
  51. typedef struct _GENG_Vector_Font_Info_t {
  52. GEL_TextStyle_e eTextStyle;
  53. FONT_AA_Info_t stAAInfo;
  54. FONTSize_t bFontSize;
  55. } GENG_VFInfo_t;
  56. /* Text attributes description */
  57. typedef struct _GENG_TextInfo_t {
  58. UINT8 bTextAlign; // The text alignment style
  59. UINT8 bFixCharWidth; // Fix char width, disabled if equals to 0.
  60. FontStyle_e eFontStyle; // Font style, an enumeration value.
  61. BOOLEAN bDrawBorder; // Draw border or not.
  62. BOOLEAN bEpg; // This is an EPG string or not.
  63. BOOLEAN bStatic; // If it is a static string.
  64. GEL_TextBordType_e eBordType; // The type of the text border.
  65. GENG_VFInfo_t *pVFInfo; // Informations about vector font.
  66. } GENG_TextInfo_t;
  67. typedef struct _GENG_TxtColor_t{
  68. UINT8 bFgColor; // The index value of text filling color.
  69. UINT8 bBgColor; // The index value of text bg color.
  70. UINT8 bBordColor; // The index value of text border color.
  71. } GENG_TxtColor_t;
  72. typedef struct _GENG_PgrhInfo_t {
  73. LANGName_t stEpgCodepage; // To indicate epg string codepage.
  74. UINT8 bRowSpace; // The row spacing to be applied when rendering.
  75. UINT8 bFixLineHeight; // The fix line height to be applied when rendering.
  76. UINT16 wMaxLineNum; // The limitation of the max line number of the paragraph.
  77. INT16 swCurrLine; // Indicate the line index of the current page.
  78. } GENG_PgrhInfo_t;
  79. typedef struct _GENG_StrBuf_t {
  80. UINT8 *pAddr;
  81. UINT16 wWidth;
  82. UINT16 wHeight;
  83. UINT16 wXOffset; // Real char start offset x
  84. UINT16 wYOffset; // Real char start offset y
  85. } GENG_StrBuf_t;
  86. /* Control of GUI render task/ queue/ timer */
  87. typedef struct gui_engine_core_t_
  88. {
  89. //Queue Handle
  90. GL_Queue_t queueHandle;
  91. //Semaphores
  92. GL_Semaphore_t timerSemaphore;
  93. GL_Semaphore_t dataAccessSemaphore;
  94. GL_Semaphore_t textPreparseSemaphore; // TODO: 12/01
  95. //Mutex
  96. GL_Mutex_t sendMsgMutex;
  97. //Task Handle
  98. GL_Task_t taskHandle;
  99. GL_Task_t timerTaskHandle;
  100. // Timer
  101. GL_Timer_t timer;
  102. // Others
  103. UINT8 bGuiengBreakCondition;
  104. UINT8 bGuiTimerProcessBreakCondition;
  105. UINT8 bGuiengInitFlg;
  106. UINT8 bGuiTimerInitFlg;
  107. } GuiEngCore_t;
  108. /* Control of animation registr */
  109. typedef struct _animation_register_t {
  110. LIST link;
  111. HWND handle;
  112. BOOLEAN bActive;
  113. } AnimReg_t;
  114. /* Global variable */
  115. extern GuiEngCore_t *gpGuiEngCore;
  116. extern LISTHEAD gClassList;
  117. extern LISTHEAD gAnimList;
  118. extern HWND gRootWindow;
  119. extern HWND gActiveWindow;
  120. // blit id control
  121. extern INT32 gBlitId;
  122. extern INT32 gCurrFinishBlitId;
  123. // rendering delay control
  124. extern BOOLEAN gbRenderSleep;
  125. // string buffer
  126. extern DRAWDRIVER ddriver;
  127. /* Subtitle related variables */
  128. extern BOOLEAN gbSubDraw;
  129. extern UINT8 gbSubLineSpacing;
  130. extern UINT8 gbSubCharSpacing;
  131. /* Register a specific class of widgets. */
  132. GUIResult_e register_class_background(void);
  133. GUIResult_e register_class_icon(void);
  134. GUIResult_e register_class_text(void);
  135. GUIResult_e register_class_animation(void);
  136. GUIResult_e register_class_border(void);
  137. GUIResult_e register_class_button(void);
  138. GUIResult_e register_class_button_group(void);
  139. GUIResult_e register_class_listview(void);
  140. GUIResult_e register_class_progress(void);
  141. GUIResult_e register_class_scroll(void);
  142. GUIResult_e register_class_combo(void);
  143. GUIResult_e register_class_edit(void);
  144. /* Set params to a menu or popup menu. */
  145. GUIResult_e set_params_class_menu(HWND handle, ParamType_e eParamType, void *pParam);
  146. /* Set params to a specified class of widgets. */
  147. GUIResult_e set_params_class_background(HWND handle, ParamType_e eParamType, void *pParam);
  148. GUIResult_e set_params_class_icon(HWND handle, ParamType_e eParamType, void *pParam);
  149. GUIResult_e set_params_class_text(HWND handle, ParamType_e eParamType, void *pParam);
  150. GUIResult_e set_params_class_animation(HWND handle, ParamType_e eParamType, void *pParam);
  151. GUIResult_e set_params_class_border(HWND handle, ParamType_e eParamType, void *pParam);
  152. GUIResult_e set_params_class_button(HWND handle, ParamType_e eParamType, void *pParam);
  153. GUIResult_e set_params_class_button_group(HWND handle, ParamType_e eParamType, void *pParam);
  154. GUIResult_e set_params_class_listview(HWND handle, ParamType_e eParamType, void *pParam);
  155. GUIResult_e set_params_class_progress(HWND handle, ParamType_e eParamType, void *pParam);
  156. GUIResult_e set_params_class_scroll(HWND handle, ParamType_e eParamType, void *pParam);
  157. GUIResult_e set_params_class_combo(HWND handle, ParamType_e eParamType, void *pParam);
  158. GUIResult_e set_params_class_edit(HWND handle, ParamType_e eParamType, void *pParam);
  159. /* Get params from a specified class of widgets. */
  160. GUIResult_e get_params_class_background(HWND handle, ParamType_e eParamType, void *pParam);
  161. GUIResult_e get_params_class_icon(HWND handle, ParamType_e eParamType, void *pParam);
  162. GUIResult_e get_params_class_text(HWND handle, ParamType_e eParamType, void *pParam);
  163. GUIResult_e get_params_class_animation(HWND handle, ParamType_e eParamType, void *pParam);
  164. GUIResult_e get_params_class_border(HWND handle, ParamType_e eParamType, void *pParam);
  165. GUIResult_e get_params_class_button(HWND handle, ParamType_e eParamType, void *pParam);
  166. GUIResult_e get_params_class_button_group(HWND handle, ParamType_e eParamType, void *pParam);
  167. GUIResult_e get_params_class_listview(HWND handle, ParamType_e eParamType, void *pParam);
  168. GUIResult_e get_params_class_progress(HWND handle, ParamType_e eParamType, void *pParam);
  169. GUIResult_e get_params_class_scroll(HWND handle, ParamType_e eParamType, void *pParam);
  170. GUIResult_e get_params_class_combo(HWND handle, ParamType_e eParamType, void *pParam);
  171. GUIResult_e get_params_class_edit(HWND handle, ParamType_e eParamType, void *pParam);
  172. /* Add menu offset to a specified class of widgets. */
  173. void add_menu_offset_class_background(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  174. void add_menu_offset_class_icon(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  175. void add_menu_offset_class_text(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  176. void add_menu_offset_class_animation(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  177. void add_menu_offset_class_border(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  178. void add_menu_offset_class_button(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  179. void add_menu_offset_class_button_group(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  180. void add_menu_offset_class_listview(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  181. void add_menu_offset_class_progress(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  182. void add_menu_offset_class_scroll(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  183. void add_menu_offset_class_combo(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  184. void add_menu_offset_class_edit(HWND pHandle, INT16 wMenuOffsetX, INT16 wMenuOffsetY);
  185. /* Create duplicate core struct to a specified class of widgets. */
  186. GUIResult_e create_core_struct_class_background(WinControl_t *pDefaultWinCtl, HWND handle);
  187. GUIResult_e create_core_struct_class_icon(WinControl_t *pDefaultWinCtl, HWND handle);
  188. GUIResult_e create_core_struct_class_text(WinControl_t *pDefaultWinCtl, HWND handle);
  189. GUIResult_e create_core_struct_class_animation(WinControl_t *pDefaultWinCtl, HWND handle);
  190. GUIResult_e create_core_struct_class_border(WinControl_t *pDefaultWinCtl, HWND handle);
  191. GUIResult_e create_core_struct_class_button(WinControl_t *pDefaultWinCtl, HWND handle);
  192. GUIResult_e create_core_struct_class_button_group(WinControl_t *pDefaultWinCtl, HWND handle);
  193. GUIResult_e create_core_struct_class_listview(WinControl_t *pDefaultWinCtl, HWND handle);
  194. GUIResult_e create_core_struct_class_progress(WinControl_t *pDefaultWinCtl, HWND handle);
  195. GUIResult_e create_core_struct_class_scroll(WinControl_t *pDefaultWinCtl, HWND handle);
  196. GUIResult_e create_core_struct_class_combo(WinControl_t *pDefaultWinCtl, HWND handle);
  197. GUIResult_e create_core_struct_class_edit(WinControl_t *pDefaultWinCtl, HWND handle);
  198. /* Destroy duplicate core struct to a specified class of widgets. */
  199. GUIResult_e destroy_core_struct_class_background(WinControl_t *pDefaultWinCtl, HWND handle);
  200. GUIResult_e destroy_core_struct_class_icon(WinControl_t *pDefaultWinCtl, HWND handle);
  201. GUIResult_e destroy_core_struct_class_text(WinControl_t *pDefaultWinCtl, HWND handle);
  202. GUIResult_e destroy_core_struct_class_animation(WinControl_t *pDefaultWinCtl, HWND handle);
  203. GUIResult_e destroy_core_struct_class_border(WinControl_t *pDefaultWinCtl, HWND handle);
  204. GUIResult_e destroy_core_struct_class_button(WinControl_t *pDefaultWinCtl, HWND handle);
  205. GUIResult_e destroy_core_struct_class_button_group(WinControl_t *pDefaultWinCtl, HWND handle);
  206. GUIResult_e destroy_core_struct_class_listview(WinControl_t *pDefaultWinCtl, HWND handle);
  207. GUIResult_e destroy_core_struct_class_progress(WinControl_t *pDefaultWinCtl, HWND handle);
  208. GUIResult_e destroy_core_struct_class_scroll(WinControl_t *pDefaultWinCtl, HWND handle);
  209. GUIResult_e destroy_core_struct_class_combo(WinControl_t *pDefaultWinCtl, HWND handle);
  210. GUIResult_e destroy_core_struct_class_edit(WinControl_t *pDefaultWinCtl, HWND handle);
  211. /**
  212. * Find if a class is a registed type of widget control.
  213. *
  214. * @param eClassType The class of the widget control
  215. * @return Structure of WNDCLASS
  216. */
  217. PWNDCLASS gel_find_class(ClassType_e eClassType);
  218. /**
  219. * Register a class of widget control.
  220. *
  221. * @param pWinClass Pointer to the structure WNDCLASS
  222. * @return SUCCESS if succeed, error codes of FAILURE otherwise.
  223. */
  224. GUIResult_e gel_register_class(const WNDCLASS *pWinClass);
  225. /**
  226. * Unregister a class of widget control.
  227. *
  228. * @param eClassType The class of the widget control
  229. * @return SUCCESS if succeed, error codes of FAILURE otherwise.
  230. */
  231. GUIResult_e gel_unregister_class(ClassType_e eClassType);
  232. /**
  233. * Check a class whether is in registered class list.
  234. *
  235. * @param pWinClass Pointer to the structure WNDCLASS
  236. * @return SUCCESS if succeed, error codes of FAILURE otherwise.
  237. */
  238. GUIResult_e gel_check_class_validity(const WNDCLASS *pWinClass);
  239. /**
  240. * Check gAnimList to ensure if the given handle is already in the anim list.
  241. *
  242. * @param pHandle The handle of an animation control to be checked.
  243. * @return The pointer of the registration node if the handle is already registered.
  244. */
  245. AnimReg_t* gel_find_animation(HWND pHandle);
  246. /**
  247. * Register an animation to gAnimList.
  248. *
  249. * @param pAnimReg The pointer to the registration information.
  250. */
  251. void gel_register_animation(AnimReg_t *pAnimReg);
  252. /**
  253. * Unregister an animation to gAnimList.
  254. *
  255. * @param pAnimHandle The handle of an animation to be unregistered.
  256. */
  257. void gel_unregister_animation(HWND pAnimHandle);
  258. /**
  259. * Enable/disable the animation in the gAnimList.
  260. *
  261. * @param pAnimHandle The handle of an animation.
  262. * @param bEnable Whether to enable the animation.
  263. */
  264. void gel_set_anim_enable(HWND pAnimHandle, BOOLEAN bEnable);
  265. /**
  266. * Check the animation is active or not.
  267. *
  268. * @param pAnimHandle The handle of an animation.
  269. * @return TRUE if the animation is active, FALSE otherwise.
  270. */
  271. BOOLEAN gel_check_anim_active(HWND pAnimHandle);
  272. /**
  273. * Fill the x, y, width and height to the specified RECT structure.
  274. *
  275. * @param pRect Pointer to a RECT structure.
  276. * @param swX X position.
  277. * @param swY Y position.
  278. * @param wWidth Width of the rectangle.
  279. * @param wHeight Height of the rectangle.
  280. * @return GUI_SUCCESS if succeed, error codes otherwise.
  281. */
  282. GUIResult_e gel_set_rect(LPRECT pRect, INT16 swX, INT16 swY, UINT16 wWidth, UINT16 wHeight);
  283. /**
  284. * Show all controls in a WINDOW/POPUP.
  285. *
  286. * @param pWinCtrl A WinControl_t pointer to a WINDOW/POPUP.
  287. * @param dControlFlags Control flags for the rendering.
  288. * @param bDirect Direct rendering or send msg.
  289. * @return GUI_SUCCESS if succeed, error codes otherwise.
  290. */
  291. GUIResult_e gel_show_window(WinControl_t *pWinCtrl, UINT32 dControlFlags, BOOLEAN bDirect);
  292. /**
  293. * Create a control handle.
  294. *
  295. * @param pstControl The pointer of WinControl_t to a control.
  296. * @param pParentHandle The HWND pointer to the control's parent menu.
  297. * @return GUI_SUCCESS if succeed, error codes otherwise.
  298. */
  299. GUIResult_e gel_create_handle(WinControl_t *pstControl, HWND pParentHandle);
  300. /**
  301. * Destroy a control handle.
  302. *
  303. * @param pHandle The handle of a control to be destroyed.
  304. * @return GUI_SUCCESS if succeed, error codes otherwise.
  305. */
  306. GUIResult_e gel_destroy_handle(HWND pHandle);
  307. /**
  308. * Private message sending function used by GUI Engine internal.
  309. *
  310. * @param pHandle The handle of a region.
  311. * @param dMsg Pointer to the structure WNDCLASS (to get message)
  312. * @param dParam1 Parameters for the extra infomation
  313. * @param dParam2 Parameters for the extra infomation
  314. * @param bUrgent Boolean value that indicates it is an urgent message or not.
  315. * @return GUI_SUCCESS if succeed, error codes otherwise.
  316. */
  317. GUIResult_e gel_send_update_message(RegionHandle_t sdRegionHandle, UINT32 dMsg, UINT32 dParam1, UINT32 dParam2, BOOLEAN bUrgent);
  318. /**
  319. * Private message sending function used by GUI Engine internal.
  320. *
  321. * @param pHandle The handle of a control.
  322. * @param dMsg Pointer to the structure WNDCLASS (to get message)
  323. * @param dControlFlags Parameters for the extra infomation
  324. * @param dInputKey Parameters for the extra infomation
  325. * @param bUrgent Boolean value that indicates it is an urgent message or not.
  326. * @return GUI_SUCCESS if succeed, error codes otherwise.
  327. */
  328. GUIResult_e gel_send_message(HWND pHandle, UINT32 dMsg, UINT32 dControlFlags, UINT32 dInputKey, BOOLEAN bUrgent);
  329. /**
  330. * Create a duplicate control data structure.
  331. *
  332. * @param pDefaultWinCtl Pointer to the default win control struct.
  333. * @param pHandle Pointer to the control's handle.
  334. */
  335. GUIResult_e gel_CreateDuplControl(WinControl_t *pDefaultWinCtl, HWND pHandle);
  336. /**
  337. * Destroy the duplicate control data structure.
  338. *
  339. * @param pDuplWinCtl Pointer to the duplicate win control struct.
  340. * @param pHandle Pointer to the control's handle.
  341. */
  342. GUIResult_e gel_DestroyDuplControl(WinControl_t *pDuplWinCtl, HWND pHandle);
  343. /**
  344. * Draw a string to an OSD region.
  345. *
  346. * @param pstHdc The pointer to the target dc handle.
  347. * @param pStr The string data.
  348. * @param eStrType The encoded type of the string.
  349. * @param pstTextInfo The text rendering info of the string.
  350. * @param pstVFInfo The vector font related settings.
  351. * @param pStrRect The area of the OSD region to be rendered the string to.
  352. * @return GUI_SUCCESS if succeed, error codes otherwise.
  353. */
  354. GUIResult_e gel_DrawString(HDC pstHdc, UINT8 *pStr, GEL_DynStrType_e eStrType,
  355. GEL_TextInfo_t *pstTextInfo, GEL_VFInfo_t *pstVFInfo, PRECT pStrRect, INT32 *pBlockId);
  356. /**
  357. * Draw a bitmap to an OSD region.
  358. *
  359. * @param pstHdc The pointer to the target dc handle.
  360. * @param pstBitmapHandle The string data.
  361. * @param dFlags The flag to indicate the bmp rendering style.
  362. * @param pstSrcRect The pointer to a rect area of the source bitmap to be blited.
  363. * @param pstDstRect The pointer to a rect area of the OSD region to be blited to.
  364. * @return GUI_SUCCESS if succeed, error codes otherwise.
  365. */
  366. GUIResult_e gel_DrawBitmap(HDC pstHdc, GEL_BitmapHandle_t *pstBitmapHandle, UINT32 dFlags,
  367. PRECT pstSrcRect, PRECT pstDstRect, INT32 *pBlockId);
  368. /**
  369. * Fill a color to the rect area of an OSD region.
  370. *
  371. * @param pstHdc The pointer to the target dc handle.
  372. * @param stColor The color to be filled with.
  373. * @param pstDstRect The pointer to a rect area of the OSD region to be rendered to.
  374. * @return GUI_SUCCESS if succeed, error codes otherwise.
  375. */
  376. GUIResult_e gel_FillRect(HDC pstHdc, GEL_Color_t stColor, PRECT pstDstRect, INT32 *pBlockId);
  377. /**
  378. * draw hole rect area of an OSD region.
  379. *
  380. * @param pstHdc The pointer to the target dc handle.
  381. * @param nLineWidth The line width to be drawed with.
  382. * @param pstDstRect The pointer to a rect area of the OSD region to be rendered to.
  383. * @return GUI_SUCCESS if succeed, error codes otherwise.
  384. */
  385. GUIResult_e gel_DrawHoleRectangle(HDC pstHdc, PRECT pstDstRect, UINT16 nLineWidth, INT32 *pBlockId, INT32 isEvenAlign);
  386. /**
  387. * Draw a line between two points of an OSD region.
  388. *
  389. * @param pstHdc The pointer to the target dc handle.
  390. * @param stColor The color to be filled with.
  391. * @param swX1 The x coordinate of the start point.
  392. * @param swY1 The y coordinate of the start point.
  393. * @param swX2 The x coordinate of the end point.
  394. * @param swY2 The y coordinate of the end point.
  395. * @param wThickness The thickness of a line.
  396. * @return GUI_SUCCESS if succeed, error codes otherwise.
  397. */
  398. GUIResult_e gel_DrawLine(HDC pstHdc, GEL_Color_t stColor, INT16 swX1, INT16 swY1,
  399. INT16 swX2, INT16 swY2, UINT16 wThickness, INT32 *pBlockId);
  400. /**
  401. * Enable or Disable OSD.
  402. *
  403. * @param ShowOS
  404. * @return GUI_SUCCESS if succeed, error codes otherwise.
  405. */
  406. GUIResult_e gel_SetDispaly(HDC pstHdc, BOOL ShowOSD);
  407. #endif /* __GEL_PRIVATE__ */