diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 408f96c343..689a151b2d 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -186,7 +186,9 @@
*
*
* Refer to the documentation of individual widgets to learn which
- * regions and pseudo-classes they define.
+ * regions and pseudo-classes they define and see
+ * for a list of all regions
+ * used by GTK+ widgets.
*
*
* Regions in selectors
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 190579d892..292ab12fa7 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -168,6 +168,214 @@
* by the animation.
*
*
+ *
+ * Style classes and regions
+ *
+ * Widgets can add style classes to their context, which can be used
+ * to associate different styles by class (see ). Theme engines can also use style classes to vary their
+ * rendering. GTK+ has a number of predefined style classes:
+ *
+ *
+ *
+ *
+ * Style class
+ * Macro
+ * Used by
+ *
+ *
+ *
+ *
+ * button
+ * GTK_STYLE_CLASS_BUTTON
+ * #GtkButton, #GtkToggleButton, #GtkRadioButton, #GtkCheckButton
+ *
+ *
+ * default
+ * GTK_STYLE_CLASS_DEFAULT
+ * #GtkButton
+ *
+ *
+ * check
+ * GTK_STYLE_CLASS_CHECK
+ * #GtkCheckButton, #GtkCheckMenuItem, #GtkCellRendererToggle
+ *
+ *
+ * radio
+ * GTK_STYLE_CLASS_RADIO
+ * #GtkRadioButton, #GtkRadioMenuItem, #GtkCellRendererToggle
+ *
+ *
+ * arrow
+ * GTK_STYLE_CLASS_ARROW
+ * #GtkArrow
+ *
+ *
+ * calendar
+ * GTK_STYLE_CLASS_CALENDAR
+ * #GtkCalendar
+ *
+ *
+ * entry
+ * GTK_STYLE_CLASS_ENTRY
+ * #GtkEntry
+ *
+ *
+ * cell
+ * GTK_STYLE_CLASS_CELL
+ * #GtkCellRendererToggle
+ *
+ *
+ * menu
+ * GTK_STYLE_CLASS_MENU
+ * #GtkMenu, #GtkMenuItem, #GtkCheckMenuItem, #GtkRadioMenuItem
+ *
+ *
+ * expander
+ * GTK_STYLE_CLASS_EXPANDER
+ * #GtkExpander
+ *
+ *
+ * tooltip
+ * GTK_STYLE_CLASS_TOOLTIP
+ * #GtkTooltip
+ *
+ *
+ * frame
+ * GTK_STYLE_CLASS_FRAME
+ * #GtkFrame
+ *
+ *
+ * scrolled-window
+ *
+ * #GtkScrolledWindow
+ *
+ *
+ * viewport
+ *
+ * #GtkViewport
+ *
+ *
+ * trough
+ * GTK_STYLE_CLASS_TROUGH
+ * #GtkScrollbar, #GtkProgressBar, #GtkScale
+ *
+ *
+ * progressbar
+ * GTK_STYLE_CLASS_PROGRESSBAR
+ * #GtkProgressBar, #GtkCellRendererProgress
+ *
+ *
+ * slider
+ * GTK_STYLE_CLASS_SLIDER
+ * #GtkScrollbar, #GtkScale
+ *
+ *
+ * menuitem
+ * GTK_STYLE_CLASS_MENUITEM
+ * #GtkMenuItem
+ *
+ *
+ * popup
+ *
+ * #GtkMenu
+ *
+ *
+ * accelerator
+ * GTK_STYLE_CLASS_ACCELERATOR
+ * #GtkAccelLabel
+ *
+ *
+ * menubar
+ * GTK_STYLE_CLASS_MENUBAR
+ * #GtkMenuBar
+ *
+ *
+ * toolbar
+ * GTK_STYLE_CLASS_TOOLBAR
+ * #GtkToolbar
+ *
+ *
+ * dock
+ * GTK_STYLE_CLASS_DOCK
+ * #GtkHandleBox
+ *
+ *
+ * notebook
+ *
+ * #GtkNotebook
+ *
+ *
+ * background
+ * GTK_STYLE_CLASS_BACKGROUND
+ * #GtkWindow
+ *
+ *
+ * rubberband
+ * GTK_STYLE_CLASS_RUBBERBAND
+ *
+ *
+ *
+ * header
+ * GTK_STYLE_CLASS_HEADER
+ *
+ *
+ *
+ * grip
+ * GTK_STYLE_CLASS_GRIP
+ * #GtkWindow
+ *
+ *
+ * spinner
+ * GTK_STYLE_CLASS_SPINNER
+ * #GtkSpinner
+ *
+ *
+ *
+ *
+ *
+ *
+ * Widgets can also add regions with flags to their context.
+ * The regions used by GTK+ widgets are:
+ *
+ *
+ *
+ *
+ * Region
+ * Flags
+ * Macro
+ * Used by
+ *
+ *
+ *
+ *
+ * row
+ * even, odd
+ * GTK_STYLE_REGION_ROW
+ * #GtkTreeView
+ *
+ *
+ * column
+ * first, last, sorted
+ * GTK_STYLE_REGION_COLUMN
+ * #GtkTreeView
+ *
+ *
+ * column-header
+ *
+ * GTK_STYLE_REGION_COLUMN_HEADER
+ *
+ *
+ *
+ * tab
+ * even, odd, first, last
+ * GTK_STYLE_REGION_TAB
+ * #GtkNotebook
+ *
+ *
+ *
+ *
+ *
+ *
*
* Custom styling in UI libraries and applications
*