====== Ключевые слова ======
Ключевые слова обозначают заданные в программе значения, которые изменяются со временем. Некоторые из них являются глобальными и могут использоваться в любом месте скина, другие --- только в определённых окнах или списках. Ключевые слова можно задавать в тексте меток, кнопок и флажков, в атрибуте ''state'' кнопки, атрибуте ''value'' индикатора прогресса и в атрибуте ''tags'' любых объектов. Ключевые слова начинаются с символа ''%'' (в ''tags'' необязательно).
Ключевые слова могут быть текстовыми и числовыми (некоторые имеют и текстовое, и числовое значение). Текстовое значение используется в атрибуте ''text'', а числовое --- в атрибутах ''state'', ''value'' и ''tags''. Числовое значение текстового ключевого слова равно 0, если текстовое значение пустое, и 1 в противном случае.
При использовании ключевых слов в тексте объектов можно указать несколько вариантов и условия, определяющие выбор одного из вариантов. Для этого используется следующий синтаксис:
{"текст1"(%ключевое_слово1, %ключевое_слово2, …); "текст2" (%ключевое_слово3, …); …}
Текст, заданный в кавычках, выводится, если задано значение всех ключевых слов, указанных в скобках. Если скобки со списком ключевых слов отсутствуют, текст выводится, если задано значение хотя бы одного ключевого слова, содержащегося в нём. Разные варианты разделяются точкой с запятой. Варианты рассматриваются слева направо до тех пор, пока не будет найден вариант, условия которого выполняются. Могут использоваться как двойные, так и одинарные кавычки. Текст может содержать вложенные выражения. Если в тексте присутствуют ключевые слова, разделённые пробелами и запятыми, то эти разделители не выводятся, если значения соответствующих ключевых слов не заданы.
Например:
{"%nextRoadTitle"; "%nextRoadType{" – %nextRoadDirection"}"}
Здесь выводится наименование улицы, а если оно не задано --- тип и, если есть, направление.
{"%street, %house"(%street, %house); "%label"; "%city"}
Здесь, если заданы улица и дом, выводятся улица и дом, иначе, если есть подпись, выводится подпись, иначе город.
При задании ключевого слова в атрибуте ''state'' кнопки её состояние становится равным числовому значению ключевого слова. Для каждого состояния кнопки может быть задан свой текст и картинка.
Ключевые слова можно использовать для изменения видимости объектов. Для этого в атрибуте ''tags'' объекта указывается через точку с запятой список ключевых слов, значения которых должны быть ненулевыми, чтобы объект был виден на экране. Если, наоборот, объект должен быть виден, когда значение ключевого слова равно нулю, перед ключевым словом ставится знак ''!''.
===== Глобальные ключевые слова =====
* addondsUpdate – 1, если доступны обновления дополнений.
* battery – состояние батареи: 0 – заряд меньше 25%, 1 – заряд от 25 до 50%, 2 – заряд от 50 до 75%, 3 – заряд от 75 до 100%, 4 – идёт зарядка батареи или состояние не известно.
* compass – содержит значение 1, если необходимо показывать компас, и 0 в противном случае.
* currentRoadDirection – направление текущей дороги.
* currentRoadTitle – наименование текущей дороги.
* currentRoadType – тип текущей дороги.
* currentSpeed – текущая скорость.
* finishDistance – расстояние до финиша.
* finishTime – время приезда к финишу.
* finishTimeLeft – время до финиша.
* glideRatio -- отношение горизонтальной скорости к вертикальной.
* goalDistance – расстояние до цели.
* goalTime – время приезда к цели.
* goalTimeLeft – время до цели.
* gpsAlt – высота над уровнем моря по GPS-приёмнику.
* gpsAzimuth – направление движения по GPS-приёмнику.
* gpsLatitude – широта по GPS-приёмнику.
* gpsLongitude – долгота по GPS-приёмнику.
* gpsSpeed – скорость по GPS-приёмнику.
* gpsState – состояние GPS: 0 – нет подключения, 1 – идёт автоконфигурация, 2 – местоположение не определено, 3 – местоположение определено.
* lanes – 1, если активен индикатор движения по полосам, и 0 в противном случае.
* hud – состояние режима HUD. Числовое значение равно 1, если режим включен, и 0 в противном случае. Текстовое значение равно “HUD”, если режим включен и пустой строке в противном случае.
* lanesDistance – расстояние до участка дороги с указанием движения по полосам.
* localDate – местная дата.
* manyGoals – 1, если включено отображение информации о промежуточной цели, и 0 в противном случае.
* nextRoadDirection – направление следующей дороги.
* nextRoadTitle – наименование следующей дороги.
* nextRoadType – тип следующей дороги.
* nextSpeedLimit – следующее ограничение скорости. Текстовое значение содержит значение скорости. Числовое значение равно 1, если активен индикатор изменения ограничения, и 0 в противном случае.
* nextSpeedLimitDist – расстояние до следующего ограничения скорости.
* planningRoute -- информация о прокладке маршрута. Числовое значение равно 1, если идёт прокладка маршрута, и 0 в противном случае. Текстовое значение равно "1", если идёт прокладка маршрута, и "" в противном случае.
* poiViewMode - режим отображения ''POI'' на карте (0 - скрывать все, 1 - использовать фильтр, 2 - показывать все).
* ''premium'' --- признак активированной премиум-версии.
* route – 1, если проложен или прокладывается маршрут, и 0 в противном случае.
* secondTurn – 1, если активен индикатор второго манёвра, и 0 в противном случае.
* secondTurnDistance – расстояние от текущего местоположения до второго манёвра.
* secondTurnDistanceAfterFirst – расстояние от ближайшего манёвра до второго.
* simulation – содержит значение 1, если симуляция включена, и 0 в противном случае.
* sound – содержит значение 1, если звук включен, и 0 в противном случае.
* speedcam – 1, если есть активный спидкам, и 0 в противном случае.
* speedCamDistance – расстояние до опасности.
* speedLimit – текущее ограничение скорости. Текстовое значение содержит значение скорости. Числовое значение равно 1, если активен индикатор текущего ограничения, и 0 в противном случае.
* speedLimitState – 0 (нет превышения скорости) или 1 (превышение скорости).
* sunRise -- время восхода Солнца.
* sunSet -- время захода Солнца.
* turnDistance – расстояние до манёвра.
* turnTime – время до манёвра.
* vertSpeed -- вертикальная скорость.
* writeTrack -- содержит значение 1, если нужно писать трек, и 0 в противном случае.
===== Ключевые слова в окнах с картой =====
* azimuth -- направление движения.
* cursor – информация о курсоре. Числовое значение равно 1, если на карте установлен курсор, и 0 в противном случае. Текстовое значение содержит наименование выбранного объекта.
* gps – 1, если доступна информация о местоположении или установлена точка старта, и 0 в противном случае.
* zoomButtons -- 1, если нужно показывать кнопки масштабирования карты, и 0 в противном случае.
===== Ключевые слова на основной карте =====
* auto – 1, если карта привязана к «машинке», пользователь не трогает экран, и 0 в противном случае.
* manual – 1, если карта не привязана к «машинке», пользователь взаимодействует с экраном, и 0 в противном случае.
* 3D – 1, если карта находится в 3D-режиме, и 0 в противном случае.
===== Ключевые слова в окнах с дополнениями =====
* addonSize --- размер дополнения в распакованном виде.
* address1, address2, address3, address4 --- административный адрес карт, содержащихся в дополнении.
* description --- описание дополнения (только в окне AddonDescForm).
* localDate --- дата дополнения, которое загружено на диск.
* products --- требуется ли оплата. Числовое значение: 0 --- не требуется, 1 --- требуется. Текстовое значение: «» --- не требуется, «1» --- требуется.
* progress --- прогресс загрузки/распаковки дополнения. Может использоваться в атрибутах text (label, button) и value (progressBar).
* provider --- наименование поставщика дополнения.
* serverDate --- дата дополнения на сервере.
* state --- состояние дополнения. Может использоваться в атрибутах text (label, button) и state (button). В последнем случае принимает следующие значения:
* 0 --- не скачивалось;
* 1 --- идет загрузка;
* 2 --- распаковывается;
* 3 --- ошибка (загрузки или распаковки);
* 4 --- готово к использованию;
* 5 --- доступно обновление;
* 6 --- пауза;
* title --- наименование дополнения.
* zipSize --- размер дополнения в запакованном виде.
===== Ключевые слова в окнах с покупками =====
* ''active'' --- 1, если продукт куплен и "действует".
* ''canceled'' --- 1, если подписка на продукт отменена, но ещё действует.
* ''canPurchase'' --- 1, если продукт можно купить.
* ''comment'' --- комментарий.
* ''description'' --- описание продукта.
* ''premiumProduct'' --- 1, если продукт активирует премиум-версию.
* ''price'' --- стоимость продукта.
* ''purchaseDate'' --- дата покупки.
* ''title'' --- наименование продукта.
===== Ключевые слова в списках =====
* expand – состояние элемента:
* 0 - нет вложенных элементов;
* 1 - есть вложенные элементы, они свёрнуты;
* 2 - есть вложенные элементы, они развёрнуты.