161 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | ||
|     UI list control related API.
 | ||
| 
 | ||
|     UI list control export variables and function prototypes.
 | ||
| 
 | ||
|     @file       UICtrlListLib.h
 | ||
|     @ingroup    mIUIControl
 | ||
|     @note       Nothing (or anything need to be mentioned).
 | ||
| 
 | ||
|     Copyright   Novatek Microelectronics Corp. 2011.  All rights reserved.
 | ||
| */
 | ||
| 
 | ||
| #ifndef UICTRLLISTLIB_H
 | ||
| #define UICTRLLISTLIB_H
 | ||
| 
 | ||
| #include "UIControlExt.h"
 | ||
| 
 | ||
| /**
 | ||
|     @addtogroup mIUIControl
 | ||
| */
 | ||
| //@{
 | ||
| 
 | ||
| /**
 | ||
|      List item data structure
 | ||
| */
 | ||
| typedef struct _CTRL_LIST_ITEM_DATA {
 | ||
| 	UINT32 stringID;                 ///< List item string ID
 | ||
| 	UINT32 iconID;                   ///< List item icon ID
 | ||
| 	UINT32 StatusFlag;               ///< List item status
 | ||
| } CTRL_LIST_ITEM_DATA;
 | ||
| 
 | ||
| /**
 | ||
|      List data structure
 | ||
| */
 | ||
| typedef struct _CTRL_LIST_DATA {
 | ||
| 	UINT32  currentItem;            ///< Current selected item
 | ||
| 	UINT32  totalItem;              ///< Total item
 | ||
| 	UINT32  pageItem;               ///< Item number per page
 | ||
| 	UINT32  style;                  ///< List style (bitwise ,refer to list style bit mask)
 | ||
| 	UINT32  action;                 ///< List action
 | ||
| 	CTRL_LIST_ITEM_DATA **item;     ///< The pointer of list item
 | ||
| 	UINT32 reserved;                ///< Reserved
 | ||
| 	UINT32 pExeEvent;               ///< List event
 | ||
| } CTRL_LIST_DATA;
 | ||
| 
 | ||
| 
 | ||
| /**
 | ||
|     @name List style group
 | ||
| */
 | ||
| //@{
 | ||
| #define LIST_LAYOUT_MASK         0xF                    ///< List layout mask
 | ||
| #define LIST_LAYOUT_VERTICAL     0x0                    ///< Vertical type list
 | ||
| #define LIST_LAYOUT_HORIZONTAL   0x1                    ///< Horizontal type list
 | ||
| #define LIST_LAYOUT_ARRAY        0x2                    ///< Array type list
 | ||
| 
 | ||
| #define LIST_SCROLL_END_MASK     0xF0                   ///< List scroll end behavior mask
 | ||
| #define LIST_SCROLL_STOP         0x00                   ///< Scroll to item end and then stop
 | ||
| #define LIST_SCROLL_CYCLE        0x10                   ///< Scroll to item end and start form first item
 | ||
| 
 | ||
| #define LIST_DISABLE_SCRL_MASK   0xF00                  ///< List disable item scroll behavior mask
 | ||
| #define LIST_DISABLE_NORMAL      0x000                  ///< Scroll on disable list item
 | ||
| #define LIST_DISABLE_SKIP        0x100                  ///< Skip disable list item
 | ||
| 
 | ||
| #define LIST_DISABLE_MASK        0xF000                 ///< List disable item show mask
 | ||
| #define LIST_DISABLE_SHOW        0x0000                 ///< Show disable list item
 | ||
| #define LIST_DISABLE_HIDE        (0x1000|LIST_DISABLE_SKIP) ///< Hide disable list item(if hide item,must skip item)
 | ||
| 
 | ||
| #define LIST_SCROLL_MASK         0xF0000                ///< List scroll to next item behavior at the end of page
 | ||
| #define LIST_SCROLL_NEXT_PAGE    0x00000                ///< Scroll next item,change to new page
 | ||
| #define LIST_SCROLL_NEXT_ITEM    0x10000                ///< Scroll next item,but only shift up one item(still on the end of page)
 | ||
| 
 | ||
| #define LIST_DRAW_MASK           0xF00000               ///< List item show table mask
 | ||
