Тема: HTA: правка пользователем группы настроек интерфейса
Хочу в свою HTA добавить пользовательскую панель инструментов, т.е. чтобы пользователь не правкой инишки, я не выходя из ПО, мог добавить в приложение свою кнопку, дать ей иконку, название/подпись/стиль и назначить командную строку.
Что-то наподобие того как в HTA: LAN Administrator http://forum.script-coding.com/viewtopic.php?id=7719 коллеги mozers запускаются команды для хоста из выпадающего меню по подготовленному ранее .ini.
Набор команд в виде меню меня не устраивает, я задумываю так - в форме будет настраиваемый пользователем слой, в который он легко через дополнительный интерфейс приложения добавляет/переставляет/правит самые частоприменяемые им кнопки-команды, т.е. чтобы они были всегда под рукой - без лазания в меню.
Пока мысли еще не обрели конкретную форму, прошу ваших подсказок-идей по поводу:
1) в каком виде хранить данные панели в памяти приложения;
2) как лучше организовать правку панели;
3) варианты формата файла хранения данных.
По "1)" - т.к. с одной стороны "элементы" панели могут иметь разный набор свойств, например, элемент - не кнопка, а вставленный "визуальный" разделитель - горизонтальная линия, разрыв абзаца либо пробел или это текст с указанным стилем, и надо каким-то образом пользователю элементы сортировать в своей последовательности у меня такие мысли:
а) либо хранить в нескольки разных объектах словарей-Dictionary свойства элементов, а последовательность элементов (ключи словарей) хранить в отдельном массиве;
б) либо создать невидимую (на неотображаемом слое) таблицу, в которой: строка - элемент панели, ячейки - специфические значения, последовательность строк - последовательность элементов на панели. В таком случае интерфейс правки пользовательской панели "2)" можно свести к интерфейсу правки содержимого таблицы;
в) либо хранение свойств в виде "вложенных" js-объектов - как в LANAdmin используются считанные из .ini данные хостов (объект INI) - тут прийдется крепко подумать, т.к. это для меня неизведанная область javascript.