wacom: Implement basic display mapping dialogue

This commit is contained in:
Bastien Nocera 2012-02-16 17:24:55 +01:00
parent 2d0bf044e5
commit 5743f2098c

View file

@ -27,6 +27,7 @@
#include "cc-wacom-page.h"
#include "cc-wacom-nav-button.h"
#include "cc-wacom-mapping-panel.h"
#include "cc-wacom-stylus-page.h"
#include "gsd-enums.h"
#include "gui_gtk.h"
@ -63,8 +64,13 @@ struct _CcWacomPagePrivate
GtkWidget *notebook;
CalibArea *area;
GSettings *wacom_settings;
/* Button mapping */
GtkBuilder *mapping_builder;
/* The UI doesn't support cursor/pad at the moment */
/* Display mapping */
GtkWidget *mapping;
GtkWidget *dialog;
};
/* Button combo box storage columns */
@ -549,6 +555,45 @@ map_buttons_button_clicked_cb (GtkButton *button,
gtk_widget_show (dialog);
}
static void
display_mapping_dialog_closed (GtkDialog *dialog,
int response_id,
CcWacomPage *page)
{
CcWacomPagePrivate *priv;
priv = page->priv;
gtk_widget_destroy (priv->dialog);
priv->dialog = NULL;
priv->mapping = NULL;
}
static void
display_mapping_button_clicked_cb (GtkButton *button,
CcWacomPage *page)
{
CcWacomPagePrivate *priv;
priv = page->priv;
g_assert (priv->mapping == NULL);
priv->dialog = gtk_dialog_new_with_buttons (_("Display Mapping"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (page))),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_CLOSE,
GTK_RESPONSE_ACCEPT,
NULL);
priv->mapping = cc_wacom_mapping_panel_new ();
cc_wacom_mapping_panel_set_device (CC_WACOM_MAPPING_PANEL (priv->mapping),
priv->stylus);
gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (priv->dialog))),
priv->mapping);
g_signal_connect (G_OBJECT (priv->dialog), "response",
G_CALLBACK (display_mapping_dialog_closed), page);
gtk_widget_show_all (priv->dialog);
}
static void
tabletmode_changed_cb (GtkComboBox *combo, gpointer user_data)
{
@ -737,6 +782,9 @@ cc_wacom_page_init (CcWacomPage *self)
g_signal_connect (G_OBJECT (WID ("display-link")), "activate-link",
G_CALLBACK (display_clicked_cb), self);
g_signal_connect (G_OBJECT (WID ("display-mapping-button")), "clicked",
G_CALLBACK (display_mapping_button_clicked_cb), self);
priv->nav = cc_wacom_nav_button_new ();
gtk_grid_attach (GTK_GRID (box), priv->nav, 0, 0, 1, 1);
}