Grouping UI elements
Tamas Zolnai
tamas.zolnai at collabora.co.uk
Wed Jan 15 06:25:55 PST 2014
Hi Caolán,
I'm working on part of this bug: https://bugs.freedesktop.org/show_bug.cgi?id=71764. Main problem is that the 'Help' and the 'Extensions' buttons on the Start Center are in different GtkBoxes and so arrow key traversal doesn't work between them. Nested GtkBoxes are necessary for special effect (thin border around the buttons) which I can't replace with a working solution with the same appearance.
So I tried to find a way to solve this problem:
- First I found a "group" property with which arrow key traversal can be specified explicitly but it just work for RadioButtons. Maybe it can be extend to other buttons, but RadioButton groups has a special meaning (only one item of the group is enabled), so I'm not sure it make any sense for other type of buttons.
- Second I pick up "member_of" property and Window::SetAccessibleRelationMemberOf() method which is used not for only RadioButtons but for other elements too. For example: http://opengrok.libreoffice.org/xref/core/cui/source/dialogs/hlinettp.cxx#93 (an image button related with a fixed text). So this property can use for other UI elements, but this relation doesn't affect the arrow key traversal. So secondly that came in my mind to modify the corresponding Window::ImplDlgCtrl() method to take account of member_of relation in case of arrow keys.
- The third and simplest one to override BackingWindow::Notify() method (BackingWindow implements of Start Center) and handle arrow keys. I can keep at this third solution, but maybe the need of adding groups is not a unique problem.
So I'd like to ask some suggestions about what would be the best way to fix this bug, in your opinion.
Thanks,
Tamás
More information about the LibreOffice
mailing list