Меню и FarListInfo\MaxHeight

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Меню и FarListInfo\MaxHeight

Post by John Doe » Fri 16 Jan, 2015 10:58

Сказано: MaxHeight: Максимальная видимая высота списка.

С помощью макроса проверяем на практике, например в меню плагинов.
В редакторе:
MaxHeight: 28
ItemsNumber: 26
С чего это MaxHeight больше ItemsNumber?

В панелях:
MaxHeight: 46
ItemsNumber: 47
А тут наоборот, MaxHeight меньше, что тоже не соответствует действительности.

В обоих случаях все пункты видны на экране, и в моём понимании MaxHeight должно быть равно ItemsNumber.

Баг?

Edit: http://bugs.farmanager.com/view.php?id=2910

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Меню и FarListInfo\MaxHeight

Post by John Doe » Fri 16 Jan, 2015 12:06

В общем не знаю, что за проблема с MaxHeight, но искомое значение можно вычислить из данных FarDialogItem: Y2-Y1+1 и ещё минус 2, если во флагах нет LINFO_SHOWNOBOX.

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Меню и FarListInfo\MaxHeight

Post by John Doe » Thu 23 Jul, 2015 14:54

Если отбросить странности в меню плагинов, вызванном из панелей, то большинстве случаев значение MaxHeight соответствует высоте списка, включая рамки (если они присутствуют).

Имхо, включать высоту рамок сюда неправильно.
Для сравнения: MaxLength (из той же структуры, FarListInfo) соответствует реальной длине текста, и не включает отступы и рамки.

Другой пример, параметр MaxHeight в функции Menu описан однозначно как Максимальное количество видимых на экране пунктов меню.

Post Reply

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