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 

Значки в Totalcmd.exe и внешних ICL-библиотеках
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Wed Feb 23, 2011 10:26    Post subject: Значки в Totalcmd.exe и внешних ICL-библиотеках Reply with quote

Этот микросправочник — результат обсуждения, начатого в своё время здесь. Я тогда собирался представить некую сводку по компоновке и поведению значков, содержащихся в Totalcmd.exe (в 64-битном TC 8.x — в Totalcmd64.exe) и, соответственно, во внешних ICL-библиотеках. Вот, наконец, результат. Картинка, отображающая (с помощью Microangelo) вид и порядок следования этих значков в Totalcmd.exe, доступна по ссылке, чтобы не раздувать ещё больше и без того немалый объём поста. Описания первых 23 значков можно найти, разумеется, и во многих других источниках, но там обычно много неточностей и анахронизмов, от которых я постарался тут избавиться.

(Далее указаны порядковые номера значков в ресурсах Totalcmd.exe и, соответственно, во внешних библиотеках)
1 • Значок в системном трее, заголовках окон TC и большинства встроенных инструментов
2 • Обычная папка (и стандартный значок для любой папки, кроме скрытой/системной) — 32
3 • PIF-файл в версиях до 4.x (сейчас не используется) — 32
4 • Файл программы, не содержащий значков (и стандартный значок для любого EXE-файла) — 32
5 • Несвязанный файл (и стандартный значок для файла, не имеющего особого стандартного значка) — 32
6 • Папка общего доступа — 32
7 • Папка под курсором в дереве (открытая в файловой панели) или в меню цепочек навигации — 32
8 • Файл архива в момент открытия — все размеры
9 • Любой файл, определяемый TC как архивный — все размеры
10 • Скрытый/системный файл любого типа — 32
11 • Элемент [..] для перехода на уровень вверх — все размеры
12 • Скрытая/системная папка — 32
13 • Стандартный значок для ярлыка — все размеры
14 • Обычная папка (и стандартный значок для любой папки, кроме скрытой/системной) — 16
15 • Несвязанный файл (и стандартный значок для файла, не имеющего особого стандартного значка) — 16
16 • Скрытая/системная папка — 16
17 • Папка общего доступа — 16
18 • Папка под курсором в дереве (открытая в файловой панели) или в меню цепочек навигации — 16
19 • Скрытый/системный файл любого типа — 16
20 • PIF-файл в версиях до 4.x (сейчас не используется) — 16
21 • Файл программы, не содержащий значков (и стандартный значок для любого EXE-файла) — 16
22 • Кодированный файл, не ассоциированный с внешней программой — 32
23 • Кодированный файл, не ассоциированный с внешней программой — 16
24 • Значок в заголовке окна внутреннего инструмента сравнения по содержимому
25 • Значок в заголовке окна внутренней программы просмотра
26 • Значок в системном трее (16-битный, специально для Windows 9x/ME/2000)
27 • Значок быстрого фильтра (в окне быстрого фильтра или в строке состояния)
28 • Соединение с FTP-сервером: значок обычного FTP-подключения
29 • Соединение с FTP-сервером: значок безопасного FTP-подключения
30 • Соединение с FTP-сервером: значок обычного FTP-подключения, защищённого главным паролем
31 • Соединение с FTP-сервером: значок безопасного FTP-подключения, защищённого главным паролем
32 • Значок для файлов контрольных сумм (SFV, MD5, SHA) — все размеры
33 • Значок в заголовке окна внутреннего инструмента синхронизации
34 • Значок для элемента ftp в дереве и \ftp в меню цепочек навигации — все размеры
35 • Значок-индикатор, отображаемый в процессе фоновой операции с папкой — все размеры
36 • Значок-индикатор, отображаемый в процессе фоновой операции с файлом — все размеры
37 • Windows 7, окно Aero Peek: значок на кнопке "Пауза" для приостановки выполняемых операций
38 • Windows 7, окно Aero Peek: значок на кнопке "Старт" для возобновления выполняемых операций

Отображение значков, относящихся к файловым панелям, в зависимости от размера:
16 — отображается (кроме режима эскизов), когда на странице настроек "Значки" для опции "Размер значков" задано значение 16x16;
32 — отображается в режиме эскизов или когда на странице настроек "Значки" для опции "Размер значков" задано значение 32x32;
Все размеры — в любом случае используется один и тот же значок, размер выбирается автоматически.
Примечание: Если в настройках TC выбран размер значков в диапазоне 17-31, то в файловых панелях при наличии пары однотипных стандартных значков используется масштабированный до указанного значок 32x32.

