假设我想编写一个特殊的文本编辑器小部件。
如何获取默认主题的文字颜色、选中文本的颜色以及背景颜色,以及用户的默认字体?
我注意到GNOME在GNOME外观配置对话框中为此定义了5个特殊的系统字体和默认大小,但是我在GTK文档中没有找到任何关于如何访问它们的信息(而GTK邮件列表简直就是一个笑话:-()。
Windows和Cocoa都提供了数十个系统值。
我找到了GtkStyle类,但这似乎不是我需要的。
假设我想编写一个特殊的文本编辑器小部件。
如何获取默认主题的文字颜色、选中文本的颜色以及背景颜色,以及用户的默认字体?
我注意到GNOME在GNOME外观配置对话框中为此定义了5个特殊的系统字体和默认大小,但是我在GTK文档中没有找到任何关于如何访问它们的信息(而GTK邮件列表简直就是一个笑话:-()。
Windows和Cocoa都提供了数十个系统值。
我找到了GtkStyle类,但这似乎不是我需要的。
对于默认颜色,请使用以下内容:
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邮件列表上发问了?我看到的似乎不是一个玩笑……