Board.KolibriOS.org
http://board.kolibrios.org/

Обновление панели задач
http://board.kolibrios.org/viewtopic.php?f=48&t=809
Page 4 of 15

Author:  Leency [ Mon Jun 30, 2008 1:55 am ]
Post subject:  Re: Обновление панели задач

Как-то слишком часто стала перерисовываться новая панель, притом вся.

Author:  barsuk [ Mon Jun 30, 2008 1:48 pm ]
Post subject:  Re: Обновление панели задач

Это из-за того, что панель отслеживает активное окно (раньше этой возможности не было).
Поскольку при любом рисовании все кнопки теряются, приходится выполнять рисование всего окна и определение всех кнопок.

Author:  Leency [ Mon Jun 30, 2008 7:25 pm ]
Post subject:  Re: Обновление панели задач

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

Author:  barsuk [ Mon Jun 30, 2008 9:22 pm ]
Post subject:  Re: Обновление панели задач

Конечно, я бы сделал так, но есть следующая сложность: сейчас код @panel выглядит так:
1) вычисление координат кнопки
2) рисование произвольной кнопки
3) определение кнопки функцией 8.
Даже если я перерисовываю 2 кнопки, остальные надо снова определять(см. функцию 13/1), а значит, вычислять их координаты. Для этого придется либо замусорить код условными конструкциями вроде:
1) вычисление координат кнопки
2) если эту кнопку нужно рисовать, то рисование произвольной кнопки
3) определение кнопки функцией 8.
Либо продублировать код, добавив функцию "просто определение всех кнопок без рисования".
Первый вариант ухудшит скорость работы, а второй - увеличит размер программы. Какой способ мне следует выбрать?

Author:  vectoroc [ Mon Jun 30, 2008 9:51 pm ]
Post subject:  Re: Обновление панели задач

1-ый. скорость теоретически только увеличится, поскольку перерисовка - более дорогая операция

Author:  <Lrz> [ Tue Jul 01, 2008 9:05 am ]
Post subject:  Re: Обновление панели задач

я придерживаюсь первого варианта перерисование лишний раз всей панели, не оправданно.

Author:  barsuk [ Tue Jul 01, 2008 4:11 pm ]
Post subject:  Re: Обновление панели задач

Сделал по первому варианту. Теперь при смене активного окна мелькания нет.
Но, кажется, при запуске или закрытии окон панель рисуется два раза. Так или нет?

Attachments:
@panel.7z [3.81 KiB]
Downloaded 135 times

Author:  Leency [ Tue Jul 01, 2008 4:38 pm ]
Post subject:  Re: Обновление панели задач

barsuk wrote:
Сделал по первому варианту. Теперь при смене активного окна мелькания нет.
Но, кажется, при запуске или закрытии окон панель рисуется два раза. Так или нет?
Шикарно :wink:
На счёт двух раз не знаю.

Author:  Gluk [ Wed Jul 02, 2008 5:36 pm ]
Post subject:  Re: Обновление панели задач

"Так или нет?" - спроси у отладчика.. брикпоинт поставь на перерисовке..

Author:  barsuk [ Wed Jul 02, 2008 6:40 pm ]
Post subject:  Re: Обновление панели задач

Gluk wrote:
"Так или нет?" - спроси у отладчика.. брикпоинт поставь на перерисовке..

1 раз перерисовывается. Все в порядке.

Author:  barsuk [ Thu Jul 03, 2008 11:01 pm ]
Post subject:  Re: Обновление панели задач

Немного оптимизировал код. Выкладываю исходники.

Attachments:
panel.7z [14.18 KiB]
Downloaded 126 times

Author:  Leency [ Fri Jul 04, 2008 6:59 pm ]
Post subject:  Re: Обновление панели задач

Не отображается Alt+Tab, хотя и работает.

Author:  G@K [ Fri Jul 04, 2008 11:43 pm ]
Post subject:  Re: Обновление панели задач

При запуске приложения панель прорисовывается 2 раза (сначала добавляется кнопка - потом все стирается и рисуется заново )
при закрытии один раз (все стирается и рисуется заново но уже без кнопки)

Author:  winnt [ Thu Jul 17, 2008 4:43 pm ]
Post subject:  Re: Обновление панели задач

Есть недоделка.. при нажатии кнопки WIN меню открывается.. но если кнопку держать X секунд меню откроется N раз ) наверно запускается в цикле пока нажата клавиша

Author:  Albom [ Fri Jul 18, 2008 6:10 am ]
Post subject:  Re: Обновление панели задач

Может сделать запуск меню по отпусканию клавиши вин? Тогда можно также сделать Win+D (свернуть/развернуть все окна), Win+R (запуск приложения), Win+E (запуск Eolite)...

Page 4 of 15 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/