Linux项目实战——UI系统、页面系统(后附百问网课程视频链接)

UI系统

一、数据结构抽象

        1. 按钮的名字

        2. 按钮的区域

        3.按钮的绘制

        4.按钮的事件

typedef struct Button {
	char *name;
    int status;
	Region tRegion;
	int (*OnDraw)(struct Button *ptButton);
	int (*OnPressed)(struct Button *ptButton,PDispBuff ptDispBuff,PInputEvent ptInputEvent);
}Button, *PButton;

二、按键编程

        对按键进行初始化,实现抽象出来的结构体。

        2.1 实现OnDraw()

需要先实现:

1. 绘制底色

void DrawRegion(PRegion ptRegion, unsigned int dwcolor)

2. 居中绘制文字

void DrawTextInButtonCenter(char *name, PRegion ptRegion, unsigned int dwColor)

        ①确定每一个字符的大小

        ② 确定第一个字符的起点

        然后就可以将绘制出来的按钮刷到LCD上。

int FlushDisplayRegion(PRegion ptRegion, PDispBuff ptDispBuff)

        2.2  实现OnPressed()

通过标志位status判断按键当前的状态,从而选颜色的显示。


 

页面系统

 一、数据结构抽象

typedef struct PageAction {
    char *name;
    void (*Run)(void *pParams);
    struct PageAction *ptNext;
}PageAction,*PPageAction;

 二、页面管理器

页面管理器用来管理页面,只需要实现2个函数:

1.PageRegister:把多个页面注册进链表

2.Page(name):取出某个页面

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值