LINUX.ORG.RU

Как получить цвета из дефолтной темы GTK+3?

 , , , ,


2

2

В общем, нужно получить цвета из дефолтной темы в рантайме внутри кода на Си. Как это быстрее и проще всего сделать?

Старые методы, которыми полнится инет, не работают, а с CSS-темингом я пока не разобрался.

★★★★★

В общем, пока как-то так решил:

GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkStyleContext* context = gtk_widget_get_style_context(window);
GdkRGBA rgba;
gtk_style_context_lookup_color(context, "theme_selected_fg_color", &rgba);
g_print("%s\n", gdk_rgba_to_string(&rgba));

Названия цветов для второго параметра в 4 строке проще всего глянуть в CSS-файле с любой темой GTK.

Однако, неочевидность GTK-шной документации порой приводит в недоумение.

meliafaro ★★★★★ ()
Последнее исправление: meliafaro (всего исправлений: 1)

А с какой целью нужно получить? Если нужно значение определенных цветов, то это одно, а если нужно соответствие цветов приложения цветам темы, то это другое.

anonymous ()

Какие «цвета» когда там честный css? Там ведь тени-градиенты и вообще черта в ступе найти можно. Тот цвет который ты достанешь может вообще на экране не встречаться.

morse ★★★★★ ()
Ответ на: комментарий от anonymous

Нужны были именно значения определённых цветов.

meliafaro ★★★★★ ()
Ответ на: комментарий от morse

В итоге я решил проблему, как указано выше. Да, по факту, это просто достаёт определённые переменные из CSS.

meliafaro ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.