Источники значков:
Все вышеуказанные значки по умолчанию берутся из файла Totalcmd.exe или Totalcmd64.exe. Пользовательские значки должны быть включены во внешнюю ICL-библиотеку, чьё имя указано как значение ключа IconLib в секции [Configuration] файла wincmd.ini. Следует учитывать, что в Windows Vista и выше отсутствует поддержка 16-битных библиотек, поэтому старые библиотеки значков следует преобразовать в 32-битные (о методике см., например, здесь).
ICL-библиотека, содержащая тот же набор значков, что Totalcmd.exe 7.56, выложена здесь в качестве исходника для самостоятельного редактирования. (В следующих 32-битных версиях TC изменений в этом наборе пока не было, а о специфике 64-битных версий TC 8.x сказано далее.)
Для обработки значков из внешней библиотеки важен только порядок их фактического следования, а не имена. При создании библиотеки пропускать значки (особенно 1-23) не следует, поскольку следующие значки окажутся не на своих местах и их привязка к элементам интерфейса нарушится.
Для редактирования готовых и создания собственных библиотек значков рекомендуются внешние средства (например, программа ArtIcons Pro или компоненты программного пакета Microangelo), а также WLX-плагин ICLView и WCX-плагин ICLRead.
Из внешней библиотеки даже при наличии в ней полного комплекта значков берутся только значки 1-23, 28-32 и 34-36. Прочие значки программа в любом случае берёт непосредственно из файла Totalcmd.exe/Totalcmd64.exe, а их аналоги во внешней библиотеке игнорируются.

Условия отображения значков:
Значки 1, 24-31, 33, 37-38 к файловым панелям TC не относятся, значки 35-36 отображаются там только временно, а значки 3 и 20 (а в новых ОС и 26) в настоящее время уже не используются (однако должны оставаться во внешней библиотеке на своих местах).
Если вы хотите изменить только основной значок программы, достаточно указать значением ключа IconLib ICO-файл с этим значком. Все прочие значки в этом случае будут использоваться встроенные.
В исполняемых файлах TC 8.x разной битности первый значок набора несколько отличается: к изображению дискетки на этих значках размером 32x32 и 48x48 в Totalcmd64.exe добавлена маленькая надпись 64.
Следует также знать, что значок 1 (MAINICON) из внешнего файла отображается не везде. Вы увидите его в заголовке окна TC, в кнопке в панели задач, в системном трее, а также в заголовках окон части встроенных инструментов TC (групповое переименование, поиск, настройка меню "Запуск" / избранных каталогов, выбор команды, окна фоновых операций и др.). В заголовках другой части окон (предпросмотр печати файлового списка, соединение с FTP-сервером, внутренние ассоциации / определение цветовых групп, настройки WDX-, WFX- и WLX-плагинов и др.) внешний значок 1 игнорируется, используется соответствующий встроенный значок. 16-битный аналог основного значка для старых ОС (26) всегда используется встроенный.
В заголовках окна встроенных инструментов просмотра, сравнения и синхронизации отображаются собственные значки (25, 24 и 33 соответственно). Однако из этого правила есть довольно странное исключение: если используется внешняя библиотека значков, то в заголовке окна синхронизации собственный значок отображается только при отдельном запуске программы (/S=S), а при обычном запуске отображается значок 1 из внешней библиотеки.

Область применения некоторых значков для файловых панелей:
(Меняется в зависимости от того, какой вариант показа значков выбран на странице настроек "Значки")
Выбор вместо "Все ассоциированные + EXE/LNK" опции "Только стандартные" или "Все ассоциированные" означает, что:
• папки, отображаются со значками 2/14 (обычные) или 12/16 (скрытые/системные), наличие у них специальных значков игнорируется, кроме папок общего доступа со стандартными значками (см. далее);
• у ярлыка вместо значка объекта ссылки отображается (только в этом случае!) значок 13;
• значки 4/21 применяются ко всем EXE- и PIF-файлам без исключения;
• значки 5/15 будут обозначать большинство остальных файлов (про исключения см. далее).
Примечания:
При включённой опции "Только ассоциированные" файлы, содержащие значки, отображаются либо со значками ассоциированных приложений (если такие ассоциации есть), либо со стандартными значками TC.
При включённой опции "Если EXE/LNK не на дискетах" и/или "Если EXE/LNK не в сети" некоторые значки меняют свой вид по указанным правилам, но только на дискетах и/или в сети.
Независимо от состояния указанных опций отображаются:
• значки 4/21 для COM- и BAT-файлов;
• значки 7/18 для папок под курсором в дереве, открытых в файловой панели;
• значки 6/17 для папок общего доступа (в XP — если отключена опция "Показывать оверлейные значки", иначе к значку папки добавляется системный оверлейный значок; в Windows 7 его больше нет, поэтому значок TC отображается и при включённой опции; см. также описания ключей IconOverlays и TestIfSharedDir в справке TC);
• значки 10/16 для скрытых/системных файлов ЛЮБОГО типа (включая ассоциированные, архивные и кодированные!);
• значки 8/9 для открывающихся/закрытых архивов (однако файлы, открываемые с помощью плагинов, можно показывать и со своими собственными значками - см. описание секции [PackerPlugins] в справке TC);
• значки 22/23 для кодированных файлов, не ассоциированных с внешней программой (например, с WinRAR), в противном случае отображается значок этой программы;
• значок 11 для элемента [..], обозначающего переход в родительскую папку;
• значок 32 для файлов контрольных сумм (если подобные файлы открываются с помощью WCX-плагинов, приоритет имеет значок 9, однако можно показывать эти файлы и со значком TC – см. описание секции [PackerPlugins] в справке TC);
• значок 34 для элемента ftp в дереве;
• значки 35/36 для индикации фоновых операций.
Примечание: Внутри архивов опция "Все ассоциированные + EXE/LNK" игнорируется, обработка ведётся по правилам опции "Все ассоциированные".

