Новая система поддержки иконок встроена в операционные системы начиная с AmigaOS 3.5. Данная система позволяет работать системными средствами как со старым форматом иконок, так и с форматом иконок NewIcons. В дополнение к этому, поддерживается новый формат иконок, появившийся в AmigaOS 3.5. Новый формат описания иконок позволяет получать изображения иконок, содержашие вплоть до 256 цветов.
На диске с операционной системой Вы можете найти большую коллекцию иконок в новом формате; некоторые из них Вы можете видеть слева. Кстати сказать, приведенная здесь панель иконок отнюдь не виртуальна - она создана программой под названием AmiDock, которая входит в состав Amiga OS 3.9.
На данный момент существует четыре различных системы иконок для Амиги: старая 4-х цветная система для Workbench, система Magic Workbench, создающая подобие стиля 3D восемью цветами, система многоцветных 3D-иконок NewIcon и цветовая иконочная система Workbench 3.5, которая вмещает и заменяет все перечисленные.
Благодаря обновлённой библиотеке icon.library Workbench теперь поддерживает файлы иконок (с расширением .info), содержащие большее количество цветов, чем доступные ранее 4 или 8 цветов.
Обновлённая программа редактирования иконок IconEdit (см. ниже) поддерживает 256 цветов и имеет несколько дополнительных возможностей по созданию новых иконок; с помощью этого редактора внешние изображения могут быть сконвертированы в иконки.
Workbench работает и с иконками Glow, изображения которых при нажатии имеют огненную окантовку. Эту окантовку Вы можете создать также в редакторе IconEdit.
В составе пакета новой ОС идёт несколько дополнительных продуктов, так или иначе связанных с иконками. Например, на компакт-диске Вы найдёте утилиты для перегонки иконок между различными форматами. Здесь же представлены и другие полезные программные продукты для работы с иконками. Остановлюсь на некоторых из них.
Библиотека newicon.library от Stephan Rupprecht. На самом деле, это не новая версия известной библиотеки. Благодаря тому, что новая система иконок поддерживает формат NewIcons, теперь стало возможным работать с такими иконками напрямую из системы, и отпала надобность в оригинальной библиотеке. Для этого и была реализована библиотека-заглушка, которая является интерфейсом между системой и теми программами, которые работали с иконками формата NewIcon через данную библиотеку.
Следствием поддержки системой иконок в формате NewIcons стало и то, что Вы теперь можете не прописывать строку запуска программы newicons в файл пользовательского сценария загрузки (User-Startup).
Особо хотелось бы отметить поддержку так называемых иконок «по умолчанию». Я поясню, если Вы не в курсе, о чём идёт речь.
Всем известно, что файлы не обязательно должны иметь иконки. То есть часто возможна ситуация, когда файл не имеет прикреплённой к нему иконки. В этом случае, если для рабочего стола установлен режим «Окно/Показать/Все файлы», то файлы, не имеющие прикреплённых иконок, будут отображены в окне иконками типов «Инструмент» или «Проект» по усмотрению ОС. Это не совсем удобно, так как не даёт Вам никакой быстрой визуальной информации о том, что же содержится в файле на самом деле - приходится ориентироваться по расширениям имён файлов.
На данный момент существует два пути, устраняющих это неудобство. Оба решения связаны с тем, что на момент отображения файла, не имеющего иконки, операционной системе «подсовывается» некая иконка, которая и отображается вместо отсутствующей. Таким замещением заведует специально запущенная программа, которая по определённому алгоритму решает, какому файлу какую иконку поставить в соответствие. Для удобства пользователя иконки-заменители ассоциируются с определёнными типами файлов. Именно здесь и кроется различие двух описываемых алгоритмов.
По первому алгоритму, используемому программой TweakWB от Ярослава Покорного (Jaroslav Pokorny; архив можно найти на Aminet: util/wb), файл без иконки просто пропускается через систему автоматического определения типа данных, реализованную на Амиге через datatypes. В этой системе данные файлов идентифицируются по суперклассам и подклассам. После такой классификации программа имеет имена суперкласса, к которому принадлежат данные, и подкласса, если таковой существует. Например, документ в формате amigaguide входит в состав суперкласса docu и принадлежит к подклассу amig. Для такого файла, если он не содержит иконки, программа TweakWB будет брать иконку def_docu_amig.info из каталога ENVARC:sys/deficons/. Если же подкласс не будет обнаружен, то будет использована иконка суперкласса, например, def_docu.info.
Таким образом, пользователь может создать множество иконок для различных типов файлов. Но данное решение, несмотря на свою простоту и элегантность, имеет несколько недостатков. Во-первых, использование тех или иных иконок напрямую связано с наличием у пользователя установленных типов данных; то есть, если какой-либо тип данных не проинсталлирован, то и ассоциированная с ним иконка окажется бесполезной, так как файл просто не будет распознан. Этот факт значительно сужает количество используемых иконок-заменителей и принуждает пользователя к установке типов данных, распространяемых сторонними производителями. Во-вторых, идентификация через систему datatypes иногда требует значительного времени, например, есть сообщения, что идентификация некоторых музыкальных файлов в формате mp3 занимает несколько секунд (!). И, наконец, следует признать, что существует ряд типов данных, при идентификации которых возможно зависание или перезапуск системы по ряду причин, например из-за несовместимости с версией ОС, типом процессора, или просто по причине несовершенства программного продукта. Следует также заметить, что иногда возможна и неправильная идентификация типа файла из-за несовершенства процедур классификации.
Второй путь ассоциирования иконок и файлов заключается в том, что пользователь заранее настраивает способ проверки файлов на определённые типы и указывает, какие иконки использовать для этих типов. По этому пути действует программа DefIcons от Stephan Rupprecht, входящая в комплект поставки Amiga OS 3.9.
Использовать DefIcons просто - необходимо поместить эту программу в каталог WBStartup, после чего она будет запускаться каждый раз при загрузке системы. Обратите внимание, что на самом деле Вы имеете две программы с названием DefIcons: одна - это уже описанная программа-системный расширитель, а вторая - программа настроек распознаваемых типов файлов, расположенная в каталоге Prefs (см. ниже).
По своей сути эта программа настроек позволяет интуитивно понятно установить способ идентификации типов файлов; Вам просто необходимо описать порядок действий и проверок, необходимых для однозначной интерпретации того или иного типа. Более того, программа имеет механизм самообучения; так, «скормив» ей несколько однотипных файлов, можно научить программу правильно распознавать тот или иной тип данных. Соответствующие иконки располагаются в каталоге ENVARC:sys/ и начинаются с префикса def_.
Данный способ идентификации типов файлов не зависит от наличия или отсутствия в системе установленных типов данных и корректности их работы. Такое решение позволяет без проблем переносить набор иконок и файл-описатель настроек с одного компьютера на другой без потери работоспособности программы. Как правило, данный алгоритм определения типа работает быстрее, чем первый. Кроме того, он более гибок, так как позволяет пользователю в случае необходимости в любой момент времени изменить описание последовательности идентификации. С другой стороны, этот способ требует настройки типов файлов пользователем, тогда как алгоритм определения через типы данных полностью автономен. Хотя следует заметить, что в комплекте с DefIcons идёт файл настроек с уже описанными более чем 120-ю типами файлов, что более чем достаточно даже для искушённого пользователя.
Да, чуть не забыл... Может кто спросит, а зачем вообще эти иконки-заменители нужны-то? Мол, если нет иконки, то значит она и не нужна. Что ж, доля смысла в них всё же есть. Дело в том, что все эти иконки являются иконками типа «Проект». А такие иконки имеют поле «Инструмент по умолчанию». Прописав в этом поле для каждого типа файлов нужную программу, можно добиться того, что, например, при щелчке по иконке музыкальных файлов будет запускаться ваш любимый проигрыватель, а для изображений - программа просмотра графики и т.п. Помимо всего прочего, это просто красиво :)
Oleg Sergeev aka BigBlack