Florian Festi wrote:
We are currently looking for a text mode widget set and stumbled
across urwid. Urwid looks very promissing but as we want to
resemble out Gtk tools in text mode we miss some features:
Creating a text interface that resembles a GUI was never my intent when
writing Urwid, so I'm sure there are many things missing :-)
Widgets:
* ScrollBar (h/v)
see http://excess.org/urwid/ticket/10
* ScrolledWindow (ListBox + ScrollBar/h/h+v)
related to http://excess.org/urwid/ticket/9
I would like the scroll bars and scrolling regions to stay as separate
widgets so that their placement isn't fixed (you might want to put some
other widget between them, for example)
* Paned (h/v)
I think you can do something like this with Columns and Pile widgets.
If not, could you be more specific?
* VerticalSeparator
see http://excess.org/urwid/browser/urwid/trunk/graph.py#L292
the "vline" widget is being used as a vertical separator
* Menu
related to http://excess.org/urwid/ticket/6
and http://excess.org/urwid/browser/contrib/trunk/rbreu_menus.py
It's not easy enough to do this right now.
* NoteBook
Is this a kind of tabbed view? It should be pretty easy to do that with
existing widgets.
* TreeView
related to http://excess.org/urwid/browser/urwid/trunk/browse.py
It is possible to create a tree view, but a generic tree view might be nice.
* Window
* Dialog
* ComboBox
* ComboEntry
related to http://excess.org/urwid/ticket/6
As with the Menu item above, this will be a lot easier once some canvas
changes I'm working on right now are released.
* Edit
- have indicators for scrolled out text ('<' '>')
- have a more GUI-like variant with constant width editing field
This one should be pretty easy.
Other features:
* Stacking: Having a sane way of putting widgets on top of each
other. These needs so be on a global level to avoid limitations
as in Overlay.
Would you give an example of what you are trying to do that is difficult
in Urwid.
* Sensitivity: Disable parts of the UI depended on other selections
We could add a disabled state to all the usual widgets, but that would
probably mean telling them to draw themselves in a different attribute
(the themeing suggestion might help there)
* (In)Visibility: Hide parts of the UI depended on other selections
This is hard to do right now. It would be easier if referencing widgets
within their containing widgets was easier.
* Theming: a global way to set coloring and text graphics chars
and make all widgets of one type look the same. This may include
how some widgets are rendered. (Details to be worked out)
This is a very good idea. We just need a nice clean way to do it, and
some good default themes built in.
* Reduce the difference between BoxWidget and FlowWidget.
- May be just make the containers smarter
- May be merge BoxAdapter into BoxWidget
This is interesting, please elaborate.
* Clean up inheritance tree (make all widgets child of FlowWidget or
BoxWidge or BoxWidget and FlowWidget
Sure.
* More callbacks/events: Get finer control over the widgets without
subclassing (Edit being the first candidate).
Very true. This should be easy.
* Support for a more dialog driven interface design
Yes, as an option.
* Generic main loop: Have all feature accessable without the need of
a custom main loop. May be just have a toplevel widget to handle that.
see http://excess.org/urwid/ticket/16
* (Glade to urwid converter)
Ha-ha! That would be interesting..
Ok, this is a pretty scary list and I am aware that most bullets need
further discussion. On the other hand there is already code for some
of the widgets. For us it does only make sense to put that much
effort into urwid if these features go into the upstream urwid
library. Are there any chances that this will ever happen?
Yes. Many people seem to be looking for the same things you mention.
I'm happy to extend the library in that direction, as long as it remains
easy to create keyboard-focused interfaces for people that prefer to
create console apps such as irssi and vim.
It would be great to have someone that is familiar with GUI libraries
like glade work on a GUI-like-personality module for Urwid. All of the
changes required to the existing parts of Urwid should be beneficial to
everyone.
Ian
_______________________________________________
Urwid mailing list
[email protected]
http://lists.excess.org/mailman/listinfo/urwid