Пример создания меню c помощью SWT
2005-02-08
Не секрет, что большинство компьютерных приложений снабжены графическим интерфейсом и это не удивительно – человеку легче воспринимать зрительную информацию. XUL является одним из многих путей создания GUI.
XUL?
XUL расшифровывается как XML User-interface Language и является подмножеством языка XML, отсюда следует, что все ограничения наложенные на XML, также распространяются и на XUL. Для нормального понимания статей посвященных XUL необходимы знания XML, CSS, JavaScript. CSS используется для описания дизайна, а XUL для создания наполнения – позволяют работать с графическим интерфейсом, а JavaScript используется для развития функциональности. XUL реализован на платформе Mozilla, так же существует похожий язык для описания интерфейса Java программ - Luxor, язык от Macromedia - Flex, язык от Microsoft – XAML.
Первый документ
Единственный способ выучить новый язык программирования – это писать на нем программы. При изучении любого языка первой предлагают написать программу, которая выводила бы следующее сообщение:
Здравствую, мир!
Код выглядит так:
<?xml version="1.0" encoding="windows-1251"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <description value=" Здравствуй, мир"/> </window>Забрать пример
Как запустить этот пример? Существует несколько способов сделать это. В Mozill’e(Firefox) через File > Open file… или нажатием Ctrl+O.
Можно запустить код из командной строки:
firefox.exe -chrome file://<путь к файлу>
- chrome Mozilla запустится в отдельном окне, в контексте chrome, без загрузки кода, который формирует сам внешний вид браузера.
file://
- ссылки, которая указывает на корень файловой системы. Кроме file://
существует resource://
- указывает на корень папки, в которой установлена Mozilla(Firefox) и chrome://
указывающая на подкаталог chrome в папке, где установлена Mozilla или подкаталог chrome текущего профиля.
Так же код можно запустить с помощью JavaScript, воспользовавшись функцией windows.open:
window.open(ссылка, имя окна, опции)
В Mozill'е используется дополнительная опция – chrome(аналогична опции в командной строке).
Создадим html-файл hello.html. Код файла:
<a href="1.1.xul" onclick="window.open('hello.xul','hello’,'chrome’); return false;">hello</a>
Теперь поясним некоторые моменты.
<?xml version="1.0" encoding="windows-1251"?>
Пролог XML-документа, предоставляющий информацию о том, как обрабатывать документ. Эта строка является обязательной. encoding="windows-1251"
Служит для установки кодировки Windows.
Вообще XML-документ можно разбить на две основные часть: пролог и содержание, собственно XML-документ. Пролог - это объявление XML в следующем формате:
<?xml version="1.0"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
Это корневой элемент – элемент высшего уровня в XML-документе, описывает активное окно, является горизонтально ориентированным. Он должен быть первым открывающимся и последним закрывающимся тегом в документе. Если вы хотите установить свою иконку к окну для этого необходимо создать файл <windowid>.ico
или <windowid>.xpm
и поместить в дирикторию <mozilla-directory>/chrome/icons/default/
. Это позволяет создавать окна с разными иконками.
Рассмотрим возможные атрибуты элемента <window>:
height
– устанавливавет высоту окна.
hidechrome
– установить атрубут в true и у окна исчезнет строка заголовка.
id
– идентификатор окна, должен быть унекальным.
screenX
– горизонтальная позиция окна, которое появится на экране.
screenY
– вертикальная позиция окна, которое появится на экране.
sizemode
– положение окна на экране. Может принимать следующие значения:
maximized:
окно максимизировано и занимает весь экран.minimized:
окно минимизировано в панель задач.normal:
окно появляется в нормально режиме с установленым размером и положением на экране.
title
– текст строки заголовка.width
- устанавливавет ширину окна.xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
Строка описывает пространство имён XUL-документа. Обязательно должен присутствовать, именно этой строчкой мы описываем, что все элементы принадлежат XUL.
<description value=" Здравствуй, мир”/>
Элемент используется для создания блока текста, который помещается в атрибут value или между открывающимся и закрывающимся тегами <description>. Возможные атрибуты элемента:
crop
– если выделено мало места, чтобы поместить текст в отведённое место, то он обрезается в соответствии со значениями атрибута:
start:
текст будет обрезан по левому краю.end:
текст будет обрезан по правому краю.center:
текст будет обрезан с обоих сторон.none:
текст не будет обрезан, если он не помещается.
disabled
– отключить элемент, выглядит в зависимости от стиля, обычно серым цветом.value
– вписываемый текст.На сегодня все...