Следующие две строки кода загружают изображение из файла SVG и устанавливают его в качестве значка для окна:
GdkPixbuf *icon = gdk_pixbuf_new_from_file("icon.svg", NULL);
gtk_window_set_icon(GTK_WINDOW(win), icon);
Этот файл SVG содержит, помимо прочего, прямоугольник, определенный как:
<rect
style="fill:#000000"
id="screen"
... />
Я хотел бы динамически изменить цвет этого элемента rect
после того, как я загрузил файл, но перед тем, как установить его в качестве значка для окна.
Если я вручную изменю атрибут style в этом элементе файла на диске перед тем, как запустить программу, это даст желаемый эффект. Но я бы хотел, чтобы она была установлена самой программой, чтобы она соответствовала выбранному цвету.
(Это позволяет различать несколько похожих окон в меню переключателя окон среди других мест)