Latest post of the previous page:
По ESC (как действие по умолчанию) было бы здорово снимать все фильтры и возвращаться к первоначальному виду списка.
Latest post of the previous page:
По ESC (как действие по умолчанию) было бы здорово снимать все фильтры и возвращаться к первоначальному виду списка.
Code: Select all
local F = far.Flags
local hDlg,ID
Macro { description="Reset filters";
area="Dialog Menu MainMenu UserMenu Disks"; key="Esc F10";
uid="3DE219F0-7B83-453B-A1FA-E780640F7093";
condition=function()
hDlg = far.AdvControl"ACTL_GETWINDOWINFO".Id
ID = Area.Dialog and Dlg.CurPos or 1
if Area.Dialog and Dlg.ItemType~=F.DI_LISTBOX then return end
return hDlg:send(F.DM_LISTINFO,ID).ItemsNumber~=Object.ItemCount
end;
action=function()
if Menu.Filter(0)==1 then Menu.Filter(0,0); return end
hDlg:send(F.DM_ENABLEREDRAW,0)
for i,item in ipairs(far.GetDlgItem(hDlg,ID)[6]) do--[6] Selected/ListItems: integer/table
if band(item.Flags,F.LIF_HIDDEN)~=0 then
hDlg:send(F.DM_LISTUPDATE,ID,{Index=i,Text=item.Text,Flags=band(item.Flags,bnot(F.LIF_HIDDEN))})
end
end
Menu.Filter(4) --подправить высоту списка под количество элементов
hDlg:send(F.DM_ENABLEREDRAW,1)
end;
}
Ctrl-хоткей
.Почему же, во всех фаровских меню, а не только в МВА (хотя там особенно). Я пытался обосновать это уже выше и Вы возражали (выделено мною):John Doe wrote:Кроме MBA, для чего ещё?
Но ведь сейчас уже в нашей ситуации нажать на хоткей без Alt в большинстве случаев означает вызвать фильтр и далее в отфильтрованном меню по кругу перемещать курсор. Поэтому — Enter, а было бы предпочтительнее иметь и альтернативу — Ctrl-хоткей.
Да! Очень полезный макрос! Даже странно, что я его раньше не приметил. Благодарю Вас за подсказку!John Doe wrote:См. немодальный фильтр меню (3).
Alt
на AltShift
и дополнил возможностью при фильтрации использовать пробелы (Space
). Для этого я внёс следующие немудрёные дополнения в 2 его строки:key="/^[RL]Alt[b]Shift[/b](BS|Add|Subtract|Multiply|Divide|BackSlash|ShiftBackSlash|.|Shift.[b]|Space[/b])$/";
local key = akey(1):match("R?Alt[b]Shift[/b](.+)")
. [b]Ctrl-хоткей[/b]
ощущается мною ещё больше. Вообще-то проявляется с любыми парами.
local Pos = Object.CheckHotkey(hk,InitPos+1)
и добавьте после неёCode: Select all
if Pos==0 then Pos = Object.CheckHotkey(hk) end