исходники reparent

20 января 2023, 19:13
Maxim Kuznetsov
0
47

исходники reparent добавлены в библиотеку ATcl . 

в публикациях про "пишем GUI", были выявлены недостатки reparent:

  1.    до уровня Tk не доводятся сообщение про resize 
  2.    нет возможности разрешать/запрещать изменение окна пользователем

Желающие могут попробовать их устранить сами или дать ценный совет 

Добавил исходники в проект : https://chiselapp.com/user/nektomk/repository/atcl-lib/dir?ci=9dafcae4b33cd4f5a9414fe52cc9be0c2d11e5c4&name=src/reparent

для сборки подразумевается что установлена библиотека ATcl (то есть переменная окружения ATCL_HOME указывает на дистрибутив) и соотв. компилятор gcc (я использую https://www.msys2.org/)

make - компилировать 

make install - поместить результат в ../../Tcl/reparent

и из корня проекта tclsh deploy.tcl - установить (копировать) файлы библиотеки во все терминалы

насколько представляю, чтобы исправить пункт 1, надо вешать hook который примет WM_SIZE и выполнит несложный протокол контейнера (см https://wiki.tcl-lang.org/page/Combining+GUI+applications+developed+with+Tk+and+%27native%27+Windows+toolkits; )в точности по примеру не выйдет, потому-что окно у нас уже есть. И надо ещё вовремя убирать hook ;-) То есть надо отыграть то что делает window manager - перевести сообщения windows в сообщение Tk

с пунктом 2 значительно проще - можно сделать удобную команду для доступа к Get/SetWindowLong и пользователь сам выставит аттрибут "можно/нет менять размеры окна таская за рамку"

подсказки про "как правильно повесить hook" категорично приветствуются Я так в основном в UNIX/Linux пишу, и хуки для меня тёмный лес



 



Поделитесь с друзьями: