Meadow Functionality

A prioritized list of Meadow features.
Basic Drawing [Required]
Queuing areas to redraw
Containers [Required]
Multiple contained components, relative position to parent, layout manager to handle layout when size changes, keyboard navigation between components
Input events [Required]
Keyboard, mouse, (joystick? pad?). Listeners, capturing events, using SDL for event source.
Themability [Important]
Some way to store theme data on disk and in memory
Application Framework [Important]
Basic Widgets [Important]
Panel, Label, TextField, Button, MenuBar, PopupMenu, MenuItem, Slider, List, TreeList, Table, DropDownList, CheckBox, RadioButton, ProgressBar, etc
Basic Data Models [Optional]
ListModel, HierarchialListModel, TableModel, DocumentModel, ButtonGroupModel
Commands [Optional]
Command (or Action)
Advanced containers [Optional]
WindowContainer, Window, DockingPanelContainer, DockingPanel
Scrolling [Optional]
Scrollbars, ScrollPanel, ScrollableInterface
Dialogs [Optional]
Dialog, Message Dialogs
Advanced Components [Extra]
IconListView (for browsing filesystem as icons, or reorganizing and viewing inventory), PropertyEditer (list of properties and their values), OptionEditor (show a hierarchial tree of different properties in a modern program options type dialog (list with icons & names at the left, tabs inside).
Advanced Data Models [Extra]
Properties of different types (string, int, etc, optionally with custom editors, ranges, etc).