Page 1 of 1

Сворачивание окна в заголовок

Posted: Tue Oct 23, 2018 7:33 pm
by lev
По мотивам обсуждения - http://board.kolibrios.org/viewtopic.php?p=71527#p71527
Имхо при сворачивании не должно оставаться никаких дополнительных рамочек, а окно должно сворачиваться в заголовок и ничего более. Соответственно не придётся предпринимать никаких дополнительных усилий по контролю свёрнутости окна, рисованию на оставшейся полоске и т.п.
В приложении тестовое ядро, где я попытался убрать полоску.
Просьба погонять чуток, вдруг чего выпадет. Ну, или понаписать, что полоска очень нужна и ничего с ней делать не надо.

Re: Сворачивание окна в заголовок

Posted: Tue Oct 23, 2018 7:41 pm
by 0CodErr
lev wrote:Ну, или понаписать, что полоска очень нужна и ничего с ней делать не надо.
Проблема не в самой полоске, я про это говорил http://board.kolibrios.org/viewtopic.php?p=71527#p71539
lev wrote:Соответственно не придётся предпринимать никаких дополнительных усилий по контролю свёрнутости окна, рисованию на оставшейся полоске и т.п.
Если бы ядро не позволяло рисовать на нижнем и правом крае окна, то дополнительного контроля и не нужно было бы.
Фиксить ИМХО нужно другое.

Re: Сворачивание окна в заголовок

Posted: Tue Oct 23, 2018 8:01 pm
by lev
А я не говорил - http://board.kolibrios.org/viewtopic.php?p=57018#p57018
Я ещё тогда, и задолго до того присматривался, с какого боку подойти, но так и не справился, не ассемблерщик я. А тут всего одну строчку поменять для теста.

Re: Сворачивание окна в заголовок

Posted: Wed Oct 24, 2018 2:02 am
by Leency
Я же отписался в той же теме на 4 комента ниже http://board.kolibrios.org/viewtopic.php?p=71527#p71552
у некоторых скинов есть проблема помеченная на скрине: открытые линии в углах. Ее можно избежать, если поверх низа скина рисовать линию толщиной 1px цвета внешнего бордера.
В ядре из этой темы проблема не пофикшена.

Описанный способ позволит избежать лишних проверок, как в варианте 0CorErr. К тому же иногда нужно рисовать на скине, см. например Календарь.

Re: Сворачивание окна в заголовок

Posted: Wed Oct 24, 2018 10:28 am
by 0CodErr
Тут ведь не только свёрнутое в заголовок окно нужно фиксить, как lev и писал ранее http://board.kolibrios.org/viewtopic.php?p=57018#p57018
Насколько помню, проблема в том, что одна и та же процедура рисует и пиксели в окне, и пиксели скина(в том числе нижнюю и правую рамки).
Пиксели окна не нужно рисовать на нижней и правой рамке, а пиксели скина нужно.
Дополнительные проверки замедлили бы код отрисовки внутри окна.
Значит, остаётся
lev wrote:2) Завести дубль функции PutPixel
Пусть назовём её PutSkinPixel.
Когда я раньше пробовал это пофиксить, то дополнительных проверок не делал, и не только "элементы интерфейса", но и нижняя и правая рамки просто совсем не рисовались.

Поэтому пофиксить реально, варианты:
  • сделать дополнительно PutSkinPixel
    добавить дополнительные проверки
Первый — лучше.