| #define LIST_DRAW_IMAGE          0x000000               ///< Every one item has only one icon
 | ||
| #define LIST_DRAW_IMAGE_LIST     0x100000               ///< Every one item has different status icon(Second stautus icon id need to fellow the first icon id.)
 | ||
| #define LIST_DRAW_IMAGE_TABLE    0x200000               ///< Every one item has different status icon by table (icon table would set in control user data)
 | ||
| #define LIST_REV_TOTITM_MASK     0xFFFF                 ///< Keep allocated total item
 | ||
| //@}
 | ||
| 
 | ||
| /**
 | ||
|     List item attribute index
 | ||
| */
 | ||
| typedef enum {
 | ||
| 	LSTITM_STRID = (CTRL_LIST << 8),    ///< List string id
 | ||
| 	LSTITM_ICONID,                      ///< List icon id
 | ||
| 	LSTITM_STATUS,                      ///< List status (STATUS_DISABLE,STATUS_ENABLE)
 | ||
| 	LSTITM_MAX
 | ||
| } LSTITM_DATA_SET;
 | ||
| 
 | ||
| /**
 | ||
|     List data attribute index
 | ||
| */
 | ||
| typedef enum {
 | ||
| 	LST_CURITM = LSTITM_MAX + 1,        ///< List current item
 | ||
| 	LST_TOTITM,                         ///< Total list item
 | ||
| 	LST_PAGEITEM,                       ///< List item per page
 | ||
| 	LST_STYLE,                          ///< List syle
 | ||
| 	LST_ACTION,                         ///< List action
 | ||
| 	LST_RESERVED,                       ///< Reserved
 | ||
| 	LST_EVENT,                          ///< List event (each list has only event)
 | ||
| 	LST_MAX
 | ||
| } LST_DATA_SET;
 | ||
| 
 | ||
| /**
 | ||
|     Set list item data
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[in] index List item index (start from 0)
 | ||
|     @param[in] attribute List item attribute(LSTITM_DATA_SET<45>K.)
 | ||
|     @param[in] value the item value would be chanaged
 | ||
| */
 | ||
| 
 | ||
| extern void UxList_SetItemData(VControl *pCtrl, UINT32 index, LSTITM_DATA_SET attribute, UINT32 value);
 | ||
| 
 | ||
| /**
 | ||
|     Get list item data
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[in] index List item index (start from 0)
 | ||
|     @param[in] attribute List item attribute(LSTITM_DATA_SET<45>K.)
 | ||
| */
 | ||
| 
 | ||
| extern UINT32 UxList_GetItemData(VControl *pCtrl, UINT32 index, LSTITM_DATA_SET attribute);
 | ||
| 
 | ||
| /**
 | ||
|     Set list data
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[in] attribute List attribute(LST_DATA_SET)
 | ||
|     @param[in] value the list value would be changed
 | ||
| */
 | ||
| 
 | ||
| extern void UxList_SetData(VControl *pCtrl, LST_DATA_SET attribute, UINT32 value);
 | ||
| 
 | ||
| /**
 | ||
|     Get list data
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[in] attribute List attribute(LST_DATA_SET)
 | ||
| 
 | ||
|     @return
 | ||
|         - @b The attribute value
 | ||
|         - @b ERR_TYPE The control type error
 | ||
|         - @b ERR_ATTRIBUTE The control has no this attribute
 | ||
| */
 | ||
| 
 | ||
| extern UINT32 UxList_GetData(VControl *pCtrl, LST_DATA_SET attribute);
 | ||
| 
 | ||
| /**
 | ||
|     Get list rectangle
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[out] pRect The pointer of list rectangle
 | ||
| */
 | ||
| extern void UxList_GetRange(VControl *pCtrl, Ux_RECT *pRect);
 | ||
| 
 | ||
| /**
 | ||
|     Get list item position
 | ||
|     @param[in] pCtrl The pointer of the list control
 | ||
|     @param[in] index list item index (start from 0)
 | ||
|     @param[out] pRect The pointer of list rectangle
 | ||
| */
 | ||
| extern void UxList_GetItemPos(VControl *pCtrl, UINT32 index, Ux_RECT *pRect);
 | ||
| 
 | ||
| //@}
 | ||
| #endif
 | 
