Понимание путей * nix icons - PullRequest
5 голосов
/ 25 июля 2010

Может кто-нибудь объяснить, почему у многих программ есть пути к иконкам таким образом: / usr / share / program / icons / hicolor / 16x16 / ...

Что я не понимаю, так это почему hicolor и почему 16x16, 32x32 и т. Д.

Существуют ли какие-либо функции (например, в GTK), которые автоматически получают правильный значок из таких путей?

Спасибо!

Ответы [ 3 ]

11 голосов
/ 25 июля 2010

Эти пути значков стандартизированы спецификацией Icon Theme .Причина заключается в том, что все приложения могут устанавливать свои значки по умолчанию в тему hicolor (это тема по умолчанию, что означает, что если значок отсутствует в другой теме, будет использоваться версия hicolor).

Кроме того, программа может запросить размер значков, отличающийся от предоставленных, скажем, 37x37, и система выберет наиболее подходящий доступный размер (например, 32x32) и масштабирует его до требуемого размера.

Если кто-то хочет переопределить значок приложения, например, чтобы сделать высококонтрастную черно-белую версию для пользователей с плохим зрением, то все, что им нужно сделать, это сделать значок с тем же именем и поместить его ввысококонтрастная черно-белая тема, которая заменит значок hicolor.

Функции, о которых вы спрашиваете, также существуют.В GTK есть функции, которые принимают параметр const gchar *icon_name, например gtk_image_new_from_icon_name().Они загрузят значок с именем, которое вы указали в текущей теме, и, если его нет в текущей теме, то из темы hicolor.

2 голосов
/ 25 июля 2010

Термин «hicolor» - это название стандартного набора значков, который является запасным вариантом для всех других наборов значков, что означает, что если значок приложения не найден в текущем наборе значков (например, /usr/share/icons/oxygen), то hicolorКаталог ищется следующим.

16x16, 32x32 - это размер изображений, хранящихся в этом каталоге, поскольку значки хранятся в виде простых файлов PNG, которые содержат ровно одно изображение (в отличие отНапример, .icns на Mac).

0 голосов
/ 25 июля 2010

Если вопрос не «Почему« hicolor »?» , как ответили другие, а «Зачем использовать файловую систему в качестве древовидной базы данных?» ответ таков: файловые системы unix (все старые) отключаются при прохождении путей, где в каталоге более 1000 записей.

Поскольку каталоги в этих файловых системах необходимо искать линейно .

Некоторые более современные файловые системы поддерживают поиск O (log N) и могут эффективно обрабатывать большее число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...