[gnome-builder/auto-indent] editor: add GbSourceAutoIndenterC:brace-indent



commit cdb2c766c04110117a64048dad83e9cf5fb1298c
Author: Christian Hergert <christian hergert me>
Date:   Tue Sep 16 16:36:34 2014 -0700

    editor: add GbSourceAutoIndenterC:brace-indent

 src/editor/gb-source-auto-indenter-c.c |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)
---
diff --git a/src/editor/gb-source-auto-indenter-c.c b/src/editor/gb-source-auto-indenter-c.c
index c80c562..aac92ac 100644
--- a/src/editor/gb-source-auto-indenter-c.c
+++ b/src/editor/gb-source-auto-indenter-c.c
@@ -22,12 +22,13 @@
 
 struct _GbSourceAutoIndenterCPrivate
 {
-  gpointer foo;
+  guint brace_indent;
 };
 
 enum
 {
   PROP_0,
+  PROP_BRACE_INDENT,
   LAST_PROP
 };
 
@@ -49,12 +50,13 @@ gb_source_auto_indenter_c_query (GbSourceAutoIndenter *indenter,
                                  GtkTextIter          *iter)
 {
   GbSourceAutoIndenterC *c = (GbSourceAutoIndenterC *)indenter;
+  GString *str;
 
   g_return_val_if_fail (GB_IS_SOURCE_AUTO_INDENTER_C (c), NULL);
 
-  g_printerr ("QUERY:\n");
+  str = g_string_new (NULL);
 
-  return NULL;
+  return g_string_free (str, FALSE);
 }
 
 static void
@@ -66,6 +68,9 @@ gb_source_auto_indenter_c_get_property (GObject    *object,
   GbSourceAutoIndenterC *c = GB_SOURCE_AUTO_INDENTER_C (object);
 
   switch (prop_id) {
+  case PROP_BRACE_INDENT:
+    g_value_set_uint (value, c->priv->brace_indent);
+    break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
   }
@@ -80,9 +85,14 @@ gb_source_auto_indenter_c_set_property (GObject      *object,
   GbSourceAutoIndenterC *c = GB_SOURCE_AUTO_INDENTER_C (object);
 
   switch (prop_id) {
+  case PROP_BRACE_INDENT:
+    c->priv->brace_indent = g_value_get_uint (value);
+    break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
   }
+
+  g_object_notify_by_pspec (object, pspec);
 }
 
 static void
@@ -95,10 +105,23 @@ gb_source_auto_indenter_c_class_init (GbSourceAutoIndenterCClass *klass)
   object_class->set_property = gb_source_auto_indenter_c_set_property;
 
   indenter_class->query = gb_source_auto_indenter_c_query;
+
+  gParamSpecs [PROP_BRACE_INDENT] =
+    g_param_spec_uint ("brace-indent",
+                       _("Name"),
+                       _("Name"),
+                       0,
+                       32,
+                       2,
+                       (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (object_class, PROP_BRACE_INDENT,
+                                   gParamSpecs [PROP_BRACE_INDENT]);
 }
 
 static void
 gb_source_auto_indenter_c_init (GbSourceAutoIndenterC *c)
 {
   c->priv = gb_source_auto_indenter_c_get_instance_private (c);
+
+  c->priv->brace_indent = 2;
 }


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