summaryrefslogtreecommitdiff
path: root/panels/universal-access
diff options
context:
space:
mode:
authorJoseph Scheuhammer <clown@alum.mit.edu>2011-12-16 16:55:39 -0500
committerBastien Nocera <hadess@hadess.net>2012-01-21 14:26:08 +0000
commit9d5e654bec5697b115806201f1c9cf48e467244b (patch)
treef364a9df2752e0fc262bcb37853a7a4955db74a0 /panels/universal-access
parent3ff082633ab893ad860d7aa491d1d0752ae63d2a (diff)
downloadgnome-control-center-9d5e654bec5697b115806201f1c9cf48e467244b.tar.gz
Universal access: add dialog for zoom options
Modified zoom options dialog to implement hbons wireframe. https://bugzilla.gnome.org/show_bug.cgi?id=643086
Diffstat (limited to 'panels/universal-access')
-rw-r--r--panels/universal-access/uap.ui6
-rw-r--r--panels/universal-access/zoom-options.c295
-rw-r--r--panels/universal-access/zoom-options.ui917
3 files changed, 631 insertions, 587 deletions
diff --git a/panels/universal-access/uap.ui b/panels/universal-access/uap.ui
index 0181297f4..8017855f9 100644
--- a/panels/universal-access/uap.ui
+++ b/panels/universal-access/uap.ui
@@ -609,12 +609,16 @@
<object class="GtkButton" id="seeing_zoom_preferences_button">
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="visible">True</property>
<child>
<object class="GtkLabel" id="seeing_zoom_preferences_label">
<property name="visible">True</property>
- <property name="sensitive">False</property>
+ <property name="sensitive">True</property>
<property name="label" translatable="yes">Options...</property>
<property name="use_markup">True</property>
+ <attributes>
+ <attribute name="scale" value="1.25"/>
+ </attributes>
</object>
</child>
</object>
diff --git a/panels/universal-access/zoom-options.c b/panels/universal-access/zoom-options.c
index 9151a6cc1..ad7c20eaa 100644
--- a/panels/universal-access/zoom-options.c
+++ b/panels/universal-access/zoom-options.c
@@ -25,61 +25,244 @@
#define WID(w) (GtkWidget *) gtk_builder_get_object (priv->builder, w)
+#define POSITION_MODEL_VALUE_COLUMN 2
+#define FONT_SCALE 1.25
+
struct _ZoomOptionsPrivate
{
GtkBuilder *builder;
GSettings *settings;
+ GtkWidget *position_combobox;
+ GtkWidget *follow_mouse_radio;
+ GtkWidget *screen_part_radio;
+ GtkWidget *centered_radio;
+ GtkWidget *push_radio;
+ GtkWidget *proportional_radio;
+ GtkWidget *extend_beyond_checkbox;
+
GtkWidget *dialog;
};
G_DEFINE_TYPE (ZoomOptions, zoom_options, G_TYPE_OBJECT);
-static void xhairs_color_opacity_changed_cb (GtkColorButton *button, ZoomOptionsPrivate *priv);
+inline void set_active (GtkWidget* toggle, gboolean sense);
+inline gboolean get_active (GtkWidget* toggle);
+inline void set_sensitive (GtkWidget *widget, gboolean sense);
+
+static void set_enable_screen_part_ui (GtkWidget *widget, ZoomOptionsPrivate *priv);
+static void mouse_tracking_notify_cb (GSettings *settings, const gchar *key, ZoomOptionsPrivate *priv);
+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);
+/* Utilties to save on line length */
+
+inline void
+set_active (GtkWidget* toggle, gboolean sense)
+{
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), sense);
+}
+
+inline gboolean
+get_active (GtkWidget* toggle)
+{
+ return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle));
+}
+
+inline void
+set_sensitive (GtkWidget *widget, gboolean sense)
+{
+ gtk_widget_set_sensitive (widget, sense);
+}
+
static void
-mouse_mode_radiobutton_toggled_cb (GtkWidget *widget, ZoomOptionsPrivate *priv)
+mouse_tracking_radio_toggled_cb (GtkWidget *widget, ZoomOptionsPrivate *priv)
{
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) == TRUE)
- {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) == TRUE)
+ {
g_settings_set_string (priv->settings, "mouse-tracking",
- gtk_buildable_get_name (GTK_BUILDABLE (widget)));
+ gtk_buildable_get_name (GTK_BUILDABLE (widget)));
}
}
static void
-screen_position_radiobutton_toggled_cb (GtkWidget *widget, ZoomOptionsPrivate *priv)
+init_mouse_mode_radio_group (GSList *mode_group, ZoomOptionsPrivate *priv)
{
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) == TRUE)
- {
- g_settings_set_string (priv->settings, "screen-position",
- gtk_buildable_get_name (GTK_BUILDABLE (widget)));
- }
+ gchar *mode;
+ gchar *name;
+
+ mode = g_settings_get_string (priv->settings, "mouse-tracking");
+ for (; mode_group != NULL; mode_group = mode_group->next)
+ {
+ name = (gchar *) gtk_buildable_get_name (GTK_BUILDABLE (mode_group->data));
+ if (g_strcmp0 (name, mode) == 0)
+ set_active (GTK_WIDGET (mode_group->data), TRUE);
+ else
+ set_active (GTK_WIDGET (mode_group->data), FALSE);
+
+ g_signal_connect (G_OBJECT (mode_group->data), "toggled",
+ G_CALLBACK(mouse_tracking_radio_toggled_cb),
+ priv);
+ }
}
static void
-init_radio_group (GSList *radio_group,
- gchar *key,
- GCallback radiobutton_toggled_cb,
- ZoomOptionsPrivate *priv)
+init_screen_part_section (ZoomOptionsPrivate *priv, PangoAttrList *pango_attrs)
{
- gchar *value;
- const gchar *name;
+ gboolean lens_mode;
+ GSList *mouse_mode_group;
+
+ priv->follow_mouse_radio = WID ("moveableLens");
+ priv->screen_part_radio = WID ("screenPart");
+ priv->centered_radio = WID ("centered");
+ priv->push_radio = WID ("push");
+ priv->proportional_radio = WID ("proportional");
+ priv->extend_beyond_checkbox = WID ("scrollAtEdges");
+
+ /* Scale the labels of the toggles */
+ scale_label (GTK_BIN(priv->follow_mouse_radio), pango_attrs);
+ scale_label (GTK_BIN(priv->screen_part_radio), pango_attrs);
+ scale_label (GTK_BIN(priv->centered_radio), pango_attrs);
+ scale_label (GTK_BIN(priv->push_radio), pango_attrs);
+ scale_label (GTK_BIN(priv->proportional_radio), pango_attrs);
+ scale_label (GTK_BIN(priv->extend_beyond_checkbox), pango_attrs);
+
+ lens_mode = g_settings_get_boolean (priv->settings, "lens-mode");
+ set_active (priv->follow_mouse_radio, lens_mode);
+ set_active (priv->screen_part_radio, !lens_mode);
+
+ mouse_mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (priv->centered_radio));
+ init_mouse_mode_radio_group (mouse_mode_group, priv);
+ set_enable_screen_part_ui (priv->screen_part_radio, priv);
+
+ g_settings_bind (priv->settings, "lens-mode",
+ priv->follow_mouse_radio, "active",
+ G_SETTINGS_BIND_DEFAULT);
+
+ g_settings_bind (priv->settings, "scroll-at-edges",
+ priv->extend_beyond_checkbox, "active",
+ G_SETTINGS_BIND_DEFAULT);
+
+ g_signal_connect (G_OBJECT (priv->screen_part_radio), "toggled",
+ G_CALLBACK (set_enable_screen_part_ui), priv);
+
+ g_signal_connect (G_OBJECT (priv->settings), "changed::mouse-tracking",
+ G_CALLBACK (mouse_tracking_notify_cb), priv);
+}
+
+static void
+set_enable_screen_part_ui (GtkWidget *widget, ZoomOptionsPrivate *priv)
+{
+ gboolean screen_part;
- value = g_settings_get_string (priv->settings, key);
- for (; radio_group != NULL; radio_group = radio_group->next)
+ /* If the "screen part" radio is not checked, then the "follow mouse" radio
+ * is checked (== lens mode). Set mouse tracking back to the default.
+ */
+ screen_part = get_active (priv->screen_part_radio);
+ if (!screen_part)
{
- name = gtk_buildable_get_name (GTK_BUILDABLE (radio_group->data));
- if (strcmp (name, value) == 0)
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_group->data), TRUE);
- else
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_group->data), FALSE);
-
- g_signal_connect (G_OBJECT (radio_group->data), "toggled",
- G_CALLBACK(radiobutton_toggled_cb),
- priv);
+ g_settings_set_string (priv->settings,
+ "mouse-tracking", "proportional");
}
+
+ set_sensitive (priv->centered_radio, screen_part);
+ set_sensitive (priv->push_radio, screen_part);
+ set_sensitive (priv->proportional_radio, screen_part);
+ set_sensitive (priv->extend_beyond_checkbox, screen_part);
+}
+
+static void
+mouse_tracking_notify_cb (GSettings *settings,
+ const gchar *key,
+ ZoomOptionsPrivate *priv)
+{
+ gchar *tracking;
+
+ tracking = g_settings_get_string (settings, key);
+ if (g_strcmp0 (tracking, "proportional") == 0)
+ {
+ set_active (priv->proportional_radio, TRUE);
+ }
+ else if (g_strcmp0 (tracking, "centered") == 0)
+ {
+ set_active (priv->centered_radio, TRUE);
+ }
+ else
+ {
+ set_active (priv->push_radio, TRUE);
+ }
+}
+
+static void
+scale_label (GtkBin *toggle, PangoAttrList *attrs)
+{
+ GtkWidget *label;
+
+ label = gtk_bin_get_child (toggle);
+ gtk_label_set_attributes (GTK_LABEL (label), attrs);
+}
+
+static void
+screen_position_combo_changed_cb (GtkWidget *combobox, ZoomOptions *options)
+{
+ ZoomOptionsPrivate *priv = options->priv;
+ gchar *combo_value = NULL;
+ GtkTreeIter iter;
+
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combobox), &iter);
+
+ gtk_tree_model_get (gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)), &iter,
+ POSITION_MODEL_VALUE_COLUMN, &combo_value,
+ -1);
+
+ if (g_strcmp0 (combo_value, ""))
+ {
+ g_settings_set_string (priv->settings, "screen-position", combo_value);
+ }
+
+ g_free (combo_value);
+}
+
+static void
+screen_position_notify_cb (GSettings *settings,
+ const gchar *key,
+ ZoomOptions *options)
+{
+ ZoomOptionsPrivate *priv = options->priv;
+ gchar *position;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkComboBox *combobox;
+ gboolean valid;
+ gchar *combo_value;
+
+ position = g_settings_get_string (settings, key);
+ position = g_settings_get_string (priv->settings, key);
+ combobox = GTK_COMBO_BOX (WID ("screen_position_combo_box"));
+ model = gtk_combo_box_get_model (combobox);
+
+ /* Find the matching screen position value in the combobox model. If nothing
+ * matches, leave the combobox as is.
+ */
+ valid = gtk_tree_model_get_iter_first (model, &iter);
+ while (valid)
+ {
+ gtk_tree_model_get (model, &iter,
+ POSITION_MODEL_VALUE_COLUMN, &combo_value,
+ -1);
+ if (!g_strcmp0 (combo_value, position))
+ {
+ g_signal_handlers_block_by_func (combobox, screen_position_combo_changed_cb, priv);
+ gtk_combo_box_set_active_iter (combobox, &iter);
+ g_signal_handlers_unblock_by_func (combobox, screen_position_combo_changed_cb, priv);
+ g_free (combo_value);
+ break;
+ }
+
+ g_free (combo_value);
+ valid = gtk_tree_model_iter_next (model, &iter);
+ }
}
static void
@@ -96,7 +279,7 @@ init_xhairs_color_opacity (GtkColorButton *color_button, ZoomOptionsPrivate *pri
}
static void
-update_xhairs_color_cb (GSettings *settings, gchar *key, GtkColorButton *button)
+xhairs_color_notify_cb (GSettings *settings, gchar *key, GtkColorButton *button)
{
gchar *color;
GdkColor rgb;
@@ -108,7 +291,7 @@ update_xhairs_color_cb (GSettings *settings, gchar *key, GtkColorButton *button)
}
static void
-update_xhairs_opacity_cb (GSettings *settings, gchar *key, GtkColorButton *button)
+xhairs_opacity_notify_cb (GSettings *settings, gchar *key, GtkColorButton *button)
{
gdouble opacity;
@@ -118,7 +301,7 @@ update_xhairs_opacity_cb (GSettings *settings, gchar *key, GtkColorButton *butto
#define TO_HEX(x) (int) ((gdouble) x * 255.0)
static void
-xhairs_color_opacity_changed_cb (GtkColorButton *button, ZoomOptionsPrivate *priv)
+xhairs_color_opacity_changed (GtkColorButton *button, ZoomOptionsPrivate *priv)
{
GdkRGBA rgba;
gchar *color_string;
@@ -153,9 +336,11 @@ static void xhairs_length_add_marks (GtkScale *scale)
length of one hair is 25% of the screen. */
quarter_length = length / 4;
+ gtk_scale_add_mark (scale, 0, GTK_POS_BOTTOM, _("Short"));
gtk_scale_add_mark (scale, quarter_length, GTK_POS_BOTTOM, _("1/4 Screen"));
gtk_scale_add_mark (scale, quarter_length * 2 , GTK_POS_BOTTOM, _("1/2 Screen"));
gtk_scale_add_mark (scale, quarter_length * 3, GTK_POS_BOTTOM, _("3/4 Screen"));
+ gtk_scale_add_mark (scale, length, GTK_POS_BOTTOM, _("Long"));
}
static void
@@ -215,7 +400,8 @@ zoom_options_init (ZoomOptions *self)
{
ZoomOptionsPrivate *priv;
GtkWidget *w;
- GSList *radio_group;
+ PangoAttrList *pango_attrs;
+ PangoAttribute *attr;
GError *err = NULL;
priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, ZOOM_TYPE_OPTIONS, ZoomOptionsPrivate);
@@ -237,33 +423,26 @@ zoom_options_init (ZoomOptions *self)
priv->settings = g_settings_new ("org.gnome.desktop.a11y.magnifier");
+ pango_attrs = pango_attr_list_new ();
+ attr = pango_attr_scale_new (FONT_SCALE);
+ pango_attr_list_insert (pango_attrs, attr);
+
/* Magnification factor */
w = WID ("magFactorSpinButton");
g_settings_bind (priv->settings, "mag-factor",
gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w)),
"value", G_SETTINGS_BIND_DEFAULT);
- /* Mouse tracking */
- w = WID ("proportional");
- radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (w));
- init_radio_group (radio_group, "mouse-tracking",
- G_CALLBACK(mouse_mode_radiobutton_toggled_cb), priv);
-
- /* Screen position */
- w = WID ("full-screen");
- radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (w));
- init_radio_group (radio_group, "screen-position",
- G_CALLBACK(screen_position_radiobutton_toggled_cb), priv);
-
- /* Lens mode */
- w = WID ("moveableLensCheckbox");
- g_settings_bind (priv->settings, "lens-mode", w, "active",
- G_SETTINGS_BIND_DEFAULT);
+ /* Screen position combo */
+ w = WID ("screen_position_combo_box");
+ screen_position_notify_cb (priv->settings, "screen-position", self);
+ g_signal_connect (G_OBJECT (priv->settings), "changed::screen-position",
+ G_CALLBACK (screen_position_notify_cb), self);
+ g_signal_connect (G_OBJECT (w), "changed",
+ G_CALLBACK (screen_position_combo_changed_cb), self);
- /* Clamp scrolling at screen edges */
- w = WID ("scrollAtEdges");
- g_settings_bind (priv->settings, "scroll-at-edges", w, "active",
- G_SETTINGS_BIND_DEFAULT);
+ /* Screen part section */
+ init_screen_part_section (priv, pango_attrs);
/* Cross hairs: show/hide ... */
w = WID ("xhairsEnabledSwitch");
@@ -274,11 +453,11 @@ zoom_options_init (ZoomOptions *self)
w = WID ("xHairsPicker");
init_xhairs_color_opacity (GTK_COLOR_BUTTON (w), priv);
g_signal_connect (G_OBJECT (priv->settings), "changed::cross-hairs-color",
- G_CALLBACK (update_xhairs_color_cb), w);
+ G_CALLBACK (xhairs_color_notify_cb), w);
g_signal_connect (G_OBJECT (priv->settings), "changed::cross-hairs-opacity",
- G_CALLBACK (update_xhairs_opacity_cb), w);
+ G_CALLBACK (xhairs_opacity_notify_cb), w);
g_signal_connect (G_OBJECT (w), "color-set",
- G_CALLBACK(xhairs_color_opacity_changed_cb),
+ G_CALLBACK (xhairs_color_opacity_changed),
priv);
/* ... Cross hairs: thickness ... */
@@ -289,6 +468,7 @@ zoom_options_init (ZoomOptions *self)
/* ... Cross hairs: clip ... */
w = WID ("xHairsClipCheckbox");
+ scale_label (GTK_BIN(w), pango_attrs);
g_settings_bind (priv->settings, "cross-hairs-clip", w, "active",
G_SETTINGS_BIND_INVERT_BOOLEAN);
@@ -301,6 +481,8 @@ zoom_options_init (ZoomOptions *self)
/* ... Window itself ... */
priv->dialog = WID ("magPrefsDialog");
+ gtk_window_set_position (GTK_WINDOW (priv->dialog),
+ GTK_WIN_POS_CENTER);
w = WID ("closeButton");
g_signal_connect (G_OBJECT (w), "clicked",
G_CALLBACK (zoom_option_close_dialog_cb),
@@ -308,6 +490,9 @@ zoom_options_init (ZoomOptions *self)
g_signal_connect (G_OBJECT (priv->dialog), "delete-event",
G_CALLBACK (gtk_widget_hide_on_delete),
NULL);
+
+ pango_attr_list_unref (pango_attrs);
+
zoom_options_present_dialog (self);
}
diff --git a/panels/universal-access/zoom-options.ui b/panels/universal-access/zoom-options.ui
index 51b50f0d2..9936637c6 100644
--- a/panels/universal-access/zoom-options.ui
+++ b/panels/universal-access/zoom-options.ui
@@ -17,13 +17,11 @@
<property name="page_increment">1</property>
</object>
<object class="GtkDialog" id="magPrefsDialog">
- <property name="width_request">650</property>
<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="window_position">center-on-parent</property>
- <property name="default_width">600</property>
<property name="type_hint">normal</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
@@ -32,173 +30,96 @@
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkNotebook" id="notebook1">
+ <object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <property name="margin-left">16</property>
+ <property name="margin-right">40</property>
<child>
- <object class="GtkVBox" id="vbox4">
+ <object class="GtkFrame" id="frame2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkFrame" id="frame2">
+ <placeholder/>
+ </child>
+ <child type="label">
+ <object class="GtkBox" id="box5">
<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="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="yscale">0</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkSpinButton" id="magFactorSpinButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="halign">start</property>
- <property name="invisible_char">●</property>
- <property name="adjustment">magFactor</property>
- <property name="digits">2</property>
- <accessibility>
- <relation type="labelled-by" target="mag_factor_label"/>
- </accessibility>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
<object class="GtkLabel" id="mag_factor_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
<property name="ypad">2</property>
- <property name="label" translatable="yes">Magnification</property>
+ <property name="label" translatable="yes">Magnification:</property>
<attributes>
<attribute name="weight" value="bold"/>
<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>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</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">in</property>
<child>
- <object class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="yscale">0</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkRadioButton" id="proportional">
- <property name="label" translatable="yes">Always</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>
- <property name="relief">none</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="push">
- <property name="label" translatable="yes">To keep the pointer visible</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>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">proportional</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="centered">
- <property name="label" translatable="yes">To keep the pointer centered</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>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">proportional</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label1">
+ <object class="GtkSpinButton" id="magFactorSpinButton">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xpad">1</property>
- <property name="label" translatable="yes">Image moves with the mouse pointer</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="1.25"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="invisible_char">●</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">magFactor</property>
+ <property name="digits">2</property>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">21</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame5">
+ <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="GtkFrame" id="frame4">
+ <object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">in</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">24</property>
<child>
- <object class="GtkAlignment" id="alignment3">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">12</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">4</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
<child>
- <object class="GtkRadioButton" id="full-screen">
- <property name="label" translatable="yes">Full Screen</property>
+ <object class="GtkRadioButton" id="moveableLens">
+ <property name="label" translatable="yes">Follow mouse cursor</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -208,267 +129,231 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <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="GtkRadioButton" id="top-half">
- <property name="label" translatable="yes">Top Half</property>
+ <object class="GtkRadioButton" id="screenPart">
+ <property name="label" translatable="yes">Screen part:</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>
<property name="xalign">0</property>
+ <property name="yalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
- <property name="group">full-screen</property>
+ <property name="group">moveableLens</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <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="GtkRadioButton" id="bottom-half">
- <property name="label" translatable="yes">Bottom Half</property>
+ <object class="GtkComboBox" id="screen_position_combo_box">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">full-screen</property>
+ <property name="can_focus">False</property>
+ <property name="model">screen_position_model</property>
+ <property name="active">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="screen_position_renderer"/>
+ <attributes>
+ <attribute name="scale">1</attribute>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="left-half">
- <property name="label" translatable="yes">Left Half</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>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">full-screen</property>
- </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>
+ <placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">18</property>
<child>
- <object class="GtkRadioButton" id="right-half">
- <property name="label" translatable="yes">Right Half</property>
+ <object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">full-screen</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="scrollAtEdges">
+ <property name="label" translatable="yes">Magnifier extends outside of screen</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>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">2</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="centered">
+ <property name="label" translatable="yes">Keep magnifier cursor centered</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>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="push">
+ <property name="label" translatable="yes">Magnifier cursor pushes contents around</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>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">centered</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="proportional">
+ <property name="label" translatable="yes">Magnifier cursor moves with contents</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>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">centered</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
- <child type="label">
- <object class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Position of magnified view on screen</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">True</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
- <child>
- <object class="GtkCheckButton" id="moveableLensCheckbox">
- <property name="label" translatable="yes">Moveable lens - magnified view follows mouse movements</property>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="scrollAtEdges">
- <property name="label" translatable="yes">Image scrolls at screen edges</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>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Magnifier Position:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1.25"/>
+ </attributes>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="padding">8</property>
- <property name="position">5</property>
- </packing>
</child>
</object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">General</property>
- </object>
<packing>
- <property name="tab_fill">False</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox8">
+ <object class="GtkFrame" id="frame3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkFrame" id="frame3">
+ <object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="top_padding">8</property>
+ <property name="left_padding">16</property>
<child>
- <object class="GtkAlignment" id="alignment4">
+ <object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <placeholder/>
+ </child>
<child>
- <object class="GtkBox" id="box1">
+ <object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="row_spacing">16</property>
<child>
- <object class="GtkHBox" id="xhairs_enabled_box">
+ <object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkSwitch" id="xhairsEnabledSwitch">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <accessibility>
- <relation target="xhairs-section-heading" type="labelled-by"/>
- </accessibility>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="xHairsClipCheckbox">
- <property name="label" translatable="yes">Show crosshairs intersection</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>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">Thickness:</property>
+ <property name="justify">center</property>
+ <property name="width_chars">12</property>
+ <attributes>
+ <attribute name="scale" value="1.25"/>
+ </attributes>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">8</property>
- <property name="position">1</property>
+ <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="GtkHBox" id="hbox3">
+ <object class="GtkHBox" id="hbox7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">3</property>
<child>
- <object class="GtkLabel" id="label5">
+ <object class="GtkLabel" id="xhairs_thickness_thin_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Color and Opacity</property>
- <accessibility>
- <relation type="label-for" target="xHairsPicker"/>
- </accessibility>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes" comments="short delay">Thin</property>
+ <property name="justify">center</property>
<attributes>
- <attribute name="weight" value="bold"/>
<attribute name="scale" value="1.25"/>
</attributes>
</object>
@@ -479,108 +364,79 @@
</packing>
</child>
<child>
- <object class="GtkColorButton" id="xHairsPicker">
+ <object class="GtkHScale" id="xHairsThicknessSlider">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
- <property name="yalign">0</property>
- <property name="use_alpha">True</property>
- <property name="color">#ffff00000000</property>
+ <property name="adjustment">xHairsThickness</property>
+ <property name="draw_value">False</property>
+ <property name="value_pos">right</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">8</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
<child>
- <object class="GtkLabel" id="label7">
+ <object class="GtkLabel" id="xhairs_thickness_thick_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Length</property>
- <accessibility>
- <relation type="label-for" target="xHairsLengthSlider"/>
- </accessibility>
+ <property name="label" translatable="yes" comments="long delay">Thick</property>
+ <property name="justify">center</property>
<attributes>
- <attribute name="weight" value="bold"/>
<attribute name="scale" value="1.25"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</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">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Length:</property>
+ <property name="justify">center</property>
+ <property name="width_chars">12</property>
+ <accessibility>
+ <relation type="label-for" target="xHairsLengthSlider"/>
+ </accessibility>
+ <attributes>
+ <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="GtkHBox" id="hbox6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">3</property>
<child>
- <object class="GtkHBox" id="hbox6">
+ <object class="GtkHScale" id="xHairsLengthSlider">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="xhairs_length_short_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">Short</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </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="xHairsLengthSlider">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">xhairsLength</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="xhairs_length_long_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">Long</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </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>
+ <property name="can_focus">True</property>
+ <property name="adjustment">xhairsLength</property>
+ <property name="draw_value">False</property>
+ <property name="value_pos">right</property>
</object>
<packing>
<property name="expand">True</property>
@@ -590,140 +446,159 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">8</property>
- <property name="position">3</property>
+ <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">
+ <object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Color:</property>
+ <attributes>
+ <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="GtkBox" id="box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">3</property>
<child>
- <object class="GtkLabel" id="label9">
+ <object class="GtkColorButton" id="xHairsPicker">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Thickness</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="1.25"/>
- </attributes>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="yalign">0</property>
+ <property name="use_alpha">True</property>
+ <property name="color">#ffff00000000</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="xhairs_thickness_thin_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">Thin</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </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="xHairsThicknessSlider">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">xHairsThickness</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="xhairs_thickness_thick_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">Thick</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </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="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">8</property>
- <property name="position">4</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
- <child type="label">
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
<object class="GtkLabel" id="xhairs-section-heading">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Show</property>
+ <property name="label" translatable="yes">Crosshairs:</property>
<property name="use_markup">True</property>
<attributes>
<attribute name="weight" value="bold"/>
<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="GtkBox" id="box6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="xhairsEnabledSwitch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <accessibility>
+ <relation target="xhairs-section-heading" type="labelled-by"/>
+ </accessibility>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="xHairsClipCheckbox">
+ <property name="label" translatable="yes">Overlaps mouse cursor</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="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>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
</object>
<packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Crosshairs</property>
- </object>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">4</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
@@ -771,53 +646,40 @@
<action-widget response="0">closeButton</action-widget>
</action-widgets>
</object>
- <object class="GtkListStore" id="mouseTrackingList">
- <columns>
- <!-- column-name gchararray1 -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None</col>
- </row>
- <row>
- <col id="0" translatable="yes">Centered</col>
- </row>
- <row>
- <col id="0" translatable="yes">Push</col>
- </row>
- <row>
- <col id="0" translatable="yes">Proportional</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="screenPositionList">
+ <object class="GtkListStore" id="screen_position_model">
<columns>
<!-- column-name positions -->
<column type="gchararray"/>
- <!-- column-name scale -->
- <column type="gdouble"/>
+ <!-- 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>
@@ -835,11 +697,4 @@
<property name="step_increment">1</property>
<property name="page_increment">100</property>
</object>
- <object class="GtkAdjustment" id="xhairsOpacity">
- <property name="lower">0.10000000000000001</property>
- <property name="upper">1</property>
- <property name="value">0.66000000000000003</property>
- <property name="step_increment">0.01</property>
- <property name="page_increment">0.10000000000000001</property>
- </object>
</interface>