XUL:Improvements

From MozillaWiki
Revision as of 17:57, 10 August 2009 by Enn (talk | contribs) (xul improvements)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A list of enhancements to XUL that could be made.

General

  • rework widgets and clean up based on XBL2
  • rework flexible box model
  • remove box objects by implementing frame, scroll, list and tree apis as XUL element subclasses
  • move box object positioning apis onto XUL element class
  • animation apis for XUL elements
  • remove as many hardcoded tag checks as possible, switch to interfaces
  • events firing on script change, or during constructor, versus user change
  • mouse capturing
  • clipboard using DataTransfer
  • scroll apis
  • remove mutation listener usage
  • better command updating mechanism
  • better editor mechanism (editortype/controllers/etc)
  • remove need to import global stylesheet
  • base theme so custom themes are minimal
  • parsing from DOMParser and others should be able to xul documents
  • better interworking with xul in generic xml documents
  • ability to retrieve mouse and key state
  • OS taskbar/dock/titlebar icons/menus
  • printing
  • panning over area and between 'panes'
  • control over click raises window versus raise and fire mouseclick behaviour
  • means to know if an image applies to an element (css pseudoclass)
  • allowevents / mousethrough consolidation
  • accesskey / RegUnregAccessKey cleanup
  • accessibility events should just be direct function calls
  • list drag and drop and clipboard operations (onitemadded, onitemremoved, onitemmoved events; onitemadded called when item is created but before it is inserted. Cancelling the event will prevent the item from being added)
  • clean up scrollbar mediator
  • generic spellchecking apis
  • custom drag images using popups

Enhancements to Specific Elements

window / dialog / page
ensure all window features work, some may be more useful on window itself
window icons
preferences
switch to tabs from radiogroup
alternate preference storage
browser
investigate changing default to type="content"
titlebar
display native titlebar
size="normal|thin"
label
buttons: close, dock, minimize
attribute to indictate what element gets moved
resizer
support all directions
attribute to indictate what element gets resized
available as a scrollcorner easily
handle being in a popup
statusbar
update statustext for menus and other elements
remove special classes for images
menu
remove menu box object
remove special classes for images
menupopup
margins when flipped
menus with mixed content
sharing menu button menus and top level menus
scrolling menus positioning (bug 342619)
panel
setting width or height shouldn't affect layout when not open
custom popup events, with popupNode and the node the popup/content/tooltip attribute is on
popupshowing event should have a popupScreenRect property to flush layout and get the eventual screen rectangle of the popup
maintain position relative to anchor (like dependent popups)
no flipping
level="top|parent|independent"
dockable toolbars
popup movement
tooltip
modify default tooltip
tooltips in browser content supported by default, but overridable; tooltip type="content" with FillInHTMLTooltip implementation
toolbar
toolbars on other sides of the window
toolbarpalette
better way to adjust defaultset
tabbox
tabs along other sides
button
fix up or add button types: menu, menu-button, checkbox (toggle buttons)
cleanup frame and binding code
native theming work needed for other button display styles
image buttons / buttons that fit to text/image
checkbox
three states
colorpicker
reimplement a better colorpicker
allow native colorpicker to be used
datepicker
min and max values
selection of date ranges
allow certain fields such as year to be left blank
allow null values
menulist
better editable menulist appearance
radiogroup
toggle button groups (type="button")
scale
tick marks
multiple thumbs for setting ranges
splitter
better handling for trees
textbox
better editor capability (tags/keyword editing for example)
better spellchecking code
autocomplete textbox
handling of results from a preset list (non-component usage)
make autocomplete more general so it can be used from arbitrary text and non-UI use
timepicker
allow certain fields to be left blank
allow null values
image
add natural width and height properties
cross theme and platform stock icons
listbox
clean up odd frame construction usage
tree
arbitrary content
menulist value cells
custom editors for particular cells or columns
multiple cell selection?
events when starting and stopping editing
bbox
ensure baseline alignment works
deck
remove view usage
grid
allow multicolumns (column hiding, rearranging, resizing, sorting)
multiple cell selection?
rowspan/colspan
scrollbox
scrollbar visible attributes
template
logging
improved sorting flags
improved recursion
use ref instead of id attributes
script
scoped script evaluation: <script src="..." scope="id" share="none|document|application"/>
application level scripts

New Elements/Turn into Real Elements

  • link, create a proper element
  • filepicker, with browse button
  • mediacontrols, for video and audio
  • text style elements
  • expand/collapser
  • rubberband selector
  • resizer handles
  • fontpicker