-
Notifications
You must be signed in to change notification settings - Fork 764
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
能不能给窗口新增两个属性move_focus_parent_key和move_focus_child_key? #885
Comments
暂时没空弄,有空我先想想。 |
我今天弄了一版方案,改了awtk,目前测了下没问题,你有空看看,我直接把整个awtk库压缩发过去还是能push? |
你放个 patch 到这里吧,有需要的自己先打上。 |
测试程序: |
BTW:如果我修改了一个历史评论,邮箱上会重新推送这个评论吗?edit一次就推送一次? |
更新了一下patch, 现在可以给没父级焦点和子级焦点的情况设置回调,更新这个的原因是业务需要在没有父级焦点可退的时候需要navigate_back。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
需求是像这样的菜单页面,它分多个栏,一个栏里面可能有很多控件,对于纯按键控制的设备,一般交互方式就是上下左右切换焦点,然后enter键选中/聚焦子页面内部的焦点,esc键回到父级页面焦点。
![GIF 2024-7-26 10-57-17](https://private-user-images.githubusercontent.com/54085641/352350492-0ebc856e-a7d2-4797-a2f8-dccbdde9fa8c.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwMTYyNDgsIm5iZiI6MTcyNjAxNTk0OCwicGF0aCI6Ii81NDA4NTY0MS8zNTIzNTA0OTItMGViYzg1NmUtYTdkMi00Nzk3LWEyZjgtZGNjYmRkZTlmYThjLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDAwNTIyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIwMjk1MDU2YzQ4NTMzYmIyYjJkYjNjMzFjYmNiNzBmNWE1YjI2MWE2ZmY1YzVmNmZkMTMzODRmODU1MGU3ZWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BjbLMitimkECfb_pKyBtu_PB3orIjaYyyLtzo118uMs)
目前看awtk是只有平级控件,基于坐标的焦点切换的,对于基于控件树的父级-子级的焦点切换目前还没有,只能自己实现。
我想原理应该好实现,比如做一个栈,每次按enter键时候把原先窗口控件树所有的focus控件放到数组中并压栈,然后使用下一层focus控件的数组用于切换,按esc就出栈之前的focus数组覆盖当前focus数组。
设想按enter的话目前就聚焦第一个子控件(如果能做到enter的话回到之前聚焦的子控件那更好,不过我暂时没想到实现方法,还有就是,如果这个子控件enter有冲突的话,比如按钮,如何处理?)。
不知这部分后继可有计划?
The text was updated successfully, but these errors were encountered: