[gedit/wip/grid] Add setting to display a grid pattern



commit 62f654dcee758bb7d956fff8a92040725a50ac4e
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Mon Apr 27 17:15:33 2015 +0200

    Add setting to display a grid pattern

 data/org.gnome.gedit.gschema.xml.in            |   10 +++++++++
 gedit/gedit-preferences-dialog.c               |   26 ++++++++++++++++++++++++
 gedit/gedit-settings.h                         |    1 +
 gedit/gedit-view.c                             |    6 +++++
 gedit/resources/ui/gedit-preferences-dialog.ui |   15 +++++++++++++
 5 files changed, 58 insertions(+), 0 deletions(-)
---
diff --git a/data/org.gnome.gedit.gschema.xml.in b/data/org.gnome.gedit.gschema.xml.in
index 0c88b97..9f33c29 100644
--- a/data/org.gnome.gedit.gschema.xml.in
+++ b/data/org.gnome.gedit.gschema.xml.in
@@ -13,6 +13,11 @@
     <value nick="always" value="3"/>
   </enum>
 
+  <enum id="org.gnome.gedit.BackgroundPatternType">
+    <value nick="none" value="0"/>
+    <value nick="grid" value="1"/>
+  </enum>
+
   <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.gnome.gedit" path="/org/gnome/gedit/">
     <child name="preferences" schema="org.gnome.gedit.preferences"/>
     <child name="state" schema="org.gnome.gedit.state"/>
@@ -119,6 +124,11 @@
       <summary>Right Margin Position</summary>
       <description>Specifies the position of the right margin.</description>
     </key>
+    <key name="background-pattern" enum="org.gnome.gedit.BackgroundPatternType">
+      <default>'none'</default>
+      <summary>Document background pattern type</summary>
+      <description>Whether the document will get a background pattern painted.</description>
+    </key>
     <key name="smart-home-end" enum="org.gnome.gedit.SmartHomeEnd">
       <aliases>
         <alias value='DISABLED' target='disabled'/>
diff --git a/gedit/gedit-preferences-dialog.c b/gedit/gedit-preferences-dialog.c
index 81e5318..837971c 100644
--- a/gedit/gedit-preferences-dialog.c
+++ b/gedit/gedit-preferences-dialog.c
@@ -117,6 +117,7 @@ struct _GeditPreferencesDialog
 
        GtkWidget       *display_line_numbers_checkbutton;
        GtkWidget       *display_statusbar_checkbutton;
+       GtkWidget       *display_grid_checkbutton;
 
        /* Right margin */
        GtkWidget       *right_margin_checkbutton;
@@ -180,6 +181,7 @@ gedit_preferences_dialog_class_init (GeditPreferencesDialogClass *klass)
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, notebook);
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, 
display_line_numbers_checkbutton);
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, 
display_statusbar_checkbutton);
+       gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, display_grid_checkbutton);
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, right_margin_checkbutton);
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, 
right_margin_position_grid);
        gtk_widget_class_bind_template_child (widget_class, GeditPreferencesDialog, 
right_margin_position_spinbutton);
@@ -300,10 +302,25 @@ wrap_mode_checkbutton_toggled (GtkToggleButton        *button,
 }
 
 static void
+grid_checkbutton_toggled (GtkToggleButton        *button,
+                          GeditPreferencesDialog *dlg)
+{
+       GtkSourceBackgroundPatternType background_type;
+
+       background_type = gtk_toggle_button_get_active (button) ?
+                         GTK_SOURCE_BACKGROUND_PATTERN_TYPE_GRID :
+                         GTK_SOURCE_BACKGROUND_PATTERN_TYPE_NONE;
+       g_settings_set_enum (dlg->editor,
+                            GEDIT_SETTINGS_BACKGROUND_PATTERN,
+                            background_type);
+}
+
+static void
 setup_view_page (GeditPreferencesDialog *dlg)
 {
        GtkWrapMode wrap_mode;
        GtkWrapMode last_split_mode;
+       GtkSourceBackgroundPatternType background_pattern;
        gboolean display_right_margin;
        guint right_margin_position;
 
@@ -314,6 +331,8 @@ setup_view_page (GeditPreferencesDialog *dlg)
                                                       GEDIT_SETTINGS_DISPLAY_RIGHT_MARGIN);
        g_settings_get (dlg->editor, GEDIT_SETTINGS_RIGHT_MARGIN_POSITION,
                        "u", &right_margin_position);
