XUL: Difference between revisions
I have just inserted the pronunciation and meaning of the actual sumerian word. |
wrong article |
||
Line 13: | Line 13: | ||
'''XUL''' (pronounced ''zool'' ({{IPA|[zu:l]}})), the ''XML User Interface Language'', an [[XML]] [[user interface markup language]] developed by the [[Mozilla]] project, operates in Mozilla cross-platform applications such as [[Mozilla Firefox|Firefox]] and [[Flock (web browser)|Flock]]. The [[Gecko (layout engine)|Gecko]] layout engine provides the only complete implementation{{Fact|date=September 2008}} of XUL. |
'''XUL''' (pronounced ''zool'' ({{IPA|[zu:l]}})), the ''XML User Interface Language'', an [[XML]] [[user interface markup language]] developed by the [[Mozilla]] project, operates in Mozilla cross-platform applications such as [[Mozilla Firefox|Firefox]] and [[Flock (web browser)|Flock]]. The [[Gecko (layout engine)|Gecko]] layout engine provides the only complete implementation{{Fact|date=September 2008}} of XUL. |
||
Xul (pronounced: achool) is an ancient Sumerian word that simply means "Evil". |
|||
== Design == |
== Design == |
||
Revision as of 22:44, 16 September 2008
Filename extension |
.xul |
---|---|
Internet media type |
application/ vnd.mozilla.xul+xml |
Developed by | Mozilla Foundation |
Type of format | markup language |
XUL (pronounced zool ([zu:l])), the XML User Interface Language, an XML user interface markup language developed by the Mozilla project, operates in Mozilla cross-platform applications such as Firefox and Flock. The Gecko layout engine provides the only complete implementation[citation needed] of XUL.
Design
XUL relies on multiple existing web standards and technologies, including CSS, JavaScript, and DOM. Such reliance makes XUL relatively easy to learn for people with a background in web-programming and design. Programmers can find XUL and web-developer documentation online at the Mozilla Developer Centre.
XUL has no formal specification and does not inter-operate with non-Gecko implementations. However, it uses an open source implementation of Gecko, tri-licensed under the GPL, LGPL, and MPL.[1]
Mozilla provides experimental XULRunner (embedded in firefox 3) builds to let developers build their applications on top of the Mozilla application framework and XUL in particular.
As its main benefit, XUL provides a simple and portable definition of common widgets. This reduces the software development effort in a way analogous to the savings offered by 4GL tools.[citation needed]
XUL documents
Programmers typically define a XUL interface as three discrete sets of components:
- content: the XUL document(s), whose elements define the layout of the user interface
- skin: the CSS and image files, which define the appearance of an application
- locale: the files containing user-visible strings for easy software localization
XUL elements
XUL defines a wide range of elements, which roughly belong to the following types:
- Top-level elements
- e.g., window, page, dialog, wizard, etc.
- Widgets
- e.g., label, button, text box, list box, combo box, radio button, check box, tree, menu, toolbar, group box, tab box, color picker, spacer, splitter, etc.
- Box model
- e.g., box, grid, stack, deck, etc.
- Events and scripts
- e.g., script, command, key, broadcaster, observer, etc.
- Data source
- e.g., template, rule, etc.
- Others
- e.g., overlay (analogous to SSI, but client-side and more powerful), iframe, browser, editor, etc.
One can use elements from other applications of XML within XUL documents, such as XHTML, SVG, and MathML.
Mozilla added some common widgets — <scale/>
(sometimes called "slider"), <textbox type="number"/>
(spinbox), time and date pickers — during the Gecko 1.9 development-cycle.[2]
XUL applications
While XUL serves primarily for creating the Mozilla applications and their extensions, it may also feature in web-applications transferred over HTTP. The Mozilla Amazon Browser, a former XUL application of this type and well-known in its day[3], provided a rich interface for searching books at Amazon.com.
However, many of the powerful features of Mozilla such as privileged XPCOM objects remain unavailable to unprivileged XUL documents unless the script has a digital signature, and unless the user obtains grants of certain privileges to the application. Such documents also suffer from various limitations of the browser, including the inability to load remote XUL, DTD, and RDF documents.
As Gecko provides the only full implementation of XUL, such applications remain inaccessible to users of browsers not based on Mozilla.
The ActiveState Komodo IDE uses XUL as well as the recently-announced Open Komodo Project.
The Songbird music-player and Miro video-player both use built-in XUL.
The developers of the Celtx media pre-production application used XUL.
Mozilla-programmers sometimes refer to XUL applications running locally as "chrome".[4]
The name
THERE IS NO DATA. THERE IS ONLY XUL. |
The XUL name references the film Ghostbusters (1984), in which the ghost of an ancient Sumerian deity called Zuul possesses the character Dana Barrett (played by Sigourney Weaver) and declares, "There is no Dana, only Zuul". Since XUL, unusually, uses XML to define an interface rather than a document, its developers adopted the slogan: "There is no data, there is only XUL". Hence the XML namespace URI at the beginning of every XUL document:
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
When viewed with a XUL-capable application, the document pointed-to displays the slogan in large letters in the center of the screen (similar to the image here).
"Keymaster" and "gatekeeper" also refer to the same film plot-line. Other references to Ghostbusters also occur within Mozilla products: for instance, the JavaScript has a debugger component called Venkman, after one of the main characters in the film.
Example code
This piece of code shows 3 buttons stacked on top of each other in a vertical box container:[5]
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="vbox example" title="Example"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox>
<button id="yes" label="Yes"/>
<button id="no" label="No"/>
<button id="maybe" label="Maybe"/>
</vbox>
</window>
See also
- XBL
- Mozilla application framework
- XULRunner
- Layout manager
- List of user interface markup languages
- Comparison of user interface markup languages
- OpenLaszlo
References
- ^ Mozilla Foundation. "Mozilla Code Licensing". Retrieved 2007-09-17.
- ^ Firefox 3 for developers
- ^ "Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)". Oreillynet. 2003-02-05.
- ^ Feldt, Kenneth C. (2007). Programming Firefox: Building Rich Internet Applications with XUL. O'Reilly Media. pp. 76–77. ISBN 0596102437. Retrieved 2008-03-04.
- ^ http://www.xulplanet.com/tutorials/xultu/boxes.html
External links
- XUL documentation on developer.mozilla.org
- XULPlanet — A developer site with tutorials, references and forums
- XUL Periodic Table — Visual demonstration of XUL capabilities (Requires an XUL-enabled browser such as Mozilla Firefox)
- XUL and XML — How to use XUL