void WINAPI SetStartupInfoW(const struct PluginStartupInfo *PSInfo) { Info=*PSInfo; FSF=*PSInfo->FSF; GetPluginConfig(); }
intptr_t WINAPI ConfigureW(const ConfigureInfo* CfgInfo) { GetPluginConfig(); PluginDialogBuilder Builder(Info, MainGuid, DialogGuid, MConfig, L"Config"); Builder.StartColumns(); Builder.AddCheckbox(MProcessEditorInput, &Opt.ProcessEditorInput); Builder.AddCheckbox(MCheckMaskFile, &Opt.CheckMaskFile); Builder.ColumnBreak(); FarDialogItem *ItemAssignKeyName=Builder.AddEditField(Opt.AssignKeyName, ARRAYSIZE(Opt.AssignKeyName), 20); FarDialogItem *ItemMaskFile=Builder.AddEditField(Opt.MaskFile, ARRAYSIZE(Opt.MaskFile), 20); Builder.EndColumns(); Builder.AddSeparator(); Builder.AddText(MStyle); const int StyleIDs[] = {MStr1, MStr2, MStr3}; Builder.AddRadioButtons((int*)&Opt.Style, ARRAYSIZE(StyleIDs), StyleIDs); Builder.AddOKCancel(MOk, MCancel); if (Builder.ShowDialog()) { lstrcpyn(Opt.AssignKeyName,ItemAssignKeyName->Data,ARRAYSIZE(Opt.AssignKeyName)); if (!FSF.FarNameToInputRecord(Opt.AssignKeyName,&Opt.RecKey)) { lstrcpyn(Opt.AssignKeyName,L"F1",ARRAYSIZE(Opt.AssignKeyName)); Opt.RecKey=_DefKey; } PluginSettings settings(MainGuid, Info.SettingsControl); settings.Set(0,L"ProcessEditorInput",Opt.ProcessEditorInput); settings.Set(0,L"Style",Opt.Style); settings.Set(0,L"EditorKey",Opt.AssignKeyName); settings.Set(0,L"CheckMaskFile",Opt.CheckMaskFile); settings.Set(0,L"MaskFile",Opt.MaskFile); return TRUE; } return FALSE; }