Основные концепции
1.6.4. "hello, world"
Пожалуй, ни одна книга по программированию не обходится без этой простой программы, прославившейся благодаря Кернигану и Ритчи и их книге "Язык программирования Си". Оригинальная фраза "hello, world" была затем изменена на "Hello, World!", когда C стал стандартом ANSI. Mozilla сейчас еще находится на этапе развития, поэтому мы будем использовать первую версию строки.
Mozilla отображает все простые версии "hello, world" на HTML, какие только можно придумать. Вариантов написания может быть бесконечно много. В листинге 1.2 показаны варианты для стандартного режима и для режима совместимости.
<html> <body> hello, world </body> </html> <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <body>hello, world </body> </html>Листинг 1.2. "hello, world" на HTML и XHTML 1.0
Но мы, разработчики приложений, напишем "hello, world" на XUL, языке разметки графического интерфейса пользователя. Здесь тоже очень много вариантов, но мы приведем самый простой из них, который рассказывает об этом языке совсем немного.
<?xml version="1.0"?> <!DOCTYPE window> <window xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box> <description>hello, world</description> </box> </window>Листинг 1.3. "hello, world" на XUL
Прежде всего, нужно заметить, что для вывода обычного текста в XUL следует использовать специальный тег с очень длинным именем (<description>). Файлы XUL обычно не содержат просто текст, но содержат разметку. Идентификатор пространства имен XML - неявная ссылка на фильм "Охотники за привидениями". XUL произносится как "зул", а там был отрицательный персонаж именно с таким именем. Кроме того, Venkman - тоже оттуда, но это уже фамилия положительного героя. Эта строка нигде не появляется, кроме как внутри Mozilla. По адресу этого пространства имен в Internet есть страница-пустышка, она ни для чего не используется.
Чтобы посмотреть, как работает наша первая программа, нужно сохранить ее текст в файл под названием hello.xul в любом каталоге. Для таких простых случаев это необязательно должен быть chrome. Загрузите этот файл в Mozilla, используя протокол file:, то есть просто введите его локальный адрес в строку адреса, как это обычно делается. Результат должен быть похож на показанный на рисунке 1.7 (при условии, что файл находился в каталоге /tmp).
Содержимое файлов XUL необязательно должно появляться в окне браузера. Закройте Mozilla и запустите ее из командной строки с параметром -chrome. Для UNIX команда может выглядеть примерно так:
/usr/local/lib/mozilla-1.7/mozilla -chrome file:///tmp/hello.xul
А для Microsoft Windows так:
"C:\Program Files\Mozilla\mozilla.exe" -chrome "file:C:/tmp/hello.xul"
В любом случае результат будет похож на показанный на рисунке 1.8.
Наш второй результат более типичен для приложений, разрабатываемых для Mozilla. Это только начало.
1.6.5. Подготовка к разработке NoteTaker
Приложение NoteTaker послужит небольшим примером, над которым мы будем работать в течение всей книги. Оно не будет самостоятельным, а будет работать вместе с классическим браузером Mozilla. Когда пользователь установит NoteTaker, вся первоначальная настройка будет сделана автоматически. Как разработчики, мы должны делать все сами с самого начала.
Единственное, что нам нужно еще сделать для установки NoteTaker, - создать несколько каталогов и зарегистрировать имя notetaker как официальное расширение chrome. Тогда мы сможем обращаться к этому приложению с помощью URL chrome:. Вот инструкции по созданию каталогов:
- Перейдите в каталог chrome Mozilla.
- В нем создайте каталог notetaker и перейдите в него.
- Здесь создайте каталоги content, locale и skin.
- В каталоге locale создайте каталог en-US.
- В каталоге skin создайте каталог classic или modern, а лучше оба.
Регистрация расширения производится в файле chrome/install- chrome.txt. Чтобы зарегистрировать NoteTaker как расширение chrome с названием "notetaker", нужно просто добавить эту строчку в конец файла install-chrome.txt и перезапустить платформу:
content,install,url,resource:/chrome/notetaker/content/
Будьте внимательны к синтаксису и лучше ничего не меняйте в этой строке. Со стороны приложения больше пока ничего не требуется, хотя мы еще часто будем сюда возвращаться. Кроме того, рекомендуется следовать советам, данным в разделе "Отладка".