mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-01 19:49:11 +08:00
improve custom key tests and docs
This commit is contained in:
parent
553d9febb8
commit
9366679c86
@ -97,6 +97,7 @@
|
||||
* [如何启用编辑器的上下文菜单](how_to_enable_edit_context_menu.md)
|
||||
* [如何设置下拉选择框 (combo box) 弹出窗口/列表项的样式](how_to_set_style_of_combo_box_item.md)
|
||||
* [如何支持软键盘按钮预览](how_to_enable_keyboard_preview.md)
|
||||
* [如何设置自定义键值](how_to_set_custom_keys.md)
|
||||
|
||||
### 3. 内部原理
|
||||
* [AWTK 脚本绑定原理](script_binding.md)
|
||||
|
80
docs/how_to_set_custom_keys.md
Normal file
80
docs/how_to_set_custom_keys.md
Normal file
@ -0,0 +1,80 @@
|
||||
# 如何设置自定义键值
|
||||
|
||||
在实际的开发中,产品通常会有自身特有的按钮,而这些按钮的键值也不尽相同,为了用户更方便使用,故增加了设置自定义键值的功能。
|
||||
|
||||
## 一、设置方法
|
||||
|
||||
1. 在应用项目文件夹下的 design\default\data 文件夹(没有data文件夹请自行创建)增加自定义键值配置文件 custom_keys.json。也可以在项目中的 main.c 定义 CUSTOM_KEYS_FILEPATH 宏指定配置文件的路径和名称,示例如下:
|
||||
|
||||
```c
|
||||
#include "awtk.h"
|
||||
#include "mvvm_app.inc"
|
||||
|
||||
#define GLOBAL_INIT() mvvm_app_init()
|
||||
#define GLOBAL_EXIT() mvvm_app_deinit()
|
||||
|
||||
BEGIN_C_DECLS
|
||||
#ifdef AWTK_WEB
|
||||
#include "assets.inc"
|
||||
#else /*AWTK_WEB*/
|
||||
#include "../res/assets.inc"
|
||||
#endif /*AWTK_WEB*/
|
||||
END_C_DECLS
|
||||
|
||||
extern ret_t application_init(void);
|
||||
|
||||
extern ret_t application_exit(void);
|
||||
|
||||
#define APP_LCD_ORIENTATION LCD_ORIENTATION_0
|
||||
|
||||
#define CUSTOM_KEYS_FILEPATH "file://D:/custom_keys.json" /* 自定义键值配置文件路径 */
|
||||
|
||||
#include "awtk_main.inc"
|
||||
```
|
||||
|
||||
2. 编辑自定义键值配置文件,如以下示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"ENABLE" : {
|
||||
"value" : 248
|
||||
},
|
||||
"START" : {
|
||||
"value" : 31
|
||||
},
|
||||
"STOP" : {
|
||||
"value" : 8
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
第一个键值对的键名为 ENABLE,键值为248,后面的键值对同理,不再赘述。
|
||||
|
||||
3. 打包资源。
|
||||
|
||||
执行以上步骤后,自定义键值就设置完成了。
|
||||
|
||||
## 二、简单使用示例
|
||||
|
||||
在 MVVM 工程中,实现点击 CLOSE 按钮关闭 home_page 窗口。
|
||||
|
||||
1. 使用 AWTK Designer 新建 MVVM 工程。
|
||||
2. 根据上文步骤编写自定义键值配置文件:
|
||||
|
||||
```json
|
||||
{
|
||||
"CLOSE" : {
|
||||
"value" : 4
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. 绑定命令,实现点击 CLOSE 按钮关闭 home_page 窗口。
|
||||
|
||||
```xml
|
||||
<window v-model="home_page_view_model" name="home_page" v-on:key_down:CLOSE="{nothing, CloseWindow=true}"/>>
|
||||
```
|
||||
|
||||
4. 打包资源,编译运行。
|
||||
|
||||
关于 MVVM 命令参数的更多资料请参阅[ AWTK-MVVM 命令绑定 ](https://github.com/zlgopen/awtk-mvvm/blob/master/docs/11.command_binding.md)。
|
@ -53,6 +53,7 @@
|
||||
* [如何更新拼音输入法数据](how_to_update_gpinyin_data.md)
|
||||
* [如何集成第三方库](https://github.com/zlgopen/awtk-hello/blob/master/docs/how_to_integrate_3rd_libs.md)
|
||||
* [如何使用 stb 外部硬件 YUV 转 RGB](docs/how_to_use_stb_hyuv_to_rgb.md)
|
||||
* [如何设置自定义键值](docs/how_to_set_custom_keys.md)
|
||||
|
||||
### 3. 内部原理
|
||||
* [AWTK 脚本绑定原理](script_binding.md)
|
||||
|
@ -31,10 +31,12 @@ TEST(Enums, custom_keys) {
|
||||
ASSERT_EQ(keys_type_find("CUSTOM1") == NULL, TRUE);
|
||||
}
|
||||
|
||||
TEST(Enums, custom_keys_load) {
|
||||
uint32_t nr = 0;
|
||||
key_type_value_t* custom_keys = keys_type_custom_keys_load(&nr);
|
||||
ASSERT_EQ(custom_keys != NULL || nr == 0, TRUE);
|
||||
TEST(Enums, custom_keys_init) {
|
||||
ASSERT_EQ(custom_keys() == NULL && custom_keys_nr() == 0, TRUE);
|
||||
|
||||
keys_type_custom_keys_unload(custom_keys, nr);
|
||||
custom_keys_init(TRUE);
|
||||
ASSERT_EQ(custom_keys() != NULL || custom_keys_nr() == 0, TRUE);
|
||||
|
||||
custom_keys_deinit(TRUE);
|
||||
ASSERT_EQ(custom_keys() == NULL && custom_keys_nr() == 0, TRUE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user