_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.


Last edited by Avada on Thu Jan 28, 2016 20:07; edited 24 times in total
Back to top
View user's profile Send private message
iglezz



Joined: 08 Dec 2010
Posts: 46

Post (Separately) Posted: Wed Feb 23, 2011 12:59    Post subject: Reply with quote

Quote:
• значки 4/21 применяются ко всем EXE- и PIF-файлам без исключения;

К BAT-файлам тоже...
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Wed Feb 23, 2011 13:28    Post subject: Reply with quote

iglezz
Не совсем так. Смотрим контекст, из которого взята цитата. К BAT-файлам (равно как и к COM) эти значки применяются при любом состоянии опции, поскольку собственных значков эти файлы не содержат и ни с чем не ассоциированы. Тут никакой зависимой от настроек специфики нет, потому и не оговаривалось. Но раз возник вопрос, дополнительную строку добавил.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Thu Feb 24, 2011 00:52    Post subject: Reply with quote

Уточнение для 6/16: только если не используются оверлейные значки (иначе значок руки берётся из системного оверлея).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Thu Feb 24, 2011 01:09    Post subject: Reply with quote

Avada
CaptainFlint
6/17, а не 16... (с пол-года назад сам разбирался, методом тыка, - до сих пор на память...)
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Thu Feb 24, 2011 10:50    Post subject: Reply with quote

CaptainFlint
Serge Yolkin
Спасибо, учтено.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2075
Location: Russian Federation

Post (Separately) Posted: Wed Mar 16, 2011 16:22    Post subject: Reply with quote

Подобный микросправочник по WCMICONS.DLL мне бы сейчас здорово пригодился.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Sun Mar 20, 2011 13:30    Post subject: Reply with quote

ask-rus
Во-первых, в ближайшее время я этим по-любому заниматься не буду. Во-вторых, там ничего "секретного" нет, каждый в принципе может для себя разобраться, что чему соответствует (с поправкой на разницу нумерации значков в Wcmicons.inc и во внешних программах для просмотра библиотек). В третьих, с таким количеством значков это уже не очень-то "микро". Короче, имеешь идеи — пиши в личку, а там видно будет.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
mrmerak



Joined: 20 Aug 2007
Posts: 416

Post (Separately) Posted: Sun Mar 20, 2011 19:30    Post subject: Reply with quote

Avada
надо б инфу на tckb.ru закинуть
_________________
TC 9.0a x64 | Win7 x64
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2075
Location: Russian Federation

Post (Separately) Posted: Sun Mar 20, 2011 21:17    Post subject: Reply with quote

Моя предложить завернуть в *.CHM как расширяемое (+WCMICONS.DLL) дополнение к Справке, не в ближайшее, но в любое другое.
Mr.Merak wrote:
надо б инфу на tckb.ru закинуть

[off]
Там бы версию TC в Новостях обновить для начала.
[/off]
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Sun Mar 20, 2011 21:25    Post subject: Reply with quote

ask-rus
Оффтоп — в личку! Здесь, пожалуйста, только по основной теме.

Mr.Merak wrote:
надо б инфу на tckb.ru закинуть

Да, согласен. Но я этого раньше никогда не делал, а осваивать сейчас некогда, есть гораздо более приоритетные дела.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
mrmerak



Joined: 20 Aug 2007
Posts: 416

Post (Separately) Posted: Thu Jun 30, 2011 12:25    Post subject: Reply with quote

Avada
все таки статья крутая и имхо не должна просто тут пылиться.
мб в http://flint-inc.ru/tchelp/ отдельной веткой добавить или тут закрепить?
_________________
TC 9.0a x64 | Win7 x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Thu Jun 30, 2011 13:39    Post subject: Reply with quote

Mr.Merak
Добавить отдельной веткой — это вряд ли (в конце концов, это статья, посвящённая локальной проблеме, а не универсальный справочник, полезный всем и всегда). А закреплять — на этом подфоруме после модераторской чистки осталось не так уж много тем, чтобы что-то потерять и не найти. В общем, предложение принято к сведению, но ничего пока не обещаю.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
mrmerak



Joined: 20 Aug 2007
Posts: 416

Post (Separately) Posted: Thu Jun 30, 2011 14:45    Post subject: Reply with quote

Avada
ты ж вроде когда-то вылаживал обновленный icl? может его сюда тоже стоит добавить?
_________________
TC 9.0a x64 | Win7 x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8529
Location: Россия, Саратов

Post (Separately) Posted: Thu Jun 30, 2011 20:34    Post subject: Reply with quote

Mr.Merak
Добавлено в "Источники значков".
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
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
Goto page 1, 2  Next
Page 1 of 2

 
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