2010-07-25 13 views
5

Könnte jemand bitte erklären, warum viele Programme ihre Symbole haben Pfade auf diese Weise: /usr/share/Programm/icons/hicolor/16x16/...Verständnis * nix-Icons' Pfade

Was ich don‘ verstehen t Deshalb hicolor und warum 16x16, 32x32 usw.

gibt es irgendwelche Funktionen (zB in GTK), der automatisch das richtige Symbol aus einem solchen Art von Pfaden bekommen?

Vielen Dank!

Antwort

11

Diese Symbolpfade sind durch die Icon Theme Specification standardisiert. Die Argumentation ist, dass alle Anwendungen ihre Standard-Icons in das hicolor Thema installieren (die das Standardthema ist, was bedeutet, dass, wenn ein Symbol von einem anderen Thema fehlt, wird die Version von hicolor verwendet werden.)

Auch ein Programm kann eine Symbolgröße anfordern, die sich von den bereitgestellten unterscheidet, sagen 37x37, und das System wird die am besten geeignete verfügbare Größe (wie 32x32) auswählen und es auf die angeforderte Größe skalieren.

Wenn jemand das Symbol der Anwendung überschreiben möchte, um zum Beispiel eine kontrastreiche Schwarzweißversion für Benutzer mit Sehschwäche zu erstellen, müssen sie lediglich ein Symbol mit demselben Namen erstellen und einfügen es im kontrastreichen Schwarz-Weiß-Thema, und es wird das Symbol hicolor überschreiben.

Die Funktionen, nach denen Sie fragen, existieren auch. In GTK gibt es Funktionen, die einen const gchar *icon_name Parameter wie gtk_image_new_from_icon_name() übernehmen. Dadurch wird das Symbol mit dem von Ihnen angegebenen Namen aus dem aktuellen Thema geladen, und wenn es nicht im aktuellen Thema vorhanden ist, dann aus dem Thema hicolor.

2

Der Begriff "hicolor" ist der Name des Standard-Icon-Sets, das als Ersatz für alle anderen Icon-Sets verwendet wird, dh wenn das Symbol einer Anwendung nicht im aktuellen Icon-Set (zB) gefunden wird wird als nächstes gesucht.

16x16, 32x32 impliziert die Größe der Bilder, die in diesem Verzeichnis gespeichert sind, da die Symbole als einfache PNG-Dateien gespeichert sind, die genau ein Bild enthalten (anders als beispielsweise .icns auf Mac).

0

Wenn die Frage nicht ist "Warum 'hicolor'?" wie andere beantwortet haben aber "Warum das Dateisystem als eine baumartige Datenbank verwenden?" Die Antwort ist, dass die meisten Unix-Dateisysteme (alle alten) bei Laufwegen, wo mehr als ~ 1000 Einträge in einem Verzeichnis sind, stecken bleiben.

Da Verzeichnisse in diesen Dateisystemen gesucht werden müssen linear.

Einige modernere Dateisysteme unterstützen O (log N) Suchvorgänge und können effizient mit höheren Zählungen umgehen.