XUL:Priority List: Difference between revisions

No edit summary
 
(32 intermediate revisions by 8 users not shown)
Line 6: Line 6:


{| border="1" cellpadding="6" valign="top"
{| border="1" cellpadding="6" valign="top"
|A CanvasTag for customized drawing is needed. The HTML canvas is available so this pretty much done. (Enn) I still think a non-retained version would be useful though.||
!Description!!Status!!Bugs
|-
|-
|Templates need to log syntax errors on the JS console or elsewhere.||
|Templates need to log syntax errors on the JS console or elsewhere.||1.9||[https://bugzilla.mozilla.org/show_bug.cgi?id=321171 321171]
|-
|-
|Templates should have a means of matching values based on substrings, greater than a value, etc. || [https://bugzilla.mozilla.org/show_bug.cgi?id=285631 285631]
|<strike>Templates should have a means of matching values based on substrings, greater than a value, etc.</strike>||1.9|| [https://bugzilla.mozilla.org/show_bug.cgi?id=285631 285631]
|-
|-
|Better ways of doing databinding, for instance to XML, components, or JS objects.|| [https://bugzilla.mozilla.org/show_bug.cgi?id=285631 285631]
|<strike>Better ways of doing databinding, for instance to XML, components, or JS objects.</strike>||1.9||[https://bugzilla.mozilla.org/show_bug.cgi?id=321171 321171][https://bugzilla.mozilla.org/show_bug.cgi?id=321170 321170]
|-
|-
|A [[XUL:Slider_Tag|slider tag]] (scale) for volume controls. Safari RSS has this and WebForms 2.0 will have this. We should make it work. || [https://bugzilla.mozilla.org/show_bug.cgi?id=290255 290255]
|<strike>A [[XUL:Slider_Tag|slider tag]] (scale) for volume controls. Safari RSS has this and WebForms 2.0 will have this. We should make it work.</strike>||1.9||[https://bugzilla.mozilla.org/show_bug.cgi?id=290255 290255]
|-
|-
|Get the <spinbuttons> widget to work. It's missing images currently. ||[https://bugzilla.mozilla.org/show_bug.cgi?id=155053 155053].
|Fix all the existing XBL implemented elements so that they actually have all the methods of the interfaces they say they implement.||XBL2?||
|-
|-
|Fix all the existing XBL implemented elements so that they actually have all the methods of the interfaces they say they implement.||
|<strike>Editable treecells that allow editing via a textbox or a menulist. Fairly easy to implement for non-RDF trees, except for the caret being hidden when a view is above it issue.</strike>||1.9||[https://bugzilla.mozilla.org/show_bug.cgi?id=201499 201499] [https://bugzilla.mozilla.org/show_bug.cgi?id=96384 96384]
|-
|-
|Editable treecells that allow editing via a textbox or a menulist. Fairly easy to implement for non-RDF trees, except for the caret being hidden when a view is above it issue.||
|Allow the toolkit bindings to have extra privileges in some way such that native calls and dtd handling will work when the elements are used in remote XUL. (AxelHecht) We need a good story here. There is the story that we can't/won't do a chrome registry for remote xul, that is, no fiddling of locales into URLs. Which may actually be a wise idea. Then you need to do some serverside processing to spin the DTD url into your content, which ends up in you being able to serve the DTD inline as well. But we need to iron this out, probably with a counter proposal to actually do URL munging for remote xul.||XBL2||
|-
|-
|Get the dtd handling working for remote content so that dialog/wizard and so on will work there. (AxelHecht) We need a good story here. There is the story that we can't/won't do a chrome registry for remote xul, that is, no fiddling of locales into URLs. Which may actually be a wise idea. Then you need to do some serverside processing to spin the DTD url into your content, which ends up in you being able to serve the DTD inline as well. But we need to iron this out, probably with a counter proposal to actually do URL munging for remote xul.||
|There needs to be a way of parsing XUL documents and fragments. DOMParser only parses XML. (NeilRashbrook) HTML parsing, too. Currently the best you can do is document.write() (AxelHecht) Actually DOMParser works just fine with XUL as does XMLSerializer. I use this functionality all the time to manipulate fragements of XUL (dcradler). We need to check for [https://bugzilla.mozilla.org/show_bug.cgi?id=155749 DOM LS], jst, what's the status with that?||||  
|-
|-
|There needs to be a way of parsing XUL documents and fragments. DOMParser only parses XML. (NeilRashbrook) HTML parsing, too. Currently the best you can do is document.write() (AxelHecht) We need to check for DOM LS, jst, what's the status with that?||
|Improve chrome URLs so that name collisions aren't going to occur. (AxelHecht) proposal? Not sure what this is supposed to be. (NeilDeakin) BenjaminSmedberg proposed using namespaced package names in http://bdsmedberg.no-ip.org:8080/chrome/||||
|-
|-
|Improve chrome URLs so that name collisions aren't going to occur. (AxelHecht) proposal? Not sure what this is supposed to be. (NeilDeakin) BenjaminSmedberg proposed using namespaced package names in http://bdsmedberg.no-ip.org:8080/chrome/||
|<strike>Popups have a issues with certain content. We need to fix those.</strike>||1.9||279903
|-
|-
|Popups have a issues with certain content. We need to fix those.||
|Specify the XUL box model and then make sure it is implemented that way||Flexbox||
|-
|-
|Specify the XUL box model and then make sure it is implemented that way||
|Make it so that XBL can be attached without using CSS. Or, just make it so that XBL is available right a binding is applied.||XBL2||[https://bugzilla.mozilla.org/show_bug.cgi?id=265086 265086]
|-
|Make it so that XBL can be attached without using CSS. Or, just make it so that XBL is available right a binding is applied.||[https://bugzilla.mozilla.org/show_bug.cgi?id=265086 265086].
|}
|}


==Priority 2==
==Priority 2==


#currently when one wants to filter out results that don't match a condition, an empty rule has to be used. There should be a simple way to negate results.
{| border="1" cellpadding="6" valign="top"
#need more control over template recursion.
|<strike>currently when one wants to filter out results that don't match a condition, an empty rule has to be used. There should be a simple way to negate results.</strike> ||1.9||[https://bugzilla.mozilla.org/show_bug.cgi?id=285631 285631]
#there are various targets and elements available through an event object but it seems that none of them are ever the one I want. Often they point to anonymous content. (AxelHecht) more detail here? (NeilDeakin) For example, for focus events, the target is the anonymous HTML input rather than the XUL element. (NeilRashbrook) This is because the focus event doesn't bubble so the onfocus handler has to be inherited onto the anonymous HTML input.
|-
#get the element at a given coordinate, or set of elements.
|there are various targets and elements available through an event object but it seems that none of them are ever the one I want. Often they point to anonymous content. (AxelHecht) more detail here? (NeilDeakin) For example, for focus events, the target is the anonymous HTML input rather than the XUL element. (NeilRashbrook) This is because the focus event doesn't bubble so the onfocus handler has to be inherited onto the anonymous HTML input.||XBL2||
#get XUL elements to work well in XML documents. (NeilRashbrook) Many of the XUL helper methods are currently defined on the XUL document. (AxelHecht) Is this part of my favorite content sink story or vice versa?
|-
|<strike>get the element at a given coordinate, or set of elements. Use elementFromPoint. </strike>||||
|-
|get XUL elements to work well in XML documents. (NeilRashbrook) Many of the XUL helper methods are currently defined on the XUL document. (AxelHecht) Is this part of my favorite content sink story or vice versa?||||
|-
|<strike>need to make the [[XUL:Popups|popup]] API a little more logical. Currently showPopup is strange and doesn't match any specs that were created.</strike>||1.9||
[https://bugzilla.mozilla.org/show_bug.cgi?id=279703 279703]
|-
|<strike>elements that only allow numeric input or other filtered input.</strike>||1.9||[[XUL:Specs:NumberBox|NumberBox]]
|}


==Priority 3==
==Priority 3==


#way of making panels which arrange to fit, much like a Windows icon view. This can more or less be done with display: block, assuming that this doesn't change in upcoming CSS specs, but a tag for this would be nice. XAML calls this a FlowPanel and is a key layout primitive. (MinhNguyen) Java's AWT also has FlowLayout as the defalt layout manager.
{| border="1" cellpadding="6" valign="top"
#in addition, an icon object that can be dragged around in its container without having to write dragging code. (NeilRashbrook) Or at least the ability to capture the mouse while it's pseudo-dragging, so that all events get targetted at a specific element, avoiding hacks like listening for mouseup on the window element and hoping the mouse isn't released outside of the window.
|way of making panels which arrange to fit, much like a Windows icon view. This can more or less be done with display: block, assuming that this doesn't change in upcoming CSS specs, but a tag for this would be nice. XAML calls this a FlowPanel and is a key layout primitive. (MinhNguyen) Java's AWT also has FlowLayout as the defalt layout manager.||Flexbox||
#a clipboard API or wrapper that is easier to use. Meaning, one can cut and paste common types with only one or two lines of code. (NeilRashbook) I've always wondered why the clipboard helper only copies strings to the clipboard, you can't easily get them back.
|-
#good drag and drop APIs, available for local and remote content.
|in addition, an icon object that can be dragged around in its container without having to write dragging code. (NeilRashbrook) Or at least the ability to capture the mouse while it's pseudo-dragging, so that all events get targetted at a specific element, avoiding hacks like listening for mouseup on the window element and hoping the mouse isn't released outside of the window.||Flexbox||
#a means for the application to know when the item has been dropped onto another application.
|-
#a means to know when a drag is cancelled. This is needed to tear down drop markers inserted into a document. Currently, you need to set up a timer and check for the continued existance of the drag session.  
|a clipboard API or wrapper that is easier to use. Meaning, one can cut and paste common types with only one or two lines of code. (NeilRashbook) I've always wondered why the clipboard helper only copies strings to the clipboard, you can't easily get them back.||||[[XUL:Specs:TransferData|Transfer Data]]
#make sure that the Firefox toolbar customization is part of the toolkit.
|-
#the stack is great for some positioned content, but there is a need to be able to have an absolutely positioned item or two without the need of a container, for example so that it can be moved about on the screen. Extensions, I'd imagine, would use this quite a bit. (NeilRashbook) [http://cards.mozdev.org/ Cards] seems to manage fine with a stack, although there's a hack to prevent the stack from expanding when items are dragged down or to the right.
|good drag and drop APIs, available for local and remote content.||1.9?||[[XUL:Specs:TransferData|Transfer Data]]
#popups that can be non-rectangular or transparent, and have or not have title bars.
[https://bugzilla.mozilla.org/show_bug.cgi?id=356295 356295]
#something that allows applications to cache data. Currently, we have the network cache, and xul persistence in the local store, but they aren't very configurable. Possibility a way to store XML documents or RDF data. Also, provide access to cookies within XUL. (NeilRashbook) Move document.cookie to nsIDOMDocument perhaps? (AxelHecht) vlad is going to post something about this, just want to note that we need a good privacy/security story here, if this is supposed to be used widely.  
|-
#a tag or collection of tags for easy web services. The <serverpost> is a good start for doing HTTP Post, which I'm including in the web services category. We need these kind of things so it is easy to send content to a remote site without having to resort to XMLHTTPRequest scripting. (AxelHecht) I'm not very fond of the idea as is, it seems like you're moving application logic into XML markup. Programming in XML is rather rare and Webservices are a rather generic thing to me, I have no vision on how this would help. If I'm wrong, should this go through the WHATWG? (AxelHecht) I have been thinking again. I bet we have two scenarios for webservices. One is to include the result of a soap or xmlrpc request into the document directly, the other is to generate content via the result, that is, we rather want to include webservices as XML datasources than just have them somewhere else, right? (NeilDeakin) Yes, we want to support web services as datasources for use in templates/databinding. Also, 'How do I post a form in XUL?' is a frequent question so there needs to be an easy way of doing a post. Calling SOAP and so forth takes a lot of code when it should be easy to send entered data to a remote site.
|a means for the application to know when the item has been dropped onto another application.||1.9?||[[XUL:Specs:TransferData|Transfer Data]]
#controls for selecting dates and times. Again see WebForms 2.0 for how we should do this.
[https://bugzilla.mozilla.org/show_bug.cgi?id=356295 356295]
#panels that can be docked on the sides on the window or in some form of container. By clicking on some button, they become floating. This would be useful for floating palettes.
|-
#ability to capture a window or parts of a window into an image. This is useful for creating thumbnails. (ChrisThomas) Is roc's drawWindow the solution to this?
|<strike>a means to know when a drag is cancelled. This is needed to tear down drop markers inserted into a document. Currently, you need to set up a timer and check for the continued existance of the drag session.</strike>||1.9?||[[XUL:Specs:TransferData |Transfer Data]] [https://bugzilla.mozilla.org/show_bug.cgi?id=356295 356295]
#need to get the ActiveX control to work well with XUL, for instance, allowing it to recognize components and display new dialogs. (NeilRashbook) Java with XUL too. (AxelHecht) Lots of the layout points look very similar and ask for some kind of non-block non-inline non-xul-box layout scheme, right?
|-
#ensure that scrolling APIs for getting and changing the scroll position in elements are available and usable in remote content. Also useful would be to have a scrollToPosition type function for textboxes.
|<strike>translucent dragging to allow dragging icons, treerows, etc around.</strike>||1.9||[[XUL:Specs:TransferData |Transfer Data]] [https://bugzilla.mozilla.org/show_bug.cgi?id=279703 279703]
|-
|<strike>make sure that the Firefox toolbar customization is part of the toolkit.</strike>||?||
|-
|the stack is great for some positioned content, but there is a need to be able to have an absolutely positioned item or two without the need of a container, for example so that it can be moved about on the screen. Extensions, I'd imagine, would use this quite a bit. (NeilRashbook) [http://cards.mozdev.org/ Cards] seems to manage fine with a stack, although there's a hack to prevent the stack from expanding when items are dragged down or to the right.||Flexbox||
|-
|<strike>popups that can be non-rectangular or transparent, and have or not have title bars.</strike>||||
|-
|something that allows applications to cache data. Currently, we have the network cache, and xul persistence in the local store, but they aren't very configurable. Possibility a way to store XML documents or RDF data. Also, provide access to cookies within XUL. (NeilRashbook) Move document.cookie to nsIDOMDocument perhaps? (AxelHecht) vlad is going to post something about this, just want to note that we need a good privacy/security story here, if this is supposed to be used widely.||1.9||Use DOMStorage
|-
|<strike>elements for selecting dates and times.</strike>||1.9||[[XUL:Specs:DateTimePickers|DateTimePickers]]
|-
|panels that can be docked on the sides on the window or in some form of container. By clicking on some button, they become floating. This would be useful for floating palettes.||||
|-
|ability to capture a window or parts of a window into an image. This is useful for creating thumbnails. (ChrisThomas) Is roc's drawWindow the solution to this?||||
|-
|ensure that a retrieving and modifying the scroll position of the content of any element is available. Also useful would be to have a scrollToPosition type function for textboxes.||BoxObject 1.9||[[XUL:Specs:Scrolling|Scrolling]]
|-
|a builtin <link> tag so that links can be created. We could create a wrapper around xlink if desired. (NeilRashbrook) So what's wrong with <html:a>? Or do you just want some XBL? ([[User:Asqueella|Nickolay]]) there's <xul:label class="text-link" href="http://google.com" value="google!"/>, it just needs to be fixed to work with tabs ({{bug|263433}}).||1.9||
|}


==Priority 4==
==Priority 4==


#add some functions to the listbox so that creating multi-column items is easier.
#<strike>get non-rectangular windows working on Mac. Often used for audio players, or Apple Dashboard like applications.</strike>
#<strike>make richlistbox multi-selectable ([[XUL:Richlistbox]] and [https://bugzilla.mozilla.org/show_bug.cgi?id=298371 bug 298371]) and implement FAYT for it ([https://bugzilla.mozilla.org/show_bug.cgi?id=298993 bug 298993]) ([[User:Zeniko|zeniko]])</strike>
#A CanvasTag for customized drawing is needed. The HTML canvas is available so this pretty much done. (Enn) I still think a non-retained version would be useful though.
#make creating custom tags with XBL or other technologies easy, and ensure they can be distributed easily. I'm thinking a catgeory on update.mozilla.org here. The point is a bit vague about what it means.
#make creating custom tags with XBL or other technologies easy, and ensure they can be distributed easily. I'm thinking a catgeory on update.mozilla.org here. The point is a bit vague about what it means.
#controls that only allow numeric input or other filtered input. See WebForms 2.0 for how we should do this.
#could use an improved colorpicker too. Nvu has a better one. (NeilRashbrook) http://nrr.dnsalias.net/colours.xul is something I started work on...
#could use an improved colorpicker too. Nvu has a better one. (NeilRashbrook) http://nrr.dnsalias.net/colours.xul is something I started work on...
#baseline alignment doesn't seem to work right in XUL.
#baseline alignment doesn't seem to work right in XUL.
#need to make the popup API a little more logical. Currently showPopup is strange and doesn't match any specs that were created.
#sometimes there's a need to get the current mouse position without the need to have listeners. This would also be useful when the mouse isn't in a window. Similarly for finding the keyboard state of keys like shift, control, etc.
#sometimes there's a need to get the current mouse position without the need to have listeners. This would also be useful when the mouse isn't in a window. Similarly for finding the keyboard state of keys like shift, control, etc.
#allow toolbars that can be placed on the side or in a single row. Might not be as necessary with good toolbar customization capability.
#allow toolbars that can be placed on the side or in a single row. Might not be as necessary with good toolbar customization capability.
Line 76: Line 102:


#selecting text in a chrome window seems to be disabled regardless of -moz-user-select. We should allow this if the style is set right. Note that an inline label uses a different frame for displaying text so it might not be possible there, but I think it's necessary to have some level of selectable text. (NeilRashbrook) Note that read-only textboxes have the advantage of being accessible (modulo caret issues).
#selecting text in a chrome window seems to be disabled regardless of -moz-user-select. We should allow this if the style is set right. Note that an inline label uses a different frame for displaying text so it might not be possible there, but I think it's necessary to have some level of selectable text. (NeilRashbrook) Note that read-only textboxes have the advantage of being accessible (modulo caret issues).
#allow the XULSortService to be able to sort on non-RDF content, especially trees. Currently, it sorts only template built content. It would be great to allow arbitrary sorting, even if it might be slower for larger amounts of content. (NeilRashbrook) How would you specify the sort value and datatype?
#<strike>allow the XULSortService to be able to sort on non-RDF content, especially trees. Currently, it sorts only template built content. It would be great to allow arbitrary sorting, even if it might be slower for larger amounts of content. (NeilRashbrook) How would you specify the sort value and datatype? (Bug  335122)</strike>
#a tag or collection of tags for easy web services. The <serverpost> is a good start for doing HTTP Post, which I'm including in the web services category. We need these kind of things so it is easy to send content to a remote site without having to resort to XMLHTTPRequest scripting. (AxelHecht) I'm not very fond of the idea as is, it seems like you're moving application logic into XML markup. Programming in XML is rather rare and Webservices are a rather generic thing to me, I have no vision on how this would help. If I'm wrong, should this go through the WHATWG? (AxelHecht) I have been thinking again. I bet we have two scenarios for webservices. One is to include the result of a soap or xmlrpc request into the document directly, the other is to generate content via the result, that is, we rather want to include webservices as XML datasources than just have them somewhere else, right? (NeilDeakin) Yes, we want to support web services as datasources for use in templates/databinding. Also, 'How do I post a form in XUL?' is a frequent question so there needs to be an easy way of doing a post. Calling SOAP and so forth takes a lot of code when it should be easy to send entered data to a remote site.
#an API to play sound. Currently there is nsISound, but it isn't very exciting. It doesn't let you stop playing sound for instance. It should allow playing from a specific location and adjusting the volume at least. Should allow applications that provide at least basic iTunes like functionality.
#an API to play sound. Currently there is nsISound, but it isn't very exciting. It doesn't let you stop playing sound for instance. It should allow playing from a specific location and adjusting the volume at least. Should allow applications that provide at least basic iTunes like functionality.
#a builtin <link> tag so that links can be created. We could create a wrapper around xlink if desired. (NeilRashbrook) So what's wrong with <html:a>? Or do you just want some XBL?
#an expander widget for hiding and showing a block of content. Firefox's Options dialog has something like this. We should reuse that and make it more generic if necessary. (NeilRashbook) DOM Inspector's XBL bindings page has something like this, although last time I looked it needed visual enhancement (see my theme again).
#an expander widget for hiding and showing a block of content. Firefox's Options dialog has something like this. We should reuse that and make it more generic if necessary. (NeilRashbook) DOM Inspector's XBL bindings page has something like this, although last time I looked it needed visual enhancement (see my theme again).
#change the error '... UnnamedClass.classes ...' to 'Components.classes' so that developers at least have some idea what happened when unprivleged code tries to access XPCOM.
#change the error '... UnnamedClass.classes ...' to 'Components.classes' so that developers at least have some idea what happened when unprivleged code tries to access XPCOM.
Line 86: Line 112:
==Priority 6==
==Priority 6==


#translucent dragging to allow dragging icons, treerows, etc around. I think only the Mac has this currently.
#make command updaters a bit less manual. Currently one has to include some overlays and scripts in order to update the disabled state of an item as necessary. In addition, utilityOverlay.js is in the communicator package which is used for update edit items. This should be more declarative so that common edit commands are handled automatically.
#make command updaters a bit less manual. Currently one has to include some overlays and scripts in order to update the disabled state of an item as necessary. In addition, utilityOverlay.js is in the communicator package which is used for update edit items. This should be more declarative so that common edit commands are handled automatically.
#grids could support rowspan/colspan like html tables do. That would make some layouts easier without having to resort to various nested boxes.
#grids could support rowspan/colspan like html tables do. That would make some layouts easier without having to resort to various nested boxes.
Line 97: Line 122:
#some graph widgets like bar graph, pie chart, etc. This could be done with SVG and XBL presumably.
#some graph widgets like bar graph, pie chart, etc. This could be done with SVG and XBL presumably.
#add some styles to allow tabs to placed on the other sides on the tabbox.
#add some styles to allow tabs to placed on the other sides on the tabbox.
#need more control over template recursion. Recursion can now be disabled.
#need to get the ActiveX control to work well with XUL, for instance, allowing it to recognize components and display new dialogs. (NeilRashbook) Java with XUL too. (AxelHecht) Lots of the layout points look very similar and ask for some kind of non-block non-inline non-xul-box layout scheme, right?


==Priority 7==
==Priority 7==
Line 136: Line 163:
#overlays should support an onload attribute. Possibily even onunload or onclose. (NeilRashbrook) What's wrong with addEventListener?
#overlays should support an onload attribute. Possibily even onunload or onclose. (NeilRashbrook) What's wrong with addEventListener?
#some people might want to put more than one window definition in a single file, at least, small dialogs. (NeilRashbrook) Perhaps you could choose the window by the anchor on the URL? (MinhNguyen) And you could then surround the window tags with a windowset tag.
#some people might want to put more than one window definition in a single file, at least, small dialogs. (NeilRashbrook) Perhaps you could choose the window by the anchor on the URL? (MinhNguyen) And you could then surround the window tags with a windowset tag.
==In progress==
These items are already being implemented.
#actually make undeterminate progress meters draw properly in the Classic theme. Currently they don't since an image for it doesn't exist in the native theme. (NeilRashbrook) I have now fixed [https://bugzilla.mozilla.org/show_bug.cgi?id=226491 bug 226491].
#get non-rectangular windows working on every platform and not just on some configurations of Linux. Often used for audio players, or Apple Dashboard like applications.
#custom cursors as in CSS2 might be useful for some applications. (MinhNguyen) This is [https://bugzilla.mozilla.org/show_bug.cgi?id=38447 bug 38447]. (asqueella) ... now fixed.
#need better debugging for when applications aren't registered in the chrome registry correctly. (BenjaminSmedberg) This is now fixed with console logging.
287

edits