From ed3c9badff52768a6b3f924868b6bfb549f53f75 Mon Sep 17 00:00:00 2001 From: Joaquim Rocha Date: Mon, 3 Jun 2013 19:21:35 +0200 Subject: [PATCH] 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 72111c896..766b24667 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 12c520e6c..0968a0938 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 */