/***************************************************************************** ** File: gobj_datastruct.h ** ** Description: ** ** Copyright(c) 2008 Sunmedia Technologies - All Rights Reserved ** ** Author : qin.he ** ** $Id: $ *****************************************************************************/ #ifndef _GUI_OBJECT_DATASTRUCTURE_H_ #define _GUI_OBJECT_DATASTRUCTURE_H_ /*head files*/ #include #include #include /*macro define*/ #define GUI_OBJ_CAN_BE_FOCUSED 1 #define GUI_OBJ_CAN_NOT_BE_FOCUSED 0 #define GUI_OBJ_UPDATE_PERIOD 1 //(100 ms) #define GUI_OBJ_NO_UPDATE 0 /*Event type and mask*/ #define SYSAPP_GLOBAL_EVENT_TYPE (0) #define GUIOBJ_FEEDBACK_EVENT_TYPE (1 << 25) #define GUIOBJ_MESSAGE_MASK (APPLICATION_MESSAGE_MASK) #define GUIOBJ_MESSAGE_TYPE_MASK (APPLICATION_MESSAGE_TYPE_MASK) /*return type*/ #define GUI_OBJECT_EVENT_INTERCEPTED (1 << 8) #define GUI_OBJECT_NO_POST_ACTION (1 << 9) #define GUI_OBJECT_EVENT_BYPASS (1 << 10) #define GUI_OBJECT_POST_EVENT (1 << 11) /*post action event*/ #define GUI_OBJECT_CLOSE 0x2010 #define GUI_OBJECT_SWITCH 0x2020 #define GUI_OBJECT_MESSAGE 0x2030 #define GUI_OBJECT_OPEN 0x2060 #define GUI_OBJECT_CLOSE_AND_GUIMSG 0x2070 #define GUI_OBJECT_GUIMSG 0x2080 #define GUI_OBJECT_CLOSE_AND_BROADCAST 0x2090 /*data structure define*/ typedef struct _InteractiveData_t_ { UINT32 dEventID; UINT32 dParam1; UINT32 dParam2; }InteractiveData_t; /*********************************************************************************************************************** dEvent dParam1 dParam2 GUI_OBJECT_CLOSE GUI object ID to be closed Currently not in use GUI_OBJECT_SWITCH GUI object ID to be opened optional extra param for gui object OnCreate function GUI_OBJECT_OPEN GUI object ID to be opened optional extra param for gui object OnCreate function GUI_OBJECT_MESSAGE GUI_RESPOND_YES or GUI_RESPOND_NO Currently not in use ************************************************************************************************************************/ #define SetInteractiveData(PostEventData, Event, Param1, Param2)\ {(PostEventData->dEventID = Event);\ (PostEventData->dParam1 = Param1);\ (PostEventData->dParam2 = Param2);} typedef int (*GUIObjectFuncPtr) (void *pPrivateData); typedef int (*GUIObjectFuncPtr1) (void **pPrivateData,UINT32 dPara); typedef int (*GUIObjectTimerFuncPtr) (void *pPrivateData, InteractiveData_t *pPostEventData); typedef int (*GUIObjectEventFuncPtr) (UINT32 dEventID, UINT32 dParam, void *pPrivateData, InteractiveData_t *pPostEventData); typedef struct _GUI_Object_Definition_t { UINT8 bCanBeFocused; UINT32 dUpdatePeriod; // 100 Mini-second per unit GUIObjectFuncPtr1 fpGUIObjectOnCreate; GUIObjectFuncPtr fpGUIObjectOnDestroy; GUIObjectFuncPtr fpGUIObjectOnFocused; GUIObjectFuncPtr fpGUIObjectOnLoseFocus; GUIObjectTimerFuncPtr fpGUIObjectOnTimerUpdate; GUIObjectEventFuncPtr fpGUIObjectOnEvent; } GUI_Object_Definition_t; #endif