- •Компоненты пользовательского интерфейса
- •Название_компонента Имя_переменной Символьная_строка
- •Общие свойства компонентов пользовательского интерфейса
- •Общие параметры компонентов пользовательского интерфейса
- •Типы компонентов пользовательского интерфейса Для примера рассмотрим утилиту, использующую все возможные компоненты пользовательского интерфейса
- •Битовая карта
- •Параметры
- •Свойства
- •События
- •Параметры
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Выпадающий список
- •Параметры
- •Свойства
- •События
- •Свойства
- •События
- •Кнопка выбора текстурной карты
- •Параметры
- •Свойства
- •События
- •Кнопка выбора материала
- •Параметры
- •Свойства
- •События
- •Список с возможностью множественного выбора
- •Параметры
- •Свойства
- •События
- •Кнопка выбора объекта
- •Параметры
- •Свойства
- •События
- •Задатчик
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Кнопки с картинками
Свойства
Свойство
Список.items
определяет массив строк, содержащихся в списке, а битовый массив, определяющий выбранные элементы списка хранится в свойстве
Список.selection
Для записи этого свойства можно пользоваться не только битовым массивом, но и массивом целых чисел или просто одним числом, как для обычного списка.
События
Список с множественным выбором генерирует те же события что и обычный. При выборе элемента происходит событие
on Список selected Параметр do
Параметр содержит номер выбранного элемента списка или элемента, с которого снят признак выбора. Двойной щелчок на элементе списка вызовет событие
on Список doubleClicked Параметр do
параметр так же будет содержать номер элемента, на котором был сделан двойной щелчок мышью. Следует отметить, что в случае двойного щелчка, при первом нажатии на кнопку мыши сгенерируется событие selected.
Событие
on Список selectionEnd do
Происходит после каждого действия пользователя по выбору или, наоборот, снятию признака выбора с элемента. Например, если за один щелчок мышью выбраны четыре строки, то сгенерируется четыре события selected, а после них одно selectionEnd.
Кнопка выбора объекта
Нажатие данной кнопки переводит 3ds max в стандартный режим выбора объекта. Сама кнопка при этом подсвечивается желтым цветом. Пользователь может выйти из режима, нажав правую кнопку мыши. Синтаксис определения этого компонента следующий
pickbutton Имя_переменной Символьная_строка
message: Символьная_строка filter: Функция
toolTip: Символьная_строка
По умолчанию компонент выравнивается на центр панели.
Параметры
Переменная, указанная в первом параметре, после определения будет содержать ссылку на созданный компонент. Остальные параметры необязательны. Второй параметр определяет текст, который будет выводиться на кнопке. Параметр message так же определяет строку. При переходе в режим выбора объекта, когда кнопка нажата, эта строка появится в статус-строке 3ds max.
Если Вам нужно выбрать один из объектов, обладающих каким-либо свойством, то эти свойства можно определить с помощью параметра filter. В нем должна содержаться ссылка на функцию. В приведенном примере функция-фильтр дает возможность выбирать только те объекты, имя которых начинается на букву “A”
utility U "MyUtil"
( fn NameA obj = (obj.name[1] = = "a") or (obj.name[1] = = "A")
pickbutton pb "Select A object" filter:nameA
)
Функция должна иметь только один параметр, в котором ей будет передаваться объект, над которым находится курсор. Возвращаться должно значение true, если объект может быть выбран, и false в противном случае. Параметр toolTip содержит текст всплывающей подсказки для создаваемого компонента.
Свойства
Кроме общих для всех компонент свойств, кнопка выбора объекта имеет только одно
Кнопка_выбора_объекта.object
в котором содержится ссылка на последний выбранный объект. Данное свойство может использоваться только для чтения.
События
При выборе объекта генерируется событие
on Кнопка_выбора_объекта picked Параметр do
В параметре этого события передается ссылка на выбранный объект
Индикатор процесса
Данный компонент предназначен, главным образом для оповещения пользователя о ходе выполнения какого-либо длительного процесса. Определяется он следующим образом
progressbar Имя_переменной Символьная_строка value: Число color: Цвет
orient: Имя_ориентации
По умолчанию компонент выравнивается по центру панели
Параметры
В переменную, определенную первым параметром заносится ссылка на созданный компонент. Символьная строка определяет заголовок компонента. Параметр value определяет процент выполнения процесса и должен быть целым числом от 1 до 100. Цвет, которым отмечается выполненная часть процесса, определяется параметром color. Последний параметр, orient, определяет вертикальную или горизонтальную ориентацию заполнения индикатора. Для вертикальной ориентации указывается значение #vertical, при этом индикатор заполняется слева направо. Для горизонтальной – #horizontal, заполнение идет снизу вверх. По умолчанию задается горизонтальное заполнение.
Свойства
Наиболее часто употребляемое свойство
Индикатор_процесса.value
Содержит процент выполнения процесса. Цвет выполненной части процесса доступен через свойство
Индикатор_процесса.color
а ориентация заполнения через
Индикатор_процесса.orient
События
Если пользователь щелкнет мышкой на индикаторе процесса, то сгенерируется событие
on Индикатор_процесса clicked Параметр do
Параметр содержит процентное значение, соответствующее точке, которая указана мышкой.
Радиокнопки
Данный компонент представляет собой набор кнопок, из которых, в данный момент, может быть включена только одна. При нажатии другой кнопки нажатая включается, а бывшая включенной ранее, выключается. Этот компонент определяется так
radiobuttons Имя_переменной Символьная_строка labels: Массив
default: Число columns: Число
По умолчанию компонент выравнивается на центр.
Параметры
Имя переменной определяет ссылку на создаваемый компонент. После определения эта переменная используется для управления компонентом. Второй параметр определяет общий заголовок для группы кнопок. Именованный параметр labels представляет собой массив символьных строк, которые будут выводиться справа от каждой кнопки. Обычно все кнопки располагаются сверху вниз в одну колонку, но если Вам надо расположить их в несколько столбцов, то для этого следует указать количество колонок в параметре columns. Номер кнопки, которая будет находиться в нажатом состоянии после определения компонента, задается параметром default.
Свойства
Номер кнопки, нажатой в текущий момент, определяется свойством
Радиокнопки.state
Кнопки нумеруются, начиная с единицы, в том порядке, в котором надписи для них перечислены в параметре labels при определении. Данное свойство доступно как для чтения, так и для записи.
События
Изменение состояния компонента, то есть включение новой кнопки генерирует событие
on Радиокнопки changed Параметр do
В параметре функции обработчику передается номер вновь нажатой кнопки.
Ползунок
Данный компонент позволяет приблизительно установить величину какого-либо параметра в заданном диапазоне. Синтаксис его определения выглядит так
slider Имя_переменной Символьная_строка
range: Точка_в_3D_пространстве type: Имя ticks: Число
orient: Имя
По умолчанию компонент выравнивается по центру.
Параметры
В переменной хранится ссылка на созданный компонент, а строка определяет его заголовок. Точка, задаваемая параметром range содержит, по порядку координат, минимальное, максимальное и начальное значение переменной, задаваемой ползунком, по умолчанию [ 0, 100, 0 ]. Тип переменной, целый или вещественный определяется параметром type и задается как #integer или #float соответственно. Параметр ticks задает количество штрихов, изображаемых рядом с ползунком. Ползунок может быть расположен вертикально или горизонтально, в зависимости от значения параметра orient, #vertical или #horizontal. По умолчанию значение этого параметра #horizontal.
