XUL:Improvements
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