Documentation for CEGUI / Документация к CEGUI: Falagard skinning system. Introduction to Falagard ''looknfeel'' XML
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
||
|
Прежде, чем мы перейдем к делу, я бы хотел отметить, что данная статья (или, все таки, вся документация) не предназначена для обучения XML. proVIDec 08.06.12 в 19:21 |
||
|
Подразумевается, что читатель немного знаком с XML и его правильным применением. proVIDec 08.06.12 в 19:22 |
||
|
Перед началом: Пустой шаблон proVIDec 08.06.12 в 19:23 |
||
|
Прежде чем начнем добавлять шаблоны объектов, или WidgetLook, так называется тег в скрипте, нам нужно начальное описание файла. proVIDec 09.06.12 в 03:41 |
||
|
Это очень просто и выглядит вот так: proVIDec 09.06.12 в 03:42 |
||
|
Мы будем вставлять определения WidgetLook между парой <Falagard></Falagard>. proVIDec 09.06.12 в 03:44 |
||
|
Заключать элементов между этими тегами разрешается сколько угодно, так что все нам необходимое можно засунуть в один файл (в большинстве случаев это заканчивается ОЧЕНЬ большим файлом). proVIDec 09.06.12 в 03:48 |
||
|
Начнем с простого: Кнопка proVIDec 09.06.12 в 03:45 |
||
|
Без сомнения можно сказать, что скромная кнопочка является наиболее распространенным объектом. Без нее любой Пользовательский Интерфейс был бы практически бесполезным. proVIDec 09.06.12 в 03:51 |
||
|
Так что с нее и начнем. proVIDec 09.06.12 в 03:51 |
||
|
Для того чтобы создать шаблон любого объекта, нужно использовать тег WidgetLook и указать имя для типа объекта, который вы определяете, используя атрибут name. proVIDec 09.06.12 в 04:32 |
||
|
Поэтому мы начнем с добавления к нашему исходному файлу пустого тега WidgetLook: proVIDec 09.06.12 в 04:33 |
||
|
Как вы можете увидеть из справки для окна Falagard/Button, мы можем указать вид кнопки для многочисленных состояний, а именно: Normal, Hover, Pushed, Disabled. proVIDec 09.06.12 в 04:44 |
||
|
Поскольку теперь мы знаем какие состояния поддерживает объект, то было бы неплохо добавить для них каркас. proVIDec 09.06.12 в 04:47 |
||
|
Фактически это дополнит WidgetLook и сделает его самодостаточным, хотя вполне очевидно, что на данном этапе, пока мы не описали виды, ничего отображаться не будет. proVIDec 09.06.12 в 04:53 |
||
|
Давайте покончим с этим, и добавим пустые теги StateImagery для необходимых состояний: proVIDec 09.06.12 в 04:54 |
||
|
Чтобы описать, как объект должен выглядеть, используется тег ImagerySection. proVIDec 09.06.12 в 05:45 |
||
|
Каждому сегменту дается имя. proVIDec 09.06.12 в 05:13 |
||
|
Имя используется позже, для подключения сегмента внутрь слоев, которые определяются для каждого состояния. proVIDec 09.06.12 в 05:15 |
||
|
Для нашей кнопки, мы создадим сегменты для каждого состояния кнопки. proVIDec 09.06.12 в 05:16 |
||
|
Мы можем добавить наброски в наш WidgetLook, который находится в стадии разработки: proVIDec 09.06.12 в 05:19 |
||
|
Теперь мы можем определить ImageryComponent для каждого сегмента. proVIDec 09.06.12 в 05:09 |
||
|
Он скажет системе, как наша кнопка должна выглядеть. proVIDec 09.06.12 в 05:09 |
||
|
Есть много различных способов применить эти сегменты. proVIDec 09.06.12 в 05:48 |
||
|
Классический вариант, когда есть крайние части в натуральном размере и середина, которую можно растягивать сколько хочешь для заполнения пространства между краями. proVIDec 09.06.12 в 05:31 |
||
|
Все это звучит довольно просто, но есть одна проблема. proVIDec 09.06.12 в 05:28 |
||
|
Размер изображения в пикселях может быть разный. proVIDec 09.06.12 в 05:40 |
||
|
Для того, чтобы указать какое изображение нужно использовать, мы применяем тег ImageryComponent. proVIDec 09.06.12 в 05:41 |
||
|
Он должен быть добавлен внутрь тега ImagerySection. proVIDec 09.06.12 в 05:42 |
||
|
Добавим пустой ImageyComponent в normal_imagery: proVIDec 09.06.12 в 05:51 |
||
|
Первое, что нужно сделать - добавить в ImageryComponent определение области, которое скажет системе, где изображение должно быть отображено: proVIDec 09.06.12 в 06:07 |
||
