Как получить доступ к тематике шрифтов и цветов на GTK / Gnome - PullRequest
2 голосов
/ 11 мая 2010

Допустим, я хочу написать специальный виджет текстового редактора.

Как я могу получить тематические цвета по умолчанию для текстов, выделенный текст и фон и которые по умолчанию являются пользователями шрифты?

Я вижу, что GNOME определяет 5 специальных системных шрифтов и размеры по умолчанию для этого в диалоге настройки внешнего вида GNOME, но я не нашел ни одного слова в документации GTK, как получить к ним доступ (а список рассылки GTK - шутка :-().

Windows и Какао дают мне десятки системных значений.

Я нашел класс GtkStyle, но это не то, что мне нужно.

1 Ответ

6 голосов
/ 11 мая 2010

Для цветов по умолчанию используйте что-то вроде этого:

GdkColor color;
/* Look up the default text color in the theme, use a default 
if it's not defined */
GtkStyle *style = gtk_rc_get_style(my_widget);
if(!gtk_style_lookup_color(style, "text_color", &color))
    gdk_color_parse("black", &color);

Есть несколько имен, определенных для gtk_style_lookup_color(). Немного неясно, где именно они определены, но это те, которые вы можете определить в диалоге GNOME:

  • fg_color
  • bg_color
  • base_color
  • text_color
  • selected_bg_color
  • selected_fg_color
  • tooltip_bg_color
  • tooltip_fg_color

Что касается шрифтов и других системных настроек, вам нужно использовать библиотеку GConf, чтобы получить эти значения по умолчанию. GTK ничего не знает о них, потому что они являются частью рабочего стола GNOME, а не GTK. Шрифт по умолчанию можно найти, например, по ключу /desktop/gnome/interface/font_name. Если вы установили редактор конфигурации GConf, вы можете просмотреть эти ключи, чтобы увидеть, какие из них доступны; они все под /desktop/gnome.

PS. О каком списке рассылки GTK вы спрашивали? Тот, который я читаю, не кажется шуткой ...

...