ddd.element_infopaneli

Модуль, определяющий класс ЭлементИнфопанели, который позволяет добавлять текстуру и другие элементы на существующую Инфопанель.

  • enum JSON_TYPE[string] ЭлементИнфопанели_JSON;

    Элемент инфопанели в json-файле:

    • имя (строковый) - имя инфопанели в программе
    • контейнер (bool) - является ли этот элемент контейнером для других элементов
    • координаты (массив из 4-х значений типа float) - координаты элемента относительно расположения и размеров всей инфопанели или родительского контейнера: [ координата x левой границы, координата y нижней границы, ширина, высота]
    • текстура (строковый) - название ресурса текстуры, т.е. имя файла текстуры без расширения
    • координаты_текстуры (массив из 4-х значений типа float) - текстурные координаты
    • элементы - массив объектов ЭлементИнфопанели

  • class ЭлементИнфопанели;

    Класс, позволяющий добавлять текстуру и другие элементы на существующую Инфопанель.

    В отличие от Инфопанели, координаты объектов этого класса, передаваемые в конструкторе, всегда относительные.

    • @property ЭлементИнфопанели родитель();

      Возвращает элемент инфопанели, являющийся родительским к этому элементу.

    • @property void родитель(ЭлементИнфопанели родитель0);

      Присваивает родительский элемент этому элементу.

    • this(string имя0, bool будет_контейнером);

      Конструктор, принимающий минимальное количество параметров.

      Элемент, созданный этим конструктором, будет занимать всю площадь инфопанели или родительского контейнера.

      Параметры:

      string имя0

      Имя создаваемого элемента.

      bool будет_контейнером

      Возможно ли вставлять в этот элемент другие элементы.

    • this(string имя0, bool будет_контейнером, float x0, float y0, float ширина0, float высота0);

      Конструктор, учитывающий координаты в относительных единицах.

      Отрицательные координаты x0 и/или y0 задают положение от конца инфопанели или родительского контейнера (x0 от правого края, y0 от верхнего).

      Параметры:

      string имя0

      Имя создаваемого элемента.

      bool будет_контейнером

      Возможно ли вставлять в этот элемент другие элементы.

      float x0

      Координата x левой границы элемента.

      float y0

      Координата y нижней границы элемента.

      float ширина0

      Ширина элемента.

      float высота0

      Высота элемента.

    • void задать_координаты(float x0, float y0, float ширина0, float высота0);

      Функция, задающая координаты элемента в относительных единицах.

      Отрицательные координаты x0 и/или y0 задают положение от конца инфопанели или родительского контейнера (x0 от правого края, y0 от верхнего).

      Параметры:

      float x0

      Координата x левой границы элемента.

      float y0

      Координата y нижней границы элемента.

      float ширина0

      Ширина элемента.

      float высота0

      Высота элемента.

    • void рассчитать_абсолютные_координаты(int ширина_родителя, int высота_родителя);

      Функция, вычисляющая абсолютные координаты элемента в пикселях.

      Параметры:

      int ширина_родителя

      Ширина родительского элемента-контейнера в пикселях.

      int высота_родителя

      Высота родительского элемента-контейнера в пикселях.

    • void рассчитать_абсолютные_координаты(Координаты2D!int ширина_и_высота);

      Функция, вычисляющая абсолютные координаты элемента в пикселях.

      Параметры:

      Координаты2D!int ширина_и_высота

      Ширина и высота родительского элемента-контейнера в формате Координаты2D.

    • @property Координаты2D!int абсолютные_размеры();

      Функция, возвращающая абсолютные размеры элемента в пикселях в фомате Координаты2D.

    • void задать_абсолютные_размеры(int ширина0, int высота0);

      Функция, позволяющая задать абсолютные размеры элемента в пикселях.

      Полученные размеры в случае необходимости будут обрезаны, чтобы не выйти за пределы инфопанели или родительского элемента.

      Параметры:

      int ширина0

      Ширина элемента в пикселях.

      int высота0

      Высота элемента в пикселях.

    • void задать_координаты_текстуры(float x1, float y1, float x2, float y2);

      Функция, задающая текстурные координаты для текстуры этого элемента.

      Параметры:

      float x1

      Текстурная координата x левого нижнего угла части текстуры.

      float y1

      Текстурная координата y левого нижнего угла части текстуры.

      float x2

      Текстурная координата x правого верхнего угла части текстуры.

      float y2

      Текстурная координата y правого верхнего угла части текстуры.

    • void задать_координаты_текстуры(float[4] координаты_текстуры0);

      Функция, задающая текстурные координаты для текстуры этого элемента.

      Параметры:

      float[4] координаты_текстуры0

      Текстурные координаты в виде массива из 4-х элементов [x1, y1, x2, y2].

    • void задать_видимость(bool включено0);

      Функция, позволяющая включить или выключить видимость этого элемента инфопанели.

    • @property bool получить_видимость();

      Функция, возвращающая значение видимости этого элемента инфопанели.

    • void поменять_видимость();

      Функция, позволяющая переключить видимость этого элемента инфопанели.

    • @property string получить_имя();

      Функция, возвращающая значение имени этого элемента инфопанели.

    • void задать_текстуру(Текстура текстура0);

      Функция, назначающая текстуру этому элементу инфопанели.

    • void рисовать();

      Вывод этого элемента инфопанели на экран. Также выводятся все дочерние элементы, если они присутствуют, и если этот элемент является контейнером. Если видимость отключена, то функция не выполняет никаких действий.

    • @property bool является_контейнером();

      Функция, возвращающая возможность для этого элемента содержать дочерние элементы.

    • void присоединить_элемент(ЭлементИнфопанели элемент);

      Присоединение переданного элемента в контейнер этого элемента.

      Если этот элемент не является контейнером, или у переданного элемента уже есть родитель, то функция не выполняет никаких действий.

      Параметры:

      ЭлементИнфопанели элемент

      Элемент, который требуется добавить в контейнер этого элемента.

    • ЭлементИнфопанели отсоединить_элемент(ЭлементИнфопанели элемент);

      Отсоединение дочернего элемента от этого элемента инфопанели.

      Параметры:

      ЭлементИнфопанели элемент

      отсоединяемый элемент

      Возвращаемое значение:

      Отсоединённый элемент, если он присуствовал в этом элементе, null, если нет.

    • ЭлементИнфопанели отсоединить_элемент(string имя_элемента);

      Отсоединение дочернего элемента по его имени от этого элемента инфопанели.

      Параметры:

      string имя_элемента

      имя отсоединяемого элемента

      Возвращаемое значение:

      Отсоединённый элемент, если он присуствовал в этом элементе, null, если нет.

    • ЭлементИнфопанели получить_элемент(string имя_элемента);

      Получение ссылки на дочерний элемент по его имени.

      Параметры:

      string имя_элемента

      имя искомого элемента

      Возвращаемое значение:

      Искомый элемент, если он присуствовал в этом элементе, null, если нет.

    • static ЭлементИнфопанели из_JSON(JSONValue json_значение0, DDDМенеджер менеджер0);

      Функция генерации нового элемента инфопанели (возможно, с присоединёнными элементами) из JSON-объекта.

      Параметры:

      JSONValue json_значение0

      JSON-объект с информацией об элементе (см. ЭлементИнфопанели_JSON).

      DDDМенеджер менеджер0

      менеджер программы, объект класса DDDМенеджер

      Возвращаемое значение:

      Созданный элемент инфопанели, если генерация прошла успешно, null в противном случае.