Je crée une application qui utilise des icônes symboliques du thème par défaut.
Cependant, il y a quelques icônes dont j'ai besoin et qui ne peuvent pas être représentées par celles du thème par défaut. Je crée donc les miennes.
Ce que j'ai fait était simplement d'aller à /usr/share/icons/gnome/scalable/actions/
, d'en copier quelques-uns localement dans l'arborescence source de mon application pouvant servir de base et de commencer à les éditer.
Jusqu'ici tout va bien. Mais j'ai remarqué ce qui suit: toutes les icônes symboliques sont de couleur gris clair lorsque vous regardez le fichier .svg d'origine, mais lorsqu'elles sont placées dans un widget, elles deviennent plus sombres.
Voici un exemple utilisant l’icône /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
du thème par défaut:
Notez que l'icône est beaucoup plus sombre au moment de l'exécution. Cela se produit à la fois avec les thèmes Ambiance et Radiance.
Cela ne me dérangerait pas beaucoup, mais j'ai remarqué que cela affectait mon icône personnalisée, certaines parties devenant plus foncées (remplissage intérieur), alors que certaines parties conservaient la même couleur que l'original (le trait).
Qu'est-ce qui fait donc que les icônes symboliques par défaut s'assombrissent et comment doit-on les implémenter pour mes icônes personnalisées?
#bebebeff
). Ils peuvent ensuite être colorés en fonction de la valeur fg_color
définie par le thème dans settings.ini
(GTK3) ou gtkrc
(GTK2); ou sur le fg_color
défini dans le CSS (GTK3). fg_color
) est définie sur gris foncé (#4c4c4c
) dans /usr/share/themes/Ambiance/gtk-3.0/settings.ini
, raison pour laquelle le symbole les icônes semblent plus sombres.Pour que les icônes symboliques personnalisées aient le même aspect, vous devez supprimer le trait et utilisez uniquement le remplissage avec la valeur RGBA définie sur #bebebeff
; sinon, le trait apparaîtra toujours comme défini (c'est-à-dire gris ou quelle que soit la couleur).
Cela nous donne une icône symbolique "MyRefresh" agréable et homogène:
Un utilisateur a indiqué qu’une icône différente plus sombre était en train d’être ouverte à la place de l’icône symbolique par défaut du gnome; comme le montre cette strace, cette assertion est incorrecte:
Les icônes symboliques sont généralement définies par le thème à l'aide de la propriété "couleur", c'est leur grand avantage: elles ont fière allure sur n'importe quel fond. Vous pouvez cependant les charger avec votre propre couleur.
Exemple de code vala:
//get the icon theme and lookup the icon we want by name, here at a size of 64px
var info = Gtk.IconTheme.get_default ().lookup_icon ("view-refresh-symbolic", 64, 0);
//now load the icon as a symbolic with a color set in the brackets as RGBA, here as plain red
var pixbuf = info.load_symbolic ({1, 0, 0, 1});
//finally we just put in a GtkImage to render it
var image_widget = new Gtk.Image.from_pixbuf (pixbuf);