mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-02 03:58:33 +08:00
update docs
This commit is contained in:
parent
777b336e61
commit
1f2daf0023
@ -37,6 +37,7 @@
|
||||
* [输入事件记录与重放](event_recorder_player.md)
|
||||
* [API 注释格式](api_doc.md)
|
||||
* [自定义控件规范](custom_widget_rules.md)
|
||||
* [动态库与静态库](shared_static.md)
|
||||
|
||||
### 2.HowTos
|
||||
* [AWTK 调试技巧](debug_tips.md)
|
||||
@ -60,7 +61,7 @@
|
||||
* [如何定制 combo_box 控件中按钮的风格和大小](how_to_customize_combo_boxox_button.md)
|
||||
[如何访问控件的属性](how_to_access_widget_props.md)
|
||||
* [如何集成第三方库](https://github.com/zlgopen/awtk-hello/blob/master/docs/how_to_integrate_3rd_libs.md)
|
||||
* [动态库与静态库](shared_static.md)
|
||||
* [如何使用对话框](docs/how_toto_use_dialog.md)
|
||||
|
||||
### 3. 内部原理
|
||||
* [AWTK 脚本绑定原理](script_binding.md)
|
||||
|
@ -1,6 +1,7 @@
|
||||
# 最新动态
|
||||
* 2020/05/29
|
||||
* 完善 assets\_manager\_ref(感谢俊杰提供补丁)。
|
||||
* 增加文档《如何使用对话框》
|
||||
|
||||
* 2020/05/27
|
||||
* 去掉 assets_manager 中的 log。
|
||||
|
79
docs/how_toto_use_dialog.md
Normal file
79
docs/how_toto_use_dialog.md
Normal file
@ -0,0 +1,79 @@
|
||||
|
||||
# 如何使用对话框
|
||||
|
||||
对话框有模态和非模态两种,具体用法如下:
|
||||
|
||||
## 非模态对话框
|
||||
|
||||
非模态对话框的使用方法与普通窗口完全一样,只是对话框的大小和位置可以改变。通常情况下,尽量使用非模态对话框。
|
||||
|
||||
示例:
|
||||
|
||||
>完整代码请参考: [awtk-c-demos/demos/normal_dialog.c](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/normal_dialog.c)
|
||||
|
||||
```c
|
||||
static ret_t on_yes(void* ctx, event_t* e) {
|
||||
tk_quit();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
static ret_t on_no(void* ctx, event_t* e) {
|
||||
window_close(widget_get_window(WIDGET(e->target)));
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
static ret_t on_open_dialog(void* ctx, event_t* e) {
|
||||
widget_t* dlg = dialog_create_simple(NULL, 0, 0, 240, 160);
|
||||
|
||||
...
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
```
|
||||
|
||||
## 模态对话框
|
||||
|
||||
对于模态对话框,需要调用函数 dialog\_modal 等待对话框退出,dialog\_modal 函数会阻塞直到 dialog\_quit 被调用。
|
||||
|
||||
在点击某个按钮时,如果要关闭对话框,一定要通过 dialog\_quit 函数,不能直接关闭对话框!!!
|
||||
|
||||
示例:
|
||||
|
||||
>完整代码请参考: [awtk-c-demos/demos/modal_dialog.c](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/modal_dialog.c)
|
||||
|
||||
```c
|
||||
static ret_t on_yes(void* ctx, event_t* e) {
|
||||
dialog_quit(widget_get_window(WIDGET(e->target)), DIALOG_QUIT_YES);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
static ret_t on_no(void* ctx, event_t* e) {
|
||||
dialog_quit(widget_get_window(WIDGET(e->target)), DIALOG_QUIT_NO);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
static ret_t on_open_dialog(void* ctx, event_t* e) {
|
||||
int code = 0;
|
||||
|
||||
...
|
||||
|
||||
code = dialog_modal(dlg);
|
||||
if(code == DIALOG_QUIT_YES) {
|
||||
tk_quit();
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
```
|
||||
|
||||
在上面的代码中,下面的代码不会被执行,直到按钮被点击,然后调用 dialog_quit。
|
||||
|
||||
```c
|
||||
if(code == DIALOG_QUIT_YES)
|
||||
```
|
||||
|
||||
对于模态对话框来说,在确认按钮的事件处理函数中,除了调用 dialog_quit 函数,什么都别做!处理逻辑放到 dialog\_modal 之后,根据 dialog\_modal 的返回值决定下一步如何做。
|
Loading…
Reference in New Issue
Block a user