中级会员
 
- 积分
- 239
- 金钱
- 239
- 注册时间
- 2018-6-16
- 在线时间
- 31 小时
|
本帖最后由 云云嘟p9iGv 于 2018-10-3 14:12 编辑
//filelistbox结构体定义
__packed typedef struct
{
u16 top; //filelistbox顶端坐标
u16 left; //filelistbox左端坐标
u16 width; //宽度
u16 height; //高度 必须为12/16的倍数,如果有边框,在倍数基础上加2
u8 type; //类型标记字
//[bit7]:1,需要画滚动条出来(条件是totalitems>itemsperpage);0,不需要画出来.(此位由软件自动控制)
//[bit6:0]:文件类型
u8 sta; //filelistbox状态,[bit7]:滑动标志;[bit6]:编号有效的标志;[bit5:0]:第一次按下的编号.
u8 id; //filelistbox 的id
u8 dbclick; //双击,
//[7]:0,没有双击.1,有双击.
//[0]:0,非目标文件(是文件夹/磁盘).1,目标文件(非文件夹/磁盘)
u8 font; //文字字体 12/16
u16 selindex; //选中的索引 0<selindex<foldercnt+filecnt;
u16 foldercnt; //文件夹数目
u16 filecnt; //文件数目
u8 icosize; //ico图标大小 16/20/28等
u16 lbkcolor; //内部背景颜色
u16 lnselcolor; //list name 选中后的颜色
u16 lnselbkcolor; //list name 选中后的背景颜色
u16 lncolor; //list name 未选中的颜色
u16 rimcolor; //边框颜色
u16 pthinfbkcolor; //路径/信息栏的背景颜色
u8* path; //父目录路径
//u8 seltblindex; //当前的目录层数
u16 seltbl[FLBOX_PATH_DEPTH]; //选中的条目列表,FLBOX_PATH_DEPTH为深度
u16 fliter; //文件过滤器,大类过滤
//刷选表见上面的定义
u16 fliterex; //文件扩展的过滤器
//用来选择大类里面的小类,最多支持16种不同的文件.默认0XFFFF,即不对小类进行刷选.
u8 memdevflag; //磁盘在位状态(最多可以表示8个磁盘)
//bit7:0,存储设备7~0在位状态;0,不在位;1,在位;
//本例中,存储设备0表示:SD卡
// 1表示:SPI FLASH
// 2表示:U盘
//////////////////////
u8 *fname; //当前选中的index的名字
u16 namelen; //name所占的点数.
u16 curnamepos; //当前的偏移
u32 oldtime; //上一次更新时间
//以下只与目标文件相关(不含文件夹)
u16 *findextbl; //目标文件的索引表
_scrollbar_obj * scbv; //垂直滚动条
_filelistbox_list *list; //链表
}_filelistbox_obj;
//filelist结构体.链表结构
__packed typedef struct
{
void * prevlist;
void * nextlist;
u8 type; //文件类型
u8 *name; //文件名字
}_filelistbox_list;
如上,结构体_filelistbox_obj中的 u16 seltbl[FLBOX_PATH_DEPTH]; //选中的条目列表,FLBOX_PATH_DEPTH为深度 和 u16 *findextbl;//目标文件的索引表 分别是做什么用的??
|
|