[gnome-shell] St Documentation: add and improve documentation for public classes



commit 9168f6055ea0b417f8beb64eefc18e5f904a9191
Author: Andy Holmes <andrew g r holmes gmail com>
Date:   Wed May 20 16:50:09 2020 -0700

    St Documentation: add and improve documentation for public classes
    
    Much of St is undocumented, aside from input/output arguments. This is
    no doubt because a lot of it parallels Gtk closely, but is worth
    improving since many new programmers are not familiar with Gtk.
    
    closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2983

 src/st/st-adjustment.c         | 204 +++++++++++++++++++++++++++++--
 src/st/st-bin.c                |   6 +-
 src/st/st-border-image.c       |  38 +++++-
 src/st/st-box-layout.c         |   8 +-
 src/st/st-button.c             |  49 ++++++--
 src/st/st-button.h             |   2 +-
 src/st/st-clipboard.c          |  13 +-
 src/st/st-drawing-area.c       |  31 +++--
 src/st/st-entry.c              | 116 +++++++++++++-----
 src/st/st-focus-manager.c      |   4 +-
 src/st/st-generic-accessible.c |  18 ++-
 src/st/st-icon-colors.c        |   4 +-
 src/st/st-icon.c               |  37 +++++-
 src/st/st-image-content.c      |   5 +-
 src/st/st-label.c              |  30 +++--
 src/st/st-password-entry.c     |  31 ++++-
 src/st/st-scroll-bar.c         |  28 ++++-
 src/st/st-scroll-view-fade.c   |  24 ++++
 src/st/st-scroll-view.c        | 108 +++++++++++++++--
 src/st/st-scrollable.c         |  67 ++++++++++-
 src/st/st-settings.c           |  62 ++++++++--
 src/st/st-shadow.c             |   9 +-
 src/st/st-texture-cache.c      |  38 ++++--
 src/st/st-theme-context.c      |  28 +++--
 src/st/st-theme-node.c         | 264 +++++++++++++++++++++++++++++++++--------
 src/st/st-theme-node.h         |  63 ++++++++++
 src/st/st-theme.c              |  22 +++-
 src/st/st-widget.c             |  31 +++--
 src/st/st-widget.h             |  11 ++
 29 files changed, 1149 insertions(+), 202 deletions(-)
---
diff --git a/src/st/st-adjustment.c b/src/st/st-adjustment.c
index eb170488f8..e08d0afc4c 100644
--- a/src/st/st-adjustment.c
+++ b/src/st/st-adjustment.c
@@ -279,11 +279,23 @@ st_adjustment_class_init (StAdjustmentClass *klass)
   object_class->set_property = st_adjustment_set_property;
   object_class->dispose = st_adjustment_dispose;
 
