通知控件¶
概述¶
通知控件用于向用户传达提示信息和弹出内容,适用于消息提醒、弹窗对话等场景。包括通知徽章和窗口两个控件。
NotificationBadge¶
通知徽章控件,显示圆形红点和未读计数,常叠加在图标右上角使用。
效果展示¶
API¶
函数 |
说明 |
|---|---|
|
初始化徽章 |
|
使用参数初始化 |
|
设置计数 |
|
获取计数 |
|
设置最大显示数(超出显示 “N+”) |
|
设置徽章背景色 |
|
设置文字颜色 |
|
设置字体 |
参数宏¶
EGUI_VIEW_NOTIFICATION_BADGE_PARAMS_INIT(name, x, y, w, h, count);
结构体字段¶
字段 |
类型 |
说明 |
|---|---|---|
|
|
通知计数 |
|
|
最大显示数 |
|
|
徽章背景色 |
|
|
文字颜色 |
代码示例¶
static egui_view_notification_badge_t badge;
EGUI_VIEW_NOTIFICATION_BADGE_PARAMS_INIT(badge_params, 50, 5, 20, 20, 3);
void init_ui(egui_core_t *core)
{
egui_view_notification_badge_init_with_params(
EGUI_VIEW_OF(&badge), core, &badge_params);
egui_view_notification_badge_set_max_display(
EGUI_VIEW_OF(&badge), 99);
egui_core_add_user_root_view(core, EGUI_VIEW_OF(&badge));
}
void add_notification(void)
{
uint16_t cnt = egui_view_notification_badge_get_count(
EGUI_VIEW_OF(&badge));
egui_view_notification_badge_set_count(
EGUI_VIEW_OF(&badge), cnt + 1);
}
void clear_notifications(void)
{
egui_view_notification_badge_set_count(EGUI_VIEW_OF(&badge), 0);
}
使用说明¶
当
count为 0 时,徽章自动隐藏当
count超过max_display时,显示为 “N+”(如 “99+”)徽章通常叠加在其他控件上方,通过设置合适的坐标实现定位
Window¶
窗口控件,继承自 Group,提供带标题栏和内容区域的弹窗容器,支持关闭回调。
效果展示¶
API¶
函数 |
说明 |
|---|---|
|
初始化窗口 |
|
使用参数初始化 |
|
设置标题文字 |
|
设置标题栏高度 |
|
向内容区域添加子控件 |
|
设置关闭回调 |
参数宏¶
EGUI_VIEW_WINDOW_PARAMS_INIT(name, x, y, w, h, header_height, title);
结构体字段¶
字段 |
类型 |
说明 |
|---|---|---|
|
|
标题标签(内部) |
|
|
内容容器(内部) |
|
|
标题栏高度 |
|
|
标题栏颜色 |
|
|
内容区背景色 |
代码示例¶
static egui_view_window_t win;
static egui_view_label_t content_label;
EGUI_VIEW_WINDOW_PARAMS_INIT(win_params, 20, 20, 200, 150, 30, "Settings");
static void on_close(egui_view_t *self)
{
egui_view_set_visible(self, 0);
}
void init_ui(egui_core_t *core)
{
egui_view_window_init_with_params(EGUI_VIEW_OF(&win), core, &win_params);
egui_view_window_set_on_close(EGUI_VIEW_OF(&win), on_close);
egui_view_label_init(EGUI_VIEW_OF(&content_label), core);
egui_view_set_position(EGUI_VIEW_OF(&content_label), 10, 10);
egui_view_set_size(EGUI_VIEW_OF(&content_label), 180, 20);
egui_view_label_set_text(EGUI_VIEW_OF(&content_label), "Window Content");
egui_view_window_add_content(EGUI_VIEW_OF(&win),
EGUI_VIEW_OF(&content_label));
egui_core_add_user_root_view(core, EGUI_VIEW_OF(&win));
}
使用说明¶
Window 内部自动创建标题栏和内容区域,无需手动管理布局
通过
egui_view_window_add_content()添加的子控件会放入内容区域,坐标相对于内容区域左上角关闭回调中通常调用
egui_view_set_visible(self, 0)隐藏窗口标题栏高度通过
header_height参数控制,内容区域自动占据剩余空间