[Urwid] Resizing windows in urwid: how small is too small?
Ian Ward
ian at excess.org
Sat May 26 22:53:28 EDT 2007
James Reeves wrote:
> Ian Ward wrote:
>> It looks pretty good, but I wonder if there is a way to do it in a more
>> duck-typing style.
>>
>> Instead of isinstance() perhaps we could check for a size_hint attribute
>> and use it if it's there. That way people that know they are only using
>> "my_widget" in one container could just do something like:
>> my_widget.size_hint = 'weight'
>> my_widget.size_hint_weight = 5
>>
> Good idea, but why not just my_widget.size_hint_weight, or perhaps
> my_widget.hint_weight? The size_hint attribute enforces a limit of a
> single hint, but perhaps it might be neater to rely on precedence and
> convention?
Hmm, that way there are three special variables and an ordering that
users would have to remember. The way I suggested there is only one
or two variables that would be required: size_hint is one of 'fixed'
'flow' or 'weight' and size_hint_weight is set only in the latter case.
> On another note, I was thinking about keybindings, largely because I've
> been customising them a lot since I switched to the Dvorak keyboard
> layout. The signal system you have is really quite neat, and perhaps
> underused. Instead of giving default keybindings to widgets like the
> Columns and Pile widgets, maybe instead you could give them a set of
> standard signals, such as "pile-down" and "column-left", that would
> perform the same job. So you could do something like:
Signals are intended as a notification of events from widgets, and yes
they're new and not fully implemented through the library.
What you're thinking of is like what I am planning to do with the
"Commands" class in util.py. Widgets will look up what the command
associated with a keypress in their keypress function and use the
command instead of the keypress itself.
Perhaps Keybinding is a better name. I might switch it to that.
Ian
More information about the Urwid
mailing list