I'm hoping to get some help and/or advice on this one.
There's very little reuse among the GGadgets. A GList isn't used for menus nor is it used as the list of tabs in a GTabSet. A GMatrixEdit doesn't put GTextFields in a sub-window, it paints all that stuff itself in GMatrixEdit_SubExpose().
I'd like to add some sort of key acceleration to the list of tabs in GTabSet. At a minimum I figure there should be a key that focuses the list of the (top level?) tabset, so you can use arrow keys to move around.
It would be nice to have mnemonic support as well. To be consistent with the other use of mnemonics it would have to "focus" the tab in question, which would then allow a user to press space to select the tab. (And I guess to be completely consistent there should be no indication it is focused, as that's how the checkboxes and radio buttons work...)
It would be difficult to fully implement tab-level focus at the GGadget level because they aren't gadgets, they're just painted by gtabset_expose. However, one could presumably fake what is needed by setting an internal "focused" tab index state and cancelling it when some set of things happens. Then when the list is focused and space is pressed you could select the tab indicated by the state. (Alternatively you could screw consistency and just select the tab when the mnemonic is pressed.)
The mnemonic keystrokes are a bigger problem. They could be trapped in gtabset_key() with an appropriate guard but (I think) that only works when the GTabSet is somewhere in the focus hierarchy.
Not sure what to do about all this.
I'm hoping to get some help and/or advice on this one.
There's very little reuse among the GGadgets. A GList isn't used for menus nor is it used as the list of tabs in a GTabSet. A GMatrixEdit doesn't put GTextFields in a sub-window, it paints all that stuff itself in GMatrixEdit_SubExpose().
I'd like to add some sort of key acceleration to the list of tabs in GTabSet. At a minimum I figure there should be a key that focuses the list of the (top level?) tabset, so you can use arrow keys to move around.
It would be nice to have mnemonic support as well. To be consistent with the other use of mnemonics it would have to "focus" the tab in question, which would then allow a user to press space to select the tab. (And I guess to be completely consistent there should be no indication it is focused, as that's how the checkboxes and radio buttons work...)
It would be difficult to fully implement tab-level focus at the GGadget level because they aren't gadgets, they're just painted by
gtabset_expose. However, one could presumably fake what is needed by setting an internal "focused" tab index state and cancelling it when some set of things happens. Then when the list is focused and space is pressed you could select the tab indicated by the state. (Alternatively you could screw consistency and just select the tab when the mnemonic is pressed.)The mnemonic keystrokes are a bigger problem. They could be trapped in
gtabset_key()with an appropriate guard but (I think) that only works when the GTabSet is somewhere in the focus hierarchy.Not sure what to do about all this.