nlve/probe/menu
4aiman 278cdfeadd Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе
Самодельная полоса из кнопок стоила поведения: наведение на соседнее
название не перекидывало туда раскрытый список, не работал переход по
меню с Alt и стрелками. Подражать настоящему меню своими руками пришлось
бы до бесконечности, а причина отказа была одна — цвет.

Цвет решается иначе. Под gtk2 своими руками меню не рисуется, и это
записано в самом LCL: OwnerDraw, OnDrawItem и OnMeasureItem там помечены
как неподдерживаемые (interfaces/gtk2/issues.xml), вызывает DoDrawItem
только win32. Зато gtk принимает описание стиля текстом —
gtk_rc_parse_string, разбирается один раз до создания окон. Под win32
наоборот: строк стиля нет, зато отрисовка пунктов работает, в том числе
для названий в самой полосе.

Проверено отдельным пробником (probe/menu): настоящее TMainMenu под gtk2
берёт наши цвета и в полосе, и в раскрытом списке, включая цвет
выделенного пункта.

Отрисовка пунктов теперь отличает полосу от раскрытого списка: в полосе
не нужно место под галочку и сочетание клавиш, иначе название разошлось
бы с шириной, которую мы же и посчитали.

Остаток полосы правее последнего названия под Windows по-прежнему рисует
система — это уступка, а не решение.
2026-08-21 10:44:31 +03:00
..
menuprobe.lpi Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе 2026-08-21 10:44:31 +03:00
menuprobe.lpr Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе 2026-08-21 10:44:31 +03:00
menuprobe.res Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе 2026-08-21 10:44:31 +03:00
uProbe.lfm Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе 2026-08-21 10:44:31 +03:00
uProbe.pas Полоса меню снова настоящая, цвет задаётся по-своему на каждой системе 2026-08-21 10:44:31 +03:00