268 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | |
|     UI Control window header file
 | |
| 
 | |
|     All window related export variables and function prototypes.
 | |
| 
 | |
|     @file       UIControlWnd.h
 | |
|     @ingroup    mIUIControl
 | |
|     @note       Nothing (or anything need to be mentioned).
 | |
| 
 | |
|     Copyright   Novatek Microelectronics Corp. 2011.  All rights reserved.
 | |
| */
 | |
| #ifndef UICONTROLWND_H
 | |
| #define UICONTROLWND_H
 | |
| 
 | |
| #include "NvtUser/NVTReturn.h"
 | |
| #include "UIControlEvent.h"
 | |
| #include "VControl/VControl.h"
 | |
| 
 | |
| /**
 | |
|      @addtogroup mIUIControl
 | |
| */
 | |
| //@{
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|     General Control type
 | |
| */
 | |
| typedef enum {
 | |
| 	CTRL_BASE       = CTRL_TYPE_MIN, ///< Base control type,Ux_DefaultEvent would loop up the control's base object
 | |
| 	CTRL_WND,                        ///< Window control,for all Ux_xxxWindow APIs
 | |
| 	CTRL_TYPE_MAX                    ///< Max control type value.
 | |
| } CONTROL_TYPE;
 | |
| 
 | |
| 
 | |
| /**
 | |
|     @name Speicial window index for Ux_GetWindowByIndex
 | |
| */
 | |
| //@{
 | |
| #define UX_ROOT_WND_IDX         0   ///< Root window index
 | |
| #define UX_2NDLAYER_WND_IDX     1   ///< Second windwo index
 | |
| #define UX_3RDLAYER_WND_IDX     2   ///< Third window index
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|     The parameter index of NVTEVT_REDRAW event.
 | |
|     The first NVTEVT_REDRAW parameter always screen obj.
 | |
|     Example:
 | |
|     @code
 | |
