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
 | 
						|
 |