Re: KMLIB (Kolibri Macro Library) v0.05
Posted: Fri Nov 19, 2010 10:41 am
Выделена тема Рациональность выбора пути
Official KolibriOS board
http://board.kolibrios.org/
1. Я уже неоднократно писал, что чужие исходники для меня тёмный лес (особенно без комментарий).connect wrote:Врядли это можно считать полноценным ответом, но аглоритмы полосы прокрутки есть в исходниках таких программ как Tinypad, Table, Eolite, KFM...
Все алгоритмы по работе со скроллингом сводятся к правильной обработке этих параметров и правильном отображении скроллинга на экране в зависимости от значений этих параметров. Остальные параметры не столь важны для программиста использующего твой компонент, они имеют для него второстепенное значение (цвет, положение, размер, ... и т.д.) . Детального алгоритма у меня нет т. к. я скроллинги не делал. Для каждого события (нажатие на мышку или клавиатуру) должен быть свой алгоритм ли функция.# sb_max_area - область максимальная, актуально когда не влазит в отображаемую область, т.е. случай активности компонента (весь максимальный размер документа)
# sb_cur_area - область отображаемая (какая часть документа влазит в экран)
# sb_position - позиция бегунка изменяемая от 0 до значения (sb_max_area-sb_cur_area)
Знаю, scrollbar ещё не доделан. Я заглушку пока поставил только на кнопки. На ползунок пока не ставил, так как смысла нет, потому что он всё равно работает неправильно, и наверняка его надо будет переделывать.IgorA wrote:результат теста: мышей я смог сдвинуть ползунок скроллинга ниже кнопки
Я просил алгоритм, а не код. Не знал что там есть. Врятли поможет, но спасибо.lev wrote:Результаты поиска "scroll" по src, sdk, svn ("с" результаты опущены)
kolibri_0.7.7.0_src\lib\box_lib\scrollbar.mac
kolibri_0.7.7.0_src\programs\fs\kfm\scroll.inc
kolibri_0.7.7.0_sdk\INFOBOX\VSCROLL8.asm
---
svn\programs\develop\libraries\box_lib\trunk\scrollbar.mac
svn\programs\develop\libraries\box_lib\trunk\doc\scrollbar\scrollbar.htm
svn\programs\develop\libraries\libGUI\examples\src\ASM\SCROLL_BAR.ASM
svn\programs\develop\libraries\libGUI\examples\src\ASM\SCROLLED_WINDOW.ASM
---
Не нашёл. Хоть номер главы написал бы.lev wrote: ещё у Зубкова которого я взял по ссылке откуда-то с этого форума, scroll'ы описываются
Теперь я проясню свою позицию:Mario wrote:Rock_maniak_forever
Для начала я еще раз проясню свою позицию - я не считаю целесообразным написание собственного кода, если есть доступный рабочий пример чужого кода.
Вот я и спрашиваю, чтобы их не разбрасывать, и на них не натыкаться.Mario wrote:Однако раз так хочется разбрасывать свои и грабли, то дело хозяйское.
Я не в праве требовать от вас писать мне целую диссертацию, ибо понимаю, что ваше время бесценно и принадлежит только вам. Но если вы решите уделить мне ваше драгоценное время, чтобы помочь мне разрешить мою проблему, то хотелось бы побольше узнать о таинственном перемещении ползунка, которое так не даёт мне покоя.Mario wrote: .........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
На практике формулы несколько усложняется, поскольку в текущем виде она будет обрабатывать позицию мыши слишком жестко и у пользователя будет создаваться ощущение рассинхронизации. Нужно еще учитывать, что пользователь захватив бегунок тащит его в одну или другую сторону и бегунок (пока не отпущена кнопка мыши или не закончилась область скроллбара) относительно курсора мыши должен идти строго синхронно, для этого приходится немного поизвращаться с кодом. К примеру в KFM как раз присутствует вариант когда есть рассинхронизация, этот же код но доработанный на 40-50% перекочевал в библиотеку Box_Lib и там уже недоработка с рассинхронизацией устранена.
И чем же...ChE wrote:Rock_maniak_forever
Без обид, но пункты 4, 5, 6 противоречат друг другу по сути.