Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Динамический размер вертикального скроллбара в Lister

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 22, 2007 19:05    Post subject: Динамический размер вертикального скроллбара в Lister Reply with quote

Я бы Гислеру закинул еще этот виш: чтобы размеры скроллбаров (PageSize) тоже считались динамически. Не только позиции. Я у себя это сделал.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Thu Feb 22, 2007 19:13    Post subject: Reply with quote

Alextp wrote:
Я бы ему закинул еще этот виш: чтобы размеры скроллбаров (PageSize) тоже считались динамически. Не только позиции.

Закидывали, но это в корне противоречит главнейшей концепции Просмотрщика: считывать файл только по мере необходимости. Чтобы посчитать горизонтальную ширину, достаточно считать только текущую строку (которая и без того должна быть считана для отображения), а чтобы узнать вертикальный размер, необходимо полностью прочитать весь файл целиком, сколько гигабайт бы он ни занимал.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 22, 2007 19:20    Post subject: Reply with quote

CaptainFlint: ну я же написал: я у себя сделал (подпись). UV тоже читает файл по мере необход-ти.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Thu Feb 22, 2007 19:25    Post subject: Reply with quote

Alextp wrote:
UV тоже читает файл по мере необход-ти.

И как ты при этом подсчитываешь размер вертикальной прокрутки в таком случае?

Alextp wrote:
ну я же написал: я у себя сделал (подпись).

Откуда ж мне знать, как ты у себя сделал. Ты мог сделать и полным считыванием. У меня не было информации о том, что у тебя считывание по мере необходимости.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 22, 2007 19:35    Post subject: Reply with quote

>Откуда ж мне знать, как ты у себя сделал. Ты мог сделать и полным считыванием.

Не мог: это же аналог Листер...

Вертикальный бар

Максимальная позиция -- пропорциональна (не равна - там места мало, Int16) размеру файла
Позиция -- проп-на смещению
PageSize -- пр-н числу байт, выведенных в текущем окне
(мы это число знаем после отрисовки)
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Thu Feb 22, 2007 20:05    Post subject: Reply with quote

Alextp wrote:
Не мог: это же аналог Листер...

Слово "аналог" - не синоним слова "копия" (да и не было бы в нём тогда ни малейшего смысла, если бы он повторял Листер абсолютно во всех аспектах поведения).

Alextp wrote:
Максимальная позиция -- пропорциональна (не равна - там места мало, Int16) размеру файла
Позиция -- проп-на смещению
PageSize -- пр-н числу байт, выведенных в текущем окне
(мы это число знаем после отрисовки)

Так, секундочку. Тогда я тебя неправильно понял. По моим сведениям и результатам экспериментов Lister сейчас себя ведёт в точности так, как ты здесь описал. Приведи пример, когда он ведёт себя не так, как ты ожидаешь.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 22, 2007 20:12    Post subject: Reply with quote

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
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 22, 2007 20:24    Post subject: Reply with quote

CaptainFlint, я тему создал. см. скриншоты:
http://www.ghisler.ch/board/viewtopic.php?p=114872#114872
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Fri Feb 23, 2007 02:11    Post subject: Reply with quote

Alextp wrote:
я предлагаю считать PageSize бара.
А у Листера что? деофлтные значения (20-30 пикселей).

Я тут сделал небольшой видео-файлик по этому поводу:
http://flint-inc.ru/Temp/scrollbar.exe
На нём видно, что когда я отпускаю бегунок, он немного подскакивает наверх.

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


PS: Я долго не мог понять, что ты хочешь, потому что под термином PageSize я всегда понимал размер страницы, т.е., грубо говоря, количество строк, укладывающееся в окне, что только добавляет сумбуру к твоим скриншотам. Я не уверен, что Гислер, если он прочитает тему, правильно поймёт твоё предложение с такой терминологией.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Feb 23, 2007 09:43    Post subject: Reply with quote

Давай выделим все про скроллбар в отдельную тему?
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Fri Feb 23, 2007 14:23    Post subject: Reply with quote

Согласен. Первый пост я чуть уточнил, чтобы было понятней, о чём речь.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Feb 23, 2007 14:35    Post subject: Reply with quote

Гислер ответил (оффорум). Да, очень содержательно. :-\


по поводу твоего письма:

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
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Fri Feb 23, 2007 15:14    Post subject: Reply with quote

Я, если честно, вообще не понял, как эти две вещи из его ответа друг с другом связаны...
Что ж, заварил кашу, теперь сам и расхлёбывай. Laughing
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Feb 23, 2007 15:22    Post subject: Reply with quote

Laughing
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group