improve offset doc

This commit is contained in:
lixianjing 2023-03-21 18:15:23 +08:00
parent 6e753e609e
commit 6ebd185908
4 changed files with 9 additions and 3 deletions

View File

@ -1,5 +1,8 @@
# 最新动态
2023/03/21
* 完善关于offset的文档(感谢智明提供补丁)
2023/03/20
* 修复分发double\_clicked事件时存在的野指针风险(感谢雨欣提供补丁)
* 优化按键逻辑尽量用text\_edit的逻辑(感谢陈聪提供补丁)

View File

@ -1,7 +1,7 @@
# 在自定义控件中使用 offset 的注意事项
当用户自己写自定义控件的时候,如果需要该自定义控件实现滚动效果效果的时候,此时需要引入一个 offset 的概念(水平方向用 xoffset垂直方向用 yoffset
当用户自己写自定义控件的时候,如果需要该自定义控件实现滚动效果效果的时候,此时需要引入一个 offset 的概念(水平方向用 xoffset垂直方向用 yoffset,在控件中通过 offset 的变化来移动控件的子控件的位置到指定的区域中显示,从而达到滚动效果(比如:每个子控件的 y 属性都根据 offset 来计算出来,那么 offset 改变了,那么每个子控件的 y 坐标都改变了,从而决定子控件显示的位置。)
同时 AWTK 的点击事件(鼠标或者触摸)都会受到控件的 offset 影响,所以 AWTK 提供了两个机会给控件把这个 offset 的数据传递给 AWTK
@ -37,4 +37,5 @@ offset 会影响 AWTK 内部的 API 甚至会影响内部执行逻辑,从而
# 3. 总结
如果使用 offset 的话,尽量使用上面说的第二种方法来实现,这样可以减少很多问题,如果实在不行的话,可以通过重载 find_target 和 is_point_in 函数来处理,但是这样子也是把问题变复杂了。
如果使用 offset 的话,**尽量使用上面说的第二种方法来实现**,这样可以减少很多问题,如果实在不行的话,可以通过重载 find_target 和 is_point_in 函数来处理,但是这样子也是把问题变复杂了。

View File

@ -182,7 +182,7 @@ struct _widget_vtable_t {
widget_is_point_in_t is_point_in;
/**
* WIDGET_PROP_X/YOFFSET
* 使
* 使 docs/how_to_use_offset_in_custom_widget.md
*/
widget_get_offset_t get_offset;
widget_auto_adjust_size_t auto_adjust_size;

View File

@ -554,12 +554,14 @@ BEGIN_C_DECLS
/**
* @const WIDGET_PROP_XOFFSET
* X方向的偏移 get_offset get_offset
* docs/how_to_use_offset_in_custom_widget.md
*/
#define WIDGET_PROP_XOFFSET "xoffset"
/**
* @const WIDGET_PROP_YOFFSET
* Y方向的偏移 get_offset get_offset
* docs/how_to_use_offset_in_custom_widget.md
*/
#define WIDGET_PROP_YOFFSET "yoffset"