Первые элементы управления и темы
В этой лекции объясняется, как пользоваться XUL-кнопками и как менять их внешний вид с помощью системы тем Mozilla. Эта система может использоваться для изменения отображения всех XUL-тегов.
Приложения Mozilla интерактивны, то есть у них имеются визуальные средства управления, доступные пользователю. Самый простой пример такого средства - скромная кнопочка с надписью "Нажми меня". Кнопки очень удобны, и в Mozilla много различных их видов, но все они создаются с помощью разметки XUL. Простейший пример кнопки можно получить, используя тег <button>, например, вот так:
<button label="Press Me"/>
Это очень быстрый способ создать готовую к применению кнопку, тем и хорош XUL. Для кнопки также нужен какой-нибудь скрипт, иначе ее нажатие ничего не даст, а такие кнопки вряд ли полезны в практических приложениях. В этой лекции мы будем больше уделять внимания собственно кнопкам, а не тому, как реализовывать действия, вызываемые ими.
Кнопки для нас естественны и привычны. Оглянитесь вокруг: они есть на панелях почти всех современных устройств - на телефоне, CD-проигрывателе, приборной доске и фритюрнице. На сайте "The Really Big Button That Doesn’t Do Anything" (http://www.pixelscapes.com/spatulacity/button.htm) можно найти много интересной информации о кнопках, кроме того, он является своеобразным предупреждением разработчикам графических интерфейсов. В Mozilla кнопки - простейший способ разнообразить обычный текст и изображения, используя элементы управления.
Элемент управления, конечно - маленький кирпичик, только часть приложений с графическим интерфейсом. Самые распространенные элементы управления - те, что создают меню, формы, полосы прокрутки. Некоторые из них можно перемещать, трансформировать, менять или анимировать, другие нельзя. Элементы управления - забота программистов, так как обычно они входят в состав библиотек объектов или языков третьего поколения, например, GTK, Qt, Swing и Win32. При взаимодействии пользователя и элемента управления вид последнего меняется, чтобы пользователь знал, что он что-то сделал. Элементы управления предназначены для упрощения выполнения интерактивных задач. И, кажется, простейший элемент управления - кнопка.
С точки зрения технологии, некоторые элементы управления (в том числе и кнопки) не так просты, как это может показаться. В мире кнопок много чего происходит. Эта сложность - отличный повод узнать побольше о платформе Mozilla.
На рисунке в начале лекции показаны те части Mozilla, которые тесно связаны с кнопками, а также с темой этой лекции. На рисунке видно, что кнопки сильно зависят от набора графических элементов, предоставляемого операционной системой. Это функциональная сторона кнопок. Менее очевидно то, что кнопки зависят и от стилей и тем. Это происходит потому, что внешний вид кнопки так же важен, как и ее функция. Если кнопка не похожа на кнопку, то это не кнопка. До сих пор мы уклонялись от рассуждений о темах, многое делая с помощью стилей. Перед тем, как переходить к более сложным аспектам Mozilla, нужно объяснить работу системы тем. Еще одна особенность кнопок заключается в том, как они взаимодействуют с остальными XUL-тегами. До сих пор единственным наблюдаемым нами взаимодействием между тегами было вкладывание одного в другой. Однако кнопки "общаются" с другими тегами целым рядом способов. В этой лекции они также будут описаны, ей даже можно было дать подзаголовок "Тайные отношения между тегами". Полное описание сложной системы XUL-тегов мы оставим на потом. Наша цель в этой лекции - показать некоторые из более простых взаимодействий как анонс того, что будет дальше.
Более пространные рассуждения о создании форм и обработке пользовательского ввода с клавиатуры и мыши приведены в "События" , "События". В простых же кнопках столько всего, что на эту лекцию нам хватит с лихвой.