[gnome-control-center] universal-access: Add zoom shader options



commit 2d6161d45b09518b76cabc0567690d13cf5a02a1
Author: Joseph Scheuhammer <clown alum mit edu>
Date:   Fri Jul 27 15:50:41 2012 -0400

    universal-access: Add zoom shader options
    
    Add 'Color effects' section to zoom options dialogue:
    - a toggle for inversion (White on black)
    - a slider for brightness
    - a slider for contrast
    - a slider for grey scale
    
    https://bugzilla.gnome.org/show_bug.cgi?id=676817

 panels/universal-access/zoom-options.c  |  126 ++++++++-
 panels/universal-access/zoom-options.ui |  492 +++++++++++++++++++++++++++----
 2 files changed, 565 insertions(+), 53 deletions(-)
---
diff --git a/panels/universal-access/zoom-options.c b/panels/universal-access/zoom-options.c
index d5644f3..bb660b9 100644
--- a/panels/universal-access/zoom-options.c
+++ b/panels/universal-access/zoom-options.c
@@ -40,12 +40,28 @@ struct _ZoomOptionsPrivate
   GtkWidget *push_radio;
   GtkWidget *proportional_radio;
   GtkWidget *extend_beyond_checkbox;
+  GtkWidget *brightness_slider;
+  GtkWidget *contrast_slider;
 
   GtkWidget *dialog;
 };
 
 G_DEFINE_TYPE (ZoomOptions, zoom_options, G_TYPE_OBJECT);
 
+static gchar *brightness_keys[] = {
+  "brightness-red",
+  "brightness-green",
+  "brightness-blue",
+  NULL
+};
+
+static gchar *contrast_keys[] = {
+  "contrast-red",
+  "contrast-green",
+  "contrast-blue",
+  NULL
+};
+
 inline void set_active (GtkWidget* toggle, gboolean sense);
 inline gboolean get_active (GtkWidget* toggle);
 inline void set_sensitive (GtkWidget *widget, gboolean sense);
@@ -55,6 +71,10 @@ static void mouse_tracking_notify_cb (GSettings *settings, const gchar *key, Zoo
 static void scale_label (GtkBin *toggle, PangoAttrList *attrs);
 static void xhairs_color_opacity_changed (GtkColorButton *button, ZoomOptionsPrivate *priv);
 static void xhairs_length_add_marks (GtkScale *scale);
+static void effects_slider_set_value (GtkRange *slider, GSettings *settings);
+static void brightness_slider_notify_cb (GSettings *settings, const gchar *key, ZoomOptionsPrivate *priv);
+static void contrast_slider_notify_cb (GSettings *settings, const gchar *key, ZoomOptionsPrivate *priv);
+static void effects_slider_changed (GtkRange *slider, ZoomOptionsPrivate *priv);
 
 /* Utilties to save on line length */
 
@@ -338,6 +358,90 @@ static void xhairs_length_add_marks (GtkScale *scale)
 }
 
 static void
