Способы перехода по ссылке. ESldNavigationTypeEnum
Данное перечисление описывает способы возможной обработки ссылок <link> (значения указываются в качестве атрибута link_type самой ссылки):
- перейти и отобразить перевод статьи, причем перевод будет отображаться даже у папок (если есть); папка списке слов при этом не открывается (“0”, eGoToWord)
- перейти внутрь папки (“1”, eGoToSubSection)
/// Способы перехода к определенному слову в словаре
enum ESldNavigationTypeEnum
{
/// Переход к самому слову
/// Нужно перейти на это слово и отобразить его перевод, если он есть (неважно, статья это или раздел каталога)
eGoToWord = 0,
/// Переход внутрь раздела каталога
/// Нужно перейти внутрь раздела для отображения его элементов (если слово является разделом каталога);
/// Если слово не является разделом каталога - тогда работает как eGoToWord
eGoToSubSection
};
Тип отображения уровня иерархии. EHierarchyLevelType
Данные значения задают поведение папки при открытии словаря и отображении иерархического списка в виде дерева в дальнейшем:
- обычная папка – при старте приложения закрыта (отображается только название папки без содержимого), при попытке перехода отображаются все вложенные элементы (уровень с самой папкой не виден) (“normal”, eLevelTypeNormal)
- закрытая – при старте также закрыта и отображается только заголовок папки, но при попытке перехода вложенные элементы отображаются под названием папки с отступом (“covered”, eLevelTypeCovered)
- открытая – при старте список вложенных элементов отображается под заголовком папки, при попытке перехода скрывается (“uncovered”, eLevelTypeUncovered)
- открытая неинтерактивная – содержимое папки всегда видно, папка некликабельна (“static uncovered”, eLevelTypeStaticUncovered)
/// Тип уровня иерархии
enum EHierarchyLevelType
{
/// Обычная папка, при инициализации списка закрыта, при переходе отображает отдельный список с ее содержимым
eLevelTypeNormal = 0,
/// Закрытая при инициализации папка, при переходе содержимое папки добавляется в основной список
eLevelTypeCovered,
/// Открытая при инициализации папка, при переходе содержимое папки удаляется из основного списка
eLevelTypeUncovered,
/// Открытая при инициализации папка, никаких действий с папкой не предусмотрено
eLevelTypeStaticUncovered
};
Режимы навигации к следующей/предыдущей статье. ESwipingMode
Задает режим перехода по статьям при использовании CSldDictionaryHelper::Swipe:
- переход на следующий/предыдущий элемент на том же уровне вложенности; тип элемента роли не играет – это может быть как статья, так и папка (ePassingAnySwipe)
- переход на следующую/предыдущую статью на том же уровне вложенности. Папки будут “перепрыгнуты” функцией (eSkipingCatalogSwipe)
- сквозной переход на статьи вне зависимости от уровня вложенности. Если целевым элементом является папка, то функция заходит внутрь – это повторяется рекурсивно до тех пор, пока не встретит статью. Если текущий элемент является последним в папке, то при попытке перехода к следующему функция выйдет из текущей папки и будет искать следующий элемент на верхнем уровне иерархии (аналогично – рекурсивно, выходит до тех пор, пока не найдет следующую статью) (eAcrossingCatalogSwipe)
- переход на следующую предыдущую статью на том же уровне вложенности, но если целевым элементом является папка, то она будет блокировать переход – текущая статья не изменится (eInterruptingOnCatalogSwipe)
/// Режимы свайпа
enum ESwipingMode
{
/// Свайп на любой элемент в пределах данного уровня вложенности
ePassingAnySwipe = 0,
/// Свайп на элемент статейного типа (пропуская элементы нестатейного типа) в пределах данного уровня вложенности
eSkipingCatalogSwipe,
/// Сквозной свайп на элемент статейного типа (пропуская элементы нестатейного типа)
eAcrossingCatalogSwipe,
/// Свайп на элемент статейного типа (блокируясь на элементах нестатейного типа) в пределах данного уровня вложенности
eInterruptingOnCatalogSwipe,
};