4.1. Окна приложения

Терминология

4.1.1. Встроенные формы

4.1.1.1. Разметка доков в док-сайте

Разметка док-сайта определяется перечислением TbtkDockSiteLayout зафиксированных вариантов размещения доков.

Индексация доков

  1. Индексы доков соответствуют визуальному порядку слева на право, сверху вниз.

    Tip

    Например, для dslFourDockInGrid верхний левый фрейм будет под индексом 0, верхний правый будет под индексом 1, нижний левый под индексом 2, нижний правый индекс - 3.

4.1.1.2. Алгоритмы размещения форм

При создании форм

  1. Новая создаваемая форма добавляется на позицию следующую за текущей активной формой.
    • Если активной формы нет, то в активный док.

При изменение разметки док-сайта

  1. При увеличение количества доков
    1. Новые доки появляются пустыми;
    2. Формы остаются на предыдущих местах.
  2. Смена разметки без изменения количества доков (Например, смена dslThreeColumn на dslThreeRow)
    1. Доки остаются прежними, но в новых местоположениях;
    2. Формы остаются в доках на прежних позициях.
  3. При уменьшение количества доков
    1. Все формы с убитых доков попадают в последний по порядку, согласно индексу, живой док.
  4. Закрытие док-сайта расположенного не на главной форме (например, в следствии закрытия формы на котором расположен этот док-сайт) приводит к убийству всех его форм, а не переносу на другие доки.

4.1.1.3. Алгоритмы активации встроенных форм

При создании форм

  1. Создаваемая форма становится активной формой приложения.

При уничтожении форм

  1. При уничтожении активной формы дока
    1. Активной становится предыдущая активная форма дока.
    2. Активный док не теряет своей активности если на нём не остаётся форм.
  2. При уничтожении неактивной формы дока
    1. Активная форма дока не меняется.

При перемещении форм между доками

  1. При перемещении активной формы дока
    1. Форма сохраняет активность.
    2. Если док, с которого перенесена форма был активным, активным становится док, на который она перенесена.
  2. При перемещении неактивной формы дока на док, в котором есть формы
    1. Активная форма дока не меняется.
    2. Активный док не меняется.
  3. При перемещении неактивной формы дока на док, в котором нету форм
    1. Перенесённая форма становится активной формой дока.
    2. Активный док не меняется.

При получении фокуса

  1. При получении фокуса активной формой дока
    1. Активный док не меняется.
  2. Неактивные формы дока не могут получать фокус

4.1.1.4. UI элементы управления встроенными окнами

  1. Закладки в каждом доке форм

    • Drag&Drop перемещение закладок в рамках одного дока либо между доками;

    • Контекстное меню на табах.

      • Клиентские пункты меню;

      • Пункты меню подгружаемые из операций выборки приложения для которых корнем является операция WindowsControlOperations;

        • При вызове операций передается аргумент SelectionID - идентификатор выборки таба для которой вызвано контекстное меню.
      • Перед показом меню в шину событий посылается событие DockSite.OnPopumMenu c аргументом SelectionID по топику идентификатора главной выборки.

  2. В главном меню

    • В меню Окно раздел Разметка пункты:

      1. Один док (CTRL + ALT +1)
      2. Две колонки (CTRL + ALT + 2)
      3. Три колонки (CTRL + ALT + 3)
      4. Две строки
      5. Три строки
      6. Грид (CTRL + ALT + 4)
  3. Горячие клавиши

    • Соответствуют горячим клавишам операций представленных в главном меню и описанных пунктом выше