+init_effects_slider (GtkRange *slider,
+                     ZoomOptionsPrivate *priv,
+                     gchar **keys,
+                     GCallback notify_cb)
+{
+  gchar **key;
+  gchar *signal;
+
+  g_object_set_data (G_OBJECT (slider), "settings-keys", keys);
+  effects_slider_set_value (slider, priv->settings);
+
+  for (key = keys; *key; key++)
+    {
+      signal = g_strdup_printf ("changed::%s", *key);
+      g_signal_connect (G_OBJECT (priv->settings), signal, notify_cb, priv);
+      g_free (signal);
+    }
+  g_signal_connect (G_OBJECT (slider), "value-changed",
+                    G_CALLBACK (effects_slider_changed),
+                    priv);
+}
+
+static void
+effects_slider_set_value (GtkRange *slider, GSettings *settings)
+{
+    gchar **keys;
+    gdouble red, green, blue;
+    gdouble value;
+
+    keys = g_object_get_data (G_OBJECT (slider), "settings-keys");
+
+    red = g_settings_get_double (settings, keys[0]);
+    green = g_settings_get_double (settings, keys[1]);
+    blue = g_settings_get_double (settings, keys[2]);
+
+    if (red == green && green == blue)
+      value = red;
+    else
+      /* use NTSC conversion weights for reasonable average */
+      value = 0.299 * red + 0.587 * green + 0.114 * blue;
+
+    gtk_range_set_value (slider, value);
+}
+
+static void
+brightness_slider_notify_cb (GSettings *settings,
+                             const gchar *key,
+                             ZoomOptionsPrivate *priv)
+{
+  GtkRange *slider = GTK_RANGE (priv->brightness_slider);
+
+  g_signal_handlers_block_by_func (slider, effects_slider_changed, priv);
+  effects_slider_set_value (slider, settings);
+  g_signal_handlers_unblock_by_func (slider, effects_slider_changed, priv);
+}
+
+static void
+contrast_slider_notify_cb (GSettings *settings,
+                           const gchar *key,
+                           ZoomOptionsPrivate *priv)
+{
+  GtkRange *slider = GTK_RANGE (priv->contrast_slider);
+
+  g_signal_handlers_block_by_func (slider, effects_slider_changed, priv);
+  effects_slider_set_value (slider, settings);
+  g_signal_handlers_unblock_by_func (slider, effects_slider_changed, priv);
+}
+
+static void
+effects_slider_changed (GtkRange *slider, ZoomOptionsPrivate *priv)
+{
+  gchar **keys, **key;
+  gdouble value;
+
+  keys = g_object_get_data (G_OBJECT (slider), "settings-keys");
+  value = gtk_range_get_value (slider);
+
+  for (key = keys; *key; key++)
+    {
+      g_settings_set_double (priv->settings, *key, value);
+    }
+}
+
+static void
 zoom_option_close_dialog_cb (GtkWidget *closer, ZoomOptionsPrivate *priv)
 {
     if (priv->dialog != NULL)
@@ -466,13 +570,33 @@ zoom_options_init (ZoomOptions *self)
   g_settings_bind (priv->settings, "cross-hairs-clip", w, "active",
                    G_SETTINGS_BIND_INVERT_BOOLEAN);
 
-  /* ... Cross hairs: length */
+  /* ... Cross hairs: length ... */
   w = WID ("xHairsLengthSlider");
   xhairs_length_add_marks (GTK_SCALE (w));
   g_settings_bind (priv->settings, "cross-hairs-length",
                    gtk_range_get_adjustment (GTK_RANGE (w)), "value",
                    G_SETTINGS_BIND_DEFAULT);
 
+  /* ... Color effects ... */
+  w = WID ("inverseEnabledSwitch");
+  g_settings_bind (priv->settings, "invert-lightness", w, "active",
+                   G_SETTINGS_BIND_DEFAULT);
+
+  w = WID ("brightnessSlider");
+  priv->brightness_slider = w;
+  init_effects_slider (GTK_RANGE(w), priv, brightness_keys,
+                       G_CALLBACK (brightness_slider_notify_cb));
+
+  w = WID ("contrastSlider");
+  priv->contrast_slider = w;
+  init_effects_slider (GTK_RANGE(w), priv, contrast_keys,
+                       G_CALLBACK (contrast_slider_notify_cb));
+
+  w = WID ("grayscale_slider");
+  g_settings_bind (priv->settings, "color-saturation",
+                   gtk_range_get_adjustment (GTK_RANGE (w)), "value",
+                   G_SETTINGS_BIND_DEFAULT);
+
   /* ... Window itself ... */
   priv->dialog = WID ("magPrefsDialog");
 
diff --git a/panels/universal-access/zoom-options.ui b/panels/universal-access/zoom-options.ui
index ef3dac7..a6dcd61 100644
--- a/panels/universal-access/zoom-options.ui
+++ b/panels/universal-access/zoom-options.ui
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
-  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-requires gtk+ 3.0 -->
   <object class="GtkAdjustment" id="adjustment2">
     <property name="lower">100</property>
     <property name="upper">4096</property>
@@ -9,6 +9,24 @@
     <property name="page_increment">10</property>
     <property name="page_size">10</property>
   </object>
+  <object class="GtkAdjustment" id="brightness">
+    <property name="lower">-0.75</property>
+    <property name="upper">0.75</property>
+    <property name="step_increment">0.10000000000000001</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="contrast">
+    <property name="lower">-0.75</property>
+    <property name="upper">0.75</property>
+    <property name="step_increment">0.10000000000000001</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="grayscale">
+    <property name="upper">1</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.10000000000000001</property>
+    <property name="page_increment">0.20000000000000001</property>
+  </object>
   <object class="GtkAdjustment" id="magFactor">
     <property name="lower">1</property>
     <property name="upper">20</property>
@@ -16,11 +34,49 @@
     <property name="step_increment">0.25</property>
     <property name="page_increment">1</property>
   </object>
+  <object class="GtkListStore" id="screen_position_model">
+    <columns>
+      <!-- column-name positions -->
+      <column type="gchararray"/>
+      <!-- column-name text_scale -->
+      <column type="gfloat"/>
+      <!-- column-name setting_value -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Full Screen</col>
+        <col id="1">1.25</col>
+        <col id="2">full-screen</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Top Half</col>
+        <col id="1">1.25</col>
+        <col id="2">top-half</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Bottom Half</col>
+        <col id="1">1.25</col>
+        <col id="2">bottom-half</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left Half</col>
+        <col id="1">1.25</col>
+        <col id="2">left-half</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Right Half</col>
+        <col id="1">1.25</col>
+        <col id="2">right-half</col>
+      </row>
+    </data>
+  </object>
   <object class="GtkDialog" id="magPrefsDialog">
     <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Zoom Options</property>
     <property name="resizable">False</property>
+    <property name="type_hint">normal</property>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
         <property name="visible">True</property>
@@ -31,9 +87,9 @@
           <object class="GtkVBox" id="vbox4">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="margin_left">16</property>
+            <property name="margin_right">40</property>
             <property name="spacing">12</property>
-            <property name="margin-left">16</property>
-            <property name="margin-right">40</property>
             <child>
               <object class="GtkFrame" id="frame2">
                 <property name="visible">True</property>
@@ -116,6 +172,7 @@
                             <child>
                               <object class="GtkRadioButton" id="moveableLens">
                                 <property name="label" translatable="yes">Follow mouse cursor</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
@@ -134,6 +191,7 @@
                             <child>
                               <object class="GtkRadioButton" id="screenPart">
                                 <property name="label" translatable="yes">Screen part:</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
@@ -195,6 +253,7 @@
                                 <child>
                                   <object class="GtkCheckButton" id="scrollAtEdges">
                                     <property name="label" translatable="yes">Magnifier extends outside of screen</property>
+                                    <property name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
@@ -212,6 +271,7 @@
                                 <child>
                                   <object class="GtkRadioButton" id="centered">
                                     <property name="label" translatable="yes">Keep magnifier cursor centered</property>
+                                    <property name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
@@ -229,6 +289,7 @@
                                 <child>
                                   <object class="GtkRadioButton" id="push">
                                     <property name="label" translatable="yes">Magnifier cursor pushes contents around</property>
+                                    <property name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
@@ -246,6 +307,7 @@
                                 <child>
                                   <object class="GtkRadioButton" id="proportional">
                                     <property name="label" translatable="yes">Magnifier cursor moves with contents</property>
+                                    <property name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
@@ -472,6 +534,7 @@
                                 <property name="spacing">3</property>
                                 <child>
                                   <object class="GtkColorButton" id="xHairsPicker">
+                                    <property name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
@@ -494,15 +557,6 @@
                                 <property name="height">1</property>
                               </packing>
                             </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
                           </object>
                           <packing>
                             <property name="expand">False</property>
@@ -546,15 +600,17 @@
                         </child>
                         <child>
                           <object class="GtkSwitch" id="xhairsEnabledSwitch">
+                            <property name="use_action_appearance">False</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <accessibility>
-                              <relation target="xhairs-section-heading" type="labelled-by"/>
+                              <relation type="labelled-by" target="xhairs-section-heading"/>
                             </accessibility>
                           </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="fill">True</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
@@ -571,15 +627,16 @@
                     <child>
                       <object class="GtkCheckButton" id="xHairsClipCheckbox">
                         <property name="label" translatable="yes">Overlaps mouse cursor</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="halign">start</property>
+                        <property name="margin_left">100</property>
                         <property name="hexpand">True</property>
                         <property name="use_action_appearance">False</property>
                         <property name="xalign">0</property>
                         <property name="draw_indicator">True</property>
-                        <property name="margin-left">100</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -597,6 +654,373 @@
                 <property name="position">2</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="top_padding">8</property>
+                    <property name="left_padding">16</property>
+                    <child>
+                      <object class="GtkBox" id="box8">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <object class="GtkGrid" id="grid1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="row_spacing">16</property>
+                            <property name="column_spacing">2</property>
+                            <child>
+                              <object class="GtkLabel" id="inverse_lightness_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">White on black:</property>
+                                <property name="width_chars">12</property>
+                                <accessibility>
+                                  <relation type="label-for" target="inverseEnabledSwitch"/>
+                                </accessibility>
+                                <attributes>
+                                  <attribute name="weight" value="bold"/>
+                                  <attribute name="scale" value="1.25"/>
+                                </attributes>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="brightness_slider_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Brightness:</property>
+                                <property name="width_chars">12</property>
+                                <accessibility>
+                                  <relation type="label-for" target="brightnessSlider"/>
+                                </accessibility>
+                                <attributes>
+                                  <attribute name="weight" value="bold"/>
+                                  <attribute name="scale" value="1.25"/>
+                                </attributes>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="contrast_slider_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Contrast:</property>
+                                <accessibility>
+                                  <relation type="label-for" target="contrastSlider"/>
+                                </accessibility>
+                                <attributes>
+                                  <attribute name="weight" value="bold"/>
+                                  <attribute name="scale" value="1.25"/>
+                                </attributes>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="gray_scale_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Grayscale:</property>
+                                <accessibility>
+                                  <relation type="label-for" target="grayscale_slider"/>
+                                </accessibility>
+                                <attributes>
+                                  <attribute name="weight" value="bold"/>
+                                  <attribute name="scale" value="1.25"/>
+                                </attributes>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">3</property>
+                                <child>
+                                  <object class="GtkLabel" id="grayscale_gray_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">1</property>
+                                    <property name="label" translatable="yes" comments="short delay">Gray</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHScale" id="grayscale_slider">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">grayscale</property>
+                                    <property name="draw_value">False</property>
+                                    <property name="value_pos">right</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="grayscale_color_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes" comments="long delay">Color</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="padding">8</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkBox" id="box10">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                                <child>
+                                  <object class="GtkSwitch" id="inverseEnabledSwitch">
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <accessibility>
+                                      <relation type="labelled-by" target="xhairs-section-heading"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox1">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">3</property>
+                                <child>
+                                  <object class="GtkLabel" id="brightness_low_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">1</property>
+                                    <property name="label" translatable="yes" comments="short delay">Low</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHScale" id="brightnessSlider">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">brightness</property>
+                                    <property name="lower_stepper_sensitivity">on</property>
+                                    <property name="draw_value">False</property>
+                                    <property name="value_pos">left</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="brighness_high_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes" comments="long delay">High</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="padding">8</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox2">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">3</property>
+                                <child>
+                                  <object class="GtkLabel" id="contrast_low_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">1</property>
+                                    <property name="label" translatable="yes" comments="short delay">Low</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHScale" id="contrastSlider">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">contrast</property>
+                                    <property name="lower_stepper_sensitivity">on</property>
+                                    <property name="draw_value">False</property>
+                                    <property name="value_pos">left</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="contrast_hi_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes" comments="long delay">High</property>
+                                    <property name="justify">center</property>
+                                    <attributes>
+                                      <attribute name="scale" value="1.25"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="padding">8</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="effects-section-heading">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Color Effects:</property>
+                    <property name="use_markup">True</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                      <attribute name="scale" value="1.25"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="padding">4</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -615,6 +1039,7 @@
             <child>
               <object class="GtkButton" id="closeButton">
                 <property name="label">gtk-close</property>
+                <property name="use_action_appearance">False</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -642,43 +1067,6 @@
       <action-widget response="0">closeButton</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkListStore" id="screen_position_model">
-    <columns>
-      <!-- column-name positions -->
-      <column type="gchararray"/>
-      <!-- column-name text_scale -->
-      <column type="gfloat"/>
-      <!-- column-name setting_value -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Full Screen</col>
-        <col id="1">1.25</col>
-        <col id="2">full-screen</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Top Half</col>
-        <col id="1">1.25</col>
-        <col id="2">top-half</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Bottom Half</col>
-        <col id="1">1.25</col>
-        <col id="2">bottom-half</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Left Half</col>
-        <col id="1">1.25</col>
-        <col id="2">left-half</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Right Half</col>
-        <col id="1">1.25</col>
-        <col id="2">right-half</col>
-      </row>
-    </data>
-  </object>
   <object class="GtkAdjustment" id="xHairsThickness">
     <property name="lower">1</property>
     <property name="upper">100</property>



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