Page 1 of 1

Поверх всех окон и позади всех

Posted: Mon Oct 05, 2015 10:00 pm
by GerdtR
Добавил новую функцию в ядро - позволяет сделать окно поверх всех, позади всех или на уровне рабочего стола(это значит позади тех, кто позади всех :) ) .

18.25.1 - получить Z-модификатор
18.25.2 - установить Z-модификатор
edx = -1(для текущего потока) или TID
esi (для ecx = 2) = значение для Z-модификатора
Возвращает: eax=0(fail),1(success) если устанавливали новый Z-модификатор
или eax = текущее значение.

ZPOS_NORMAL = 0 это как все
ZPOS_ALWAYS_BACK = 1 позади всех
ZPOS_DESKTOP = 2 на уровне рабочего стола(это специально для icon если что... или уже desktop будет?)
ZPOS_ALWAYS_TOP = 3 поверх всех


Пока делал - ядро устарело немного, сглаженные шрифты тогда не пофиксили до конца, ну да ладно) Пока один баг есть - при перетаскивании окна, которое позади всех, не со всех стирается негативная рамка. Пока не знаю, в чём дело. Ну и главный вопрос - это ещё у кого-то кроме меня запускается? :)
А то я там в самом начале стэк переместил, Serge прав оказался, но тот стек в карте не указан.
Прилагаю ядро, рабочий образ, и программка, которая умеет становить поверх всех или позади (и её исходники).

Re: Поверх всех окон и позади всех

Posted: Mon Oct 05, 2015 11:53 pm
by paulcodeman
идея хороша, правда не тестил, но можно будет так виджеты делать и диспечер задач по верх окон.

Re: Поверх всех окон и позади всех

Posted: Fri Oct 23, 2015 12:15 am
by e-andrew
Эти функции слиты с репозиторием? Они очень важны, нужны по крайней мере для двух моих программ

Re: Поверх всех окон и позади всех

Posted: Fri Oct 23, 2015 8:46 am
by Pathoswithin
Редакция 5836

Re: Поверх всех окон и позади всех

Posted: Sun Oct 25, 2015 4:14 am
by GerdtR
Будьте готовы, что значения констант ZPOS_ALWAYS_BACK, ... изменится на другие цифры. Будут значения от -2 до 1 и уже в логическом порядке, то есть окна с -2 будут позади окон с -1. При такой нумерации проще код в ядре получается. Пока что есть мелкий баг с выскакиванием окна, которое позади всех, но он не часто происходит. Ну и перерисовки лишние есть, из-за них и делаю эту перенумерацию. Короче, использовать можно :) Доделаю - залью новую нумерацию и исправление бага и меньшей перерисовки.

Re: Поверх всех окон и позади всех

Posted: Sun Oct 25, 2015 4:16 am
by GerdtR
Ещё notify надо будет сделать таким, чтоб фокус на себя не забирал. А то мешается. Пусть делает себя поверх всех и возвращает фокус у кого был.

Re: Поверх всех окон и позади всех

Posted: Tue Oct 27, 2015 11:34 pm
by GerdtR
Всё, значения констант изменены как и обещал, смотрите документацию. Теперь это можно использовать. Осталась лишняя перерисовка, но там не сложно, скоро будет.

Re: Поверх всех окон и позади всех

Posted: Thu Oct 29, 2015 4:08 pm
by e-andrew
GerdtR wrote:Ещё notify надо будет сделать таким, чтоб фокус на себя не забирал. А то мешается. Пусть делает себя поверх всех и возвращает фокус у кого был.
сделаю на днях