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 

TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Goto page Previous  1, 2, 3 ... 51, 52, 53 ... 128, 129, 130  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Wed Mar 07, 2012 14:49    Post subject: Reply with quote

На моей винде параметры следующие:
Code:
Размер окна: 800x600.
Размер клиентской части окна: 792x554.
Тотал запущен с чистым конфигом. Тулбар в одну строку (аж 3 кнопки).


Code:
Включены все галки в настройках Layout.
Первый параметр MulDiv: 416.

Code:
То же самое, но без галки "показывать две панели букв дисков".
Первый параметр MulDiv: 444.

Code:
То же самое, но без панелей букв дисков.
Первый параметр MulDiv: 472.

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Wed Mar 07, 2012 14:53; edited 4 times in total
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Mar 11, 2012 10:34    Post subject: Reply with quote

Ну в общем-то получить эти числа ручками несложно. Надо найти в окне тотала 2 панели с классом TMyPanel, они расположены за окнами с файлами (собственно, вопрос, что называть файловыми панелями - эти панели или сами списки, которые имеют класс TMyListBox). Кроме того, поверх них лежат все заголовки табуляторов, кнопочки быстрого доступа и т.п. (странно, что списки файлов тупо лежат поверх этих панелей, а не являются дочерними окнами).

В общем, находим расстояние от верха верхней TMyPanel до низа нижней, оно совпадает с тем магическим числом. Проблема в том, что в 64-битном тотале эти панели имеют банальный класс Window, посему отличить их от других 6 таких "окон" сложно... Но если присмотреться, то дочерние окна есть только у трех окон окна тотала (прям масло масляное): у этих двух панелей и у панели со строками состояния и функциональных клавиш. У интересующих нас панелей есть дочерние окна выпадающего списка дисков, строки состояния, заголовков путей и т.п. Блин, неохота городить такие огороды...

В принципе, есть довольно приличный вариант из извращенных. Верхняя панель заканчиается на 1 пиксель выше сепаратора, нижняя начинается на 1 пиксель ниже... Сепаратор я по-любому нахожу, потом можно пройтись по окнам, посмотреть их позиции и размеры...

Блин, и тут не всё так, как надо... Если включена вторая панель кнопок дисков, она располагается между сепаратором и нижней панелью...
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 12, 2012 10:33    Post subject: Reply with quote

Не пойму, почему такое странное поведение при использовании PostMessage. Задаю позицию сепаратора (0,112), она ставится (0,110), задаю позицию (0,816), она ставится (0,818). Похоже, стоит вернуться к SendMessage.


В общем, свершилось. Very Happy Добавлена поддержка работы с вертикальным размещением панелей.

TCFS2Tools 1.4.2.150

Проверяйте, всё ли работает, т.к. вернулся к SendMessage от PostMessage в функции установки сепаратора.

Отписал Гислеру про неумирающие всплывающие подсказки с процентами. Если он это исправит, можно будет убрать режим set_separator(-2).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 12, 2012 14:28    Post subject: Reply with quote

MVV
Хм. Поборол таки.) Только определение активной панели в обратном ключе работает.

Про подсказки - хоть и не вовремя, но лучше поздно, чем никогда. Дал бы ссылку сразу что ль. Wink
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 12, 2012 14:55    Post subject: Reply with quote

Flasher wrote:
MVV
Хм. Поборол таки.)

Ну дык) главное, что пришел к удовлетворяющему меня алгоритму. Ищу эти две пресловутых панели по наличию у них дочерней панели с текстом, начинающимся символом '[' (панель с меткой диска, есть всегда, даже если выключена в настройках) - плюс в том, что можно искать только 1 раз, т.к. они не удаляются тоталом во время работы, в отличие от списков файлов. Далее беру сумму высот панелей плюс 4, она совпадает с тем числом, которое сам тотал передаёт функции MulDiv. Для горизонтального размещения панелей по-прежнему используется ширина клиентской части окна.

Flasher wrote:
Только определение активной панели в обратном ключе работает.

Поясни, не пойму.

