Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
, XUL , the XML User Interface Language, is an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and...
developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...
provides the implementation of XUL used in the Firefox browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
Web standards is a general term for the formal standards and other technical specifications that define and describe aspects of the World Wide Web. In recent years, the term has been more frequently associated with the trend of endorsing a set of standardized best practices for building web sites,...
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
. Such reliance makes XUL relatively easy to learn for people with a background in Web programming and design.
XUL has no formal specification and does not inter-operate
Interoperability
Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to...
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
implementation of Gecko, tri-licensed under the GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
The Mozilla Public License is a free and open source software license. Version 1.0 was developed by Mitchell Baker when she worked as a lawyer at Netscape Communications Corporation and version 1.1 at the Mozilla Foundation...
XULRunner is a runtime environment developed by the Mozilla Foundation to provide a common back-end for XUL-based applications. It replaced the Gecko Runtime Environment, a stalled project with a similar purpose....
In the field of computer software, the term software build refers either to the process of converting source code files into standalone software artifact that can be run on a computer, or the result of doing so...
The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit...
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given...
, allowing them to move easily to any platform on which Mozilla applications run.
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
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
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:
In computing, a window is a visual area containing some kind of user interface. It usually has a rectangular shape that can overlap with the area of other windows...
In a graphical user interface of computers, a dialog box is a type of window used to enable reciprocal communication or "dialog" between a computer and its user. It may communicate information to the user, prompt the user for a response, or both...
A software wizard or setup assistant is a user interface type that presents a user with a sequence of dialog boxes that lead the user through a series of well-defined steps. Tasks that are complex, infrequently performed, or unfamiliar may be easier to perform using a wizard...
In computing, a button is a user interface element that provides the user a simple way to trigger an event, like searching for a query at a search engine, or to interact with dialog boxes, like confirming an action.-Description:A typical button is a rectangle or rounded rectangle, wider than it is...
A text box, text field or text entry box is a kind of widget used when building a graphical user interface . A text box's purpose is to allow the user to input text information to be used by the program...
A combo box is a commonly used graphical user interface widget . It is a combination of a drop-down list or list box and a single-line textbox, allowing the user to either type a value directly into the control or choose from a list of existing options.Combo boxes are typically applied to provide...
A radio button or option button is a type of graphical user interface element that allows the user to choose only one of a predefined set of options....
In computing, a checkbox is a graphical user interface element that permits the user to make multiple selections from a number of options or to have the user answer yes or no on a simple yes/no question.Normally, checkboxes are shown on...
A tree view or an outline view is a graphical user interface element that presents a hierarchical view of information. Each item can have a number of subitems...
In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...
In a graphical user interface, on a computer monitor, a toolbar is a GUI widget on which on-screen buttons, icons, menus, or other input or output elements are placed. Toolbars are seen in office suites, graphics editors, and web browsers...
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...
, colorpicker, spacer, splitter, etc.
box model: box, grid, stack, deck, etc.
events and scripts: script, command, key, broadcaster, observer, etc.
data source: template, rule, etc.
others: overlay (analogous to SSI
Server Side Includes
Server Side Includes is a simple interpreted server-side scripting language used almost exclusively for the Web.The most frequent use of SSI is to include the contents of one or more files into a web page on a web server...
, but client-side and more powerful, with higher performance), iframe, browser, editor, etc.
One can use elements from other applications of XML within XUL documents, such as XHTML
XHTML
XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....
Mathematical Markup Language is an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide Web pages and other documents...
.
Mozilla added some common widgets — (sometimes called "slider"), (spinbox), time and date pickers — during the Gecko 1.9 development cycle.
XUL applications
While XUL serves primarily for constructing Mozilla applications and their extensions, it may also feature in Web application
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
s transferred over HTTP. The Mozilla Amazon Browser, a former XUL application of this type (and well-known in its day), provided a rich interface for searching books at Amazon.com
Amazon.com
Amazon.com, Inc. is a multinational electronic commerce company headquartered in Seattle, Washington, United States. It is the world's largest online retailer. Amazon has separate websites for the following countries: United States, Canada, United Kingdom, Germany, France, Italy, Spain, Japan, and...
.
However, many of the powerful features of Mozilla (such as privileged XPCOM
XPCOM
XPCOM is a cross-platform component model from Mozilla. It is similar to Microsoft COM and CORBA. It has multiple language bindings and IDL descriptions so programmers can plug their custom functionality into the framework and connect it with other components.-The model:XPCOM is one of the main...
objects) remain unavailable to unprivileged XUL documents unless the script has a digital signature
Digital signature
A digital signature or digital signature scheme is a mathematical scheme for demonstrating the authenticity of a digital message or document. A valid digital signature gives a recipient reason to believe that the message was created by a known sender, and that it was not altered in transit...
, 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.
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
provides the only full implementation of XUL, such applications remain inaccessible to users of browsers not based on Mozilla. Mozilla-programmers sometimes refer to XUL applications running locally as chrome.
Ample SDK is a lightweight JavaScript library intended to simplify cross-browser web application development. Although the Ample SDK allows you to do client-side scripting in a very similar way as jQuery and many other JavaScript libraries, its main purpose is to enable development of declarative...
Open-Source GUI Framework provides a cross-browser implementation of XUL in JavaScript.
Komodo Edit is a highly regarded free text editor for dynamic programming languages. Introduced in January 2007, with the release of version 4.3, Komodo Edit is built on top of the Open Komodo project...
IDE uses XUL as well as the Open Komodo project announced in 2007.
Songbird is a free and open source software audio player and web browser, with a stated mission "to incubate Songbird, the first Web player, to catalyze and champion a diverse, open Media Web."...
music-player and Miro video-player both use built-in XUL.
A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...
uses exclusively remote XUL, thus overcoming some of the aforementioned limits of remote unprivileged XUL documents.
Celtx is free media pre-production software designed for creating and organizing media projects like screenplays, films, videos, stageplays, audio plays, documentaries, machinima, comics, games and podcasts....
Flickr is an image hosting and video hosting website, web services suite, and online community that was created by Ludicorp in 2004 and acquired by Yahoo! in 2005. In addition to being a popular website for users to share and embed personal photographs, the service is widely used by bloggers to...
With the release of Firefox 4, support for remote XUL was disabled by default, due to security concerns. Loading an XUL page via HTTP would now display an error unless the domain was added to a hidden whitelist.
Ghostbusters is a 1984 American science fiction comedy film directed by Ivan Reitman and written by Dan Aykroyd and Harold Ramis. The film stars Bill Murray, Dan Aykroyd, Sigourney Weaver, Harold Ramis, and Rick Moranis and follows three eccentric parapsychologists in New York City, who start a...
Zu, also known as Anzu and Imdugud, in Persian and Sumerian, is a lesser divinity of Akkadian mythology, and the son of the bird goddess Siris. He is also said to be conceived by the pure waters of the Apsu-gods and the wide Earth...
possesses the character Dana Barrett (played by Sigourney Weaver
Sigourney Weaver
Sigourney Weaver is an American actress. She is best known for her critically acclaimed role of Ellen Ripley in the four Alien films: Alien, Aliens, Alien 3 and Alien Resurrection, for which she has received worldwide recognition .Other notable roles include Dana...
) and declares, "There is no Dana, only Zuul". Since XUL, like MXML
MXML
MXML is an XML-based user interface markup language first introduced by Macromedia in March 2004. Application developers use MXML in combination with ActionScript to develop rich Internet applications, with products such as Adobe Flex....
, 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
XML Namespace
xmlns tagged XML namespaces are used for providing uniquely named elements and attributes in an XML document. They are defined in a W3C recommendation. An XML instance may contain element or attribute names from more than one XML vocabulary...
In computing, a uniform resource identifier is a string of characters used to identify a name or a resource on the Internet. Such identification enables interaction with representations of the resource over a network using specific protocols...
The linked document displays the slogan in large letters in the center of the screen.
"Keymaster" and "gatekeeper" also refer to the plot-line of the Ghostbusters film . (Other references to Ghostbusters also occur within Mozilla products: for instance, the JavaScript debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
Venkman is the JavaScript debugger component of the Mozilla Application Suite. It is also available as a Mozilla Firefox extension. Venkman is named after the character Dr. Peter Venkman played by Bill Murray in the movies Ghostbusters and Ghostbusters II.-History:In 1998, John Bandhauer was in...
Peter Venkman, Ph.D. is a fictional character from the Ghostbusters franchise. He is a parapsychologist and member of the Ghostbusters, appearing in the films Ghostbusters and Ghostbusters II and in the animated television series The Real Ghostbusters...
in the film.)
Example
This example shows 3 buttons stacked on top of each other in a vertical box container:
An HTML Application is a Microsoft Windows program whose source code consists of HTML, Dynamic HTML, and one or more scripting languages supported by Internet Explorer, such as VBScript or JScript. The HTML is used to generate the user interface, and the scripting language is used for the program...
resembles XUL in that it provides a stand-alone capability to run applications based on HTML, DHTML, and Javascript outside of a Web browser for the Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
Developed by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
language similar to XUL — it runs on top of the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
The Extensible User Interface Protocol, or XUP, is a proposed web standard. XUP is a SOAP-based protocol for communicating events in a user interface, where the user interface is described by an XML document. The specification does not limit what format the XML document is in, or what event model...
Layout managers are software components used in widget toolkits which have the ability to lay out widgets by their relative positions without using distance units. It is often more natural to define component layouts in this manner than to define their position in pixels or common distance units,...
The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit...
XBL is an XML-based markup language used to declare the behavior and look of XUL-widgets and XML elements.XBL was developed by the Mozilla project for use in the Mozilla Application Suite; the language is not currently described by any formal standard and is thus proprietary to Mozilla, with the...
XULRunner is a runtime environment developed by the Mozilla Foundation to provide a common back-end for XUL-based applications. It replaced the Gecko Runtime Environment, a stalled project with a similar purpose....
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
)
The source of this article is wikipedia, the free encyclopedia. The text of this article is licensed under the GFDL.