|     INT32 Wnd_OnDraw(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
 | |
|     {
 | |
|         DC** pDCList = (DC**)paramArray[ONEVENT_PARAM_INDEX_SCREEN];
 | |
|     }
 | |
|     @endcode
 | |
| */
 | |
| #define ONEVENT_PARAM_INDEX_SCREEN    0
 | |
| 
 | |
| /**
 | |
|     Create a window
 | |
| 
 | |
|     After the window is created, the window is the focused window.
 | |
|     All events is dispathed to this window.
 | |
| 
 | |
|     @param[in] pCtrl The pointer of the window instance
 | |
|     @param[in] paramNum How many parameters given to the created window. Acceptable value:0~3
 | |
|     @param ... Variable number arguments according to paramNum
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK open success
 | |
|         - @b NVTRET_ERROR open fail
 | |
| 
 | |
|     @code
 | |
|     Ux_OpenWindow((VControl *)(&UIFlowInfo), 0);
 | |
|     @endcode
 | |
| 
 | |
|     @code
 | |
|     Ux_OpenWindow((VControl *)(&UIFlowInfo), 1, value1);
 | |
|     @endcode
 | |
| 
 | |
|     @code
 | |
|     Ux_OpenWindow((VControl *)(&UIFlowInfo), 2, value1, value2);
 | |
|     @endcode
 | |
| 
 | |
|     @code
 | |
|     Ux_OpenWindow((VControl *)(&UIFlowInfo), 3, value1, value2, value3);
 | |
|     @endcode
 | |
| */
 | |
| extern NVTRET Ux_OpenWindow(VControl *pCtrl, UINT32 paramNum, ...);
 | |
| 
 | |
| /**
 | |
|     Close a window
 | |
| 
 | |
|     If input window is the last window, this window is closed.
 | |
|     If input window is not the last window, the windows opened after input window are
 | |
|     closed, includeing the input window.
 | |
| 
 | |
|     @param[in] pCtrl The pointer of the window instance
 | |
|     @param[in] paramNum How many parameters given to the created window. Acceptable value:0~3
 | |
|     @param ... Variable number arguments according to paramNum
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK close success
 | |
|         - @b NVTRET_ERROR close fail
 | |
| */
 | |
| extern NVTRET Ux_CloseWindow(VControl *pCtrl, UINT32 paramNum, ...);
 | |
| 
 | |
| /**
 | |
|     Close a window with clear the screen
 | |
| 
 | |
|     The action of this function is mush the same as Ux_CloseWindow().
 | |
|     Besides, it calls the _pUIReader->pfn_ClearScreen() to clear the screen.
 | |
|     The actul clearing process is defined in the function pointed by pfn_ClearScreen.
 | |
| 
 | |
|     @param[in] pCtrl The pointer of the window instance
 | |
|     @param[in] paramNum How many parameters given to the created window. Acceptable value:0~3
 | |
|     @param ... Variable number arguments according to paramNum
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK close success
 | |
|         - @b NVTRET_ERROR close fail
 | |
| 
 | |
| */
 | |
| extern NVTRET Ux_CloseWindowClear(VControl *pCtrl, UINT32 paramNum, ...);
 | |
| 
 | |
| /**
 | |
|     Get root window
 | |
| 
 | |
|     Root window means the first created window.
 | |
| 
 | |
|     @param[out] pRootCtrl The root window pointer by reference
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK get success
 | |
|         - @b NVTRET_ERROR get fail
 | |
| 
 | |
| */
 | |
| extern NVTRET Ux_GetRootWindow(VControl **pRootCtrl);
 | |
| 
 | |
| /**
 | |
|     Get parent window
 | |
| 
 | |
|     Parent window means the previous created window of the input window.
 | |
| 
 | |
|     @param[in] pCtrl The pointer of the window instance
 | |
|     @param[out] pParentWnd The parent window pointer by reference
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK get success
 | |
|         - @b NVTRET_ERROR get fail
 | |
| 
 | |
| */
 | |
| extern NVTRET Ux_GetParentWindow(VControl *pCtrl, VControl **pParentWnd);
 | |
| 
 | |
| /**
 | |
|     Get current focused window
 | |
| 
 | |
|     @param[out] ppFocusWnd The focused window pointer by reference
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK get success
 | |
|         - @b NVTRET_ERROR get fail
 | |
| 
 | |
| */
 | |
| extern NVTRET Ux_GetFocusedWindow(VControl **ppFocusWnd);
 | |
| 
 | |
| /**
 | |
|     Get window by index
 | |
| 
 | |
|     @param[out] ppWnd The index window pointer by reference
 | |
|     @param[in] index Control index,root index is 0
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK get success
 | |
|         - @b NVTRET_ERROR get fail
 | |
| 
 | |
| */
 | |
| extern NVTRET Ux_GetWindowByIndex(VControl **ppWnd, UINT8 index);
 | |
| 
 | |
| /**
 | |
| 
 | |
|     Get this control is force closed by leaf control or not.
 | |
|     In child close,user can get this close is from child or
 | |
|     direct force close to root window.
 | |
| 
 | |
|     @return
 | |
|         - @b TRUE The control is force closed
 | |
|         - @b FALSE The control is not force closed
 | |
| */
 | |
| extern BOOL Ux_IsForceCloseWindow(void);
 | |
| 
 | |
| /**
 | |
|     define UIScreen type
 | |
| */
 | |
| typedef UINT32 UIScreen;
 | |
| 
 | |
| /**
 | |
|     Render function pointer
 | |
| */
 | |
| typedef struct _UIRender {
 | |
| 	UIScreen(*pfn_BeginScreen)(void);                                                   ///< Begin screen function, need to return Screen Object.
 | |
| 	void (*pfn_EndScreen)(UIScreen ScreenObj);                                          ///< End screen function
 | |
| 	void (*pfn_BeginWindow)(VControl *pCtrl, UIScreen ScreenObj);                       ///< Begin window function
 | |
| 	void (*pfn_EndWindow)(VControl *pCtrl, UIScreen ScreenObj);                         ///< End window function
 | |
| 	void (*pfn_BeginControl)(VControl *pCtrl, VControl *pControl, UIScreen ScreenObj);  ///< Begin control function
 | |
| 	void (*pfn_EndControl)(VControl *pCtrl, VControl *pControl, UIScreen ScreenObj);    ///< End control function
 | |
| 	void (*pfn_ClearScreen)(UIScreen ScreenObj);                                        ///< Clear screen function. May called by CloseWindowClear().
 | |
| }
 | |
| UIRender;
 | |
| 
 | |
| /**
 | |
|     Set UIRender instance to UI framework
 | |
| 
 | |
|     @param[in] pUIRender The pointer of UIRender instance
 | |
| */
 | |
| extern void Ux_SetRender(UIRender *pUIRender);
 | |
| 
 | |
| /**
 | |
|     Ux_Redraw the control
 | |
| 
 | |
|     This function checks the dirty and show status of the focused control include its child control
 | |
|     to determine what Ux_Redraw actions should be done.
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK Redraw success
 | |
|         - @b NVTRET_ERROR Redraw fail
 | |
| */
 | |
| extern NVTRET Ux_Redraw(void);
 | |
| 
 | |
| /**
 | |
|     Ux_Redraw the all control from root window
 | |
| 
 | |
|     This function would redraw all windows from root.It is usefull if the child window is not full seceen
 | |
|     and need to update parent screen.
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK Redraw success
 | |
|         - @b NVTRET_ERROR Redraw fail
 | |
| */
 | |
| extern NVTRET Ux_RedrawAllWind(void);
 | |
| 
 | |
| /**
 | |
|     Dispatch message
 | |
| 
 | |
|     This API would according to input event dispatch to corresponding function to
 | |
|     accomplish job.
 | |
| 
 | |
|     @param[in] evt window control event
 | |
|     @param[in] paramNum How many parameters given. Acceptable value:0~3
 | |
|     @param[in] paramArray number arguments according to paramNum
 | |
| 
 | |
|     @return
 | |
|         - @b NVTRET_OK Redraw success
 | |
|         - @b NVTRET_ERROR Redraw fail
 | |
| */
 | |
| extern INT32 Ux_WndDispatchMessage(NVTEVT evt, UINT32 paramNum, UINT32 *paramArray);
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Dump window information.(focus window and rott window).
 | |
| */
 | |
| extern void Ux_DumpStatus(void);
 | |
| 
 | |
| extern void Ux_SetDebugMsg(UINT32 Show);
 | |
| 
 | |
| //@}
 | |
| #endif //UICONTROLWND_H
 | |
| 
 | 
