XUL
XUL (XML User Interface Language) – wieloplatformowy język znaczników oparty na języku XML służący do opisu graficznego interfejsu użytkownika.
XUL nie jest standardem publicznym. Mimo to używa wielu istniejących standardów i technologii, takich jak: CSS, JavaScript, DTD oraz RDF, dzięki czemu jest prosty do nauki dla osób, które zajmują się programowaniem stron internetowych.
Wprowadzenie
Interfejs XUL jest definiowany poprzez trzy składowe:
- Zawartość (ang. content) – dokumenty XUL, które określają model graficzny interfejsu użytkownika
- Skórki (ang. skin) – pliki arkuszy stylów CSS i pliki obrazków, które definiują wygląd aplikacji
- Pliki językowe (ang. locale) – dokumenty DTD, które definiują encje XML w celu łatwej lokalizacji oprogramowania.
Wykorzystanie
XUL jest używany do opisu interfejsu m.in. w oprogramowaniu Mozilli, takim jak: Mozilla Application Suite, Thunderbird, Firefox (oraz innych przeglądarkach na nim bazujących), lecz istnieje także możliwość zastosowania go do tworzenia aplikacji sieciowych opartych na protokole HTTP.
Elementy XUL
XUL definiuje szeroki zakres elementów, które należą do kilku następujących typów:
- Elementy top-level
- np. window, page, dialog, wizard itd.
- Widgety
- np. label, button, textbox, listbox, combobox, radio button, checkbox, tree, menu, toolbar, groupbox, tabbox, color picker, spacer, splitter itd.
- Model pudełkowy
- np. box, grid, stack, deck itd.
- Zdarzenia i skrypty
- np. script, command, key, broadcaster, observer itd.
- Źródła danych
- np. szablony, reguły itd.
- Inne
- np. overlay (nakładki), iframe, browser, editor itd.
Przykładowy plik XUL
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css" ?>
<window id="helloworld-window"
title="Hello, world!"
flex="1"
align="center"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<description>
Hello, world!
</description>
</window>
Zobacz też
Linki zewnętrzne
- XUL na Mozilla Developer Network. developer.mozilla.org. [zarchiwizowane z tego adresu (2018-08-30)].