[gnome-control-center] wacom: Add cc_wacom_page_calibrate and cc_wacom_page_can_calibrate functions



commit ed3c9badff52768a6b3f924868b6bfb549f53f75
Author: Joaquim Rocha <jrocha redhat com>
Date:   Mon Jun 3 19:21:35 2013 +0200

    wacom: Add cc_wacom_page_calibrate and cc_wacom_page_can_calibrate functions
    
    https://bugzilla.gnome.org/show_bug.cgi?id=692816

 panels/wacom/cc-wacom-page.c |   44 +++++++++++++++++++++++++++++++++++------
 panels/wacom/cc-wacom-page.h |    4 +++
 2 files changed, 41 insertions(+), 7 deletions(-)
---
diff --git a/panels/wacom/cc-wacom-page.c b/panels/wacom/cc-wacom-page.c
index 72111c8..766b246 100644
--- a/panels/wacom/cc-wacom-page.c
+++ b/panels/wacom/cc-wacom-page.c
@@ -253,15 +253,17 @@ run_calibration (CcWacomPage *page,
 }
 
 static void
-calibrate_button_clicked_cb (GtkButton   *button,
-                            CcWacomPage *page)
+calibrate (CcWacomPage *page)
 {
+       CcWacomPagePrivate *priv;
        int i, calibration[4];
        GVariant *variant;
        int *current;
        gsize ncal;
        gint monitor;
 
+       priv = page->priv;
+
        monitor = gsd_wacom_device_get_display_monitor (page->priv->stylus);
        if (monitor < 0) {
                /* The display the tablet should be mapped to could not be located.
@@ -314,7 +316,14 @@ calibrate_button_clicked_cb (GtkButton   *button,
        }
 
        run_calibration (page, calibration, monitor);
-       gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
+       gtk_widget_set_sensitive (WID ("button-calibrate"), FALSE);
+}
+
+static void
+calibrate_button_clicked_cb (GtkButton   *button,
+                            CcWacomPage *page)
+{
+       calibrate (page);
 }
 
 /* This avoids us crashing when a newer version of
@@ -1336,12 +1345,17 @@ remove_mouse_link (CcWacomPagePrivate *priv)
                                  "top_attach", 2, NULL);
 }
 
+static gboolean
+has_monitor (CcWacomPage *page)
+{
+       return gsd_wacom_device_get_display_monitor (page->priv->stylus) >= 0;
+}
+
 static void
 update_tablet_ui (CcWacomPage *page,
                  int          layout)
 {
        CcWacomPagePrivate *priv;
-       gboolean has_monitor = FALSE;
        GsdWacomStylus *puck;
 
        priv = page->priv;
@@ -1368,9 +1382,8 @@ update_tablet_ui (CcWacomPage *page,
                gtk_widget_destroy (WID ("display-mapping-button"));
 
                gtk_widget_show (WID ("button-calibrate"));
-               if (gsd_wacom_device_get_display_monitor (priv->stylus) >= 0)
-                       has_monitor = TRUE;
-               gtk_widget_set_sensitive (WID ("button-calibrate"), has_monitor);
+               gtk_widget_set_sensitive (WID ("button-calibrate"),
+                                         has_monitor (priv));
 
                gtk_container_child_set (CWID ("main-grid"),
                                         WID ("tablet-buttons-box"),
@@ -1477,3 +1490,20 @@ cc_wacom_page_set_navigation (CcWacomPage *page,
                      "ignore-first", ignore_first_page,
                      NULL);
 }
+
+void
+cc_wacom_page_calibrate (CcWacomPage *page)
+{
+       g_return_if_fail (CC_IS_WACOM_PAGE (page));
+
+       calibrate (page);
+}
+
+gboolean
+cc_wacom_page_can_calibrate (CcWacomPage *page)
+{
+       g_return_val_if_fail (CC_IS_WACOM_PAGE (page),
+                             FALSE);
+
+       return has_monitor (page);
+}
diff --git a/panels/wacom/cc-wacom-page.h b/panels/wacom/cc-wacom-page.h
index 12c520e..0968a09 100644
--- a/panels/wacom/cc-wacom-page.h
+++ b/panels/wacom/cc-wacom-page.h
@@ -83,6 +83,10 @@ void cc_wacom_page_set_navigation (CcWacomPage *page,
                                   GtkNotebook *notebook,
                                   gboolean     ignore_first_page);
 
+void        cc_wacom_page_calibrate        (CcWacomPage *page);
+
+gboolean    cc_wacom_page_can_calibrate    (CcWacomPage *page);
+
 G_END_DECLS
 
 #endif /* _CC_WACOM_PAGE_H */


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