Опубликован: 10.12.2007 | Уровень: специалист | Доступ: платный
Лекция 4:

Первые элементы управления и темы

Аннотация: В этой лекции объясняется, как пользоваться XUL-кнопками и как менять их внешний вид с помощью системы тем Mozilla. Эта система может использоваться для изменения отображения всех XUL-тегов. Приводятся практические примеры применения программного кода с тегами, предназначенными для создания кнопок


В этой лекции объясняется, как пользоваться 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-тегов мы оставим на потом. Наша цель в этой лекции - показать некоторые из более простых взаимодействий как анонс того, что будет дальше.

Более пространные рассуждения о создании форм и обработке пользовательского ввода с клавиатуры и мыши приведены в "События" , "События". В простых же кнопках столько всего, что на эту лекцию нам хватит с лихвой.

Дмитрий Гуменюк
Дмитрий Гуменюк
Россия, Звенигород
Konstantin Grishko
Konstantin Grishko
Россия, Москва, Московский финансово-промышленный университет "Синергия", Москва