+1
Идет голосование

Управление списком (List) через каналы драйвера (Commands and Feedback)

Dmitry Ryzhkov 5 лет назад в iRidium Script обновлен 4 года назад 5
// RUS
Прошу рассмотреть новую возможность работы со списками типа List при разработке новых драйверов.

На данный момент список объявляется в скрипте,

var myList = Module.GetPopup("myPopup").GetItem("myList");
Это имеет право на жизнь при разработке драйверов для i3 Lite.
При переходе к разработке драйверов для i3 Pro это станет проблемой, т.к. драйвер закрыт и в него не внести изменения.
Следовательно, необходимо управлять списком через каналы драйвера (Commands and Feedback)
Таким образом для подключения списка к драйверу будет необходимо и достаточно накинуть каналы драйвеhа на список в интерфейсе.
В самом драйвере нажатия на список будут обрабатываться через IR.EVENT_CHANNEL_SET, а вывод информации через Module.SetFeedback('myList', [data]);

Я больше чем уверен, что есть нюансы, но смысл примерно понятен.

Посмотрим, что можно сделать в этом направлении.

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

Чтобы удалить пункты - меняем общее число и перезаписываем содержимое списка


Остальные фидбеки вручную будем привязывать на шаблон пункта - на подложку и подэлементы.

В каждом из этих фидбеков будет храниться массив строк/чисел, количество записей в котором будет равно числу пунктов списка. Список будет брать запись из массива, которая соответствует пункту списка, и выводить ее на элемент. Как выводить (как число, текст, картинку) - будем указывать при перетягивании фидбека на элемент.

Команды также можно будет перетягивать на подэлементы и смотреть, какой пункт какую команду вызвал (тут мне еще не все ясно, может быть у тебя уже есть видение?)


Но, не факт, что подобным образом можно модифицировать имеющийся List, этот вопрос нужно будет изучать отдельно.

Да уж. Спасибо. Но функционал для разработки драйверов очень ограничен к сожалению.

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


По моему все довольно понятно и просто в изучении.


Я готов общаться и помогать в изучении.

Сервис поддержки клиентов работает на платформе UserEcho