XPToolkit Executive Review
Project Overview
What if we could be in a world where we could just write the code once?
Where non-programmers could design the look and feel of a product using
W3C standards instead of C++?
Where platform differences could be expressed in stylesheets, not hardcoded
with #ifdefs?
Where everyone could contribute UI to an open source?
Do you like that world?
So do we. Let’s build it.
Project Goals
-
Make cross-platform user interfaces as easy to build as web pages.
-
Support the common UI needs of applications like Navigator, Ender and Messenger.
-
Minimize the amount of platform-specific work required to build user interfaces.
-
Provide support for customizing user interfaces, e.g., via 'downloadable
chrome'.
-
Engage the net to contribute via mozilla.org, bringing massively parallel
development to XP UI.
-
Allow for shipping new products this summer.
Description
-
Loosely related facilities (pick and choose).
-
Platform independent API to common UI objects.
-
Loads and instantiates windows, dialogs, menus and other widgets from an
XML-based stream.
-
Based on existing standards (XML, RDF, HTML, CSS, DOM).
-
Leverages Gecko to maximize performance, minimize effort and overhead.
New Technology
-
Application Object Model (AOM)
-
Provides for XP implementation of the Model-View-Controller design pattern.
-
Implement UI and core services in C++, C, JavaScript.
-
Xplatform UI Language (XUL).
-
Allows for writing portable resource descriptions.
-
Based on XML, so it is standard, extensible.
-
Can freely intermix HTML, JavaScript.
-
Natural syntax for expressing containment.
Team/Resources
Nine full-time engineers, one full-time manager, several external developers
contributing via mozilla.org.
Netscape XPToolkit team:
Scott Collins |
Mike Pinkerton |
Steve Dagley |
Chris Saari |
David Hyatt |
Rod Spears |
Dan Matejka |
Peter Trudelle, mgr |
Chris McAfee |
Eric Vaughan |
Milestones
M1: Simple Browsing (achieved)
-
Load and instantiate basic UI objects from XUL streams.
-
Toolbars with HTML buttons.
-
Menus displaying
M2: Usable Dogfood. (in danger)
-
XUL Loader -- Dan Matejka, David Hyatt
-
UI discovery
-
Frame and widget creation
-
Command Architecture
-
Command/Event model -- Chris Saari
-
Menubar menus loading from XUL, no context menus.
-
Basic Tree Views -- David Hyatt
-
Basic functionality - display, expand/collapse, scroll, select; no D&D,
rollover, cursor changes, cropping, live folders.
-
Toolbox/Toolbars -- Mike Pinkerton
-
Basic creation, layout and hooking up to command architecture, no hiding,
collapsing, drag & drop, or customization.
-
Forms Widgets -- Rod Spears, Eric Vaughan, Steve Dagley (blocked)
-
Button, List, ComboBox
-
Working in HTML and XML
-
Loaded from XUL
-
Status Bar -- Eric Vaughan
-
Throbber -- Mike Pinkerton
Last updated: 2/9/99 by Peter
Trudelle