Список активных диалоговых окон

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 2 times

Список активных диалоговых окон

Post by artemsen »

Hi, All!

Столкнулся с проблемой - не могу определить какие диалоговые окна открыты на данный момент в Far 2.0.
Через AdvControl(..., ACTL_GETSHORTWINDOWINFO, ...) я могу определить текущее активное окно (редактор, панели и т.д), но, к примеру, как определить, что при открытой файловой панели активно юзер-меню или меню выбора дисков?

Конкретный пример: Я отловил изменения в своей файловой системе, хочу заставить Far принудительно обновить панель, но при обновлении затирается открытое меню выбора диска (Alt-F1/F2). Отказаться от принудительного обновления не могу - нужно видеть изменения в реал-тайме.

User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Список активных диалоговых окон

Post by Xerox »

Code: Select all

for i = 1, far.AdvControl(far.Flags.ACTL_GETWINDOWCOUNT) do 
	w1 = far.AdvControl(far.Flags.ACTL_GETWINDOWINFO, i)
	if band(w1.Flags, far.Flags.WIF_CURRENT) == far.Flags.WIF_CURRENT 
	then far.Show("active window:", w1.Name, w1.TypeName) end
end 
image.png
image.png (1.5 KiB) Viewed 280 times
Last edited by Xerox on Fri 03 Jan, 2020 13:17, edited 1 time in total.

Post Reply

Return to “Разработка плагинов”