+  /**
+   * StAdjustment:actor:
+   *
+   * If the adjustment is used as #ClutterAnimatable for a
+   * #ClutterPropertyTransition, this property is used to determine which
+   * monitor should drive the animation.
+   */
   props[PROP_ACTOR] =
     g_param_spec_object ("actor", "Actor", "Actor",
                          CLUTTER_TYPE_ACTOR,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StAdjustment:lower:
+   *
+   * The minimum value of the adjustment.
+   */
   props[PROP_LOWER] =
     g_param_spec_double ("lower", "Lower", "Lower bound",
                          -G_MAXDOUBLE,  G_MAXDOUBLE, 0.0,
@@ -291,6 +303,14 @@ st_adjustment_class_init (StAdjustmentClass *klass)
                          G_PARAM_CONSTRUCT |
                          G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * StAdjustment:upper:
+   *
+   * The maximum value of the adjustment.
+   *
+   * Note that values will be restricted by `upper - page-size` if
+   * #StAdjustment:page-size is non-zero.
+   */
   props[PROP_UPPER] =
     g_param_spec_double ("upper", "Upper", "Upper bound",
                          -G_MAXDOUBLE, G_MAXDOUBLE, 0.0,
@@ -298,6 +318,11 @@ st_adjustment_class_init (StAdjustmentClass *klass)
                          G_PARAM_CONSTRUCT |
                          G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * StAdjustment:value:
+   *
+   * The value of the adjustment.
+   */
   props[PROP_VALUE] =
     g_param_spec_double ("value", "Value", "Current value",
                          -G_MAXDOUBLE, G_MAXDOUBLE, 0.0,
@@ -305,6 +330,11 @@ st_adjustment_class_init (StAdjustmentClass *klass)
                          G_PARAM_CONSTRUCT |
                          G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * StAdjustment:step-increment:
+   *
+   * The step increment of the adjustment.
+   */
   props[PROP_STEP_INC] =
     g_param_spec_double ("step-increment", "Step Increment", "Step increment",
                          0.0, G_MAXDOUBLE, 0.0,
@@ -312,6 +342,11 @@ st_adjustment_class_init (StAdjustmentClass *klass)
                          G_PARAM_CONSTRUCT |
                          G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * StAdjustment:page-increment:
+   *
+   * The page increment of the adjustment.
+   */
   props[PROP_PAGE_INC] =
     g_param_spec_double ("page-increment", "Page Increment", "Page increment",
                          0.0, G_MAXDOUBLE, 0.0,
@@ -319,6 +354,14 @@ st_adjustment_class_init (StAdjustmentClass *klass)
                          G_PARAM_CONSTRUCT |
                          G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * StAdjustment:page-size:
+   *
+   * The page size of the adjustment.
+   *
+   * Note that the page-size is irrelevant and should be set to zero if the
+   * adjustment is used for a simple scalar value.
+   */
   props[PROP_PAGE_SIZE] =
     g_param_spec_double ("page-size", "Page Size", "Page size",
                          0.0, G_MAXDOUBLE, 0.0,
@@ -350,6 +393,20 @@ st_adjustment_init (StAdjustment *self)
   priv->is_constructing = TRUE;
 }
 
+/**
+ * st_adjustment_new:
+ * @actor: (nullable): a #ClutterActor
+ * @value: the initial value
+ * @lower: the minimum value
+ * @upper: the maximum value
+ * @step_increment: the step increment
+ * @page_increment: the page increment
+ * @page_size: the page size
+ *
+ * Creates a new #StAdjustment
+ *
+ * Returns: a new #StAdjustment
+ */
 StAdjustment *
 st_adjustment_new (ClutterActor *actor,
                    gdouble value,
@@ -370,6 +427,14 @@ st_adjustment_new (ClutterActor *actor,
                        NULL);
 }
 
+/**
+ * st_adjustment_get_value:
+ * @adjustment: a #StAdjustment
+ *
+ * Gets the current value of the adjustment. See st_adjustment_set_value().
+ *
+ * Returns: The current value of the adjustment
+ */
 gdouble
 st_adjustment_get_value (StAdjustment *adjustment)
 {
@@ -378,6 +443,14 @@ st_adjustment_get_value (StAdjustment *adjustment)
   return ((StAdjustmentPrivate *)st_adjustment_get_instance_private (adjustment))->value;
 }
 
+/**
+ * st_adjustment_set_value:
+ * @adjustment: a #StAdjustment
+ * @value: the new value
+ *
+ * Sets the #StAdjustment value. The value is clamped to lie between
+ * #StAdjustment:lower and #StAdjustment:upper - #StAdjustment:page-size.
+ */
 void
 st_adjustment_set_value (StAdjustment *adjustment,
                          gdouble       value)
@@ -404,6 +477,15 @@ st_adjustment_set_value (StAdjustment *adjustment,
     }
 }
 
+/**
+ * st_adjustment_clamp_page:
+ * @adjustment: a #StAdjustment
+ * @lower: the lower value
+ * @upper: the upper value
+ *
+ * Set #StAdjustment:value to a value clamped between @lower and @upper. The
+ * clamping described by st_adjustment_set_value() still applies.
+ */
 void
 st_adjustment_clamp_page (StAdjustment *adjustment,
                           gdouble       lower,
@@ -437,6 +519,23 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
     g_object_notify_by_pspec (G_OBJECT (adjustment), props[PROP_VALUE]);
 }
 
+/**
+ * st_adjustment_set_lower:
+ * @adjustment: a #StAdjustment
+ * @lower: the new minimum value
+ *
+ * Sets the minimum value of the adjustment.
+ *
+ * When setting multiple adjustment properties via their individual
+ * setters, multiple #GObject::notify and #StAdjustment::changed
+ * signals will be emitted. However, it’s possible to compress the
+ * #GObject::notify signals into one by calling
+ * g_object_freeze_notify() and g_object_thaw_notify() around the
+ * calls to the individual setters.
+ *
+ * Alternatively, using st_adjustment_set_values() will compress both
+ * #GObject::notify and #StAdjustment::changed emissions.
+ */
 static gboolean
 st_adjustment_set_lower (StAdjustment *adjustment,
                          gdouble       lower)
@@ -461,6 +560,21 @@ st_adjustment_set_lower (StAdjustment *adjustment,
   return FALSE;
 }
 
+/**
+ * st_adjustment_set_upper:
+ * @adjustment: a #StAdjustment
+ * @upper: the new maximum value
+ *
+ * Sets the maximum value of the adjustment.
+ *
+ * Note that values will be restricted by `upper - page-size`
+ * if the page-size property is nonzero.
+ *
+ * See st_adjustment_set_lower() about how to compress multiple
+ * signal emissions when setting multiple adjustment properties.
+ *
+ * Returns: %TRUE if the value was changed
+ */
 static gboolean
 st_adjustment_set_upper (StAdjustment *adjustment,
                          gdouble       upper)
@@ -485,6 +599,18 @@ st_adjustment_set_upper (StAdjustment *adjustment,
   return FALSE;
 }
 
+/**
+ * st_adjustment_set_step_increment:
+ * @adjustment: a #StAdjustment
+ * @step: the new step increment
+ *
+ * Sets the step increment of the adjustment.
+ *
+ * See st_adjustment_set_lower() about how to compress multiple
+ * signal emissions when setting multiple adjustment properties.
+ *
+ * Returns: %TRUE if the value was changed
+ */
 static gboolean
 st_adjustment_set_step_increment (StAdjustment *adjustment,
                                   gdouble       step)
@@ -505,6 +631,18 @@ st_adjustment_set_step_increment (StAdjustment *adjustment,
   return FALSE;
 }
 
+/**
+ * st_adjustment_set_page_increment:
+ * @adjustment: a #StAdjustment
+ * @page: the new page increment
+ *
+ * Sets the page increment of the adjustment.
+ *
+ * See st_adjustment_set_lower() about how to compress multiple
+ * signal emissions when setting multiple adjustment properties.
+ *
+ * Returns: %TRUE if the value was changed
+ */
 static gboolean
 st_adjustment_set_page_increment (StAdjustment *adjustment,
                                   gdouble       page)
@@ -525,6 +663,18 @@ st_adjustment_set_page_increment (StAdjustment *adjustment,
   return FALSE;
 }
 
+/**
+ * st_adjustment_set_page_size:
+ * @adjustment: a #StAdjustment
+ * @size: the new page size
+ *
+ * Sets the page size of the adjustment.
+ *
+ * See st_adjustment_set_lower() about how to compress multiple
+ * signal emissions when setting multiple adjustment properties.
+ *
+ * Returns: %TRUE if the value was changed
+ */
 static gboolean
 st_adjustment_set_page_size (StAdjustment *adjustment,
                              gdouble       size)
@@ -549,6 +699,23 @@ st_adjustment_set_page_size (StAdjustment *adjustment,
   return FALSE;
 }
 
+/**
+ * st_adjustment_set_values:
+ * @adjustment: a #StAdjustment
+ * @value: the new value
+ * @lower: the new minimum value
+ * @upper: the new maximum value
+ * @step_increment: the new step increment
+ * @page_increment: the new page increment
+ * @page_size: the new page size
+ *
+ * Sets all properties of the adjustment at once.
+ *
+ * Use this function to avoid multiple emissions of the #GObject::notify and
+ * #StAdjustment::changed signals. See st_adjustment_set_lower() for an
+ * alternative way of compressing multiple emissions of #GObject::notify into
+ * one.
+ */
 void
 st_adjustment_set_values (StAdjustment *adjustment,
                           gdouble       value,
@@ -593,12 +760,12 @@ st_adjustment_set_values (StAdjustment *adjustment,
 /**
  * st_adjustment_get_values:
  * @adjustment: an #StAdjustment
- * @value: (out): the current value
- * @lower: (out): the lower bound
- * @upper: (out): the upper bound
- * @step_increment: (out): the step increment
- * @page_increment: (out): the page increment
- * @page_size: (out): the page size
+ * @value: (out) (optional): the current value
+ * @lower: (out) (optional): the lower bound
+ * @upper: (out) (optional): the upper bound
+ * @step_increment: (out) (optional): the step increment
+ * @page_increment: (out) (optional): the page increment
+ * @page_size: (out) (optional): the page size
  *
  * Gets all of @adjustment's values at once.
  */
@@ -722,7 +889,13 @@ on_transition_stopped (ClutterTransition *transition,
 
 /**
  * st_adjustment_get_transition:
- * Returns: (transfer none) (nullable):
+ * @adjustment: a #StAdjustment
+ * @name: a transition name
+ *
+ * Get the #ClutterTransition for @name previously added with
+ * st_adjustment_add_transition() or %NULL if not found.
+ *
+ * Returns: (transfer none) (nullable): a #ClutterTransition
  */
 ClutterTransition *
 st_adjustment_get_transition (StAdjustment *adjustment,
@@ -745,6 +918,15 @@ st_adjustment_get_transition (StAdjustment *adjustment,
   return clos->transition;
 }
 
+/**
+ * st_adjustment_add_transition:
+ * @adjustment: a #StAdjustment
+ * @name: a unique name for the transition
+ * @transtion: a #ClutterTransition
+ *
+ * Add a #ClutterTransition for the adjustment. If the transiton stops, it will
+ * be automatically removed if #ClutterTransition:remove-on-complete is %TRUE.
+ */
 void
 st_adjustment_add_transition (StAdjustment      *adjustment,
                               const char        *name,
@@ -785,6 +967,14 @@ st_adjustment_add_transition (StAdjustment      *adjustment,
   clutter_timeline_start (CLUTTER_TIMELINE (transition));
 }
 
+/**
+ * st_adjusmtent_remove_transition:
+ * @adjusment: a #StAdjustment
+ * @name: the name of the transition to remove
+ *
+ * Remove a #ClutterTransition previously added by st_adjustment_add_transtion()
+ * with @name.
+ */
 void
 st_adjustment_remove_transition (StAdjustment *adjustment,
                                  const char   *name)
diff --git a/src/st/st-bin.c b/src/st/st-bin.c
index 4d7c705c31..2eadd57ed0 100644
--- a/src/st/st-bin.c
+++ b/src/st/st-bin.c
@@ -327,7 +327,7 @@ st_bin_init (StBin *bin)
  *
  * Creates a new #StBin, a simple container for one child.
  *
- * Return value: the newly created #StBin actor
+ * Returns: the newly created #StBin actor
  */
 StWidget *
 st_bin_new (void)
@@ -378,9 +378,9 @@ st_bin_set_child (StBin        *bin,
  * st_bin_get_child:
  * @bin: a #StBin
  *
- * Retrieves a pointer to the child of @bin.
+ * Gets the #ClutterActor child for @bin.
  *
- * Return value: (transfer none): a #ClutterActor, or %NULL
+ * Returns: (transfer none) (nullable): a #ClutterActor, or %NULL
  */
 ClutterActor *
 st_bin_get_child (StBin *bin)
diff --git a/src/st/st-border-image.c b/src/st/st-border-image.c
index d7bd03d305..ee09d02650 100644
--- a/src/st/st-border-image.c
+++ b/src/st/st-border-image.c
@@ -66,6 +66,19 @@ st_border_image_init (StBorderImage *image)
 {
 }
 
+/**
+ * st_border_image_new:
+ * @file: a #GFile
+ * @border_top: the top border
+ * @border_right: the right border
+ * @border_bottom: the bottom border
+ * @border_left: the left border
+ * @scale_factor: the scale factor
+ *
+ * Creates a new #StBorderImage.
+ *
+ * Returns: a new #StBorderImage.
+ */
 StBorderImage *
 st_border_image_new (GFile *file,
                      int    border_top,
@@ -90,9 +103,11 @@ st_border_image_new (GFile *file,
 
 /**
  * st_border_image_get_file:
- * @image: a #StBorder_Image
+ * @image: a #StBorderImage
  *
- * Returns: (transfer none): the #GFile for the #StBorder_Image
+ * Get the #GFile for @image.
+ *
+ * Returns: (transfer none): a #GFile
  */
 GFile *
 st_border_image_get_file (StBorderImage *image)
@@ -102,6 +117,17 @@ st_border_image_get_file (StBorderImage *image)
   return image->file;
 }
 
+/**
+ * st_border_image_get_border:
+ * @image: a #StBorderImage
+ * @border_top: (out) (optional): the top border
+ * @border_right: (out) (optional): the right border
+ * @border_bottom: (out) (optional): the bottom border
+ * @border_left: (out) (optional): the left border
+ *
+ * Get the border widths for @image, taking into account the scale factor
+ * provided at construction.
+ */
 void
 st_border_image_get_borders (StBorderImage *image,
                              int           *border_top,
@@ -123,12 +149,12 @@ st_border_image_get_borders (StBorderImage *image,
 
 /**
  * st_border_image_equal:
- * @image: a #StBorder_Image
- * @other: a different #StBorder_Image
+ * @image: a #StBorderImage
+ * @other: a different #StBorderImage
  *
- * Check if two border_image objects are identical.
+ * Check if two #StBorderImage objects are identical.
  *
- * Return value: %TRUE if the two border image objects are identical
+ * Returns: %TRUE if the two border image objects are identical
  */
 gboolean
 st_border_image_equal (StBorderImage *image,
diff --git a/src/st/st-box-layout.c b/src/st/st-box-layout.c
index a31f727721..895e688acc 100644
--- a/src/st/st-box-layout.c
+++ b/src/st/st-box-layout.c
@@ -181,8 +181,8 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
   /**
    * StBoxLayout:vertical:
    *
-   * A convenience property for getting the #ClutterBoxLayout:vertical
-   * property of the layout for #StBoxLayout.
+   * A convenience property for the #ClutterBoxLayout:vertical property of the
+   * internal layout for #StBoxLayout.
    */
   pspec = g_param_spec_boolean ("vertical",
                                 "Vertical",
@@ -195,8 +195,8 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
   /**
    * StBoxLayout:pack-start:
    *
-   * A convenience property for getting the #ClutterBoxLayout:pack-start
-   * property of the layout for #StBoxLayout.
+   * A convenience property for the #ClutterBoxLayout:pack-start property of the
+   * internal layout for #StBoxLayout.
    */
   pspec = g_param_spec_boolean ("pack-start",
                                 "Pack Start",
diff --git a/src/st/st-button.c b/src/st/st-button.c
index c2c48a5101..0e440fa534 100644
--- a/src/st/st-button.c
+++ b/src/st/st-button.c
@@ -484,6 +484,11 @@ st_button_class_init (StButtonClass *klass)
   widget_class->style_changed = st_button_style_changed;
   widget_class->get_accessible_type = st_button_accessible_get_type;
 
+  /**
+   * StButton:label:
+   *
+   * The label of the #StButton.
+   */
   props[PROP_LABEL] =
     g_param_spec_string ("label",
                          "Label",
@@ -491,6 +496,11 @@ st_button_class_init (StButtonClass *klass)
                          NULL,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StButton:button-mask:
+   *
+   * Which buttons will trigger the #StButton::clicked signal.
+   */
   props[PROP_BUTTON_MASK] =
     g_param_spec_flags ("button-mask",
                         "Button mask",
@@ -498,6 +508,11 @@ st_button_class_init (StButtonClass *klass)
                         ST_TYPE_BUTTON_MASK, ST_BUTTON_ONE,
                         ST_PARAM_READWRITE);
 
+  /**
+   * StButton:toggle-mode:
+   *
+   * Whether the #StButton is operating in toggle mode (on/off).
+   */
   props[PROP_TOGGLE_MODE] =
     g_param_spec_boolean ("toggle-mode",
                           "Toggle Mode",
@@ -505,6 +520,15 @@ st_button_class_init (StButtonClass *klass)
                           FALSE,
                           ST_PARAM_READWRITE);
 
+  /**
+   * StButton:checked:
+   *
+   * If #StButton:toggle-mode is %TRUE, indicates if the #StButton is toggled
+   * "on" or "off".
+   *
+   * When the value is %TRUE, the #StButton will have the `checked` CSS
+   * pseudo-class set.
+   */
   props[PROP_CHECKED] =
     g_param_spec_boolean ("checked",
                           "Checked",
@@ -512,6 +536,12 @@ st_button_class_init (StButtonClass *klass)
                           FALSE,
                           ST_PARAM_READWRITE);
 
+  /**
+   * StButton:pressed:
+   *
+   * In contrast to #StButton:checked, this property indicates whether the
+   * #StButton is being actively pressed, rather than just in the "on" state.
+   */
   props[PROP_PRESSED] =
     g_param_spec_boolean ("pressed",
                           "Pressed",
@@ -583,9 +613,10 @@ st_button_new_with_label (const gchar *text)
  * st_button_get_label:
  * @button: a #StButton
  *
- * Get the text displayed on the button
+ * Get the text displayed on the button. If the label is empty, an empty string
+ * will be returned instead of %NULL.
  *
- * Returns: the text for the button. This must not be freed by the application
+ * Returns: (transfer none): the text for the button
  */
 const gchar *
 st_button_get_label (StButton *button)
@@ -598,9 +629,9 @@ st_button_get_label (StButton *button)
 /**
  * st_button_set_label:
  * @button: a #Stbutton
- * @text: text to set the label to
+ * @text: (nullable): text to set the label to
  *
- * Sets the text displayed on the button
+ * Sets the text displayed on the button.
  */
 void
 st_button_set_label (StButton    *button,
@@ -726,7 +757,7 @@ st_button_set_toggle_mode (StButton *button,
  * st_button_get_checked:
  * @button: a #StButton
  *
- * Get the state of the button that is in toggle mode.
+ * Get the #StButton:checked property of a #StButton that is in toggle mode.
  *
  * Returns: %TRUE if the button is checked, or %FALSE if not
  */
@@ -743,8 +774,8 @@ st_button_get_checked (StButton *button)
  * @button: a #Stbutton
  * @checked: %TRUE or %FALSE
  *
- * Sets the pressed state of the button. This is only really useful if the
- * button has #toggle-mode mode set to %TRUE.
+ * Set the #StButton:checked property of the button. This is only really useful
+ * if the button has #StButton:toggle-mode property set to %TRUE.
  */
 void
 st_button_set_checked (StButton *button,
@@ -773,9 +804,9 @@ st_button_set_checked (StButton *button,
  * @button: an #StButton
  *
  * If this widget is holding a pointer grab, this function will
- * will ungrab it, and reset the pressed state.  The effect is
+ * will ungrab it, and reset the #StButton:pressed state.  The effect is
  * similar to if the user had released the mouse button, but without
- * emitting the clicked signal.
+ * emitting the #StButton::clicked signal.
  *
  * This function is useful if for example you want to do something
  * after the user is holding the mouse button for a given period of
diff --git a/src/st/st-button.h b/src/st/st-button.h
index df0d1ea0c5..6040e4182f 100644
--- a/src/st/st-button.h
+++ b/src/st/st-button.h
@@ -63,7 +63,7 @@ void         st_button_fake_release    (StButton     *button);
  * @ST_BUTTON_TWO: button 2 (middle)
  * @ST_BUTTON_THREE: button 3 (right)
  *
- * A mask representing which mouse buttons an StButton responds to.
+ * A mask representing which mouse buttons an #StButton responds to.
  */
 typedef enum {
   ST_BUTTON_ONE   = (1 << 0),
diff --git a/src/st/st-clipboard.c b/src/st/st-clipboard.c
index 82ea802350..4673a7888a 100644
--- a/src/st/st-clipboard.c
+++ b/src/st/st-clipboard.c
@@ -195,7 +195,6 @@ st_clipboard_get_mimetypes (StClipboard     *clipboard,
  *
  * Request the data from the clipboard in text form. @callback is executed
  * when the data is retreived.
- *
  */
 void
 st_clipboard_get_text (StClipboard            *clipboard,
@@ -244,7 +243,6 @@ st_clipboard_get_text (StClipboard            *clipboard,
  *
  * Request the data from the clipboard in #GBytes form. @callback is executed
  * when the data is retrieved.
- *
  */
 void
 st_clipboard_get_content (StClipboard                    *clipboard,
@@ -287,7 +285,9 @@ st_clipboard_get_content (StClipboard                    *clipboard,
  * @mimetype: content mimetype
  * @bytes: content data
  *
- * Sets the clipboard content.
+ * Sets the clipboard content to @bytes.
+ *
+ * @mimetype is a semi-colon separated list of mime-type strings.
  **/
 void
 st_clipboard_set_content (StClipboard     *clipboard,
@@ -334,6 +334,13 @@ st_clipboard_set_text (StClipboard     *clipboard,
   g_bytes_unref (bytes);
 }
 
+/**
+ * st_clipboard_set_selection: (skip)
+ *
+ * Sets the #MetaSelection of the default #StClipboard.
+ *
+ * This function is called during the initialization of GNOME Shell.
+ */
 void
 st_clipboard_set_selection (MetaSelection *selection)
 {
diff --git a/src/st/st-drawing-area.c b/src/st/st-drawing-area.c
index 3f916e8a3b..1ab48c8785 100644
--- a/src/st/st-drawing-area.c
+++ b/src/st/st-drawing-area.c
@@ -150,8 +150,8 @@ st_drawing_area_init (StDrawingArea *area)
  * st_drawing_area_queue_repaint:
  * @area: the #StDrawingArea
  *
- * Will cause the actor to emit a ::repaint signal before it is next
- * drawn to the scene. Useful if some parameters for the area being
+ * Will cause the actor to emit a #StDrawingArea::repaint signal before it is
+ * next drawn to the scene. Useful if some parameters for the area being
  * drawn other than the size or style have changed. Note that
  * clutter_actor_queue_redraw() will simply result in the same
  * contents being drawn to the scene again.
@@ -169,9 +169,26 @@ st_drawing_area_queue_repaint (StDrawingArea *area)
  * @area: the #StDrawingArea
  *
  * Gets the Cairo context to paint to. This function must only be called
- * from a signal hander for the ::repaint signal.
+ * from a signal hander or virtual function for the #StDrawingArea::repaint
+ * signal.
  *
- * Return Value: (transfer none): the Cairo context for the paint operation
+ * JavaScript code must call the special dispose function before returning from
+ * the signal handler or virtual function to avoid leaking memory:
+ *
+ * |[<!-- language="JavaScript" -->
+ * function onRepaint(area) {
+ *     let cr = area.get_context();
+ *
+ *     // Draw to the context
+ *
+ *     cr.$dispose();
+ * }
+ *
+ * let area = new St.DrawingArea();
+ * area.connect('repaint', onRepaint);
+ * ]|
+ *
+ * Returns: (transfer none): the Cairo context for the paint operation
  */
 cairo_t *
 st_drawing_area_get_context (StDrawingArea *area)
@@ -189,12 +206,12 @@ st_drawing_area_get_context (StDrawingArea *area)
 /**
  * st_drawing_area_get_surface_size:
  * @area: the #StDrawingArea
- * @width: (out): location to store the width of the painted area
- * @height: (out): location to store the height of the painted area
+ * @width: (out) (optional): location to store the width of the painted area
+ * @height: (out) (optional): location to store the height of the painted area
  *
  * Gets the size of the cairo surface being painted to, which is equal
  * to the size of the content area of the widget. This function must
- * only be called from a signal hander for the ::repaint signal.
+ * only be called from a signal hander for the #StDrawingArea::repaint signal.
  */
 void
 st_drawing_area_get_surface_size (StDrawingArea *area,
diff --git a/src/st/st-entry.c b/src/st/st-entry.c
index 10dfe1dd16..fdf0168c97 100644
--- a/src/st/st-entry.c
+++ b/src/st/st-entry.c
@@ -29,14 +29,9 @@
  * applications to set further properties.
  *
  * #StEntry supports the following pseudo style states:
- * <itemizedlist>
- *  <listitem>
- *   <para>focus: the widget has focus</para>
- *  </listitem>
- *  <listitem>
- *   <para>indeterminate: the widget is showing the hint text or actor</para>
- *  </listitem>
- * </itemizedlist>
+ *
+ * - `focus`: the widget has focus
+ * - `indeterminate`: the widget is showing the hint text or actor
  */
 
 #ifdef HAVE_CONFIG_H
@@ -897,6 +892,11 @@ st_entry_class_init (StEntryClass *klass)
   widget_class->navigate_focus = st_entry_navigate_focus;
   widget_class->get_accessible_type = st_entry_accessible_get_type;
 
+  /**
+   * StEntry:clutter-text:
+   *
+   * The internal #ClutterText actor supporting the #StEntry.
+   */
   props[PROP_CLUTTER_TEXT] =
     g_param_spec_object ("clutter-text",
                          "Clutter Text",
@@ -904,6 +904,11 @@ st_entry_class_init (StEntryClass *klass)
                          CLUTTER_TYPE_TEXT,
                          ST_PARAM_READABLE);
 
+  /**
+   * StEntry:primary-icon:
+   *
+   * The #ClutterActor acting as the primary icon at the start of the #StEntry.
+   */
   props[PROP_PRIMARY_ICON] =
     g_param_spec_object ("primary-icon",
                          "Primary Icon",
@@ -911,6 +916,11 @@ st_entry_class_init (StEntryClass *klass)
                          CLUTTER_TYPE_ACTOR,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:secondary-icon:
+   *
+   * The #ClutterActor acting as the secondary icon at the end of the #StEntry.
+   */
   props[PROP_SECONDARY_ICON] =
     g_param_spec_object ("secondary-icon",
                          "Secondary Icon",
@@ -918,6 +928,12 @@ st_entry_class_init (StEntryClass *klass)
                          CLUTTER_TYPE_ACTOR,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:hint-text:
+   *
+   * The text to display when the entry is empty and unfocused. Setting this
+   * will replace the actor of #StEntry::hint-actor.
+   */
   props[PROP_HINT_TEXT] =
     g_param_spec_string ("hint-text",
                          "Hint Text",
@@ -926,6 +942,12 @@ st_entry_class_init (StEntryClass *klass)
                          NULL,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:hint-actor:
+   *
+   * A #ClutterActor to display when the entry is empty and unfocused. Setting
+   * this will replace the actor displaying #StEntry:hint-text.
+   */
   props[PROP_HINT_ACTOR] =
     g_param_spec_object ("hint-actor",
                          "Hint Actor",
@@ -934,6 +956,11 @@ st_entry_class_init (StEntryClass *klass)
                          CLUTTER_TYPE_ACTOR,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:text:
+   *
+   * The current text value of the #StEntry.
+   */
   props[PROP_TEXT] =
     g_param_spec_string ("text",
                          "Text",
@@ -941,6 +968,12 @@ st_entry_class_init (StEntryClass *klass)
                          NULL,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:input-purpose:
+   *
+   * The #ClutterInputContentPurpose that helps on-screen keyboards and similar
+   * input methods to decide which keys should be presented to the user.
+   */
   props[PROP_INPUT_PURPOSE] =
     g_param_spec_enum ("input-purpose",
                        "Purpose",
@@ -949,6 +982,13 @@ st_entry_class_init (StEntryClass *klass)
                        CLUTTER_INPUT_CONTENT_PURPOSE_NORMAL,
                        ST_PARAM_READWRITE);
 
+  /**
+   * StEntry:input-hints:
+   *
+   * The #ClutterInputContentHintFlags providing additional hints (beyond
+   * #StEntry:input-purpose) that allow input methods to fine-tune their
+   * behaviour.
+   */
   props[PROP_INPUT_HINTS] =
     g_param_spec_flags ("input-hints",
                         "hints",
@@ -964,8 +1004,7 @@ st_entry_class_init (StEntryClass *klass)
    * StEntry::primary-icon-clicked:
    * @self: the #StEntry
    *
-   *
-   * Emitted when the primary icon is clicked
+   * Emitted when the primary icon is clicked.
    */
   entry_signals[PRIMARY_ICON_CLICKED] =
     g_signal_new ("primary-icon-clicked",
@@ -974,11 +1013,12 @@ st_entry_class_init (StEntryClass *klass)
                   G_STRUCT_OFFSET (StEntryClass, primary_icon_clicked),
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 0);
+
   /**
    * StEntry::secondary-icon-clicked:
    * @self: the #StEntry
    *
-   * Emitted when the secondary icon is clicked
+   * Emitted when the secondary icon is clicked.
    */
   entry_signals[SECONDARY_ICON_CLICKED] =
     g_signal_new ("secondary-icon-clicked",
@@ -1040,9 +1080,9 @@ st_entry_init (StEntry *entry)
 
 /**
  * st_entry_new:
- * @text: text to set the entry to
+ * @text: (nullable): text to set the entry to
  *
- * Create a new #StEntry with the specified entry
+ * Create a new #StEntry with the specified text.
  *
  * Returns: a new #StEntry
  */
@@ -1063,9 +1103,10 @@ st_entry_new (const gchar *text)
  * st_entry_get_text:
  * @entry: a #StEntry
  *
- * Get the text displayed on the entry
+ * Get the text displayed on the entry. If @entry is empty, an empty string will
+ * be returned instead of %NULL.
  *
- * Returns: the text for the entry. This must not be freed by the application
+ * Returns: (transfer none): the text for the entry
  */
 const gchar *
 st_entry_get_text (StEntry *entry)
@@ -1084,7 +1125,8 @@ st_entry_get_text (StEntry *entry)
  * @entry: a #StEntry
  * @text: (nullable): text to set the entry to
  *
- * Sets the text displayed on the entry
+ * Sets the text displayed on the entry. If @text is %NULL, the #ClutterText
+ * will instead be set to an empty string.
  */
 void
 st_entry_set_text (StEntry     *entry,
@@ -1106,10 +1148,9 @@ st_entry_set_text (StEntry     *entry,
  * st_entry_get_clutter_text:
  * @entry: a #StEntry
  *
- * Retrieve the internal #ClutterText so that extra parameters can be set
+ * Retrieve the internal #ClutterText so that extra parameters can be set.
  *
- * Returns: (transfer none): the #ClutterText used by #StEntry. The entry is
- * owned by the #StEntry and should not be unref'ed by the application.
+ * Returns: (transfer none): the #ClutterText used by @entry
  */
 ClutterActor*
 st_entry_get_clutter_text (StEntry *entry)
@@ -1125,8 +1166,8 @@ st_entry_get_clutter_text (StEntry *entry)
  * @text: (nullable): text to set as the entry hint
  *
  * Sets the text to display when the entry is empty and unfocused. When the
- * entry is displaying the hint, it has a pseudo class of "indeterminate".
- * A value of NULL unsets the hint.
+ * entry is displaying the hint, it has a pseudo class of `indeterminate`.
+ * A value of %NULL unsets the hint.
  */
 void
 st_entry_set_hint_text (StEntry     *entry,
@@ -1146,10 +1187,13 @@ st_entry_set_hint_text (StEntry     *entry,
  * st_entry_get_hint_text:
  * @entry: a #StEntry
  *
- * Gets the text that is displayed when the entry is empty and unfocused
+ * Gets the text that is displayed when the entry is empty and unfocused or
+ * %NULL if the #StEntry:hint-actor was set to an actor that is not a #StLabel.
  *
- * Returns: the current value of the hint property. This string is owned by the
- * #StEntry and should not be freed or modified.
+ * Unlike st_entry_get_text() this function may return %NULL if
+ * #StEntry:hint-actor is not a #StLabel.
+ *
+ * Returns: (nullable) (transfer none): the current value of the hint property
  */
 const gchar *
 st_entry_get_hint_text (StEntry *entry)
@@ -1200,6 +1244,8 @@ st_entry_set_input_purpose (StEntry                    *entry,
  * @entry: a #StEntry
  *
  * Gets the value of the #StEntry:input-purpose property.
+ *
+ * Returns: the input purpose of the entry
  */
 ClutterInputContentPurpose
 st_entry_get_input_purpose (StEntry *entry)
@@ -1245,6 +1291,8 @@ st_entry_set_input_hints (StEntry                      *entry,
  * @entry: a #StEntry
  *
  * Gets the value of the #StEntry:input-hints property.
+ *
+ * Returns: the input hints for the entry
  */
 ClutterInputContentHintFlags
 st_entry_get_input_hints (StEntry *entry)
@@ -1305,7 +1353,7 @@ _st_entry_set_icon (StEntry       *entry,
  * @entry: a #StEntry
  * @icon: (nullable): a #ClutterActor
  *
- * Set the primary icon of the entry to @icon
+ * Set the primary icon of the entry to @icon.
  */
 void
 st_entry_set_primary_icon (StEntry      *entry,
@@ -1324,7 +1372,9 @@ st_entry_set_primary_icon (StEntry      *entry,
  * st_entry_get_primary_icon:
  * @entry: a #StEntry
  *
- * Returns: (transfer none): a #ClutterActor
+ * Get the value of the #StEntry:primary-icon property.
+ *
+ * Returns: (nullable) (transfer none): a #ClutterActor
  */
 ClutterActor *
 st_entry_get_primary_icon (StEntry *entry)
@@ -1342,7 +1392,7 @@ st_entry_get_primary_icon (StEntry *entry)
  * @entry: a #StEntry
  * @icon: (nullable): an #ClutterActor
  *
- * Set the secondary icon of the entry to @icon
+ * Set the secondary icon of the entry to @icon.
  */
 void
 st_entry_set_secondary_icon (StEntry      *entry,
@@ -1361,7 +1411,9 @@ st_entry_set_secondary_icon (StEntry      *entry,
  * st_entry_get_secondary_icon:
  * @entry: a #StEntry
  *
- * Returns: (transfer none): a #ClutterActor
+ * Get the value of the #StEntry:secondary-icon property.
+ *
+ * Returns: (nullable) (transfer none): a #ClutterActor
  */
 ClutterActor *
 st_entry_get_secondary_icon (StEntry *entry)
@@ -1377,9 +1429,9 @@ st_entry_get_secondary_icon (StEntry *entry)
 /**
  * st_entry_set_hint_actor:
  * @entry: a #StEntry
- * @hint_actor: (allow-none): a #ClutterActor
+ * @hint_actor: (nullable): a #ClutterActor
  *
- * Set the hint actor of the entry to @hint_actor
+ * Set the hint actor of the entry to @hint_actor.
  */
 void
 st_entry_set_hint_actor (StEntry      *entry,
@@ -1412,7 +1464,9 @@ st_entry_set_hint_actor (StEntry      *entry,
  * st_entry_get_hint_actor:
  * @entry: a #StEntry
  *
- * Returns: (transfer none): a #ClutterActor
+ * Get the value of the #StEntry:hint-actor property.
+ *
+ * Returns: (nullable) (transfer none): a #ClutterActor
  */
 ClutterActor *
 st_entry_get_hint_actor (StEntry *entry)
diff --git a/src/st/st-focus-manager.c b/src/st/st-focus-manager.c
index 0753d79029..1ac6d28b80 100644
--- a/src/st/st-focus-manager.c
+++ b/src/st/st-focus-manager.c
@@ -133,7 +133,7 @@ st_focus_manager_stage_event (ClutterActor *stage,
  *
  * Gets the #StFocusManager for @stage, creating it if necessary.
  *
- * Return value: (transfer none): the focus manager for @stage
+ * Returns: (transfer none): the focus manager for @stage
  */
 StFocusManager *
 st_focus_manager_get_for_stage (ClutterStage *stage)
@@ -215,7 +215,7 @@ st_focus_manager_remove_group (StFocusManager *manager,
  * Checks if @widget is inside a focus group, and if so, returns
  * the root of that group.
  *
- * Return value: (transfer none): the focus group root, or %NULL if
+ * Returns: (transfer none): the focus group root, or %NULL if
  * @widget is not in a focus group
  */
 StWidget *
diff --git a/src/st/st-generic-accessible.c b/src/st/st-generic-accessible.c
index 982e81433b..e6cb393d83 100644
--- a/src/st/st-generic-accessible.c
+++ b/src/st/st-generic-accessible.c
@@ -72,7 +72,7 @@ st_generic_accessible_class_init (StGenericAccessibleClass *klass)
    * @self. Right now we only care about doubles, so the value is
    * directly returned by the signal.
    *
-   * Return value: value of the current element.
+   * Returns: value of the current element.
    */
   st_generic_accessible_signals[GET_CURRENT_VALUE] =
     g_signal_new ("get-current-value",
@@ -90,7 +90,7 @@ st_generic_accessible_class_init (StGenericAccessibleClass *klass)
    * @self. Right now we only care about doubles, so the value is
    * directly returned by the signal.
    *
-   * Return value: maximum value of the accessible.
+   * Returns: maximum value of the accessible.
    */
   st_generic_accessible_signals[GET_MAXIMUM_VALUE] =
     g_signal_new ("get-maximum-value",
@@ -108,7 +108,7 @@ st_generic_accessible_class_init (StGenericAccessibleClass *klass)
    * @self. Right now we only care about doubles, so the value is
    * directly returned by the signal.
    *
-   * Return value: minimum value of the accessible.
+   * Returns: minimum value of the accessible.
    */
   st_generic_accessible_signals[GET_MINIMUM_VALUE] =
     g_signal_new ("get-minimum-value",
@@ -126,7 +126,7 @@ st_generic_accessible_class_init (StGenericAccessibleClass *klass)
    * @self. Right now we only care about doubles, so the value is
    * directly returned by the signal.
    *
-   * Return value: value of the current element.
+   * Returns: value of the current element.
    */
   st_generic_accessible_signals[GET_MINIMUM_INCREMENT] =
     g_signal_new ("get-minimum-increment",
@@ -221,6 +221,16 @@ atk_value_iface_init (AtkValueIface *iface)
   iface->set_current_value = st_generic_accessible_set_current_value;
 }
 
+/**
+ * st_generic_accessible_new_for_actor:
+ * @actor: a #Clutter Actor
+ *
+ * Create a new #StGenericAccessible for @actor.
+ *
+ * This is useful only for custom widgets that need a proxy for #AtkObject.
+ *
+ * Returns: (transfer full): a new #AtkObject
+ */
 AtkObject*
 st_generic_accessible_new_for_actor (ClutterActor *actor)
 {
diff --git a/src/st/st-icon-colors.c b/src/st/st-icon-colors.c
index 8c5b8d35ab..f20a25c7ea 100644
--- a/src/st/st-icon-colors.c
+++ b/src/st/st-icon-colors.c
@@ -26,7 +26,7 @@
  *
  * Creates a new #StIconColors. All colors are initialized to transparent black.
  *
- * Return value: a newly created #StIconColors. Free with st_icon_colors_unref()
+ * Returns: a newly created #StIconColors. Free with st_icon_colors_unref()
  */
 StIconColors *
 st_icon_colors_new (void)
@@ -107,6 +107,8 @@ st_icon_colors_copy (StIconColors *colors)
  * @colors: a #StIconColors
  * @other: another #StIconColors
  *
+ * Check if two #StIconColors objects are identical.
+ *
  * Returns: %TRUE if the #StIconColors are equal
  */
 gboolean
diff --git a/src/st/st-icon.c b/src/st/st-icon.c
index d6a6c4c22a..f35cb96bb5 100644
--- a/src/st/st-icon.c
+++ b/src/st/st-icon.c
@@ -255,6 +255,11 @@ st_icon_class_init (StIconClass *klass)
   widget_class->style_changed = st_icon_style_changed;
   actor_class->resource_scale_changed = st_icon_resource_scale_changed;
 
+  /**
+   * StIcon:gicon:
+   *
+   * The #GIcon being displayed by this #StIcon.
+   */
   props[PROP_GICON] =
     g_param_spec_object ("gicon",
                          "GIcon",
@@ -262,6 +267,11 @@ st_icon_class_init (StIconClass *klass)
                          G_TYPE_ICON,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StIcon:fallback-gicon:
+   *
+   * The fallback #GIcon to display if #StIcon:gicon fails to load.
+   */
   props[PROP_FALLBACK_GICON] =
     g_param_spec_object ("fallback-gicon",
                          "Fallback GIcon",
@@ -269,6 +279,11 @@ st_icon_class_init (StIconClass *klass)
                          G_TYPE_ICON,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StIcon:icon-name:
+   *
+   * The name of the icon if the icon being displayed is a #GThemedIcon.
+   */
   props[PROP_ICON_NAME] =
     g_param_spec_string ("icon-name",
                          "Icon name",
@@ -276,6 +291,12 @@ st_icon_class_init (StIconClass *klass)
                          NULL,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StIcon:icon-size:
+   *
+   * The size of the icon, if greater than `0`. Other the icon sise is derived
+   * from the current style.
+   */
   props[PROP_ICON_SIZE] =
     g_param_spec_int ("icon-size",
                       "Icon size",
@@ -283,6 +304,12 @@ st_icon_class_init (StIconClass *klass)
                       -1, G_MAXINT, -1,
                       ST_PARAM_READWRITE);
 
+  /**
+   * StIcon:fallback-icon-name:
+   *
+   * The fallback icon name of the #StIcon. See st_icon_set_fallback_icon_name()
+   * for details.
+   */
   props[PROP_FALLBACK_ICON_NAME] =
     g_param_spec_string ("fallback-icon-name",
                          "Fallback icon name",
@@ -524,7 +551,7 @@ st_icon_update_icon_size (StIcon *icon)
 /**
  * st_icon_new:
  *
- * Create a newly allocated #StIcon
+ * Create a newly allocated #StIcon.
  *
  * Returns: A newly allocated #StIcon
  */
@@ -538,10 +565,10 @@ st_icon_new (void)
  * st_icon_get_icon_name:
  * @icon: an #StIcon
  *
- * This is a convenience method to get the icon name of the #GThemedIcon that
- * is currently set.
+ * This is a convenience method to get the icon name of the current icon, if it
+ * is currenyly a #GThemedIcon, or %NULL otherwise.
  *
- * Returns: (transfer none): The name of the icon or %NULL if no icon is set
+ * Returns: (transfer none) (nullable): The name of the icon or %NULL
  */
 const gchar *
 st_icon_get_icon_name (StIcon *icon)
@@ -592,7 +619,7 @@ st_icon_set_icon_name (StIcon      *icon,
  *
  * Gets the current #GIcon in use.
  *
- * Returns: (transfer none): The current #GIcon, if set, otherwise %NULL
+ * Returns: (nullable) (transfer none): The current #GIcon, if set, otherwise %NULL
  */
 GIcon *
 st_icon_get_gicon (StIcon *icon)
diff --git a/src/st/st-image-content.c b/src/st/st-image-content.c
index 84f4918c7b..92f1c14156 100644
--- a/src/st/st-image-content.c
+++ b/src/st/st-image-content.c
@@ -329,7 +329,10 @@ g_loadable_icon_interface_init (GLoadableIconIface *iface)
  *
  * Creates a new #StImageContent, a simple content for sized images.
  *
- * Return value: (transfer full): the newly created #StImageContent content
+ * See #ClutterImage for setting the actual image to display or #StIcon for
+ * displaying icons.
+ *
+ * Returns: (transfer full): the newly created #StImageContent content
  *   Use g_object_unref() when done.
  */
 ClutterContent *
diff --git a/src/st/st-label.c b/src/st/st-label.c
index 9c4ad31d43..54f16b1550 100644
--- a/src/st/st-label.c
+++ b/src/st/st-label.c
@@ -274,6 +274,11 @@ st_label_class_init (StLabelClass *klass)
   widget_class->style_changed = st_label_style_changed;
   widget_class->get_accessible_type = st_label_accessible_get_type;
 
+  /**
+   * StLabel:clutter-text:
+   *
+   * The internal #ClutterText actor supporting the label
+   */
   props[PROP_CLUTTER_TEXT] =
       g_param_spec_object ("clutter-text",
                            "Clutter Text",
@@ -281,6 +286,11 @@ st_label_class_init (StLabelClass *klass)
                            CLUTTER_TYPE_TEXT,
                            ST_PARAM_READABLE);
 
+  /**
+   * StLabel:text:
+   *
+   * The current text being display in the #StLabel.
+   */
   props[PROP_TEXT] =
       g_param_spec_string ("text",
                            "Text",
@@ -314,9 +324,9 @@ st_label_init (StLabel *label)
 
 /**
  * st_label_new:
- * @text: text to set the label to
+ * @text: (nullable): text to set the label to
  *
- * Create a new #StLabel with the specified label
+ * Create a new #StLabel with the label specified by @text.
  *
  * Returns: a new #StLabel
  */
@@ -335,9 +345,10 @@ st_label_new (const gchar *text)
  * st_label_get_text:
  * @label: a #StLabel
  *
- * Get the text displayed on the label
+ * Get the text displayed on the label.
  *
- * Returns: the text for the label. This must not be freed by the application
+ * Returns: (transfer none): the text for the label. This must not be freed by
+ * the application
  */
 const gchar *
 st_label_get_text (StLabel *label)
@@ -350,9 +361,9 @@ st_label_get_text (StLabel *label)
 /**
  * st_label_set_text:
  * @label: a #StLabel
- * @text: text to set the label to
+ * @text: (nullable): text to set the label to
  *
- * Sets the text displayed on the label
+ * Sets the text displayed by the label.
  */
 void
 st_label_set_text (StLabel     *label,
@@ -382,10 +393,11 @@ st_label_set_text (StLabel     *label,
  * st_label_get_clutter_text:
  * @label: a #StLabel
  *
- * Retrieve the internal #ClutterText so that extra parameters can be set
+ * Retrieve the internal #ClutterText used by @label so that extra parameters
+ * can be set.
  *
- * Returns: (transfer none): ethe #ClutterText used by #StLabel. The label
- * is owned by the #StLabel and should not be unref'ed by the application.
+ * Returns: (transfer none): the #ClutterText used by #StLabel. The actor
+ * is owned by the #StLabel and should not be destroyed by the application.
  */
 ClutterActor*
 st_label_get_clutter_text (StLabel *label)
diff --git a/src/st/st-password-entry.c b/src/st/st-password-entry.c
index 7c240a5252..80df97955d 100644
--- a/src/st/st-password-entry.c
+++ b/src/st/st-password-entry.c
@@ -133,12 +133,23 @@ st_password_entry_class_init (StPasswordEntryClass *klass)
 
   st_entry_class->secondary_icon_clicked = st_password_entry_secondary_icon_clicked;
 
+  /**
+   * StPasswordEntry:password-visible:
+   *
+   * Whether the text in the entry is masked for privacy.
+   */
   props[PROP_PASSWORD_VISIBLE] = g_param_spec_boolean ("password-visible",
                                                        "Password visible",
-                                                       "Whether to text in the entry is masked or not",
+                                                       "Whether the text in the entry is masked or not",
                                                        FALSE,
                                                        ST_PARAM_READWRITE);
 
+  /**
+   * StPasswordEntry:show-peek-icon:
+   *
+   * Whether to display an icon button to toggle the masking enabled by the
+   * #StPasswordEntry:password-visible property.
+   */
   props[PROP_SHOW_PEEK_ICON] = g_param_spec_boolean ("show-peek-icon",
                                                      "Show peek icon",
                                                      "Whether to show the password peek icon",
@@ -202,12 +213,15 @@ st_password_entry_new (void)
 /**
  * st_password_entry_set_show_peek_icon:
  * @entry: a #StPasswordEntry
- * @value: #TRUE to show the peek-icon in the entry, #FALSE otherwise
+ * @value: %TRUE to show the peek-icon in the entry
  *
- * Sets whether to show or hide the peek-icon in the password entry.
+ * Sets whether to show or hide the peek-icon in the password entry. If %TRUE,
+ * a icon button for temporarily unmasking the password will be shown at the
+ * end of the entry.
  */
 void
-st_password_entry_set_show_peek_icon (StPasswordEntry *entry, gboolean value)
+st_password_entry_set_show_peek_icon (StPasswordEntry *entry,
+                                      gboolean         value)
 {
   StPasswordEntryPrivate *priv;
 
@@ -231,6 +245,8 @@ st_password_entry_set_show_peek_icon (StPasswordEntry *entry, gboolean value)
  * @entry: a #StPasswordEntry
  *
  * Gets whether peek-icon is shown or hidden in the password entry.
+ *
+ * Returns: %TRUE if visible
  */
 gboolean
 st_password_entry_get_show_peek_icon (StPasswordEntry *entry)
@@ -246,12 +262,13 @@ st_password_entry_get_show_peek_icon (StPasswordEntry *entry)
 /**
  * st_password_entry_set_password_visible:
  * @entry: a #StPasswordEntry
- * @value: #TRUE to show the password in the entry, #FALSE otherwise
+ * @value: %TRUE to show the password in the entry, #FALSE otherwise
  *
  * Sets whether to show or hide text in the password entry.
  */
 void
-st_password_entry_set_password_visible (StPasswordEntry *entry, gboolean value)
+st_password_entry_set_password_visible (StPasswordEntry *entry,
+                                        gboolean         value)
 {
   StPasswordEntryPrivate *priv;
   ClutterActor *clutter_text;
@@ -284,6 +301,8 @@ st_password_entry_set_password_visible (StPasswordEntry *entry, gboolean value)
  * @entry: a #StPasswordEntry
  *
  * Gets whether the text is masked in the password entry.
+ *
+ * Returns: %TRUE if visible
  */
 gboolean
 st_password_entry_get_password_visible (StPasswordEntry *entry)
diff --git a/src/st/st-scroll-bar.c b/src/st/st-scroll-bar.c
index 0bc4769a50..59e9ca8207 100644
--- a/src/st/st-scroll-bar.c
+++ b/src/st/st-scroll-bar.c
@@ -538,11 +538,21 @@ st_scroll_bar_class_init (StScrollBarClass *klass)
 
   widget_class->style_changed = st_scroll_bar_style_changed;
 
+  /**
+   * StScrollBar:adjustment:
+   *
+   * The #StAdjustment controlling the #StScrollBar.
+   */
   props[PROP_ADJUSTMENT] =
     g_param_spec_object ("adjustment", "Adjustment", "The adjustment",
                          ST_TYPE_ADJUSTMENT,
                          ST_PARAM_READWRITE);
 
+  /**
+   * StScrollBar:vertical:
+   *
+   * Whether the #StScrollBar is vertical. If %FALSE it is horizontal.
+   */
   props[PROP_VERTICAL] =
     g_param_spec_boolean ("vertical",
                           "Vertical Orientation",
@@ -552,6 +562,13 @@ st_scroll_bar_class_init (StScrollBarClass *klass)
 
   g_object_class_install_properties (object_class, N_PROPS, props);
 
+
+  /**
+   * StScrollBar::scroll-start:
+   * @bar: a #StScrollBar
+   *
+   * Emitted when the #StScrollBar begins scrolling.
+   */
   signals[SCROLL_START] =
     g_signal_new ("scroll-start",
                   G_TYPE_FROM_CLASS (klass),
@@ -560,6 +577,12 @@ st_scroll_bar_class_init (StScrollBarClass *klass)
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 0);
 
+  /**
+   * StScrollBar::scroll-stop:
+   * @bar: a #StScrollBar
+   *
+   * Emitted when the #StScrollBar finishes scrolling.
+   */
   signals[SCROLL_STOP] =
     g_signal_new ("scroll-stop",
                   G_TYPE_FROM_CLASS (klass),
@@ -982,10 +1005,9 @@ st_scroll_bar_set_adjustment (StScrollBar  *bar,
  * st_scroll_bar_get_adjustment:
  * @bar: a #StScrollbar
  *
- * Gets the adjustment object that stores the current position
- * of the scrollbar.
+ * Gets the #StAdjustment that controls the current position of @bar.
  *
- * Return value: (transfer none): the adjustment
+ * Returns: (transfer none): an #StAdjustment
  */
 StAdjustment *
 st_scroll_bar_get_adjustment (StScrollBar *bar)
diff --git a/src/st/st-scroll-view-fade.c b/src/st/st-scroll-view-fade.c
index 656fa322fe..30b5a4c79f 100644
--- a/src/st/st-scroll-view-fade.c
+++ b/src/st/st-scroll-view-fade.c
@@ -389,6 +389,12 @@ st_scroll_view_fade_class_init (StScrollViewFadeClass *klass)
   offscreen_class->create_texture = st_scroll_view_fade_create_texture;
   offscreen_class->paint_target = st_scroll_view_fade_paint_target;
 
+  /**
+   * StScrollViewFade:vfade-offset:
+   *
+   * The height of area which is faded at the top and bottom edges of the
+   * #StScrollViewFade.
+   */
   props[PROP_VFADE_OFFSET] =
     g_param_spec_float ("vfade-offset",
                         "Vertical Fade Offset",
@@ -396,6 +402,12 @@ st_scroll_view_fade_class_init (StScrollViewFadeClass *klass)
                         0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
                         ST_PARAM_READWRITE);
 
+  /**
+   * StScrollViewFade:hfade-offset:
+   *
+   * The height of area which is faded at the left and right edges of the
+   * #StScrollViewFade.
+   */
   props[PROP_HFADE_OFFSET] =
     g_param_spec_float ("hfade-offset",
                         "Horizontal Fade Offset",
@@ -403,6 +415,11 @@ st_scroll_view_fade_class_init (StScrollViewFadeClass *klass)
                         0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
                         ST_PARAM_READWRITE);
 
+  /**
+   * StScrollViewFade:fade-edges:
+   *
+   * Whether the faded area should extend to the edges of the #StScrollViewFade.
+   */
   props[PROP_FADE_EDGES] =
     g_param_spec_boolean ("fade-edges",
                           "Fade Edges",
@@ -420,6 +437,13 @@ st_scroll_view_fade_init (StScrollViewFade *self)
   self->hfade_offset = DEFAULT_FADE_OFFSET;
 }
 
+/**
+ * st_scroll_view_fade_new:
+ *
+ * Create a new #StScrollViewFade.
+ *
+ * Returns: (transfer full): a new #StScrollViewFade
+ */
 ClutterEffect *
 st_scroll_view_fade_new (void)
 {
diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c
index 349c8c8409..6af6a95190 100644
--- a/src/st/st-scroll-view.c
+++ b/src/st/st-scroll-view.c
@@ -172,8 +172,8 @@ st_scroll_view_get_property (GObject    *object,
  */
 void
 st_scroll_view_update_fade_effect (StScrollView *scroll,
-                                   float vfade_offset,
-                                   float hfade_offset)
+                                   float         vfade_offset,
+                                   float         hfade_offset)
 {
   StScrollViewPrivate *priv = ST_SCROLL_VIEW (scroll)->priv;
 
@@ -830,6 +830,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
 
   widget_class->style_changed = st_scroll_view_style_changed;
 
+  /**
+   * StScrollView:hscroll:
+   *
+   * The horizontal #StScrollBar for the #StScrollView.
+   */
   props[PROP_HSCROLL] =
     g_param_spec_object ("hscroll",
                          "StScrollBar",
@@ -837,6 +842,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                          ST_TYPE_SCROLL_BAR,
                          ST_PARAM_READABLE);
 
+  /**
+   * StScrollView:vscroll:
+   *
+   * The vertical #StScrollBar for the #StScrollView.
+   */
   props[PROP_VSCROLL] =
     g_param_spec_object ("vscroll",
                          "StScrollBar",
@@ -844,6 +854,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                          ST_TYPE_SCROLL_BAR,
                          ST_PARAM_READABLE);
 
+  /**
+   * StScrollView:vscrollbar-policy:
+   *
+   * The #StPolicyType for when to show the vertical #StScrollBar.
+   */
   props[PROP_VSCROLLBAR_POLICY] =
     g_param_spec_enum ("vscrollbar-policy",
                        "Vertical Scrollbar Policy",
@@ -852,6 +867,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                        ST_POLICY_AUTOMATIC,
                        ST_PARAM_READWRITE);
 
+  /**
+   * StScrollView:hscrollbar-policy:
+   *
+   * The #StPolicyType for when to show the horizontal #StScrollBar.
+   */
   props[PROP_HSCROLLBAR_POLICY] =
     g_param_spec_enum ("hscrollbar-policy",
                        "Horizontal Scrollbar Policy",
@@ -860,6 +880,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                        ST_POLICY_AUTOMATIC,
                        ST_PARAM_READWRITE);
 
+  /**
+   * StScrollView:hscrollbar-visible:
+   *
+   * Whether the horizontal #StScrollBar is visible.
+   */
   props[PROP_HSCROLLBAR_VISIBLE] =
     g_param_spec_boolean ("hscrollbar-visible",
                           "Horizontal Scrollbar Visibility",
@@ -867,6 +892,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                           TRUE,
                           ST_PARAM_READABLE);
 
+  /**
+   * StScrollView:vscrollbar-visible:
+   *
+   * Whether the vertical #StScrollBar is visible.
+   */
   props[PROP_VSCROLLBAR_VISIBLE] =
     g_param_spec_boolean ("vscrollbar-visible",
                           "Vertical Scrollbar Visibility",
@@ -874,6 +904,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                           TRUE,
                           ST_PARAM_READABLE);
 
+  /**
+   * StScrollView:enable-mouse-scrolling:
+   *
+   * Whether to enable automatic mouse wheel scrolling.
+   */
   props[PROP_MOUSE_SCROLL] =
     g_param_spec_boolean ("enable-mouse-scrolling",
                           "Enable Mouse Scrolling",
@@ -881,6 +916,11 @@ st_scroll_view_class_init (StScrollViewClass *klass)
                           TRUE,
                           ST_PARAM_READWRITE);
 
+  /**
+   * StScrollView:overlay-scrollbars:
+   *
+   * Whether scrollbars are painted on top of the content.
+   */
   props[PROP_OVERLAY_SCROLLBARS] =
     g_param_spec_boolean ("overlay-scrollbars",
                           "Use Overlay Scrollbars",
@@ -995,6 +1035,13 @@ clutter_container_iface_init (ClutterContainerIface *iface)
   iface->remove = st_scroll_view_remove;
 }
 
+/**
+ * st_scroll_view_new:
+ *
+ * Create a new #StScrollView.
+ *
+ * Returns: (transfer full): a new #StScrollView
+ */
 StWidget *
 st_scroll_view_new (void)
 {
@@ -1005,9 +1052,9 @@ st_scroll_view_new (void)
  * st_scroll_view_get_hscroll_bar:
  * @scroll: a #StScrollView
  *
- * Gets the horizontal scrollbar of the scrollbiew
+ * Gets the horizontal #StScrollBar of the #StScrollView.
  *
- * Return value: (transfer none): the horizontal #StScrollBar
+ * Returns: (transfer none): the horizontal scrollbar
  */
 ClutterActor *
 st_scroll_view_get_hscroll_bar (StScrollView *scroll)
@@ -1021,9 +1068,9 @@ st_scroll_view_get_hscroll_bar (StScrollView *scroll)
  * st_scroll_view_get_vscroll_bar:
  * @scroll: a #StScrollView
  *
- * Gets the vertical scrollbar of the scrollbiew
+ * Gets the vertical scrollbar of the #StScrollView.
  *
- * Return value: (transfer none): the vertical #StScrollBar
+ * Returns: (transfer none): the vertical #StScrollBar
  */
 ClutterActor *
 st_scroll_view_get_vscroll_bar (StScrollView *scroll)
@@ -1033,6 +1080,14 @@ st_scroll_view_get_vscroll_bar (StScrollView *scroll)
   return scroll->priv->vscroll;
 }
 
+/**
+ * st_scroll_view_get_column_size:
+ * @scroll: a #StScrollView
+ *
+ * Get the step increment of the horizontal plane.
+ *
+ * Returns: the horizontal step increment
+ */
 gfloat
 st_scroll_view_get_column_size (StScrollView *scroll)
 {
@@ -1047,6 +1102,13 @@ st_scroll_view_get_column_size (StScrollView *scroll)
   return column_size;
 }
 
+/**
+ * st_scroll_view_set_column_size:
+ * @scroll: a #StScrollView
+ * @column_size: horizontal step increment
+ *
+ * Set the step increment of the horizontal plane to @column_size.
+ */
 void
 st_scroll_view_set_column_size (StScrollView *scroll,
                                 gfloat        column_size)
@@ -1069,6 +1131,14 @@ st_scroll_view_set_column_size (StScrollView *scroll,
     }
 }
 
+/**
+ * st_scroll_view_get_row_size:
+ * @scroll: a #StScrollView
+ *
+ * Get the step increment of the vertical plane.
+ *
+ * Returns: the vertical step increment
+ */
 gfloat
 st_scroll_view_get_row_size (StScrollView *scroll)
 {
@@ -1083,6 +1153,13 @@ st_scroll_view_get_row_size (StScrollView *scroll)
   return row_size;
 }
 
+/**
+ * st_scroll_view_set_row_size:
+ * @scroll: a #StScrollView
+ * @row_size: vertical step increment
+ *
+ * Set the step increment of the vertical plane to @row_size.
+ */
 void
 st_scroll_view_set_row_size (StScrollView *scroll,
                              gfloat        row_size)
@@ -1105,6 +1182,13 @@ st_scroll_view_set_row_size (StScrollView *scroll,
     }
 }
 
+/**
+ * st_scroll_view_set_mouse_scrolling:
+ * @scroll: a #StScrollView
+ * @enabled: %TRUE or %FALSE
+ *
+ * Sets automatic mouse wheel scrolling to enabled or disabled.
+ */
 void
 st_scroll_view_set_mouse_scrolling (StScrollView *scroll,
                                     gboolean      enabled)
@@ -1125,6 +1209,14 @@ st_scroll_view_set_mouse_scrolling (StScrollView *scroll,
     }
 }
 
+/**
+ * st_scroll_view_get_mouse_scrolling:
+ * @scroll: a #StScrollView
+ *
+ * Get whether automatic mouse wheel scrolling is enabled or disabled.
+ *
+ * Returns: %TRUE if enabled, %FALSE otherwise
+ */
 gboolean
 st_scroll_view_get_mouse_scrolling (StScrollView *scroll)
 {
@@ -1167,7 +1259,9 @@ st_scroll_view_set_overlay_scrollbars (StScrollView *scroll,
  * st_scroll_view_get_overlay_scrollbars:
  * @scroll: A #StScrollView
  *
- * Gets the value set by st_scroll_view_set_overlay_scrollbars().
+ * Gets whether scrollbars are painted on top of the content.
+ *
+ * Returns: %TRUE if enabled, %FALSE otherwise
  */
 gboolean
 st_scroll_view_get_overlay_scrollbars (StScrollView *scroll)
diff --git a/src/st/st-scrollable.c b/src/st/st-scrollable.c
index 234318274f..93f06c1222 100644
--- a/src/st/st-scrollable.c
+++ b/src/st/st-scrollable.c
@@ -86,6 +86,40 @@ st_scrollable_default_init (StScrollableInterface *g_iface)
 
   if (!initialized)
     {
+      /**
+       * StScrollable:hadjustment:
+       *
+       * The horizontal #StAdjustment used by the #StScrollable.
+       *
+       * Implementations should override this property to provide read-write
+       * access to the #StAdjustment.
+       *
+       * JavaScript code may override this as demonstrated below:
+       *
+       * |[<!-- language="JavaScript" -->
+       * var MyScrollable = GObject.registerClass({
+       *     Properties: {
+       *         'hadjustment': GObject.ParamSpec.override(
+       *             'hadjustment',
+       *             St.Scrollable
+       *         )
+       *     }
+       * }, class MyScrollable extends St.Scrollable {
+       *
+       *     get hadjustment() {
+       *         return this._hadjustment || null;
+       *     }
+       *
+       *     set hadjustment(adjustment) {
+       *         if (this.hadjustment === adjustment)
+       *             return;
+       *
+       *         this._hadjustment = adjustment;
+       *         this.notify('hadjustment');
+       *     }
+       * });
+       * ]|
+       */
       g_object_interface_install_property (g_iface,
                                            g_param_spec_object ("hadjustment",
                                                                 "StAdjustment",
@@ -93,6 +127,17 @@ st_scrollable_default_init (StScrollableInterface *g_iface)
                                                                 ST_TYPE_ADJUSTMENT,
                                                                 ST_PARAM_READWRITE));
 
+      /**
+       * StScrollable:vadjustment:
+       *
+       * The vertical #StAdjustment used by the #StScrollable.
+       *
+       * Implementations should override this property to provide read-write
+       * access to the #StAdjustment.
+       *
+       * See #StScrollable:hadjustment for an example of how to override this
+       * property in JavaScript code.
+       */
       g_object_interface_install_property (g_iface,
                                            g_param_spec_object ("vadjustment",
                                                                 "StAdjustment",
@@ -104,6 +149,18 @@ st_scrollable_default_init (StScrollableInterface *g_iface)
     }
 }
 
+/**
+ * st_scrollable_set_adjustments:
+ * @scrollable: a #StScrollable
+ * @hadjustment: the horizontal #StAdjustment
+ * @vadjustment: the vertical #StAdjustment
+ *
+ * This method should be implemented by classes implementing the #StScrollable
+ * interface.
+ *
+ * JavaScript code should do this by overriding the `vfunc_set_adjustments()`
+ * method.
+ */
 void
 st_scrollable_set_adjustments (StScrollable *scrollable,
                                StAdjustment *hadjustment,
@@ -116,11 +173,17 @@ st_scrollable_set_adjustments (StScrollable *scrollable,
 
 /**
  * st_scroll_bar_get_adjustments:
- * @hadjustment: (transfer none) (out) (optional) (nullable): location to store the horizontal adjustment, 
or %NULL
- * @vadjustment: (transfer none) (out) (optional) (nullable): location to store the vertical adjustment, or 
%NULL
+ * @hadjustment: (transfer none) (out) (optional): location to store the horizontal adjustment, or %NULL
+ * @vadjustment: (transfer none) (out) (optional): location to store the vertical adjustment, or %NULL
  *
  * Gets the adjustment objects that store the offsets of the scrollable widget
  * into its possible scrolling area.
+ *
+ * This method should be implemented by classes implementing the #StScrollable
+ * interface.
+ *
+ * JavaScript code should do this by overriding the `vfunc_get_adjustments()`
+ * method.
  */
 void
 st_scrollable_get_adjustments (StScrollable  *scrollable,
diff --git a/src/st/st-settings.c b/src/st/st-settings.c
index 5ce73d0153..0ece3ccef7 100644
--- a/src/st/st-settings.c
+++ b/src/st/st-settings.c
@@ -199,41 +199,89 @@ st_settings_class_init (StSettingsClass *klass)
   object_class->set_property = st_settings_set_property;
   object_class->get_property = st_settings_get_property;
 
+  /**
+   * StSettings:enable-animations:
+   *
+   * Whether animations are enabled.
+   */
   props[PROP_ENABLE_ANIMATIONS] = g_param_spec_boolean ("enable-animations",
                                                         "Enable animations",
                                                         "Enable animations",
                                                         TRUE,
                                                         ST_PARAM_READABLE);
+
+  /**
+   * StSettings:primary-paste:
+   *
+   * Whether pasting from the `PRIMARY` selection is supported (eg. middle-click
+   * paste).
+   */
   props[PROP_PRIMARY_PASTE] = g_param_spec_boolean ("primary-paste",
                                                     "Primary paste",
                                                     "Primary paste",
                                                     TRUE,
                                                     ST_PARAM_READABLE);
+
+  /**
+   * StSettings:drag-threshold:
+   *
+   * The threshold before a drag operation begins.
+   */
   props[PROP_DRAG_THRESHOLD] = g_param_spec_int ("drag-threshold",
                                                  "Drag threshold",
                                                  "Drag threshold",
                                                  0, G_MAXINT, 8,
                                                  ST_PARAM_READABLE);
+
+  /**
+   * StSettings:font-name:
+   *
+   * The current font name.
+   */
   props[PROP_FONT_NAME] = g_param_spec_string ("font-name",
                                                "font name",
                                                "font name",
                                                "",
                                                ST_PARAM_READABLE);
+
+  /**
+   * StSettings:gtk-theme:
+   *
+   * The current GTK theme.
+   */
   props[PROP_GTK_THEME] = g_param_spec_string ("gtk-theme",
-                                               "GTK+ Theme",
-                                               "GTK+ Theme",
+                                               "GTK Theme",
+                                               "GTK Theme",
                                                "",
                                                ST_PARAM_READABLE);
+
+  /**
+   * StSettings:gtk-icon-theme:
+   *
+   * The current GTK icon theme
+   */
   props[PROP_GTK_ICON_THEME] = g_param_spec_string ("gtk-icon-theme",
-                                                    "GTK+ Icon Theme",
-                                                    "GTK+ Icon Theme",
+                                                    "GTK Icon Theme",
+                                                    "GTK Icon Theme",
                                                     "",
                                                     ST_PARAM_READABLE);
+
+  /**
+   * StSettings:magnifier-active:
+   *
+   * Whether the accessibility magnifier is active.
+   */
   props[PROP_MAGNIFIER_ACTIVE] = g_param_spec_boolean("magnifier-active",
                                                       "Magnifier is active",
-                                                      "Weather the a11y magnifier is active",
+                                                      "Whether the a11y magnifier is active",
                                                       FALSE,
                                                       ST_PARAM_READABLE);
+
+  /**
+   * StSettings:slow-down-factor:
+   *
+   * The slow-down factor applied to all animation durations.
+   */
   props[PROP_SLOW_DOWN_FACTOR] = g_param_spec_double("slow-down-factor",
                                                       "Slow down factor",
                                                       "Factor applied to all animation durations",
@@ -338,9 +386,9 @@ st_settings_init (StSettings *settings)
 /**
  * st_settings_get:
  *
- * Gets the #StSettings
+ * Gets the global #StSettings object.
  *
- * Returns: (transfer none): a settings object
+ * Returns: (transfer none): the global #StSettings object
  **/
 StSettings *
 st_settings_get (void)
diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c
index f3a22f0346..96e654fda0 100644
--- a/src/st/st-shadow.c
+++ b/src/st/st-shadow.c
@@ -117,7 +117,7 @@ st_shadow_unref (StShadow *shadow)
  * compare non-identically if they differ only by floating point rounding
  * errors.
  *
- * Return value: %TRUE if the two shadows are identical
+ * Returns: %TRUE if the two shadows are identical
  */
 gboolean
 st_shadow_equal (StShadow *shadow,
@@ -216,6 +216,13 @@ st_shadow_helper_new (StShadow     *shadow)
   return helper;
 }
 
+/**
+ * st_shadow_helper_update:
+ * @helper: a #StShadowHelper
+ * @source: a #ClutterActor
+ *
+ * Update @helper from @source.
+ */
 void
 st_shadow_helper_update (StShadowHelper *helper,
                          ClutterActor   *source)
diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c
index 0359534e2e..947d8fc89e 100644
--- a/src/st/st-texture-cache.c
+++ b/src/st/st-texture-cache.c
@@ -100,6 +100,12 @@ st_texture_cache_class_init (StTextureCacheClass *klass)
   gobject_class->dispose = st_texture_cache_dispose;
   gobject_class->finalize = st_texture_cache_finalize;
 
+  /**
+   * StTextureCache::icon-theme-changed:
+   * @self: a #StTextureCache
+   *
+   * Emitted when the icon theme is changed.
+   */
   signals[ICON_THEME_CHANGED] =
     g_signal_new ("icon-theme-changed",
                   G_TYPE_FROM_CLASS (klass),
@@ -108,6 +114,13 @@ st_texture_cache_class_init (StTextureCacheClass *klass)
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 0);
 
+  /**
+   * StTextureCache::texture-file-changed:
+   * @self: a #StTextureCache
+   * @file: a #GFile
+   *
+   * Emitted when the source file of a texture is changed.
+   */
   signals[TEXTURE_FILE_CHANGED] =
     g_signal_new ("texture-file-changed",
                   G_TYPE_FROM_CLASS (klass),
@@ -799,7 +812,7 @@ st_texture_cache_free_bind (gpointer data)
 
 /**
  * st_texture_cache_bind_cairo_surface_property:
- * @cache:
+ * @cache: A #StTextureCache
  * @object: A #GObject with a property @property_name of type #cairo_surface_t
  * @property_name: Name of a property
  *
@@ -810,7 +823,7 @@ st_texture_cache_free_bind (gpointer data)
  * If the source object is destroyed, the texture will continue to show the last
  * value of the property.
  *
- * Return value: (transfer none): A new #GIcon
+ * Returns: (transfer none): A new #GIcon
  */
 GIcon *
 st_texture_cache_bind_cairo_surface_property (StTextureCache    *cache,
@@ -879,7 +892,7 @@ st_texture_cache_load (StTextureCache       *cache,
 
 /**
  * ensure_request:
- * @cache:
+ * @cache: A #StTextureCache
  * @key: A cache key
  * @policy: Cache policy
  * @request: (out): If no request is outstanding, one will be created and returned here
@@ -932,8 +945,8 @@ ensure_request (StTextureCache        *cache,
 
 /**
  * st_texture_cache_load_gicon:
- * @cache: The texture cache instance
- * @theme_node: (nullable): The #StThemeNode to use for colors, or NULL
+ * @cache: A #StTextureCache
+ * @theme_node: (nullable): The #StThemeNode to use for colors, or %NULL
  *                            if the icon must not be recolored
  * @icon: the #GIcon to load
  * @size: Size of themed
@@ -944,7 +957,7 @@ ensure_request (StTextureCache        *cache,
  * icon isn't loaded already, the texture will be filled
  * asynchronously.
  *
- * Return Value: (transfer none): A new #ClutterActor for the icon, or %NULL if not found
+ * Returns: (transfer none) (nullable): A new #ClutterActor for the icon, or %NULL if not found
  */
 ClutterActor *
 st_texture_cache_load_gicon (StTextureCache    *cache,
@@ -1371,7 +1384,7 @@ st_texture_cache_load_sliced_image (StTextureCache *cache,
 
 /**
  * st_texture_cache_load_file_async:
- * @cache: The texture cache instance
+ * @cache: A #StTextureCache
  * @file: a #GFile of the image file from which to create a pixbuf
  * @available_width: available width for the image, can be -1 if not limited
  * @available_height: available height for the image, can be -1 if not limited
@@ -1382,7 +1395,7 @@ st_texture_cache_load_sliced_image (StTextureCache *cache,
  * size of zero.  At some later point, either the image will be loaded successfully
  * and at that point size will be negotiated, or upon an error, no image will be set.
  *
- * Return value: (transfer none): A new #ClutterActor with no image loaded initially.
+ * Returns: (transfer none): A new #ClutterActor with no image loaded initially.
  */
 ClutterActor *
 st_texture_cache_load_file_async (StTextureCache *cache,
@@ -1612,7 +1625,7 @@ static StTextureCache *instance = NULL;
 /**
  * st_texture_cache_get_default:
  *
- * Return value: (transfer none): The global texture cache
+ * Returns: (transfer none): The global texture cache
  */
 StTextureCache*
 st_texture_cache_get_default (void)
@@ -1622,6 +1635,13 @@ st_texture_cache_get_default (void)
   return instance;
 }
 
+/**
+ * st_texture_cache_rescan_icon_theme:
+ *
+ * Rescan the current icon theme, if necessary.
+ *
+ * Returns: %TRUE if the icon theme has changed and needed to be reloaded.
+ */
 gboolean
 st_texture_cache_rescan_icon_theme (StTextureCache *cache)
 {
diff --git a/src/st/st-theme-context.c b/src/st/st-theme-context.c
index f10737b803..6d8c90d152 100644
--- a/src/st/st-theme-context.c
+++ b/src/st/st-theme-context.c
@@ -118,16 +118,23 @@ st_theme_context_class_init (StThemeContextClass *klass)
   /**
    * StThemeContext:scale-factor:
    *
-   * The scaling factor used or high dpi scaling.
+   * The scaling factor used for HiDPI scaling.
    */
   g_object_class_install_property (object_class,
                                    PROP_SCALE_FACTOR,
                                    g_param_spec_int ("scale-factor",
                                                      "Scale factor",
-                                                     "Integer scale factor used for high dpi scaling",
+                                                     "Integer scale factor used for HiDPI scaling",
                                                      0, G_MAXINT, 1,
                                                      ST_PARAM_READWRITE));
 
+  /**
+   * StThemeContext::changed:
+   * @self: a #StThemeContext
+   *
+   * Emitted when the icon theme, font, resolution, scale factor or the current
+   * theme's custom stylesheets change.
+   */
   signals[CHANGED] =
     g_signal_new ("changed",
                   G_TYPE_FROM_CLASS (klass),
@@ -214,6 +221,8 @@ st_theme_context_get_property (GObject    *object,
  * This can be useful in testing scenarios, or if using StThemeContext
  * with something other than #ClutterActor objects, but you generally
  * should use st_theme_context_get_for_stage() instead.
+ *
+ * Returns: (transfer full): a new #StThemeContext
  */
 StThemeContext *
 st_theme_context_new (void)
@@ -296,7 +305,7 @@ on_icon_theme_changed (StTextureCache *cache,
  *
  * Gets a singleton theme context associated with the stage.
  *
- * Return value: (transfer none): the singleton theme context for the stage
+ * Returns: (transfer none): the singleton theme context for the stage
  */
 StThemeContext *
 st_theme_context_get_for_stage (ClutterStage *stage)
@@ -320,6 +329,7 @@ st_theme_context_get_for_stage (ClutterStage *stage)
 /**
  * st_theme_context_set_theme:
  * @context: a #StThemeContext
+ * @theme: a #StTheme
  *
  * Sets the default set of theme stylesheets for the context. This theme will
  * be used for the root node and for nodes descending from it, unless some other
@@ -358,7 +368,7 @@ st_theme_context_set_theme (StThemeContext          *context,
  *
  * Gets the default theme for the context. See st_theme_context_set_theme()
  *
- * Return value: (transfer none): the default theme for the context
+ * Returns: (transfer none): the default theme for the context
  */
 StTheme *
 st_theme_context_get_theme (StThemeContext *context)
@@ -376,7 +386,7 @@ st_theme_context_get_theme (StThemeContext *context)
  * Sets the default font for the theme context. This is the font that
  * is inherited by the root node of the tree of theme nodes. If the
  * font is not overriden, then this font will be used. If the font is
- * partially modified (for example, with 'font-size: 110%', then that
+ * partially modified (for example, with 'font-size: 110%'), then that
  * modification is based on this font.
  */
 void
@@ -401,7 +411,7 @@ st_theme_context_set_font (StThemeContext             *context,
  *
  * Gets the default font for the theme context. See st_theme_context_set_font().
  *
- * Return value: the default font for the theme context.
+ * Returns: the default font for the theme context.
  */
 const PangoFontDescription *
 st_theme_context_get_font (StThemeContext *context)
@@ -419,7 +429,7 @@ st_theme_context_get_font (StThemeContext *context)
  * context. For the node tree associated with a stage, this node represents
  * styles applied to the stage itself.
  *
- * Return value: (transfer none): the root node of the context's style tree
+ * Returns: (transfer none): the root node of the context's style tree
  */
 StThemeNode *
 st_theme_context_get_root_node (StThemeContext *context)
@@ -439,7 +449,7 @@ st_theme_context_get_root_node (StThemeContext *context)
  * Return an existing node matching @node, or if that isn't possible,
  * @node itself.
  *
- * Return value: (transfer none): a node with the same properties as @node
+ * Returns: (transfer none): a node with the same properties as @node
  */
 StThemeNode *
 st_theme_context_intern_node (StThemeContext *context,
@@ -461,7 +471,7 @@ st_theme_context_intern_node (StThemeContext *context,
  *
  * Return the current scale factor of @context.
  *
- * Return value: a scale factor
+ * Returns: an integer scale factor
  */
 int
 st_theme_context_get_scale_factor (StThemeContext *context)
diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c
index ca9675895b..cbfc9d064a 100644
--- a/src/st/st-theme-node.c
+++ b/src/st/st-theme-node.c
@@ -180,11 +180,11 @@ split_on_whitespace (const gchar *s)
  * @pseudo_class: (nullable): a whitespace-separated list of pseudo-classes
  *   (like 'hover' or 'visited') to match CSS rules against
  *
- * Creates a new #StThemeNode. Once created, a node is immutable. Of any
+ * Creates a new #StThemeNode. Once created, a node is immutable. If any
  * of the attributes of the node (like the @element_class) change the node
  * and its child nodes must be destroyed and recreated.
  *
- * Return value: (transfer full): the theme node
+ * Returns: (transfer full): a new #StThemeNode
  */
 StThemeNode *
 st_theme_node_new (StThemeContext    *context,
@@ -229,8 +229,8 @@ st_theme_node_new (StThemeContext    *context,
  *
  * Gets the parent themed element node.
  *
- * Return value: (transfer none): the parent #StThemeNode, or %NULL if this
- *  is the root node of the tree of theme elements.
+ * Returns: (nullable) (transfer none): the parent #StThemeNode, or %NULL if
+ *  this is the root node of the tree of theme elements.
  */
 StThemeNode *
 st_theme_node_get_parent (StThemeNode *node)
@@ -246,7 +246,7 @@ st_theme_node_get_parent (StThemeNode *node)
  *
  * Gets the theme stylesheet set that styles this node
  *
- * Return value: (transfer none): the theme stylesheet set
+ * Returns: (transfer none): the theme stylesheet set
  */
 StTheme *
 st_theme_node_get_theme (StThemeNode *node)
@@ -256,6 +256,14 @@ st_theme_node_get_theme (StThemeNode *node)
   return node->theme;
 }
 
+/**
+ * st_theme_node_get_element_type:
+ * @node: a #StThemeNode
+ *
+ * Get the element #GType for @node.
+ *
+ * Returns: the element type
+ */
 GType
 st_theme_node_get_element_type (StThemeNode *node)
 {
@@ -264,6 +272,14 @@ st_theme_node_get_element_type (StThemeNode *node)
   return node->element_type;
 }
 
+/**
+ * st_theme_node_get_element_id:
+ * @node: a #StThemeNode
+ *
+ * Get the unqiue element ID for @node.
+ *
+ * Returns: (transfer none): the element's ID
+ */
 const char *
 st_theme_node_get_element_id (StThemeNode *node)
 {
@@ -274,6 +290,9 @@ st_theme_node_get_element_id (StThemeNode *node)
 
 /**
  * st_theme_node_get_element_classes:
+ * @node: a #StThemeNode
+ *
+ * Get the list of element classes for @node.
  *
  * Returns: (transfer none): the element's classes
  */
@@ -287,6 +306,9 @@ st_theme_node_get_element_classes (StThemeNode *node)
 
 /**
  * st_theme_node_get_pseudo_classes:
+ * @node: a #StThemeNode
+ *
+ * Get the list of pseudo-classes for @node (eg. `:focused`).
  *
  * Returns: (transfer none): the element's pseudo-classes
  */
@@ -307,21 +329,13 @@ st_theme_node_get_pseudo_classes (StThemeNode *node)
  * the same CSS rules and have the same style properties. However, two
  * nodes that have ended up with identical style properties do not
  * necessarily compare equal.
- * In detail, @node_a and @node_b are considered equal iff
- * <itemizedlist>
- *   <listitem>
- *     <para>they share the same #StTheme and #StThemeContext</para>
- *   </listitem>
- *   <listitem>
- *     <para>they have the same parent</para>
- *   </listitem>
- *   <listitem>
- *     <para>they have the same element type</para>
- *   </listitem>
- *   <listitem>
- *     <para>their id, class, pseudo-class and inline-style match</para>
- *   </listitem>
- * </itemizedlist>
+ *
+ * In detail, @node_a and @node_b are considered equal if and only if:
+ *
+ * - they share the same #StTheme and #StThemeContext
+ * - they have the same parent
+ * - they have the same element type
+ * - their id, class, pseudo-class and inline-style match
  *
  * Returns: %TRUE if @node_a equals @node_b
  */
@@ -383,6 +397,14 @@ st_theme_node_equal (StThemeNode *node_a, StThemeNode *node_b)
   return TRUE;
 }
 
+/**
+ * st_theme_node_hash:
+ * @node: a #StThemeNode
+ *
+ * Converts @node to a hash value.
+ *
+ * Returns: a hash value corresponding to @node
+ */
 guint
 st_theme_node_hash (StThemeNode *node)
 {
@@ -637,7 +659,7 @@ get_color_from_term (StThemeNode  *node,
  *
  * See also st_theme_node_get_color(), which provides a simpler API.
  *
- * Return value: %TRUE if the property was found in the properties for this
+ * Returns: %TRUE if the property was found in the properties for this
  *  theme node (or in the properties of parent nodes when inheriting.)
  */
 gboolean
@@ -727,7 +749,7 @@ st_theme_node_get_color (StThemeNode  *node,
  *
  * See also st_theme_node_get_double(), which provides a simpler API.
  *
- * Return value: %TRUE if the property was found in the properties for this
+ * Returns: %TRUE if the property was found in the properties for this
  *  theme node (or in the properties of parent nodes when inheriting.)
  */
 gboolean
@@ -780,7 +802,7 @@ st_theme_node_lookup_double (StThemeNode *node,
  * Generically looks up a property containing a single time value,
  *  which is converted to milliseconds.
  *
- * Return value: %TRUE if the property was found in the properties for this
+ * Returns: %TRUE if the property was found in the properties for this
  *  theme node (or in the properties of parent nodes when inheriting.)
  */
 gboolean
@@ -837,7 +859,7 @@ st_theme_node_lookup_time (StThemeNode *node,
  * and lets you handle the case where the theme does not specify the
  * indicated value.
  *
- * Return value: the value found. If @property_name is not
+ * Returns: the value found. If @property_name is not
  *  found, a warning will be logged and 0 will be returned.
  */
 gdouble
@@ -872,7 +894,7 @@ st_theme_node_get_double (StThemeNode *node,
  *
  * See also st_theme_node_get_url(), which provides a simpler API.
  *
- * Return value: %TRUE if the property was found in the properties for this
+ * Returns: %TRUE if the property was found in the properties for this
  *  theme node (or in the properties of parent nodes when inheriting.)
  */
 gboolean
@@ -928,7 +950,7 @@ st_theme_node_lookup_url (StThemeNode  *node,
  * and lets you handle the case where the theme does not specify the
  * indicated value.
  *
- * Returns: (transfer full): the newly allocated value if found.
+ * Returns: (nullable) (transfer full): the newly allocated value if found.
  *  If @property_name is not found, a warning will be logged and %NULL
  *  will be returned.
  */
@@ -1169,7 +1191,7 @@ get_length_internal (StThemeNode *node,
  *
  * See also st_theme_node_get_length(), which provides a simpler API.
  *
- * Return value: %TRUE if the property was found in the properties for this
+ * Returns: %TRUE if the property was found in the properties for this
  *  theme node (or in the properties of parent nodes when inheriting.)
  */
 gboolean
@@ -1204,9 +1226,10 @@ st_theme_node_lookup_length (StThemeNode *node,
  * this does not print a warning if the property is not found; it just
  * returns 0.
  *
- * See also st_theme_node_lookup_length(), which provides more options.
+ * See also st_theme_node_lookup_length(), which provides more options. The
+ * returned value is in physical pixels, as opposed to logical pixels.
  *
- * Return value: the length, in pixels, or 0 if the property was not found.
+ * Returns: the length, in pixels, or 0 if the property was not found.
  */
 gdouble
 st_theme_node_get_length (StThemeNode *node,
@@ -1807,6 +1830,15 @@ _st_theme_node_ensure_geometry (StThemeNode *node)
     node->height = node->min_height;
 }
 
+/**
+ * st_theme_node_get_border_width:
+ * @node: a #StThemeNode
+ * @side: a #StCorner
+ *
+ * Get the border width for @node on @side, in physical pixels.
+ *
+ * Returns: the border width in physical pixels
+ */
 int
 st_theme_node_get_border_width (StThemeNode *node,
                                 StSide       side)
@@ -1819,6 +1851,15 @@ st_theme_node_get_border_width (StThemeNode *node,
   return node->border_width[side];
 }
 
+/**
+ * st_theme_node_get_border_radius:
+ * @node: a #StThemeNode
+ * @corner: a #StCorner
+ *
+ * Get the border radius for @node at @corner, in physical pixels.
+ *
+ * Returns: the border radius in physical pixels
+ */
 int
 st_theme_node_get_border_radius (StThemeNode *node,
                                  StCorner     corner)
@@ -1831,6 +1872,14 @@ st_theme_node_get_border_radius (StThemeNode *node,
   return node->border_radius[corner];
 }
 
+/**
+ * st_theme_node_get_outline_width:
+ * @node: a #StThemeNode
+ *
+ * Get the width of the outline for @node, in physical pixels.
+ *
+ * Returns: the width in physical pixels
+ */
 int
 st_theme_node_get_outline_width (StThemeNode  *node)
 {
@@ -1859,6 +1908,14 @@ st_theme_node_get_outline_color (StThemeNode  *node,
   *color = node->outline_color;
 }
 
+/**
+ * st_theme_node_get_width:
+ * @node: a #StThemeNode
+ *
+ * Get the width for @node, in physical pixels.
+ *
+ * Returns: the width in physical pixels
+ */
 int
 st_theme_node_get_width (StThemeNode *node)
 {
@@ -1868,6 +1925,14 @@ st_theme_node_get_width (StThemeNode *node)
   return node->width;
 }
 
+/**
+ * st_theme_node_get_height:
+ * @node: a #StThemeNode
+ *
+ * Get the height for @node, in physical pixels.
+ *
+ * Returns: the height in physical pixels
+ */
 int
 st_theme_node_get_height (StThemeNode *node)
 {
@@ -1877,6 +1942,14 @@ st_theme_node_get_height (StThemeNode *node)
   return node->height;
 }
 
+/**
+ * st_theme_node_get_min_width:
+ * @node: a #StThemeNode
+ *
+ * Get the minimum width for @node, in physical pixels.
+ *
+ * Returns: the minimum width in physical pixels
+ */
 int
 st_theme_node_get_min_width (StThemeNode *node)
 {
@@ -1886,6 +1959,14 @@ st_theme_node_get_min_width (StThemeNode *node)
   return node->min_width;
 }
 
+/**
+ * st_theme_node_get_min_height:
+ * @node: a #StThemeNode
+ *
+ * Get the minimum height for @node, in physical pixels.
+ *
+ * Returns: the minimum height in physical pixels
+ */
 int
 st_theme_node_get_min_height (StThemeNode *node)
 {
@@ -1895,6 +1976,14 @@ st_theme_node_get_min_height (StThemeNode *node)
   return node->min_height;
 }
 
+/**
+ * st_theme_node_get_max_width:
+ * @node: a #StThemeNode
+ *
+ * Get the maximum width for @node, in physical pixels.
+ *
+ * Returns: the maximum width in physical pixels
+ */
 int
 st_theme_node_get_max_width (StThemeNode *node)
 {
@@ -1904,6 +1993,14 @@ st_theme_node_get_max_width (StThemeNode *node)
   return node->max_width;
 }
 
+/**
+ * st_theme_node_get_max_height:
+ * @node: a #StThemeNode
+ *
+ * Get the maximum height for @node, in physical pixels.
+ *
+ * Returns: the maximum height in physical pixels
+ */
 int
 st_theme_node_get_max_height (StThemeNode *node)
 {
@@ -2270,6 +2367,16 @@ st_theme_node_get_border_color (StThemeNode  *node,
   *color = node->border_color[side];
 }
 
+/**
+ * st_theme_node_get_padding:
+ * @node: a #StThemeNode
+ * @side: a #StSide
+ *
+ * Get the padding for @node on @side, in physical pixels. This corresponds to
+ * the CSS properties such as `padding-top`.
+ *
+ * Returns: the padding size in physical pixels
+ */
 double
 st_theme_node_get_padding (StThemeNode *node,
                            StSide       side)
@@ -2282,6 +2389,16 @@ st_theme_node_get_padding (StThemeNode *node,
   return node->padding[side];
 }
 
+/**
+ * st_theme_node_get_margin:
+ * @node: a #StThemeNode
+ * @side: a #StSide
+ *
+ * Get the margin for @node on @side, in physical pixels. This corresponds to
+ * the CSS properties such as `margin-top`.
+ *
+ * Returns: the margin size in physical pixels
+ */
 double
 st_theme_node_get_margin (StThemeNode *node,
                           StSide side)
@@ -2326,6 +2443,15 @@ st_theme_node_get_transition_duration (StThemeNode *node)
   return factor * node->transition_duration;
 }
 
+/**
+ * st_theme_node_get_icon_style:
+ * @node: a #StThemeNode
+ *
+ * Get the icon style for @node (eg. symbolic, regular). This corresponds to the
+ * special `-st-icon-style` CSS property.
+ *
+ * Returns: the icon style for @node
+ */
 StIconStyle
 st_theme_node_get_icon_style (StThemeNode *node)
 {
@@ -2368,6 +2494,14 @@ st_theme_node_get_icon_style (StThemeNode *node)
   return ST_ICON_STYLE_REQUESTED;
 }
 
+/**
+ * st_theme_node_get_text_decoration
+ * @node: a #StThemeNode
+ *
+ * Get the text decoration for @node (eg. underline, line-through, etc).
+ *
+ * Returns: the text decoration for @node
+ */
 StTextDecoration
 st_theme_node_get_text_decoration (StThemeNode *node)
 {
@@ -2435,6 +2569,14 @@ st_theme_node_get_text_decoration (StThemeNode *node)
   return 0;
 }
 
+/**
+ * st_theme_node_get_text_align:
+ * @node: a #StThemeNode
+ *
+ * Get the text alignment of @node.
+ *
+ * Returns: the alignment of text for @node
+ */
 StTextAlign
 st_theme_node_get_text_align(StThemeNode *node)
 {
@@ -2486,9 +2628,9 @@ st_theme_node_get_text_align(StThemeNode *node)
  * st_theme_node_get_letter_spacing:
  * @node: a #StThemeNode
  *
- * Gets the value for the letter-spacing style property, in pixels.
+ * Gets the value for the letter-spacing style property, in physical pixels.
  *
- * Return value: the value of the letter-spacing property, if
+ * Returns: the value of the letter-spacing property, if
  *   found, or zero if such property has not been found.
  */
 gdouble
@@ -2763,6 +2905,14 @@ font_variant_from_term (CRTerm       *term,
   return TRUE;
 }
 
+/**
+ * st_theme_node_get_font:
+ * @node: a #StThemeNode
+ *
+ * Get the current font of @node as a #PangoFontDescription
+ *
+ * Returns: (transfer none): the current font
+ */
 const PangoFontDescription *
 st_theme_node_get_font (StThemeNode *node)
 {
@@ -2956,6 +3106,14 @@ st_theme_node_get_font (StThemeNode *node)
   return node->font_desc;
 }
 
+/**
+ * st_theme_node_get_font_features:
+ * @node: a #StThemeNode
+ *
+ * Get the CSS font-features for @node.
+ *
+ * Returns: (transfer full): font-features as a string
+ */
 gchar *
 st_theme_node_get_font_features (StThemeNode *node)
 {
@@ -2995,7 +3153,7 @@ st_theme_node_get_font_features (StThemeNode *node)
  *
  * Gets the value for the border-image style property
  *
- * Return value: (transfer none): the border image, or %NULL
+ * Returns: (transfer none): the border image, or %NULL
  *   if there is no border image.
  */
 StBorderImage *
@@ -3132,10 +3290,9 @@ st_theme_node_get_border_image (StThemeNode *node)
  * st_theme_node_get_horizontal_padding:
  * @node: a #StThemeNode
  *
- * Gets the total horizonal padding (left + right padding)
+ * Gets the total horizonal padding (left + right padding), in physical pixels.
  *
- * Return value: the total horizonal padding
- *   in pixels
+ * Returns: the total horizonal padding in physical pixels
  */
 double
 st_theme_node_get_horizontal_padding (StThemeNode *node)
@@ -3151,10 +3308,9 @@ st_theme_node_get_horizontal_padding (StThemeNode *node)
  * st_theme_node_get_vertical_padding:
  * @node: a #StThemeNode
  *
- * Gets the total vertical padding (top + bottom padding)
+ * Gets the total vertical padding (top + bottom padding), in physical pixels.
  *
- * Return value: the total vertical padding
- *   in pixels
+ * Returns: the total vertical padding in physical pixels
  */
 double
 st_theme_node_get_vertical_padding (StThemeNode *node)
@@ -3317,9 +3473,9 @@ parse_shadow_property (StThemeNode       *node,
  *
  * See also st_theme_node_get_shadow(), which provides a simpler API.
  *
- * Return value: %TRUE if the property was found in the properties for this
- * theme node (or in the properties of parent nodes when inheriting.), %FALSE
- * if the property was not found, or was explicitly set to 'none'.
+ * Returns: %TRUE if the property was found in the properties for this
+ *   theme node (or in the properties of parent nodes when inheriting.), %FALSE
+ *   if the property was not found, or was explicitly set to 'none'.
  */
 gboolean
 st_theme_node_lookup_shadow (StThemeNode  *node,
@@ -3402,7 +3558,8 @@ st_theme_node_lookup_shadow (StThemeNode  *node,
  *
  * See also st_theme_node_lookup_shadow (), which provides more options.
  *
- * Return value: (transfer full): the shadow, or %NULL if the property was not found.
+ * Returns: (nullable) (transfer full): the shadow, or %NULL if the property was
+ *   not found.
  */
 StShadow *
 st_theme_node_get_shadow (StThemeNode  *node,
@@ -3422,7 +3579,7 @@ st_theme_node_get_shadow (StThemeNode  *node,
  *
  * Gets the value for the box-shadow style property
  *
- * Return value: (transfer none): the node's shadow, or %NULL
+ * Returns: (nullable) (transfer none): the node's shadow, or %NULL
  *   if node has no shadow
  */
 StShadow *
@@ -3455,8 +3612,8 @@ st_theme_node_get_box_shadow (StThemeNode *node)
  *
  * Gets the value for the -st-background-image-shadow style property
  *
- * Return value: (transfer none): the node's background image shadow, or %NULL
- *   if node has no such shadow
+ * Returns: (nullable) (transfer none): the node's background image shadow, or
+ *   %NULL if node has no such shadow
  */
 StShadow *
 st_theme_node_get_background_image_shadow (StThemeNode *node)
@@ -3496,7 +3653,7 @@ st_theme_node_get_background_image_shadow (StThemeNode *node)
  *
  * Gets the value for the text-shadow style property
  *
- * Return value: (transfer none): the node's text-shadow, or %NULL
+ * Returns: (nullable) (transfer none): the node's text-shadow, or %NULL
  *   if node has no text-shadow
  */
 StShadow *
@@ -3542,7 +3699,7 @@ st_theme_node_get_text_shadow (StThemeNode *node)
  * Gets the colors that should be used for colorizing symbolic icons according
  * the style of this node.
  *
- * Return value: (transfer none): the icon colors to use for this theme node
+ * Returns: (transfer none): the icon colors to use for this theme node
  */
 StIconColors *
 st_theme_node_get_icon_colors (StThemeNode *node)
@@ -3941,6 +4098,8 @@ st_theme_node_get_paint_box (StThemeNode           *node,
  * Tests if two theme nodes have the same borders and padding; this can be
  * used to optimize having to relayout when the style applied to a Clutter
  * actor changes colors without changing the geometry.
+ *
+ * Returns: %TRUE if equal, %FALSE otherwise
  */
 gboolean
 st_theme_node_geometry_equal (StThemeNode *node,
@@ -3988,7 +4147,7 @@ st_theme_node_geometry_equal (StThemeNode *node,
  * for @other. Note that in some cases this function may return %TRUE even
  * if there is no visible difference in the painting.
  *
- * Return value: %TRUE if the two theme nodes paint identically. %FALSE if the
+ * Returns: %TRUE if the two theme nodes paint identically. %FALSE if the
  *   two nodes potentially paint differently.
  */
 gboolean
@@ -4077,6 +4236,15 @@ st_theme_node_paint_equal (StThemeNode *node,
   return TRUE;
 }
 
+/**
+ * st_theme_node_to_string:
+ * @node: a #StThemeNode
+ *
+ * Serialize @node to a string of its #GType name, CSS ID, classes and
+ * pseudo-classes.
+ *
+ * Returns: the serialized theme node
+ */
 gchar *
 st_theme_node_to_string (StThemeNode *node)
 {
diff --git a/src/st/st-theme-node.h b/src/st/st-theme-node.h
index 53c0ad05d7..520e29f4f4 100644
--- a/src/st/st-theme-node.h
+++ b/src/st/st-theme-node.h
@@ -43,6 +43,11 @@ G_BEGIN_DECLS
  * accessors for standard CSS properties that add caching and handling of various
  * details of the CSS specification. #StThemeNode also has convenience functions to help
  * in implementing a #ClutterActor with borders and padding.
+ *
+ * Note that pixel measurements take the #StThemeContext:scale-factor into
+ * account so all values are in physical pixels, as opposed to logical pixels.
+ * Physical pixels correspond to actor sizes, not necessarily to pixels on
+ * display devices (eg. when `scale-monitor-framebuffer` is enabled).
  */
 
 typedef struct _StTheme          StTheme;
@@ -51,6 +56,15 @@ typedef struct _StThemeContext   StThemeContext;
 #define ST_TYPE_THEME_NODE              (st_theme_node_get_type ())
 G_DECLARE_FINAL_TYPE (StThemeNode, st_theme_node, ST, THEME_NODE, GObject)
 
+/**
+ * StSide:
+ * @ST_SIDE_TOP: The top side.
+ * @ST_SIDE_RIGHT: The right side.
+ * @ST_SIDE_BOTTOM: The bottom side.
+ * @ST_SIDE_LEFT: The left side.
+ *
+ * Used to target a particular side of a #StThemeNode element.
+ */
 typedef enum {
     ST_SIDE_TOP,
     ST_SIDE_RIGHT,
@@ -58,6 +72,15 @@ typedef enum {
     ST_SIDE_LEFT
 } StSide;
 
+/**
+ * StCorner:
+ * @ST_CORNER_TOPLEFT: The top-right corner.
+ * @ST_CORNER_TOPRIGHT: The top-right corner.
+ * @ST_CORNER_BOTTOMRIGHT: The bottom-right corner.
+ * @ST_CORNER_BOTTOMLEFT: The bottom-left corner.
+ *
+ * Used to target a particular corner of a #StThemeNode element.
+ */
 typedef enum {
     ST_CORNER_TOPLEFT,
     ST_CORNER_TOPRIGHT,
@@ -66,6 +89,18 @@ typedef enum {
 } StCorner;
 
 /* These are the CSS values; that doesn't mean we have to implement blink... */
+/**
+ * StTextDecoration:
+ * @ST_TEXT_DECORATION_: Text is underlined
+ * @ST_TEXT_DECORATION_OVERLINE: Text is overlined
+ * @ST_TEXT_DECORATION_LINE_THROUGH: Text is striked out
+ * @ST_TEXT_DECORATION_BLINK: Text blinks
+ *
+ * Flags used to determine the decoration of text.
+ *
+ * Not that neither %ST_TEXT_DECORATION_OVERLINE or %ST_TEXT_DECORATION_BLINK
+ * are implemented, currently.
+ */
 typedef enum {
     ST_TEXT_DECORATION_UNDERLINE    = 1 << 0,
     ST_TEXT_DECORATION_OVERLINE     = 1 << 1,
@@ -73,6 +108,15 @@ typedef enum {
     ST_TEXT_DECORATION_BLINK        = 1 << 3
 } StTextDecoration;
 
+/**
+ * StTextAlign:
+ * @ST_TEXT_ALIGN_LEFT: Text is aligned at the beginning of the label.
+ * @ST_TEXT_ALIGN_CENTER: Text is aligned in the middle of the label.
+ * @ST_TEXT_ALIGN_RIGHT: Text is aligned at the end of the label.
+ * @ST_GRADIENT_JUSTIFY: Text is justified in the label.
+ *
+ * Used to align text in a label.
+ */
 typedef enum {
     ST_TEXT_ALIGN_LEFT = PANGO_ALIGN_LEFT,
     ST_TEXT_ALIGN_CENTER = PANGO_ALIGN_CENTER,
@@ -80,6 +124,15 @@ typedef enum {
     ST_TEXT_ALIGN_JUSTIFY
 } StTextAlign;
 
+/**
+ * StGradientType:
+ * @ST_GRADIENT_NONE: No gradient.
+ * @ST_GRADIENT_VERTICAL: A vertical gradient.
+ * @ST_GRADIENT_HORIZONTAL: A horizontal gradient.
+ * @ST_GRADIENT_RADIAL: Lookup the style requested in the icon name.
+ *
+ * Used to specify options when rendering gradients.
+ */
 typedef enum {
   ST_GRADIENT_NONE,
   ST_GRADIENT_VERTICAL,
@@ -87,6 +140,16 @@ typedef enum {
   ST_GRADIENT_RADIAL
 } StGradientType;
 
+/**
+ * StIconStyle:
+ * @ST_ICON_STYLE_REQUESTED: Lookup the style requested in the icon name.
+ * @ST_ICON_STYLE_REGULAR: Try to always load regular icons, even when symbolic
+ *   icon names are given.
+ * @ST_ICON_STYLE_SYMBOLIC: Try to always load symbolic icons, even when regular
+ *   icon names are given.
+ *
+ * Used to specify options when looking up icons.
+ */
 typedef enum {
   ST_ICON_STYLE_REQUESTED,
   ST_ICON_STYLE_REGULAR,
diff --git a/src/st/st-theme.c b/src/st/st-theme.c
index 3f08833a8a..e9716fe631 100644
--- a/src/st/st-theme.c
+++ b/src/st/st-theme.c
@@ -250,6 +250,16 @@ insert_stylesheet (StTheme      *theme,
   g_hash_table_insert (theme->files_by_stylesheet, stylesheet, file);
 }
 
+/**
+ * st_theme_load_stylesheet:
+ * @theme: a #StTheme
+ * @file: a #GFile
+ * @error: (optional): a #GError
+ *
+ * Load the stylesheet associated with @file.
+ *
+ * Returns: %TRUE if successful
+ */
 gboolean
 st_theme_load_stylesheet (StTheme    *theme,
                           GFile      *file,
@@ -271,6 +281,14 @@ st_theme_load_stylesheet (StTheme    *theme,
   return TRUE;
 }
 
+/**
+ * st_theme_unload_stylesheet:
+ * @theme: a #StTheme
+ * @file: a #GFile
+ *
+ * Unload the stylesheet associated with @file. If @file was not loaded this
+ * function does nothing.
+ */
 void
 st_theme_unload_stylesheet (StTheme    *theme,
                             GFile      *file)
@@ -301,6 +319,8 @@ st_theme_unload_stylesheet (StTheme    *theme,
  * st_theme_get_custom_stylesheets:
  * @theme: an #StTheme
  *
+ * Get a list of the stylesheet files loaded with st_theme_load_stylesheet().
+ *
  * Returns: (transfer full) (element-type GFile): the list of stylesheet files
  *          that were loaded with st_theme_load_stylesheet()
  */
@@ -461,7 +481,7 @@ st_theme_get_property (GObject    *object,
  * @default_stylesheet: The lowest priority stylesheet, representing global default styling;
  *   this is associated with the CSS "user agent" stylesheet, may be %NULL
  *
- * Return value: the newly created theme object
+ * Returns: the newly created theme object
  **/
 StTheme *
 st_theme_new (GFile       *application_stylesheet,
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
index 29ed553370..bfce545722 100644
--- a/src/st/st-widget.c
+++ b/src/st/st-widget.c
@@ -562,7 +562,7 @@ get_root_theme_node (ClutterStage *stage)
  * Note: it is a fatal error to call this on a widget that is
  *  not been added to a stage.
  *
- * Return value: (transfer none): the theme node for the widget.
+ * Returns: (transfer none): the theme node for the widget.
  *   This is owned by the widget. When attributes of the widget
  *   or the environment that affect the styling change (for example
  *   the style_class property of the widget), it will be recreated,
@@ -653,7 +653,7 @@ st_widget_get_theme_node (StWidget *widget)
  * node hasn't been computed. If %NULL is returned, then ::style-changed
  * will be reliably emitted before the widget is allocated or painted.
  *
- * Return value: (transfer none): the theme node for the widget.
+ * Returns: (transfer none): the theme node for the widget.
  *   This is owned by the widget. When attributes of the widget
  *   or the environment that affect the styling change (for example
  *   the style_class property of the widget), it will be recreated,
@@ -949,7 +949,7 @@ st_widget_class_init (StWidgetClass *klass)
                            ST_PARAM_READWRITE);
 
   /**
-   * ClutterActor:label-actor:
+   * StWidget:label-actor:
    *
    * An actor that labels this widget.
    */
@@ -1006,8 +1006,7 @@ st_widget_class_init (StWidgetClass *klass)
    * StWidget::popup-menu:
    * @widget: the #StWidget
    *
-   * Emitted when the user has requested a context menu (eg, via a
-   * keybinding)
+   * Emitted when the user has requested a context menu (eg, via a keybinding)
    */
   signals[POPUP_MENU] =
     g_signal_new ("popup-menu",
@@ -1388,8 +1387,8 @@ st_widget_set_style (StWidget  *actor,
  *
  * Get the current inline style string. See st_widget_set_style().
  *
- * Returns: The inline style string, or %NULL. The string is owned by the
- * #StWidget and should not be modified or freed.
+ * Returns: (transfer none) (nullable): The inline style string, or %NULL. The
+ *   string is owned by the #StWidget and should not be modified or freed.
  */
 const gchar*
 st_widget_get_style (StWidget *actor)
@@ -1745,8 +1744,8 @@ st_widget_recompute_style (StWidget    *widget,
  * st_widget_ensure_style:
  * @widget: A #StWidget
  *
- * Ensures that @widget has read its style information.
- *
+ * Ensures that @widget has read its style information and propagated any
+ * changes to its children.
  */
 void
 st_widget_ensure_style (StWidget *widget)
@@ -1808,7 +1807,7 @@ st_widget_set_track_hover (StWidget *widget,
  * st_widget_get_track_hover:
  * @widget: A #StWidget
  *
- * Returns the current value of the track-hover property. See
+ * Returns the current value of the #StWidget:track-hover property. See
  * st_widget_set_track_hover() for more information.
  *
  * Returns: current value of track-hover on @widget
@@ -1942,7 +1941,7 @@ st_widget_get_can_focus (StWidget *widget)
  * st_widget_popup_menu:
  * @self: A #StWidget
  *
- * Asks the widget to pop-up a context menu.
+ * Asks the widget to pop-up a context menu by emitting #StWidget::popup-menu.
  */
 void
 st_widget_popup_menu (StWidget *self)
@@ -2229,7 +2228,7 @@ st_widget_real_navigate_focus (StWidget         *widget,
  * time, using a %NULL @from, which should cause it to reset the focus
  * to the first available widget in the given direction.
  *
- * Return value: %TRUE if clutter_actor_grab_key_focus() has been
+ * Returns: %TRUE if clutter_actor_grab_key_focus() has been
  * called on an actor. %FALSE if not.
  */
 gboolean
@@ -2275,7 +2274,7 @@ append_actor_text (GString      *desc,
  * includes the class name and actor name (if any), plus if @actor
  * is an #StWidget, its style class and pseudo class names.
  *
- * Return value: the debug name.
+ * Returns: the debug name.
  */
 char *
 st_describe_actor (ClutterActor *actor)
@@ -2350,7 +2349,7 @@ st_describe_actor (ClutterActor *actor)
  *
  * Gets the label that identifies @widget if it is defined
  *
- * Return value: (transfer none): the label that identifies the widget
+ * Returns: (transfer none): the label that identifies the widget
  */
 ClutterActor *
 st_widget_get_label_actor (StWidget *widget)
@@ -2433,7 +2432,7 @@ st_widget_set_accessible_name (StWidget    *widget,
  * Gets the accessible name for this widget. See
  * st_widget_set_accessible_name() for more information.
  *
- * Return value: a character string representing the accessible name
+ * Returns: a character string representing the accessible name
  * of the widget.
  */
 const gchar *
@@ -2488,7 +2487,7 @@ st_widget_set_accessible_role (StWidget *widget,
  * Gets the #AtkRole for this widget. See
  * st_widget_set_accessible_role() for more information.
  *
- * Return value: accessible #AtkRole for this widget
+ * Returns: accessible #AtkRole for this widget
  */
 AtkRole
 st_widget_get_accessible_role (StWidget *widget)
diff --git a/src/st/st-widget.h b/src/st/st-widget.h
index 9a4d28fb18..f00c98733f 100644
--- a/src/st/st-widget.h
+++ b/src/st/st-widget.h
@@ -38,6 +38,17 @@ G_BEGIN_DECLS
 #define ST_TYPE_WIDGET                 (st_widget_get_type ())
 G_DECLARE_DERIVABLE_TYPE (StWidget, st_widget, ST, WIDGET, ClutterActor)
 
+/**
+ * StDirectionType:
+ * @ST_DIR_TAB_FORWARD: Move forward.
+ * @ST_DIR_TAB_BACKWARD: Move backward.
+ * @ST_DIR_UP: Move up.
+ * @ST_DIR_DOWN: Move down.
+ * @ST_DIR_LEFT: Move left.
+ * @ST_DIR_RIGHT: Move right.
+ *
+ * Enumeration for focus direction.
+ */
 typedef enum
 {
   ST_DIR_TAB_FORWARD,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]