[libhandy/wip/exalm/isolated: 5/6] preferences-row: Add isolated property
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libhandy/wip/exalm/isolated: 5/6] preferences-row: Add isolated property
- Date: Mon, 25 May 2020 13:38:43 +0000 (UTC)
commit 8db4e807b02eafa64aee72ead3de5a1657dfdffc
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Sun May 24 19:06:04 2020 +0500
preferences-row: Add isolated property
This will allow to make custom expanding rows using the same isolated style
as HdyExpanderRow, while not being limited by its layout.
Fixes https://gitlab.gnome.org/GNOME/libhandy/-/issues/277
Signed-off-by: Alexander Mikhaylenko <alexm gnome org>
src/hdy-preferences-row.c | 138 +++++++++++++++++++++++++++++++++++--
src/hdy-preferences-row.h | 4 ++
src/themes/Adwaita-dark.css | 10 +--
src/themes/Adwaita.css | 10 +--
src/themes/HighContrast.css | 10 +--
src/themes/HighContrastInverse.css | 10 +--
src/themes/_Adwaita-base.scss | 27 ++++----
tests/test-preferences-row.c | 20 ++++++
8 files changed, 190 insertions(+), 39 deletions(-)
---
diff --git a/src/hdy-preferences-row.c b/src/hdy-preferences-row.c
index 9327509d..26c937a7 100644
--- a/src/hdy-preferences-row.c
+++ b/src/hdy-preferences-row.c
@@ -22,6 +22,17 @@
* they take care of presenting the preference's title while letting you compose
* the inputs of the preference around it.
*
+ * #HdyPreferencesRow can be made to look separate from the rest of the list by
+ * using the #HdyPreferencesRow:isolated property, that can be used, for
+ * example, with expanding rows.
+ *
+ * # CSS nodes
+ *
+ * #HdyPreferencesRow has a main CSS node with name row.
+ * When #HdyPreferencesRow:isolated is %TRUE, #HdyPreferencesRow will have the
+ * .isolated style class, and also will add the .isolated-row-previous-sibling
+ * style class to its previous sibling, and remove it when not isolated.
+ *
* Since: 0.0.10
*/
@@ -30,6 +41,7 @@ typedef struct
gchar *title;
gboolean use_underline;
+ gboolean isolated;
} HdyPreferencesRowPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (HdyPreferencesRow, hdy_preferences_row, GTK_TYPE_LIST_BOX_ROW)
@@ -38,16 +50,53 @@ enum {
PROP_0,
PROP_TITLE,
PROP_USE_UNDERLINE,
+ PROP_ISOLATED,
LAST_PROP,
};
static GParamSpec *props[LAST_PROP];
+static void
+toggle_style_class (GtkWidget *widget,
+ const gchar *style_class,
+ gboolean enable)
+{
+ GtkStyleContext *context = gtk_widget_get_style_context (widget);
+
+ if (enable)
+ gtk_style_context_add_class (context, style_class);
+ else
+ gtk_style_context_remove_class (context, style_class);
+}
+
+static void
+update_style_classes (HdyPreferencesRow *self)
+{
+ HdyPreferencesRowPrivate *priv = hdy_preferences_row_get_instance_private (self);
+ GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (self));
+ GtkWidget *previous_sibling = NULL;
+
+ if (parent) {
+ g_autoptr (GList) siblings = gtk_container_get_children (GTK_CONTAINER (parent));
+ GList *l;
+
+ for (l = siblings; l != NULL && l->next != NULL && l->next->data != self; l = l->next);
+
+ if (l && l->next && l->next->data == self)
+ previous_sibling = l->data;
+ }
+
+ toggle_style_class (GTK_WIDGET (self), "isolated", priv->isolated);
+
+ if (previous_sibling)
+ toggle_style_class (previous_sibling, "isolated-row-previous-sibling", priv->isolated);
+}
+
static void
hdy_preferences_row_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
HdyPreferencesRow *self = HDY_PREFERENCES_ROW (object);
@@ -58,6 +107,9 @@ hdy_preferences_row_get_property (GObject *object,
case PROP_USE_UNDERLINE:
g_value_set_boolean (value, hdy_preferences_row_get_use_underline (self));
break;
+ case PROP_ISOLATED:
+ g_value_set_boolean (value, hdy_preferences_row_get_isolated (self));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -65,9 +117,9 @@ hdy_preferences_row_get_property (GObject *object,
static void
hdy_preferences_row_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
HdyPreferencesRow *self = HDY_PREFERENCES_ROW (object);
@@ -78,6 +130,9 @@ hdy_preferences_row_set_property (GObject *object,
case PROP_USE_UNDERLINE:
hdy_preferences_row_set_use_underline (self, g_value_get_boolean (value));
break;
+ case PROP_ISOLATED:
+ hdy_preferences_row_set_isolated (self, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -132,6 +187,21 @@ hdy_preferences_row_class_init (HdyPreferencesRowClass *klass)
FALSE,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+ /**
+ * HdyPreferencesRow:isolated:
+ *
+ * Whether the row looks separated from the other rows in the #GtkListBox it's
+ * in.
+ *
+ * Since: 1.0
+ */
+ props[PROP_ISOLATED] =
+ g_param_spec_boolean ("isolated",
+ _("Isolated"),
+ _("Whether the row looks separated from the other rows in the #GtkListBox it's
in."),
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+
g_object_class_install_properties (object_class, LAST_PROP, props);
}
@@ -257,3 +327,59 @@ hdy_preferences_row_set_use_underline (HdyPreferencesRow *self,
g_object_notify_by_pspec (G_OBJECT (self), props[PROP_USE_UNDERLINE]);
}
+
+/**
+ * hdy_preferences_row_get_isolated:
+ * @self: a #HdyPreferencesRow
+ *
+ * Gets whether the row looks separated from the other rows in the #GtkListBox
+ * it's in.
+ *
+ * Returns: %TRUE if the row looks separated from the other rows in the
+ * #GtkListBox it's in.
+ *
+ * Since: 1.0
+ */
+gboolean
+hdy_preferences_row_get_isolated (HdyPreferencesRow *self)
+{
+ HdyPreferencesRowPrivate *priv;
+
+ g_return_val_if_fail (HDY_IS_PREFERENCES_ROW (self), FALSE);
+
+ priv = hdy_preferences_row_get_instance_private (self);
+
+ return priv->isolated;
+}
+
+/**
+ * hdy_preferences_row_set_isolated:
+ * @self: a #HdyPreferencesRow
+ * @isolated: whether the row is isolated
+ *
+ * If %TRUE, the row looks separated from the other rows in the #GtkListBox
+ * it's in.
+ *
+ * Since: 1.0
+ */
+void
+hdy_preferences_row_set_isolated (HdyPreferencesRow *self,
+ gboolean isolated)
+{
+ HdyPreferencesRowPrivate *priv;
+
+ g_return_if_fail (HDY_IS_PREFERENCES_ROW (self));
+
+ priv = hdy_preferences_row_get_instance_private (self);
+
+ isolated = !!isolated;
+
+ if (priv->isolated == isolated)
+ return;
+
+ priv->isolated = isolated;
+
+ update_style_classes (self);
+
+ g_object_notify_by_pspec (G_OBJECT (self), props[PROP_ISOLATED]);
+}
diff --git a/src/hdy-preferences-row.h b/src/hdy-preferences-row.h
index 516dd8de..40e81e26 100644
--- a/src/hdy-preferences-row.h
+++ b/src/hdy-preferences-row.h
@@ -37,4 +37,8 @@ gboolean hdy_preferences_row_get_use_underline (HdyPreferencesRow *self);
void hdy_preferences_row_set_use_underline (HdyPreferencesRow *self,
gboolean use_underline);
+gboolean hdy_preferences_row_get_isolated (HdyPreferencesRow *self);
+void hdy_preferences_row_set_isolated (HdyPreferencesRow *self,
+ gboolean isolated);
+
G_END_DECLS
diff --git a/src/themes/Adwaita-dark.css b/src/themes/Adwaita-dark.css
index 1cf5efeb..78fe13a3 100644
--- a/src/themes/Adwaita-dark.css
+++ b/src/themes/Adwaita-dark.css
@@ -164,15 +164,15 @@ list.preferences > row, list.preferences > row list > row { border-color: alpha(
list.preferences > row:not(:last-child) { border-width: 1px 1px 0px 1px; }
-list.preferences > row:first-child, list.preferences > row.expander:first-child row.header, list.preferences
row.expander:checked, list.preferences > row.expander:checked row.header, list.preferences >
row.expander:checked + row, list.preferences > row.expander:checked + row.expander row.header {
border-top-left-radius: 8px; -gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px;
-gtk-outline-top-right-radius: 7px; }
+list.preferences > row:first-child, list.preferences > row.isolated, list.preferences >
row.expander:first-child row.header, list.preferences > row.expander.isolated row.header, list.preferences >
row.isolated + row, list.preferences > row.isolated + row.expander row.header { border-top-left-radius: 8px;
-gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px; -gtk-outline-top-right-radius: 7px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked { border-width: 1px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated { border-width: 1px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked, list.preferences > row.expander:not(:checked):last-child row.header,
list.preferences > row.expander:not(:checked).checked-expander-row-previous-sibling row.header,
list.preferences > row.expander.empty:checked row.header, list.preferences > row.expander list.nested >
row:last-child { border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px;
border-bottom-right-radius: 8px; -gtk-outline-bottom-right-radius: 7px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated, list.preferences > row.expander:not(:checked):last-child row.header, list.preferences >
row.expander:not(:checked).isolated row.header, list.preferences >
row.expander:not(:checked).isolated-row-previous-sibling row.header, list.preferences >
row.expander.empty.isolated row.header, list.preferences > row.expander list.nested > row:last-child {
border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px; border-bottom-right-radius: 8px;
-gtk-outline-bottom-right-radius: 7px; }
-list.preferences > row.expander:checked:not(:first-child), list.preferences > row.expander:checked + row {
margin-top: 6px; }
+list.preferences > row.isolated:not(:first-child), list.preferences > row.isolated + row { margin-top: 6px; }
-button.list-button:not(:active):not(:checked):not(:hover) { background: none; border: 1px solid
alpha(#1b1b1b, 0.5); box-shadow: none; }
+button.list-button:not(:active):not(.isolated):not(:hover) { background: none; border: 1px solid
alpha(#1b1b1b, 0.5); box-shadow: none; }
window.csd.unified:not(.solid-csd):not(.fullscreen) headerbar { box-shadow: none; }
diff --git a/src/themes/Adwaita.css b/src/themes/Adwaita.css
index cab57756..1153a3d7 100644
--- a/src/themes/Adwaita.css
+++ b/src/themes/Adwaita.css
@@ -164,15 +164,15 @@ list.preferences > row, list.preferences > row list > row { border-color: alpha(
list.preferences > row:not(:last-child) { border-width: 1px 1px 0px 1px; }
-list.preferences > row:first-child, list.preferences > row.expander:first-child row.header, list.preferences
row.expander:checked, list.preferences > row.expander:checked row.header, list.preferences >
row.expander:checked + row, list.preferences > row.expander:checked + row.expander row.header {
border-top-left-radius: 8px; -gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px;
-gtk-outline-top-right-radius: 7px; }
+list.preferences > row:first-child, list.preferences > row.isolated, list.preferences >
row.expander:first-child row.header, list.preferences > row.expander.isolated row.header, list.preferences >
row.isolated + row, list.preferences > row.isolated + row.expander row.header { border-top-left-radius: 8px;
-gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px; -gtk-outline-top-right-radius: 7px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked { border-width: 1px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated { border-width: 1px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked, list.preferences > row.expander:not(:checked):last-child row.header,
list.preferences > row.expander:not(:checked).checked-expander-row-previous-sibling row.header,
list.preferences > row.expander.empty:checked row.header, list.preferences > row.expander list.nested >
row:last-child { border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px;
border-bottom-right-radius: 8px; -gtk-outline-bottom-right-radius: 7px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated, list.preferences > row.expander:not(:checked):last-child row.header, list.preferences >
row.expander:not(:checked).isolated row.header, list.preferences >
row.expander:not(:checked).isolated-row-previous-sibling row.header, list.preferences >
row.expander.empty.isolated row.header, list.preferences > row.expander list.nested > row:last-child {
border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px; border-bottom-right-radius: 8px;
-gtk-outline-bottom-right-radius: 7px; }
-list.preferences > row.expander:checked:not(:first-child), list.preferences > row.expander:checked + row {
margin-top: 6px; }
+list.preferences > row.isolated:not(:first-child), list.preferences > row.isolated + row { margin-top: 6px; }
-button.list-button:not(:active):not(:checked):not(:hover) { background: none; border: 1px solid
alpha(#cdc7c2, 0.5); box-shadow: none; }
+button.list-button:not(:active):not(.isolated):not(:hover) { background: none; border: 1px solid
alpha(#cdc7c2, 0.5); box-shadow: none; }
window.csd.unified:not(.solid-csd):not(.fullscreen) headerbar { box-shadow: none; }
diff --git a/src/themes/HighContrast.css b/src/themes/HighContrast.css
index 21c48b00..f326e630 100644
--- a/src/themes/HighContrast.css
+++ b/src/themes/HighContrast.css
@@ -160,15 +160,15 @@ list.preferences > row, list.preferences > row list > row { border-color: alpha(
list.preferences > row:not(:last-child) { border-width: 1px 1px 0px 1px; }
-list.preferences > row:first-child, list.preferences > row.expander:first-child row.header, list.preferences
row.expander:checked, list.preferences > row.expander:checked row.header, list.preferences >
row.expander:checked + row, list.preferences > row.expander:checked + row.expander row.header {
border-top-left-radius: 8px; -gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px;
-gtk-outline-top-right-radius: 7px; }
+list.preferences > row:first-child, list.preferences > row.isolated, list.preferences >
row.expander:first-child row.header, list.preferences > row.expander.isolated row.header, list.preferences >
row.isolated + row, list.preferences > row.isolated + row.expander row.header { border-top-left-radius: 8px;
-gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px; -gtk-outline-top-right-radius: 7px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked { border-width: 1px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated { border-width: 1px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked, list.preferences > row.expander:not(:checked):last-child row.header,
list.preferences > row.expander:not(:checked).checked-expander-row-previous-sibling row.header,
list.preferences > row.expander.empty:checked row.header, list.preferences > row.expander list.nested >
row:last-child { border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px;
border-bottom-right-radius: 8px; -gtk-outline-bottom-right-radius: 7px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated, list.preferences > row.expander:not(:checked):last-child row.header, list.preferences >
row.expander:not(:checked).isolated row.header, list.preferences >
row.expander:not(:checked).isolated-row-previous-sibling row.header, list.preferences >
row.expander.empty.isolated row.header, list.preferences > row.expander list.nested > row:last-child {
border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px; border-bottom-right-radius: 8px;
-gtk-outline-bottom-right-radius: 7px; }
-list.preferences > row.expander:checked:not(:first-child), list.preferences > row.expander:checked + row {
margin-top: 6px; }
+list.preferences > row.isolated:not(:first-child), list.preferences > row.isolated + row { margin-top: 6px; }
-button.list-button:not(:active):not(:checked):not(:hover) { background: none; border: 1px solid
alpha(#877b6e, 0.5); box-shadow: none; }
+button.list-button:not(:active):not(.isolated):not(:hover) { background: none; border: 1px solid
alpha(#877b6e, 0.5); box-shadow: none; }
window.csd.unified:not(.solid-csd):not(.fullscreen) headerbar { box-shadow: none; }
diff --git a/src/themes/HighContrastInverse.css b/src/themes/HighContrastInverse.css
index 7824250e..cba6b428 100644
--- a/src/themes/HighContrastInverse.css
+++ b/src/themes/HighContrastInverse.css
@@ -160,15 +160,15 @@ list.preferences > row, list.preferences > row list > row { border-color: alpha(
list.preferences > row:not(:last-child) { border-width: 1px 1px 0px 1px; }
-list.preferences > row:first-child, list.preferences > row.expander:first-child row.header, list.preferences
row.expander:checked, list.preferences > row.expander:checked row.header, list.preferences >
row.expander:checked + row, list.preferences > row.expander:checked + row.expander row.header {
border-top-left-radius: 8px; -gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px;
-gtk-outline-top-right-radius: 7px; }
+list.preferences > row:first-child, list.preferences > row.isolated, list.preferences >
row.expander:first-child row.header, list.preferences > row.expander.isolated row.header, list.preferences >
row.isolated + row, list.preferences > row.isolated + row.expander row.header { border-top-left-radius: 8px;
-gtk-outline-top-left-radius: 7px; border-top-right-radius: 8px; -gtk-outline-top-right-radius: 7px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked { border-width: 1px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated { border-width: 1px; }
-list.preferences > row:last-child, list.preferences > row.checked-expander-row-previous-sibling,
list.preferences > row.expander:checked, list.preferences > row.expander:not(:checked):last-child row.header,
list.preferences > row.expander:not(:checked).checked-expander-row-previous-sibling row.header,
list.preferences > row.expander.empty:checked row.header, list.preferences > row.expander list.nested >
row:last-child { border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px;
border-bottom-right-radius: 8px; -gtk-outline-bottom-right-radius: 7px; }
+list.preferences > row:last-child, list.preferences > row.isolated-row-previous-sibling, list.preferences >
row.isolated, list.preferences > row.expander:not(:checked):last-child row.header, list.preferences >
row.expander:not(:checked).isolated row.header, list.preferences >
row.expander:not(:checked).isolated-row-previous-sibling row.header, list.preferences >
row.expander.empty.isolated row.header, list.preferences > row.expander list.nested > row:last-child {
border-bottom-left-radius: 8px; -gtk-outline-bottom-left-radius: 7px; border-bottom-right-radius: 8px;
-gtk-outline-bottom-right-radius: 7px; }
-list.preferences > row.expander:checked:not(:first-child), list.preferences > row.expander:checked + row {
margin-top: 6px; }
+list.preferences > row.isolated:not(:first-child), list.preferences > row.isolated + row { margin-top: 6px; }
-button.list-button:not(:active):not(:checked):not(:hover) { background: none; border: 1px solid
alpha(#686868, 0.5); box-shadow: none; }
+button.list-button:not(:active):not(.isolated):not(:hover) { background: none; border: 1px solid
alpha(#686868, 0.5); box-shadow: none; }
window.csd.unified:not(.solid-csd):not(.fullscreen) headerbar { box-shadow: none; }
diff --git a/src/themes/_Adwaita-base.scss b/src/themes/_Adwaita-base.scss
index df287ed3..c746c2c3 100644
--- a/src/themes/_Adwaita-base.scss
+++ b/src/themes/_Adwaita-base.scss
@@ -265,35 +265,36 @@ list.preferences {
// Rounded top
&:first-child,
+ &.isolated,
&.expander:first-child row.header,
- &.expander:checked,
- &.expander:checked row.header,
- &.expander:checked + row,
- &.expander:checked + row.expander row.header {
+ &.expander.isolated row.header,
+ &.isolated + row,
+ &.isolated + row.expander row.header {
@include rounded-border(top);
}
// Bottom border
&:last-child,
- &.checked-expander-row-previous-sibling,
- &.expander:checked {
+ &.isolated-row-previous-sibling,
+ &.isolated {
border-width: 1px;
}
// Rounded bottom
&:last-child,
- &.checked-expander-row-previous-sibling,
- &.expander:checked,
+ &.isolated-row-previous-sibling,
+ &.isolated,
&.expander:not(:checked):last-child row.header,
- &.expander:not(:checked).checked-expander-row-previous-sibling row.header,
- &.expander.empty:checked row.header,
+ &.expander:not(:checked).isolated row.header,
+ &.expander:not(:checked).isolated-row-previous-sibling row.header,
+ &.expander.empty.isolated row.header,
&.expander list.nested > row:last-child {
@include rounded-border(bottom);
}
// Add space around expanded rows
- &.expander:checked:not(:first-child),
- &.expander:checked + row {
+ &.isolated:not(:first-child),
+ &.isolated + row {
margin-top: 6px;
}
}
@@ -301,7 +302,7 @@ list.preferences {
// List button
-button.list-button:not(:active):not(:checked):not(:hover) {
+button.list-button:not(:active):not(.isolated):not(:hover) {
background: none;
border: 1px solid hdyalpha($borders_color, 0.5);
box-shadow: none;
diff --git a/tests/test-preferences-row.c b/tests/test-preferences-row.c
index 7b62581d..97c4eb95 100644
--- a/tests/test-preferences-row.c
+++ b/tests/test-preferences-row.c
@@ -44,6 +44,25 @@ test_hdy_preferences_row_use_undeline (void)
}
+
+static void
+test_hdy_preferences_row_isolated (void)
+{
+ g_autoptr (HdyPreferencesRow) row = NULL;
+
+ row = g_object_ref_sink (HDY_PREFERENCES_ROW (hdy_preferences_row_new ()));
+ g_assert_nonnull (row);
+
+ g_assert_false (hdy_preferences_row_get_isolated (row));
+
+ hdy_preferences_row_set_isolated (row, TRUE);
+ g_assert_true (hdy_preferences_row_get_isolated (row));
+
+ hdy_preferences_row_set_isolated (row, FALSE);
+ g_assert_false (hdy_preferences_row_get_isolated (row));
+}
+
+
gint
main (gint argc,
gchar *argv[])
@@ -52,6 +71,7 @@ main (gint argc,
g_test_add_func("/Handy/PreferencesRow/title", test_hdy_preferences_row_title);
g_test_add_func("/Handy/PreferencesRow/use_underline", test_hdy_preferences_row_use_undeline);
+ g_test_add_func("/Handy/PreferencesRow/isolated", test_hdy_preferences_row_isolated);
return g_test_run();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]