1. Theming Internals
Tons of details relating to how gtk+ interacts with various themes. See also GnomeArt/Tutorials/GtkThemes for information.
1.1. GtkButton
A GtkButton is drawing with gtk_paint_box and a detail of "button" for regular buttons, and "buttondefault" for buttons that the "has-default" property is true.
1.2. GtkTreeView
The column headers are actually buttons, so your theme's code for drawing themes that call gtk_paint_box with a detail of "button" will be used. If you would like to draw something different for the headers, you will check the parent of the widget passed into gtk_paint_box to see if it is a GtkTreeView or GtkCList and draw accordingly. If you would like to vary the rendering for the first, last and middle headers, you can use gtk_treeview_get_header_index to find more column information (Pass widget as the second parameter).
1.3. Detail Strings
A quick extraction of detail strings. Some strings are dynamically concatenated in the code, especially gtk_paint_flat_box() in gtktreeview.c, so possibly not all variations are actually possible in practise.
File |
Primitive |
Detail strings |
gtkarrow.c |
gtk_paint_arrow |
"arrow" |
gtkbutton.c |
gtk_paint_box |
"buttondefault", "button" |
gtk_paint_focus |
"button" |
|
gtkcalendar.c |
gtk_paint_arrow |
"calendar" |
gtk_paint_focus |
"calendar-day" |
|
gtk_paint_shadow |
"calendar" |
|
gtkcellrendererprogress.c |
gtk_paint_box |
NULL, "bar" |
gtkcellrenderertoggle.c |
gtk_paint_check |
"cellcheck" |
gtk_paint_option |
"cellradio" |
|
gtkcheckbutton.c |
gtk_paint_check |
"checkbutton" |
gtk_paint_flat_box |
"checkbutton" |
|
gtk_paint_focus |
"checkbutton" |
|
gtkcheckmenuitem.c |
gtk_paint_check |
"check" |
gtk_paint_option |
"option" |
|
gtkcombobox.c |
gtk_paint_shadow |
"combobox" |
gtkcurve.c |
gtk_paint_flat_box |
"curve_bg" |
gtkdnd.c |
gtk_paint_shadow |
"dnd" |
gtkdnd-quartz.c |
gtk_paint_shadow |
"dnd" |
gtkentry.c |
gtk_paint_flat_box |
"entry_bg", "tooltip" |
gtk_paint_focus |
"entry" |
|
gtk_paint_shadow |
"entry" |
|
gtkeventbox.c |
gtk_paint_flat_box |
"eventbox" |
gtkexpander.c |
gtk_paint_expander |
"expander" |
gtk_paint_flat_box |
"expander" |
|
gtk_paint_focus |
"expander" |
|
gtkfilechooserentry.c |
gtk_paint_flat_box |
"tooltip" |
gtkframe.c |
gtk_paint_shadow |
"frame" |
gtk_paint_shadow_gap |
"frame" |
|
gtkhandlebox.c |
gtk_paint_box |
"handlebox_bin" |
gtk_paint_handle |
"handlebox" |
|
gtk_paint_hline |
"handlebox" |
|
gtk_paint_shadow |
"handle" |
|
gtk_paint_vline |
"handlebox" |
|
gtkhsv.c |
gtk_paint_focus |
"colorwheel_light", "colorwheel_dark", NULL |
gtkiconview.c |
gtk_paint_flat_box |
"icon_view_item" |
gtk_paint_focus |
"iconview-drop-indicator", "icon_view" |
|
gtklistitem.c |
gtk_paint_flat_box |
"listitem" |
gtk_paint_focus |
"add-mode", NULL |
|
gtkmenubar.c |
gtk_paint_box |
"menubar" |
gtkmenu.c |
gtk_paint_arrow |
"menu_scroll_arrow_up", "menu_scroll_arrow_down" |
gtk_paint_box |
"menu", "menu_scroll_arrow_up", "menu_scroll_arrow_down" |
|
gtkmenuitem.c |
gtk_paint_arrow |
"menuitem" |
gtk_paint_box |
"menuitem", "hseparator" |
|
gtk_paint_hline |
"menuitem" |
|
gtknotebook.c |
gtk_paint_arrow |
"notebook" |
gtk_paint_box |
"notebook" |
|
gtk_paint_box_gap |
"notebook" |
|
gtk_paint_extension |
"tab" |
|
gtk_paint_focus |
"tab" |
|
gtkoptionmenu.c |
gtk_paint_box |
"optionmenu" |
gtk_paint_focus |
"button" |
|
gtk_paint_tab |
"optionmenutab" |
|
gtkpaned.c |
gtk_paint_handle |
"paned" |
gtkprogressbar.c |
gtk_paint_box |
"bar", "trough" |
gtkprogress.c |
gtk_paint_flat_box |
"trough" |
gtkradiobutton.c |
gtk_paint_flat_box |
"checkbutton" |
gtk_paint_option |
"radiobutton" |
|
gtkrange.c |
gtk_paint_arrow |
"hscrollbar", "vscrollbar" |
gtk_paint_box |
"hscrollbar", "vscrollbar", "trough", "trough-upper", "trough-lower", "trough-fill-level-full", "trough-fill-level" |
|
gtk_paint_focus |
"trough" |
|
gtk_paint_slider |
"slider", "hscale", "vscale" |
|
gtkruler.c |
gtk_paint_box |
"hruler", "vruler" |
gtkscrolledwindow.c |
gtk_paint_shadow |
"scrolled_window" |
gtkseparator.c |
gtk_paint_box |
"hseparator", "vseparator" |
gtk_paint_hline |
"hseparator" |
|
gtk_paint_vline |
"vseparator" |
|
gtkspinbutton.c |
gtk_paint_arrow |
"spinbutton" |
gtk_paint_box |
"spinbutton", "spinbutton_up", "spinbutton_down" |
|
gtkstatusbar.c |
gtk_paint_resize_grip |
"statusbar" |
gtktearoffmenuitem.c |
gtk_paint_arrow |
"tearoffmenuitem" |
gtk_paint_box |
"menuitem" |
|
gtk_paint_hline |
"tearoffmenuitem" |
|
gtktext.c |
gtk_paint_flat_box |
"text" |
gtk_paint_focus |
"text" |
|
gtk_paint_shadow |
"text" |
|
gtktextview.c |
gtk_paint_focus |
"textview" |
gtktoolbar.c |
gtk_paint_box |
"toolbar", "hseparator", "vseparator" |
gtk_paint_hline |
"toolbar" |
|
gtk_paint_vline |
"toolbar" |
|
gtktooltip.c |
gtk_paint_flat_box |
"tooltip" |
gtktrayicon-x11.c |
gtk_paint_focus |
"tray_icon" |
gtktreeitem.c |
gtk_paint_flat_box |
"treeitem" |
gtk_paint_focus |
"treeitem" |
|
gtktreeview.c |
gtk_paint_expander |
"treeview" |
gtk_paint_flat_box |
"cell_even", "cell_odd_ruled_sorted", "cell_odd_ruled_sorted_start", cell_odd_ruled_sorted_middle", "cell_odd_ruled_sorted_end", "cell_even_ruled_sorted", "cell_even_ruled_sorted_start", "cell_even_ruled_sorted_middle", "cell_even_ruled_sorted_end", "cell_odd_ruled", "cell_odd_ruled_start", "cell_odd_ruled_middle", "cell_odd_ruled_end", "cell_even_ruled", "cell_even_ruled_start", "cell_even_ruled_middle", "cell_even_ruled_end", "cell_odd_sorted", "cell_odd_sorted_start", "cell_odd_sorted_middle", "cell_odd_sorted_end", "cell_even_sorted", "cell_even_sorted_start", "cell_even_sorted_middle", "cell_even_sorted_end", "cell_odd", "cell_odd_start", "cell_odd_middle", "cell_odd_end", "cell_even", "cell_even_start", "cell_even", "cell_even" |
|
gtk_paint_focus |
NULL, "treeview", "treeview-left", "treeview-right", "treeview-middle", "treeview-drop-indicator", "treeview-drop-indicator-left", "treeview-drop-indicator-right", "tree-view-drop-indicator-middle" |
|
gtk_paint_hline |
NULL |
|
gtktreeviewcolumn.c |
gtk_paint_focus |
"treeview" |
gtkviewport.c |
gtk_paint_flat_box |
"viewportbin" |
gtk_paint_shadow |
"viewport" |
|
gtkwindow.c |
gtk_paint_flat_box |
"base" |
gtkwindow-decorate.c |
gtk_paint_box |
"base" |
gtk_paint_flat_box |
"base" |