⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.h

📁 好记星的控件,包括button,list,对文件操作
💻 H
字号:
/****************************************************************************/
/*                                                                          */
/*              Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD                   */
/*                                                                          */
/* FILE NAME:   List.h                                                      */
/* MODULE NAME: List                                                        */
/* DESCRIPTION: List head file                                              */
/*                                                                          */
/****************************************************************************/
/*    DTAE       AUTHOR     VERSION                 REMARKS                 */
/* =========== ==========  =========  ======================================*/
/* 2006-12-28   gaolinhui     V1.0                   create                 */
/****************************************************************************/
#ifndef __LIST_H__
#define __LIST_H__


//PLISTICONCALLBACK回调函数返回的是图标的buffer地址或者是MAKE_ID()产生的ID号
typedef UINT8* (*PLISTICONCALLBACK)(UINT);

/*--------------------style define-----------------------------------*/
#define LIST_BORDER         0x01      //有边框
#define LIST_SPLINE         0x04      //分隔线
#define LIST_ICON			0x08      //有图标
#define	LIST_NOHILT			0X10	  //不反显

#define LIST_ICON_WIDTH		16		  //定义图标样式时,图标的指定宽度	

/*-------------------message define----------------------------------*/
typedef struct tagLstCmdEx			//扩展消息类型结构
{
	UINT	uType;					//消息类型
	APGUI_STRUCT_MODEL* pListHdl;	//Edit控件句柄
}LstCmdEx;
#define CM_LIST   CM_KNLLST_BASE	
//for external	use.
#define CMEX_LST_SELECTCHANGED		(CM_LIST+1)	//LIST当前选择项更改
#define CMEX_LST_SELECTDBCLICK		(CM_LIST+2)	//LIST当前选择项DOUBLE CLICK事件
//for internal use only.


/*--------------------internal data struct define,for internal use only------------*/
//list定时器ID
#define LIST_WTTIMER_SET	1000		//List开始滚动前的等待时间
#define LIST_SCLTIMER_SET	500			//list滚动的时间间隔
#define LIST_WTTIMER_ID(pList)	((UINT16)(0XF000 | ((UINT32)pList & 0XFFF)))	//获取WAIT TIMER(滚动前的等待定时器)ID.
#define LIST_SCLTIMER_ID(pList)	((UINT16)(0XE000 | ((UINT32)pList & 0XFFF)))	//获取SCROLL TIMER(滚动间隔定时器)ID.
//LIST_INFO.uState定义
#define STA_EN_SCLTIMER			0X0001	//SCROLL TIMER ENABLE.
#define STA_EN_WTTIMER			0X0002	//WAIT TIMER ENABLE.
#define STA_EN_SCROLL			0X0004	//CURRENT STATUS IS SCROLLING. 
#define	STA_LST_INITED			0X0008	//LIST HAS INITIALIZED.
#define LIST_DISP_BUFF_LEN	    300		//定义显示的buffer长度.
typedef struct tagLISTINFO
{
	UINT   uState;
	INT16  nX0;						//显示区域的X0坐标
	INT16  nY0;						//显示区域的y0坐标
	INT16  nIconX0;					//图标的X0坐标
	INT16  nIconY0;					//图标的Y0坐标
	UINT16 wValidDspWidth;			//显示区域的宽度
	UINT16 wFontLib;				//字库
	UINT32 dwTotalLine;				//总行数
	UINT32 dwTopLine;				//顶行行号	
	UINT32 dwCurLine;				//当前行号
	PLISTICONCALLBACK   pfnListGetIconCallBack;	//获取图标资源的回调函数
	UINT8* pDspBuffer;				//显示的buffer
	HTIMER hSclTimer;				//滚动的定时时钟timer
	UINT16 wIDSclTimer;				//定时器ID
	INT16  nBufOffset;				//当前显示的字符偏移buffer首的字节数
	HTIMER hWtTimer;				//等待滚动的timer
	UINT16 wIDWtTimer;				//定时器ID
	UINT8  byPageLineNub;			//每页的行数
	UINT8  byPadding;				//四字节对齐	
}LIST_INFO;

/*-------------------list template define----------------------------*/
//simple list: have one column and only display string data, no title
typedef struct 
{
    UINT    uObjectID;      //当前窗口中, 该控件的标识ID号
    INT16   uX;             //控件区域
    INT16   uY;
    UINT16  uWidth;
    UINT16  uHeight;
    FPGUIHANDLEEVENT   pMsgHandle;     //消息处理函数入口

    UINT8   byStyle;         //样式
    UINT8   byLineSpace;     //行间距
    UINT16  wItemLength;	 //数据项的最大字节数(数据按照固定长度存放,不足补0)
    UINT8   *pDataBuff;      //数据缓冲区
    VOID   (*pGetDataProgram)( UINT8 *pBuf, UINT uItemNub ) ;//获取数据回调函数
    LIST_INFO*  pListInfo;	 //存放LIST_INFO结构的buffer	
} MList;






//list 外观参数
typedef struct{
    UINT32  dwBoderColor;       //边框颜色
    UINT32  dwSpLineColor;      //行分隔线颜色
    UINT32  dwBackColor1;       //背景颜色1
    UINT32  dwBackColor2;       //背景颜色2(只在斑马线样式时使用)
    UINT32  dwTextColor;        //文本颜色
    UINT32  dwHLItemBKColor;    //当前行背景颜色
    UINT32  dwHLItemTextColor;  //当前行文本颜色
}MListFace;


//外部接口函数定义
//--------------
//Dennyhan added this for warning or error message
VOID		ListInitialize(VOID);
//----------------------
//获取总行数
UINT32      ListGetTotalLine(MList *pList);
//设置总行数
UINT32      ListSetTotalLine(MList *pList, UINT32 dwTotalLine);
//获取当前行号
UINT32      ListGetCurrentLine(MList *pList);
//设置当前行号
UINT32      ListSetCurrentLine(MList *pList,UINT32 dwCurrentLine);
//获取当前顶行行号
UINT32      ListGetTopLine(MList *pList);
//设置当前顶行行号
UINT32      ListSetTopLine(MList *pList, UINT32 dwTopLine);
//设置获取图标的回调函数
VOID		ListSetIconCallBack(MList* pList,PLISTICONCALLBACK pfnIconCallBack);
//LIST消息处理函数
UINT32		ListHandleEvent(APGUI_STRUCT_MODEL *pGui, UINT uEvent, UINT uParam);
//设置List的buffer
BOOL		ListSetBuffer(MList* pList, UINT8* pBuff);
//得到List一页的条目数
UINT8      ListGetPageLines(MList* pList);

/*内部函数声明*/
VOID _ListChkForScroll(MList* pList);
VOID _ListStopScroll(MList* pList);
#ifdef LIST_SUPPORT_PEN
INT  __ListPenProc(MList* pList,UINT uEvent, UINT uParam);
#endif


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -