Эти пути значков стандартизированы спецификацией Icon Theme .Причина заключается в том, что все приложения могут устанавливать свои значки по умолчанию в тему hicolor
(это тема по умолчанию, что означает, что если значок отсутствует в другой теме, будет использоваться версия hicolor
).
Кроме того, программа может запросить размер значков, отличающийся от предоставленных, скажем, 37x37, и система выберет наиболее подходящий доступный размер (например, 32x32
) и масштабирует его до требуемого размера.
Если кто-то хочет переопределить значок приложения, например, чтобы сделать высококонтрастную черно-белую версию для пользователей с плохим зрением, то все, что им нужно сделать, это сделать значок с тем же именем и поместить его ввысококонтрастная черно-белая тема, которая заменит значок hicolor
.
Функции, о которых вы спрашиваете, также существуют.В GTK есть функции, которые принимают параметр const gchar *icon_name
, например gtk_image_new_from_icon_name()
.Они загрузят значок с именем, которое вы указали в текущей теме, и, если его нет в текущей теме, то из темы hicolor
.