如何访问GTK/Gnome的主题字体和颜色?

3

假设我想编写一个特殊的文本编辑器小部件。

如何获取默认主题的文字颜色、选中文本的颜色以及背景颜色,以及用户的默认字体?

我注意到GNOME在GNOME外观配置对话框中为此定义了5个特殊的系统字体和默认大小,但是我在GTK文档中没有找到任何关于如何访问它们的信息(而GTK邮件列表简直就是一个笑话:-()。

Windows和Cocoa都提供了数十个系统值。

我找到了GtkStyle类,但这似乎不是我需要的。

1个回答

6

对于默认颜色,请使用以下内容:

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下。

附:您在哪个GTK邮件列表上发问了?我看到的似乎不是一个玩笑……


感谢您提供的好答案。我关注的是“gtk-list@gnome.org”,这是一个非常低频的邮件列表,似乎没有核心开发人员参与其中。 - Lothar
1
“gtk-app-devel”列表和“gtk-devel”列表非常活跃。 - ptomato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接