gobj_datastruct.h 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*****************************************************************************
  2. ** File: gobj_datastruct.h
  3. **
  4. ** Description:
  5. **
  6. ** Copyright(c) 2008 Sunmedia Technologies - All Rights Reserved
  7. **
  8. ** Author : qin.he
  9. **
  10. ** $Id: $
  11. *****************************************************************************/
  12. #ifndef _GUI_OBJECT_DATASTRUCTURE_H_
  13. #define _GUI_OBJECT_DATASTRUCTURE_H_
  14. /*head files*/
  15. #include <stdio.h>
  16. #include <ctype.h>
  17. #include <types.h>
  18. /*macro define*/
  19. #define GUI_OBJ_CAN_BE_FOCUSED 1
  20. #define GUI_OBJ_CAN_NOT_BE_FOCUSED 0
  21. #define GUI_OBJ_UPDATE_PERIOD 1 //(100 ms)
  22. #define GUI_OBJ_NO_UPDATE 0
  23. /*Event type and mask*/
  24. #define SYSAPP_GLOBAL_EVENT_TYPE (0)
  25. #define GUIOBJ_FEEDBACK_EVENT_TYPE (1 << 25)
  26. #define GUIOBJ_MESSAGE_MASK (APPLICATION_MESSAGE_MASK)
  27. #define GUIOBJ_MESSAGE_TYPE_MASK (APPLICATION_MESSAGE_TYPE_MASK)
  28. /*return type*/
  29. #define GUI_OBJECT_EVENT_INTERCEPTED (1 << 8)
  30. #define GUI_OBJECT_NO_POST_ACTION (1 << 9)
  31. #define GUI_OBJECT_EVENT_BYPASS (1 << 10)
  32. #define GUI_OBJECT_POST_EVENT (1 << 11)
  33. /*post action event*/
  34. #define GUI_OBJECT_CLOSE 0x2010
  35. #define GUI_OBJECT_SWITCH 0x2020
  36. #define GUI_OBJECT_MESSAGE 0x2030
  37. #define GUI_OBJECT_OPEN 0x2060
  38. #define GUI_OBJECT_CLOSE_AND_GUIMSG 0x2070
  39. #define GUI_OBJECT_GUIMSG 0x2080
  40. #define GUI_OBJECT_CLOSE_AND_BROADCAST 0x2090
  41. /*data structure define*/
  42. typedef struct _InteractiveData_t_
  43. {
  44. UINT32 dEventID;
  45. UINT32 dParam1;
  46. UINT32 dParam2;
  47. }InteractiveData_t;
  48. /***********************************************************************************************************************
  49. dEvent dParam1 dParam2
  50. GUI_OBJECT_CLOSE GUI object ID to be closed Currently not in use
  51. GUI_OBJECT_SWITCH GUI object ID to be opened optional extra param for gui object OnCreate function
  52. GUI_OBJECT_OPEN GUI object ID to be opened optional extra param for gui object OnCreate function
  53. GUI_OBJECT_MESSAGE GUI_RESPOND_YES or GUI_RESPOND_NO Currently not in use
  54. ************************************************************************************************************************/
  55. #define SetInteractiveData(PostEventData, Event, Param1, Param2)\
  56. {(PostEventData->dEventID = Event);\
  57. (PostEventData->dParam1 = Param1);\
  58. (PostEventData->dParam2 = Param2);}
  59. typedef int (*GUIObjectFuncPtr) (void *pPrivateData);
  60. typedef int (*GUIObjectFuncPtr1) (void **pPrivateData,UINT32 dPara);
  61. typedef int (*GUIObjectTimerFuncPtr) (void *pPrivateData, InteractiveData_t *pPostEventData);
  62. typedef int (*GUIObjectEventFuncPtr) (UINT32 dEventID, UINT32 dParam, void *pPrivateData, InteractiveData_t *pPostEventData);
  63. typedef struct _GUI_Object_Definition_t {
  64. UINT8 bCanBeFocused;
  65. UINT32 dUpdatePeriod; // 100 Mini-second per unit
  66. GUIObjectFuncPtr1 fpGUIObjectOnCreate;
  67. GUIObjectFuncPtr fpGUIObjectOnDestroy;
  68. GUIObjectFuncPtr fpGUIObjectOnFocused;
  69. GUIObjectFuncPtr fpGUIObjectOnLoseFocus;
  70. GUIObjectTimerFuncPtr fpGUIObjectOnTimerUpdate;
  71. GUIObjectEventFuncPtr fpGUIObjectOnEvent;
  72. } GUI_Object_Definition_t;
  73. #endif