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