+       background_pattern = g_settings_get_enum (dlg->editor,
+                                                 GEDIT_SETTINGS_BACKGROUND_PATTERN);
 
        /* Set initial state */
        wrap_mode = g_settings_get_enum (dlg->editor,
@@ -357,6 +376,9 @@ setup_view_page (GeditPreferencesDialog *dlg)
        gtk_toggle_button_set_active (
                GTK_TOGGLE_BUTTON (dlg->right_margin_checkbutton),
                display_right_margin);
+       gtk_toggle_button_set_active (
+               GTK_TOGGLE_BUTTON (dlg->display_grid_checkbutton),
+               background_pattern == GTK_SOURCE_BACKGROUND_PATTERN_TYPE_GRID);
 
        /* Set widgets sensitivity */
        gtk_widget_set_sensitive (dlg->split_checkbutton,
@@ -405,6 +427,10 @@ setup_view_page (GeditPreferencesDialog *dlg)
                          "toggled",
                          G_CALLBACK (wrap_mode_checkbutton_toggled),
                          dlg);
+       g_signal_connect (dlg->display_grid_checkbutton,
+                         "toggled",
+                         G_CALLBACK (grid_checkbutton_toggled),
+                         dlg);
 }
 
 static void
diff --git a/gedit/gedit-settings.h b/gedit/gedit-settings.h
index cd4499b..4dc7550 100644
--- a/gedit/gedit-settings.h
+++ b/gedit/gedit-settings.h
@@ -97,6 +97,7 @@ void                   gedit_settings_set_list                        (GSettings     
*settings,
 #define GEDIT_SETTINGS_SEARCH_HIGHLIGHTING             "search-highlighting"
 #define GEDIT_SETTINGS_TOOLBAR_VISIBLE                 "toolbar-visible"
 #define GEDIT_SETTINGS_TOOLBAR_BUTTONS_STYLE           "toolbar-buttons-style"
+#define GEDIT_SETTINGS_BACKGROUND_PATTERN              "background-pattern"
 #define GEDIT_SETTINGS_STATUSBAR_VISIBLE               "statusbar-visible"
 #define GEDIT_SETTINGS_SIDE_PANEL_VISIBLE              "side-panel-visible"
 #define GEDIT_SETTINGS_BOTTOM_PANEL_VISIBLE            "bottom-panel-visible"
diff --git a/gedit/gedit-view.c b/gedit/gedit-view.c
index 90eb0d6..82e7d9c 100644
--- a/gedit/gedit-view.c
+++ b/gedit/gedit-view.c
@@ -244,6 +244,12 @@ gedit_view_constructed (GObject *object)
                         G_SETTINGS_BIND_GET);
 
        g_settings_bind (priv->editor_settings,
+                        GEDIT_SETTINGS_BACKGROUND_PATTERN,
+                        view,
+                        "background-pattern",
+                        G_SETTINGS_BIND_GET);
+
+       g_settings_bind (priv->editor_settings,
                         GEDIT_SETTINGS_RIGHT_MARGIN_POSITION,
                         view,
                         "right-margin-position",
diff --git a/gedit/resources/ui/gedit-preferences-dialog.ui b/gedit/resources/ui/gedit-preferences-dialog.ui
index 18fc2b3..cfdeacc 100644
--- a/gedit/resources/ui/gedit-preferences-dialog.ui
+++ b/gedit/resources/ui/gedit-preferences-dialog.ui
@@ -105,6 +105,21 @@
                     <property name="width">2</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkCheckButton" id="display_grid_checkbutton">
+                    <property name="label" translatable="yes">Display _grid pattern</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">3</property>
+                    <property name="width">2</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="left_attach">0</property>


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