Theming Internals

Tons of details relating to how gtk+ interacts with various themes. See also GnomeArt/Tutorials/GtkThemes for information.

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.

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).

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"

Projects/GTK+/ThemingInternals (last edited 2013-11-22 15:37:02 by WilliamJonMcCann)