[редактировать]

UXNode

  • class UXnode (php\gui\UXNode)
  • package gui

Классы наследники:

UXParent, UXCanvas, UXImageView

Базовый класс для всех визуальных компонентов в DevelNext. От этого класса наследуются кнопки, тексты, списки и все остальное. Это означает, что все визуальные компоненты имеют методы и свойства описанные ниже!

Свойства

Методы


Доступ к свойствам компонента выполняется следующим образом:

$var = $button->id; // id - это свойство компонента от класса UXNode.
// или
$var = $this->button->id;

// для изменения свойства достаточно следующего:
$this->button->id = 'new_value';

Свойства

id (string)

Идентификатор.


style (string)

CSS стили компонента в одну строку.


parent (UXParent)

Родительский компонент.


effects (UXEffectPipeline)

Эффекты компонента.


clip (UXNode)

Компонент, по очертанию которого обрезается текущий компонент, по-умолчанию null.


scene (UXScene)

Сцена, на которой находится компонент.


form (UXForm)

Форма, на которой находится компонент.


window (UXWindow)

Окно, на котором находится компонент.


x (double)

Позиция по оси X (горизонтальная).


y (double)

Позиция по оси Y (вертикальная).


position (array)

Массив [x, y], позиция по x и y.

$button->position = [10, 30]; // 10 - x, 30 - y

list($x, $y) = $button->position;

translateX (double)

Смещение по X от начального значения.


translateY (double)

Смещение по Y от начального значения.


translateZ (double)

Смещение по Z от начального значения.


scaleX (double)

Масштабирование по X, в процентах от 0 до 1 и выше.

$button->scaleX = 2.0; // растянуть кнопку в 2 раза, 200% - от начального размера.

scaleY (double)

Масштабирование по Y, в процентах от 0 до 1 и выше.


screenX (double)

Абсолютная позиция компонента по X (горизонтали) на экране.


screenY (double)

Абсолютная позиция компонента по Y (вертикали) на экране.


width (double)

Ширина компонента.


height (double)

Высота компонента.


size (array)

Размеры компонента [width, height] в виде массива.

$button->size = [100, 30]; // ширина 100, высота 30

list($width, $height) = $button->size;

visible (bool)

Видимость компонента, по-умолчанию true.


managed (bool)

Учитывать ли размеры компонента при расчете в различных лэйаутах (layout), по-умолчанию true.


enabled (bool)

Доступность компонента, по-умолчанию true.


opacity (bool)

Полупрозрачность компонента, от 0 до 1, где 0 - полная невидимость, 1 - полная непрозрачность. По-умолчанию 1.0.

$button->opacity = 0.7; // 70% от видимости объекта.

rotate (double)

Угол наклона компонента, от 0 до 360 градусов, по-умолчанию 0.


focused (bool)

Только для чтения

Стоит ли на компоненте фокус, да - true, нет - false.


focusTraversable (bool)

Доступность фокусировки через клавишу tab, по-умолчанию true.


classes (UXList)

Список css классов для применения JavaFX стилей.

$button->classes->add('my-button');

classesString (string)

Список css классов в виде одной строки, а не UXList, где все классы отделены между собой пробелом.

$button->classesString = 'my-button other-class';

userData (mixed)

Любые пользовательские данные, которые необходимо хранить внутри компонента. См. также метод data().

$button->userData = 'my data string';
$button->userData = ['abcd', 'xyz', 3478];

Свойство может хранить любые значения - строки, числа, массивы, объекты и т.д.


mouseTransparent (bool)

Игнорирование действий курсора, по-умолчанию false. Если опция включения, компонент перестанет реагировать на любые клики мышкой, хотя останется видимым и реагирующим на другие события.


cursor (string / UXImage)

Курсор при наведении на компонент, по-умолчанию DEFAULT. Либо строка (символьный код курсора), либо изображение (UXImage) - изображение курсора.


layoutBounds (array)

Только для чтения

Размеры и позиция компонента внутри его лэйаута (layout), массив вида:

['x' => 0.0, 'y' => 0.0, 'z' => 0.0, 'width' => 0.0, 'height' => 0.0, 'depth' => 0.0]

boundsInParent (array)

Только для чтения

Размеры и позиция компонента относительно его родительского компонента, массив вида:

['x' => 0.0, 'y' => 0.0, 'z' => 0.0, 'width' => 0.0, 'height' => 0.0, 'depth' => 0.0]

Методы

__construct()

Конструктор компонента, не имеет параметров, публичный.


data()

data(string $name[, mixed $value]): mixed

Метод для хранения и получения пользовательских данных из компонента. Позволяет хранить любые данные, связанные с компонентов.

При использовании метода data(), свойство userData будет перезаписано и очищено.

// запись данных
$button->data('key', 'my value');

// получение данных
$value = $button->data('key');

screenToLocal()

screenToLocal(double $x, double $y): array

Переводит координаты (x, y) из абсолютных (экранных) в локальные. Возвращает массив координат [x, y].


snapshot()

snapshot(): UXImage

Делает скриншот компонента и возвращает его в виде картинки объекта UXImage.


lookup()

lookup(string $selector): UXNode

Ищет первый компонент среди содержимого по css селектору и возвращает его. Если ничего не найдено, возвращает null.


lookupAll

lookupAll($selector): UXNode[]

Ищет все компоненты среди содержимого по css селектору и возвращает их. Если ничего не найдено, возвращает пустой массив.


resize()

resize(double $width, double $height)

Меняет ширину и высотку компонента. См. также свойство size.


relocate()

relocate(double $x, double $y)

Меняет позицию (x, y) компоненту. См. также свойство position.


toFront()

Переместить компонент поверх всех объектов.


toBack()

Переместить компонент под все объекты.


requestFocus()

Перевести фокус на объект.


hide()

Скрыть объект, см. также свойство visible.


show()

Показать объект, см. также свойство visible.


toggle()

Показать объект если он скрыт и скрыть объект если он отображается, см. также свойство visible.


isFree()

isFree(): bool

Возвращает true, если объект не находится ни на каком другом объекте.


free()

Уничтожить объект, удалить его с родительского компонента.


startFullDrag()

Начать полную процедуру drag-n-drop для компонента.


startDrag()

startDrag(array $modes): UXDragboard

Начать процедуру drag-n-drop для компонента в различных режимах работу $modes. $modes это массив строк, режимы могут быть следующих видов:

  • MOVE - перемещение
  • COPY - копирование
  • LINK - связывание

Метод возвращает объект UXDragboard.


on()

on(string $event, callable $handler, $group = 'general')

Метод добавляет функцию-слушатель $handler на определенное событие $event компонента. Также можно указать $group - символьный код функции-слушателя, под каждым таким кодом может располагаться только одна функция-слушатель, поэтому повторный вызов on() с одинаковым значением $group перезапишет слушателя события.

$button->on('click', function ($e) {
    alert('Привет мир');
});

off()

off(string $event[, string $group])

Отключить функцию-слушателя от события компонента. Если передать $group, то будет отключена лишь одна функция-слушатель под этим символьным кодом.


trigger()

trigger($event[, UXEvent $e])

Вызвать на выполнение все функции-слушатели определенного события компонента.


observer()

observer(string $property): UXValue

Добавляет слушателя на изменение определенного свойства компонента. Не на все свойства компонента можно добавить слушателя.

// при изменении видимости компонента.
$button->observer('visible')->addListener(function($oldValue, $newValue) {
    alert("Старое значение = $oldValue \nНовое значение = $newValue");
});