Saya membuat aplikasi yang menggunakan ikon simbolis dari tema default.
Namun, ada beberapa ikon yang saya butuhkan yang tidak dapat diwakili oleh mereka yang berasal dari tema default, jadi saya membuat yang saya sendiri.
Apa yang saya lakukan hanyalah pergi ke /usr/share/icons/gnome/scalable/actions/
, menyalin beberapa secara lokal ke pohon sumber aplikasi saya yang dapat berfungsi sebagai dasar, dan mulai mengeditnya.
Sejauh ini bagus. Tapi saya perhatikan yang berikut ini: semua ikon simbolis berwarna abu-abu terang ketika melihat file .svg asli, tetapi ketika mereka dimasukkan ke widget, mereka menjadi lebih gelap.
Ini sebuah contoh, menggunakan /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
ikon dari tema default:
- Begini tampilannya saat membuka dokumen asli dengan Inkscape:
- Dan inilah tampilannya pada toolbar di aplikasi yang sedang berjalan:
Perhatikan ikon menjadi lebih gelap saat runtime. Itu terjadi baik dengan tema Suasana dan Cahaya.
Saya tidak terlalu keberatan, tetapi saya perhatikan itu mempengaruhi ikon kebiasaan saya, di mana bagian-bagian itu menjadi lebih gelap (isi bagian dalam), sedangkan bagian-bagiannya tetap berwarna sama seperti aslinya (goresan).
Jadi apa yang menyebabkan ikon simbolis default menjadi gelap dan bagaimana menerapkannya untuk ikon khusus saya?
sumber
Jawaban:
#bebebeff
). Mereka kemudian dapat diwarnai berdasarkanfg_color
nilai yang ditentukan oleh tema dalamsettings.ini
(GTK3) ataugtkrc
(GTK2); atau pada yangfg_color
didefinisikan dalam CSS (GTK3).fg_color
) diatur ke abu-abu gelap (#4c4c4c
) di/usr/share/themes/Ambiance/gtk-3.0/settings.ini
, itulah sebabnya ikon simbolik tampak lebih gelap.Untuk membuat ikon simbolis khusus terlihat sama, Anda harus menghapus goresannya dan gunakan hanya isi dengan nilai RGBA yang diatur ke
#bebebeff
; jika tidak, goresan akan selalu muncul sebagai set (yaitu, abu-abu atau warna apa pun).Ini memberi kita ikon simbolik "MyRefresh" yang bagus dan merata:
sumber
#bebebeff
?fg_color
(menggunakan libRSVG ); mesin jelas membedakan antara isian dan guratan, dan tampaknya diberi kode untuk diterapkanfg_color
hanya pada isian sambil meninggalkan goresan seperti apa adanya. Itu bisa dilakukan karena SVG adalah format vektor (parameter), sedangkan untuk ikon bitmap yang biasa, semuanya hanya piksel :)Ikon simbolik biasanya diatur oleh tema menggunakan properti "warna", itulah keuntungan besar mereka, mereka terlihat bagus di latar belakang apa pun. Namun Anda dapat memuatnya dengan warna Anda sendiri.
Contoh kode vala:
sumber