[gnome-builder] libide: add IdeFileSettings:right-margin-position gproperty



commit 39a68821b66f9a1bb25cfd1117f4a5b790d4e5c3
Author: Christian Hergert <christian hergert me>
Date:   Sat Feb 14 19:28:14 2015 -0800

    libide: add IdeFileSettings:right-margin-position gproperty

 libide/ide-file-settings.c     |   50 ++++++++++++++++++++++++++++++++++++++++
 libide/ide-file-settings.h     |    3 ++
 tools/ide-list-file-settings.c |    1 +
 3 files changed, 54 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-file-settings.c b/libide/ide-file-settings.c
index ace1c30..e31b36c 100644
--- a/libide/ide-file-settings.c
+++ b/libide/ide-file-settings.c
@@ -31,6 +31,7 @@ typedef struct
   guint                 insert_trailing_newline : 1;
   guint                 tab_width : 6;
   guint                 trim_trailing_whitespace : 1;
+  guint                 right_margin_position : 10;
   GtkSourceNewlineType  newline_type : 2;
 } IdeFileSettingsPrivate;
 
@@ -44,6 +45,7 @@ enum {
   PROP_INDENT_WIDTH,
   PROP_INSERT_TRAILING_NEWLINE,
   PROP_NEWLINE_TYPE,
+  PROP_RIGHT_MARGIN_POSITION,
   PROP_TAB_WIDTH,
   PROP_TRIM_TRAILING_WHITESPACE,
   LAST_PROP
@@ -229,6 +231,34 @@ ide_file_settings_set_newline_type (IdeFileSettings      *self,
 }
 
 guint
+ide_file_settings_get_right_margin_position (IdeFileSettings *self)
+{
+  IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self);
+
+  g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), 80);
+
+  return priv->right_margin_position;
+}
+
+void
+ide_file_settings_set_right_margin_position (IdeFileSettings *self,
+                                             guint            right_margin_position)
+{
+  IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self);
+
+  g_return_if_fail (IDE_IS_FILE_SETTINGS (self));
+  g_return_if_fail (right_margin_position > 0);
+  g_return_if_fail (right_margin_position <= 1000);
+
+  if (priv->right_margin_position != right_margin_position)
+    {
+      priv->right_margin_position = right_margin_position;
+      g_object_notify_by_pspec (G_OBJECT (self),
+                                gParamSpecs [PROP_RIGHT_MARGIN_POSITION]);
+    }
+}
+
+guint
 ide_file_settings_get_tab_width (IdeFileSettings *self)
 {
   IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self);
@@ -329,6 +359,10 @@ ide_file_settings_get_property (GObject    *object,
       g_value_set_enum (value, ide_file_settings_get_newline_type (self));
       break;
 
+    case PROP_RIGHT_MARGIN_POSITION:
+      g_value_set_uint (value, ide_file_settings_get_right_margin_position (self));
+      break;
+
     case PROP_TAB_WIDTH:
       g_value_set_uint (value, ide_file_settings_get_tab_width (self));
       break;
@@ -376,6 +410,10 @@ ide_file_settings_set_property (GObject      *object,
       ide_file_settings_set_newline_type (self, g_value_get_enum (value));
       break;
 
+    case PROP_RIGHT_MARGIN_POSITION:
+      ide_file_settings_set_right_margin_position (self, g_value_get_uint (value));
+      break;
+
     case PROP_TAB_WIDTH:
       ide_file_settings_set_tab_width (self, g_value_get_uint (value));
       break;
@@ -457,6 +495,17 @@ ide_file_settings_class_init (IdeFileSettingsClass *klass)
   g_object_class_install_property (object_class, PROP_NEWLINE_TYPE,
                                    gParamSpecs [PROP_NEWLINE_TYPE]);
 
+  gParamSpecs [PROP_RIGHT_MARGIN_POSITION] =
+    g_param_spec_uint ("right-margin-position",
+                       _("Right Margin Position"),
+                       _("The position of the right margin guide."),
+                       1,
+                       1000,
+                       80,
+                       (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (object_class, PROP_RIGHT_MARGIN_POSITION,
+                                   gParamSpecs [PROP_RIGHT_MARGIN_POSITION]);
+
   gParamSpecs [PROP_TAB_WIDTH] =
     g_param_spec_uint ("tab-width",
                        _("Tab Width"),
@@ -485,6 +534,7 @@ ide_file_settings_init (IdeFileSettings *self)
   priv->indent_width = 8;
   priv->insert_trailing_newline = TRUE;
   priv->newline_type = GTK_SOURCE_NEWLINE_TYPE_LF;
+  priv->right_margin_position = 80;
   priv->tab_width = 8;
   priv->trim_trailing_whitespace = TRUE;
 }
diff --git a/libide/ide-file-settings.h b/libide/ide-file-settings.h
index 0e4348b..16a28a1 100644
--- a/libide/ide-file-settings.h
+++ b/libide/ide-file-settings.h
@@ -43,6 +43,7 @@ IdeIndentStyle        ide_file_settings_get_indent_style             (IdeFileSet
 guint                 ide_file_settings_get_indent_width             (IdeFileSettings      *self);
 gboolean              ide_file_settings_get_insert_trailing_newline  (IdeFileSettings      *self);
 GtkSourceNewlineType  ide_file_settings_get_newline_type             (IdeFileSettings      *self);
+guint                 ide_file_settings_get_right_margin_position    (IdeFileSettings      *self);
 guint                 ide_file_settings_get_tab_width                (IdeFileSettings      *self);
 gboolean              ide_file_settings_get_trim_trailing_whitespace (IdeFileSettings      *self);
 void                  ide_file_settings_set_encoding                 (IdeFileSettings      *self,
@@ -55,6 +56,8 @@ void                  ide_file_settings_set_insert_trailing_newline  (IdeFileSet
                                                                       gboolean              
insert_trailing_newline);
 void                  ide_file_settings_set_newline_type             (IdeFileSettings      *self,
                                                                       GtkSourceNewlineType  newline_type);
+void                   ide_file_settings_set_right_margin_position   (IdeFileSettings      *self,
+                                                                      guint                 
right_margin_position);
 void                  ide_file_settings_set_tab_width                (IdeFileSettings      *self,
                                                                       guint                 tab_width);
 void                  ide_file_settings_set_trim_trailing_whitespace (IdeFileSettings      *self,
diff --git a/tools/ide-list-file-settings.c b/tools/ide-list-file-settings.c
index 5ab3ddd..9dc4294 100644
--- a/tools/ide-list-file-settings.c
+++ b/tools/ide-list-file-settings.c
@@ -95,6 +95,7 @@ load_settings_cb (GObject      *object,
   g_print ("trim_trailing_whitespace = %s\n", ide_file_settings_get_trim_trailing_whitespace (settings) ? 
"true" : "false");
   g_print ("newline_type = %s\n", newline_string (ide_file_settings_get_newline_type (settings)));
   g_print ("indent_sytle = %s\n", indent_style_string (ide_file_settings_get_indent_style (settings)));
+  g_print ("right_margin_position = %u\n", ide_file_settings_get_right_margin_position (settings));
 
   g_clear_object (&settings);
 


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