デフォルトテーマのシンボリックアイコンを使用するアプリケーションを作成しています。
ただし、デフォルトのテーマのアイコンでは表現できないアイコンがいくつか必要なので、独自のアイコンを作成しています。
私がやったのは、単に/usr/share/icons/gnome/scalable/actions/
に移動し、いくつかをローカルでアプリのソースツリーにコピーして、それをベースとして使用し、編集を開始することでした。
ここまでは順調ですね。しかし、私は次のことに気付きました。元の.svgファイルを見ると、すべての記号アイコンは明るい灰色ですが、ウィジェットに置くと暗くなります。
デフォルトテーマの/usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
アイコンを使用した例を次に示します。
実行時にアイコンが非常に濃くなることに注意してください。それはアンビエンスとラディアンスの両方のテーマで起こります。
あまり気にしませんが、カスタムアイコンに影響することに気付きました。カスタムアイコンの一部はより暗くなり(内側の塗りつぶし)、一部はオリジナルと同じ色のままです(ストローク)。
それでは、デフォルトのシンボリックアイコンが暗くなる原因は何ですか?それをカスタムアイコンにどのように実装する必要がありますか?
#bebebeff
)のグレーで作成されます。その後、fg_color
(GTK3)またはgtkrc
(GTK2)のテーマで定義されたsettings.ini
値に基づいて色を付けることができます。またはCSS(GTK3)で定義されているfg_color
に。fg_color
)は#4c4c4c
でダークグレー(/usr/share/themes/Ambiance/gtk-3.0/settings.ini
)に設定されます、これが記号アイコンがより暗く見える理由です。カスタムシンボリックアイコンの外観を同じにするには、ストロークを削除する必要がありますを使用し、RGBA値を#bebebeff
に設定した塗りつぶしのみを使用します。そうでない場合、ストロークは常にセットとして表示されます(つまり、グレーまたは任意の色)。
これにより、素敵で均一な「MyRefresh」シンボリックアイコンが得られます。
あるユーザーは、デフォルトのgnomeシンボリックアイコンの代わりに、別の暗いアイコンが開かれていることを示しました。この痕跡が示すように、そのアサーションは正しくありません:
シンボリックアイコンは通常、テーマによって「色」プロパティを使用して設定されます。これは大きな利点であり、どの背景でも見栄えがよくなります。ただし、独自の色で読み込むことができます。
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);