添加交互
交互是指用户与计算机程序之间的双向通信过程。它涉及用户通过鼠标、键盘或其他输入设备与程序进行互动,以便执行特定的操作或获取所需的信息。
现在的待办清单程序只是通过图形界面向用户展示一些信息,并不会响应用户的鼠标和 按键操作,而 LCUI 的图形界面是由事件驱动的,因此我们需要添加事件处理器来完成交互。
初始化
和 main 函数类似,界面相关交互的初始化最好是集中在一个函数中执行。我们可以将任务列表界面的初始化函数命名为 ui_tasklist_init
,然后补充相关代码:
src/ui_tasklist.c
#include "ui_tasklist.h"
static tasklist_t *tasklist;
static ui_widget_t *ui_tasklist;
void ui_tasklist_init(ui_widget_t *w, tasklist_t *data)
{
ui_tasklist = w;
tasklist = data;
}
src/ui_tasklist.h
#include <ui.h>
#include "tasklist.h"
void ui_tasklist_init(ui_widget_t *w, tasklist_t *data);
之后修改在 main.c 中增加调用代码:
src/main.c
+ #include "ui_tasklist.h"
...
+ static tasklist_t tasks;
...
int main(int argc, char **argv)
{
...
+ ui_tasklist_init(ui_get_widget("list"), &tasks);
return lcui_main();
}
备注
将传入的部件转存到全局的目的是为了方便后续的函数使用它,因为整个程序中只有一个任务列表。