В связи с появлением получения части настроек через SettingsControl (за что огромное спасибо
zg)
zg 25.12.2011 14:48:29 +0200 - build 2328
1. эксперементальное получение настроек подтверждения через SettingsControl(...,SCTL_GET,...).
Root - FSSF_CONFIRMATIONS, Name - L"CopyOverwrite", L"MoveOverwrite" и т.д.
хотел бы поделиться идей, как я хотел это реализовать.
Чтобы не писать слишком много букв в
FarSettings::Get(), предложил бы следующее.
Т.к. у нас уже есть массив структур со всеми настройками CFG[] (config.cpp), то я бы добавил пару полей в структуру FARConfig:
Code: Select all
...
size_t PublicRoot;
wchar_t* PublicName;
Тогда в
FarSettings::Get() нужно всего лишь сделать цикл прохода по массиву и сравнить Root и Name.
ValType легко конвертируется в FARSETTINGSTYPES.
Для настроек, которые мы не хотим паблишить (делать видимыми плагинам), значения
PublicRoot уставовить в ноль и/или
PublicName в NULL.
В идеале
PublicName должен был бы совпадать с
ValName, что логично, но трудно поддерживать в случае переименования. В таком случае, я бы все-таки предложил неименованные PublicName (через макро MAKESETTINGNAME, так же как сделано в винде для ресурсов MAKEINTRESOURCE).
Это чисто мысли вслух...
P.S. Если вы видите огромные недостатки данного подхода, то зашарьте ваши мысли по этому поводу, для своего и общего развития