Skip to content
This repository was archived by the owner on May 24, 2021. It is now read-only.

WidgetWishlist

jwiggins edited this page Jun 16, 2012 · 12 revisions

Widget Wishlist

Widgets

Tabbed Notebook

Large amount of work as we want to have a lot of features. Wait for when we have use cases to design against.

Dock Panels

Something like what we have in a canopy where each pane can be its own container of widgets, and the panes can be docked to various parts of the screen.

Lists

Tables and trees are done.

Code Editor

Some kind of editor for code is necessary. It should be able to be made read-only for display of largish amounts of text. Syntax highlighting for Python code is nice, but must be optional.

Platform Dialogs

FileDialog, DirectoryDialog - Done

ColorDialog, FontDialog

Menus and Toolbars

I'm tempted to suggest using Pyface's action support to backend this, at least at first. It's not bad, just more complex than you might want if you were implementing from scratch. However, that complexity is what allows it to be adapted to all of the various frameworks we've embedded it in. One question we need to answer is how we embed them under a Window/Dialog declaration. Currently, all children of a Container represent widgets that will be laid out inside of the Container. We also want to be able to use the same menu support for context menus in Component implementations.

CJW - There is also an issue of how we relate the menu state to the widget which has focus (eg. enabling/disabling menu items, or at the extreme, adding or removing menus when a particular widget has focus). It is appealing to be able to control that sort of state from within the definition of the widget, rather than at the top-level window. This is something what current traits handles badly, in my opinion.

StatusBar

Simply being able to put in text is good for a first cut, but eventually, we will want this to be a full Container horizontally-laid out widgets.

Wizards

Low priority since they can be emulated in code. However, Qt at least has particular support for wizards that maintains the platform look-and-feel for wizards.

http://doc.qt.nokia.com/latest/qwizard.html

CheckGroup

Like RadioGroup, but uses non-mutually exclusive Check Boxes.

Additional Widget Attributes

Focus, etc. keyboard events. Generic key-bindings.