[gtk/matthiasc/for-master] gtk-demo: Flesh out the settings demo



commit e195341e306055671a7fad35aebc30f786ca0a2d
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun May 31 23:42:36 2020 -0400

    gtk-demo: Flesh out the settings demo
    
    Add columns for type and default value.

 demos/gtk-demo/listview_settings.c  | 21 +++++++++++++++
 demos/gtk-demo/listview_settings.ui | 52 +++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+)
---
diff --git a/demos/gtk-demo/listview_settings.c b/demos/gtk-demo/listview_settings.c
index 944b764dd6..deecdaeb57 100644
--- a/demos/gtk-demo/listview_settings.c
+++ b/demos/gtk-demo/listview_settings.c
@@ -25,6 +25,8 @@ enum {
   PROP_SUMMARY,
   PROP_DESCRIPTION,
   PROP_VALUE,
+  PROP_TYPE,
+  PROP_DEFAULT_VALUE,
 
   N_PROPS
 };
@@ -65,6 +67,21 @@ settings_key_get_property (GObject    *object,
       }
       break;
 
+    case PROP_TYPE:
+      {
+        const GVariantType *type = g_settings_schema_key_get_value_type (self->key);
+        g_value_set_string (value, g_variant_type_peek_string (type));
+      }
+      break;
+
+    case PROP_DEFAULT_VALUE:
+      {
+        GVariant *variant = g_settings_schema_key_get_default_value (self->key);
+        g_value_take_string (value, g_variant_print (variant, FALSE));
+        g_variant_unref (variant);
+      }
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -98,6 +115,10 @@ settings_key_class_init (SettingsKeyClass *klass)
     g_param_spec_string ("summary", NULL, NULL, NULL, G_PARAM_READABLE);
   properties[PROP_VALUE] =
     g_param_spec_string ("value", NULL, NULL, NULL, G_PARAM_READABLE);
+  properties[PROP_TYPE] =
+    g_param_spec_string ("type", NULL, NULL, NULL, G_PARAM_READABLE);
+  properties[PROP_DEFAULT_VALUE] =
+    g_param_spec_string ("default-value", NULL, NULL, NULL, G_PARAM_READABLE);
 
   g_object_class_install_properties (gobject_class, N_PROPS, properties);
 }
diff --git a/demos/gtk-demo/listview_settings.ui b/demos/gtk-demo/listview_settings.ui
index 8bf12cf496..cc9f7f8a9c 100644
--- a/demos/gtk-demo/listview_settings.ui
+++ b/demos/gtk-demo/listview_settings.ui
@@ -120,6 +120,58 @@
       </object>
     </property>
   </template>
+</interface>
+                        ]]></property>
+                          </object>
+                        </property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkColumnViewColumn">
+                        <property name="title">Type</property>
+                        <property name="factory">
+                          <object class="GtkBuilderListItemFactory">
+                            <property name="bytes"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <template class="GtkListItem">
+    <property name="child">
+      <object class="GtkLabel">
+        <property name="xalign">0</property>
+        <binding name="label">
+          <lookup name="type" type="SettingsKey">
+            <lookup name="item">GtkListItem</lookup>
+          </lookup>
+        </binding>
+      </object>
+    </property>
+  </template>
+</interface>
+                        ]]></property>
+                          </object>
+                        </property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkColumnViewColumn">
+                        <property name="title">Default</property>
+                        <property name="factory">
+                          <object class="GtkBuilderListItemFactory">
+                            <property name="bytes"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <template class="GtkListItem">
+    <property name="child">
+      <object class="GtkLabel">
+        <property name="xalign">0</property>
+        <binding name="label">
+          <lookup name="default-value" type="SettingsKey">
+            <lookup name="item">GtkListItem</lookup>
+          </lookup>
+        </binding>
+      </object>
+    </property>
+  </template>
 </interface>
                         ]]></property>
                           </object>


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