Flasher wrote:
Про подсказки - хоть и не вовремя, но лучше поздно, чем никогда. Дал бы ссылку сразу что ль. Wink

http://ghisler.ch/board/viewtopic.php?t=33951
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 12, 2012 15:11    Post subject: Reply with quote

MVV wrote:
плюс в том, что можно искать только 1 раз, т.к. они не удаляются тоталом во время работы, в отличие от списков файлов.
Ага, хоть тут повезло. Smile
MVV wrote:
Поясни, не пойму.
Определяется другая панель вместо активной, если использовать те же команды, что при вертикальном расположении.

+ за ссылку.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Mon Mar 12, 2012 15:20    Post subject: Reply with quote

MVV
Впечатление, что вместо предполагаемого увеличения, активная панель уменьшается и наоборот.
Надо, наверное, IsVerticalPanels как-то учитывать?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 12, 2012 15:46    Post subject: Reply with quote

Да, sp_set_active(30) ставит сепаратор на 70 при активной верхней. Посмотрю.

Добавлено спустя 23 минуты:

Обновил файл.

sa wrote:
MVV
Впечатление, что вместо предполагаемого увеличения, активная панель уменьшается и наоборот.
Надо, наверное, IsVerticalPanels как-то учитывать?

Нет, проблема была в другом. Условие сравнения позиций панелей было некорректным, потому при вертикальном разделении левой становилась нижняя, а не верхняя. Теперь панель считается левой, если её координаты по X и по Y не больше координат второй панели:
Code:
int left=lbrc[0].left<=lbrc[1].left && lbrc[0].top<=lbrc[1].top ? 0 : 1;

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Mon Mar 12, 2012 16:15    Post subject: Reply with quote

MVV wrote:
Обновил файл.
Теперь нормально.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 12, 2012 20:02    Post subject: Reply with quote

Вот и отлично. Smile

Кстати, Гислер не прочь исправить баг с всплывающей подсказкой над сепаратором.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Tue Mar 13, 2012 16:20    Post subject: Reply with quote

MVV
Заметил такой эффект.
1. Смещаю разделитель панелей от середины.
2. С помощью sp_set_active(50) возвращаю в середину.
3. Перехожу в режим “панели одна над другой”: разделитель уходит в выбранное в предыдущем режиме смещённое положение.
Если пункт 2 выполняю средствами TC, то всё нормально.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Tue Mar 13, 2012 16:51    Post subject: Reply with quote

Ну, видимо, при удаленном командовании тотал в своих внутренних переменных не запоминает, что сепаратор был сдвинут. Тот же эффект можно заметить и с любым другим процентом.
Если надо ставить на середину, используй tcm(909), на другие проценты скорее всего так не получится.


Ага, а вот и косяки SendMessage вместо PostMessage. Прям палка о двух концах. С PostMessage позиция ставится криво (я писал выше - задаю одну координату, получаю другую), с SendMessage она не запоминается... Похоже, придётся вернуть PostMessage, лучше погрешность в 2 пикселя, чем такие косяки с сохранением позиции...
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Wed Mar 14, 2012 14:51    Post subject: Reply with quote

MVV wrote:
Похоже, придётся вернуть PostMessage, лучше погрешность в 2 пикселя, чем такие косяки с сохранением позиции...

Тем более, что разделитель сейчас теряет позицию и при изменении размеров окна TC, его сворачивании/разворачивании и т.п. случаях.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Wed Mar 14, 2012 15:45    Post subject: Reply with quote

Обновил файл, вернул обратно PostMessage вместо SendMessage. Повторяю, при установке позиции может быть некоторая погрешность (при этом определяется позиция правильно).

TCFS2Tools 1.4.2.154
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Wed Mar 14, 2012 16:02    Post subject: Reply with quote

MVV wrote:
вернул обратно PostMessage вместо SendMessage
Теперь хорошо.
MVV wrote:
при установке позиции может быть некоторая погрешность
Если постараться, то заметить погрешность можно, но на что реально это может отрицательно повлиять, пока не представляю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 51, 52, 53 ... 128, 129, 130  Next
Page 52 of 130

 
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