View previous topic :: View next topic |
Author |
Message |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Thu Feb 22, 2007 19:05 Post subject: Динамический размер вертикального скроллбара в Lister |
|
|
Я бы Гислеру закинул еще этот виш: чтобы размеры скроллбаров (PageSize) тоже считались динамически. Не только позиции. Я у себя это сделал. _________________ UniViewer - CudaText - LogViewer
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Thu Feb 22, 2007 19:13 Post subject: |
|
|
Alextp wrote: | Я бы ему закинул еще этот виш: чтобы размеры скроллбаров (PageSize) тоже считались динамически. Не только позиции. |
Закидывали, но это в корне противоречит главнейшей концепции Просмотрщика: считывать файл только по мере необходимости. Чтобы посчитать горизонтальную ширину, достаточно считать только текущую строку (которая и без того должна быть считана для отображения), а чтобы узнать вертикальный размер, необходимо полностью прочитать весь файл целиком, сколько гигабайт бы он ни занимал. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Thu Feb 22, 2007 19:25 Post subject: |
|
|
Alextp wrote: | UV тоже читает файл по мере необход-ти. |
И как ты при этом подсчитываешь размер вертикальной прокрутки в таком случае?
Alextp wrote: | ну я же написал: я у себя сделал (подпись). |
Откуда ж мне знать, как ты у себя сделал. Ты мог сделать и полным считыванием. У меня не было информации о том, что у тебя считывание по мере необходимости. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Thu Feb 22, 2007 19:35 Post subject: |
|
|
>Откуда ж мне знать, как ты у себя сделал. Ты мог сделать и полным считыванием.
Не мог: это же аналог Листер...
Вертикальный бар
Максимальная позиция -- пропорциональна (не равна - там места мало, Int16) размеру файла
Позиция -- проп-на смещению
PageSize -- пр-н числу байт, выведенных в текущем окне
(мы это число знаем после отрисовки) _________________ UniViewer - CudaText - LogViewer
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Thu Feb 22, 2007 20:05 Post subject: |
|
|
Alextp wrote: | Не мог: это же аналог Листер... |
Слово "аналог" - не синоним слова "копия" (да и не было бы в нём тогда ни малейшего смысла, если бы он повторял Листер абсолютно во всех аспектах поведения).
Alextp wrote: | Максимальная позиция -- пропорциональна (не равна - там места мало, Int16) размеру файла
Позиция -- проп-на смещению
PageSize -- пр-н числу байт, выведенных в текущем окне
(мы это число знаем после отрисовки) |
Так, секундочку. Тогда я тебя неправильно понял. По моим сведениям и результатам экспериментов Lister сейчас себя ведёт в точности так, как ты здесь описал. Приведи пример, когда он ведёт себя не так, как ты ожидаешь. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Thu Feb 22, 2007 20:12 Post subject: |
|
|
Quote: | >>Слово "аналог" - не синоним слова "копия" (да и не было бы в нём тогда ни малейшего смысла, если бы он повторял Листер абсолютно во всех аспектах поведения). |
Согласен.
Quote: | >>Так, секундочку. Тогда я тебя неправильно понял. По моим сведениям и результатам экспериментов Lister сейчас себя ведёт в точности так, как ты здесь описал. Приведи пример, когда он ведёт себя не так |
Не в точности.
я предлагаю считать PageSize бара.
А у Листера что? деофлтные значения (20-30 пикселей). _________________ UniViewer - CudaText - LogViewer
Last edited by Alextp on Thu Feb 22, 2007 20:27; edited 1 time in total |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Fri Feb 23, 2007 02:11 Post subject: |
|
|
Alextp wrote: | я предлагаю считать PageSize бара.
А у Листера что? деофлтные значения (20-30 пикселей). |
Я тут сделал небольшой видео-файлик по этому поводу:
http://flint-inc.ru/Temp/scrollbar.exe
На нём видно, что когда я отпускаю бегунок, он немного подскакивает наверх.
Мне лень экспериментировать, подбирая условия, но, я так полагаю, запросто можно сделать пример файла, где бегунок подскочит не на пару пикселей, а посильнее, сбежав при этом от мышиного курсора. Помимо этого можно попробовать поймать эффект, когда после прокрутки размер бегунка скачком меняется из-за того, что новое содержимое экрана занимает уже другой размер в процентном отношении ко всему файлу.
Эти два эффекта мне лично кажутся более неудобными, чем фиксированный размер бегунка в Lister'е. Впрочем, о вкусах не спорят...
PS: Я долго не мог понять, что ты хочешь, потому что под термином PageSize я всегда понимал размер страницы, т.е., грубо говоря, количество строк, укладывающееся в окне, что только добавляет сумбуру к твоим скриншотам. Я не уверен, что Гислер, если он прочитает тему, правильно поймёт твоё предложение с такой терминологией. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Fri Feb 23, 2007 14:23 Post subject: |
|
|
Согласен. Первый пост я чуть уточнил, чтобы было понятней, о чём речь. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Fri Feb 23, 2007 14:35 Post subject: |
|
|
Гислер ответил (оффорум). Да, очень содержательно. :-\
по поводу твоего письма:
1 да, позиция бара можешь скакать после отпускания мыши.
Не немного. Это из-за того что мы позиционируем вьюер на строку, ближайщую к позиции бара.
И из-за округления.
2 *сильно* скакать она не может.
От уакзателя мыши бар может ускакать, если указатель был не в самом верху бара. Это да.
Это может быть как аргумент против виша, согласен.
Но Гислер-то что сказал.
Code: | Lister uses permille (0-1000) for the scroll bar, that's why it always has the same thumb size. |
_________________ UniViewer - CudaText - LogViewer
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Fri Feb 23, 2007 15:14 Post subject: |
|
|
Я, если честно, вообще не понял, как эти две вещи из его ответа друг с другом связаны...
Что ж, заварил кашу, теперь сам и расхлёбывай.  _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
|