Значки в Totalcmd.exe и внешних ICL-библиотеках
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Секреты и советы

#1: Значки в Totalcmd.exe и внешних ICL-библиотеках Author: AvadaLocation: Россия, Саратов PostPosted: Wed Feb 23, 2011 10:26
    —
Этот микросправочник — результат обсуждения, начатого в своё время здесь. Я тогда собирался представить некую сводку по компоновке и поведению значков, содержащихся в 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

#2:  Author: iglezz PostPosted: Wed Feb 23, 2011 12:59
    —
Quote:
• значки 4/21 применяются ко всем EXE- и PIF-файлам без исключения;

К BAT-файлам тоже...

#3:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Feb 23, 2011 13:28
    —
iglezz
Не совсем так. Смотрим контекст, из которого взята цитата. К BAT-файлам (равно как и к COM) эти значки применяются при любом состоянии опции, поскольку собственных значков эти файлы не содержат и ни с чем не ассоциированы. Тут никакой зависимой от настроек специфики нет, потому и не оговаривалось. Но раз возник вопрос, дополнительную строку добавил.

#4:  Author: CaptainFlintLocation: Москва PostPosted: Thu Feb 24, 2011 00:52
    —
Уточнение для 6/16: только если не используются оверлейные значки (иначе значок руки берётся из системного оверлея).

#5:  Author: Serge Yolkin PostPosted: Thu Feb 24, 2011 01:09
    —
Avada
CaptainFlint
6/17, а не 16... (с пол-года назад сам разбирался, методом тыка, - до сих пор на память...)

#6:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Feb 24, 2011 10:50
    —
CaptainFlint
Serge Yolkin
Спасибо, учтено.

#7:  Author: ask-rusLocation: Russian Federation PostPosted: Wed Mar 16, 2011 16:22
    —
Подобный микросправочник по WCMICONS.DLL мне бы сейчас здорово пригодился.

#8:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Mar 20, 2011 13:30
    —
ask-rus
Во-первых, в ближайшее время я этим по-любому заниматься не буду. Во-вторых, там ничего "секретного" нет, каждый в принципе может для себя разобраться, что чему соответствует (с поправкой на разницу нумерации значков в Wcmicons.inc и во внешних программах для просмотра библиотек). В третьих, с таким количеством значков это уже не очень-то "микро". Короче, имеешь идеи — пиши в личку, а там видно будет.

#9:  Author: mrmerak PostPosted: Sun Mar 20, 2011 19:30
    —
Avada
надо б инфу на tckb.ru закинуть

#10:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Mar 20, 2011 21:17
    —
Моя предложить завернуть в *.CHM как расширяемое (+WCMICONS.DLL) дополнение к Справке, не в ближайшее, но в любое другое.
Mr.Merak wrote:
надо б инфу на tckb.ru закинуть

[off]
Там бы версию TC в Новостях обновить для начала.
[/off]

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Mar 20, 2011 21:25
    —
ask-rus
Оффтоп — в личку! Здесь, пожалуйста, только по основной теме.

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

Да, согласен. Но я этого раньше никогда не делал, а осваивать сейчас некогда, есть гораздо более приоритетные дела.

#12:  Author: mrmerak PostPosted: Thu Jun 30, 2011 12:25
    —
Avada
все таки статья крутая и имхо не должна просто тут пылиться.
мб в http://flint-inc.ru/tchelp/ отдельной веткой добавить или тут закрепить?

#13:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jun 30, 2011 13:39
    —
Mr.Merak
Добавить отдельной веткой — это вряд ли (в конце концов, это статья, посвящённая локальной проблеме, а не универсальный справочник, полезный всем и всегда). А закреплять — на этом подфоруме после модераторской чистки осталось не так уж много тем, чтобы что-то потерять и не найти. В общем, предложение принято к сведению, но ничего пока не обещаю.

#14:  Author: mrmerak PostPosted: Thu Jun 30, 2011 14:45
    —
Avada
ты ж вроде когда-то вылаживал обновленный icl? может его сюда тоже стоит добавить?

#15:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jun 30, 2011 20:34
    —
Mr.Merak
Добавлено в "Источники значков".



Total Commander -> Секреты и советы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group