Skip to content
Dmitriy Zayceff edited this page Feb 1, 2017 · 70 revisions
  • class UXnode (php\gui\UXNode)

Описание

Базовый класс для всех визуальных компонентов в 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]

    /**
     * UXNode constructor.
     */
    public function __construct()
    {
    }

    /**
     * Getter and Setter for object data
     * @param string $name
     * @param mixed $value (optional)
     * @return mixed
     */
    public function data($name, $value)
    {
    }

    /**
     * @param $x
     * @param $y
     * @return array [x, y]
     */
    public function screenToLocal($x, $y)
    {
    }

    /**
     * Возвращает скриншот компонента.
     * @return UXImage
     */
    public function snapshot()
    {
    }

    /**
     * Ищет и возвращает один компонент по css селектору.
     *
     * @param string $selector
     *
     * @return UXNode
     */
    public function lookup($selector)
    {
    }

    /**
     * Ищет и возвращает все компоненты по css селектору.
     *
     * @param $selector
     *
     * @return UXNode[]
     */
    public function lookupAll($selector)
    {
    }

    /**
     * @param double $width
     * @param double $height
     */
    public function resize($width, $height)
    {
    }

    /**
     * @param double $x
     * @param double $y
     */
    public function relocate($x, $y)
    {
    }

    /**
     * Переместить компонент поверх объектов.
     */
    public function toFront()
    {
    }

    /**
     * Переместить компонент под объекты.
     */
    public function toBack()
    {
    }

    /**
     * Перевести фокус на объект.
     */
    public function requestFocus()
    {
    }

    /**
     * Скрыть объект.
     */
    public function hide()
    {
    }

    /**
     * Показать объект.
     */
    public function show()
    {
    }

    /**
     * Скрыть объект если он видимый, показать если невидим.
     */
    public function toggle()
    {
    }

    /**
     * Возвращает true, если объект не находится ни на каком другом объекте.
     * @return bool
     */
    public function isFree()
    {
    }

    /**
     * Уничтожить объект.
     */
    public function free()
    {
    }

    /**
     * Start drag and drop
     */
    public function startFullDrag()
    {
    }

    /**
     * @param array $modes variants MOVE, COPY, LINK
     * @return UXDragboard
     */
    public function startDrag(array $modes)
    {
    }

    /**
     * @param string|array $name (optional)
     * @param string $value (optional)
     * @return string|array|void
     */
    public function css($name, $value)
    {
    }

    /**
     * @param string $event
     * @param callable $handler
     * @param string $group
     */
    public function on($event, callable $handler, $group = 'general')
    {
    }

    /**
     * @param string $event
     * @param string $group (optional)
     */
    public function off($event, $group)
    {
    }

    /**
     * @param string $event
     * @param UXEvent $e (optional)
     */
    public function trigger($event, UXEvent $e)
    {
    }

    /**
     * Use observer() ..
     * @deprecated
     * @param string $property
     * @param callable $listener (UXNode $self, $property, $oldValue, $newValue)
     */
    public function watch($property, callable $listener)
    {
    }

    /**
     * @param string $property
     * @return UXValue
     * @throws IllegalArgumentException
     */
    public function observer($property)
    {
    }
}
Clone this wiki locally