static void list_devices (GList *devices) { GList *l; for (l = devices; l ; l = l->next) { CsdWacomDevice *device; CsdWacomDeviceType type; char *loc; device = l->data; g_signal_connect (G_OBJECT (device), "notify::last-stylus", G_CALLBACK (last_stylus_changed), NULL); g_print ("Device '%s' (type: %s)\n", csd_wacom_device_get_name (device), csd_wacom_device_type_to_string (csd_wacom_device_get_device_type (device))); g_print ("\tReversible: %s\n", BOOL_AS_STR (csd_wacom_device_reversible (device))); g_print ("\tScreen Tablet: %s\n", BOOL_AS_STR (csd_wacom_device_is_screen_tablet (device))); g_print ("\tIntegrated Device: %s\n", BOOL_AS_STR (csd_wacom_device_is_isd (device))); g_print ("\tUnknown (fallback) device: %s\n", BOOL_AS_STR(csd_wacom_device_is_fallback (device))); loc = get_loc (csd_wacom_device_get_settings (device)); g_print ("\tGeneric settings: %s\n", loc); g_free (loc); type = csd_wacom_device_get_device_type (device); if (type == WACOM_TYPE_STYLUS || type == WACOM_TYPE_ERASER) { GList *styli, *j; CsdWacomStylus *current_stylus; g_object_get (device, "last-stylus", ¤t_stylus, NULL); styli = csd_wacom_device_list_styli (device); for (j = styli; j; j = j->next) { CsdWacomStylus *stylus; stylus = j->data; print_stylus (stylus, current_stylus == stylus); } g_list_free (styli); } print_buttons (device); if (monitor_styli == FALSE) g_object_unref (device); } g_list_free (devices); }
GtkWidget * cc_wacom_page_new (CcWacomPanel *panel, CsdWacomDevice *stylus, CsdWacomDevice *eraser, CsdWacomDevice *pad) { CcWacomPage *page; CcWacomPagePrivate *priv; g_return_val_if_fail (CSD_IS_WACOM_DEVICE (stylus), NULL); g_return_val_if_fail (csd_wacom_device_get_device_type (stylus) == WACOM_TYPE_STYLUS, NULL); g_return_val_if_fail (CSD_IS_WACOM_DEVICE (eraser), NULL); g_return_val_if_fail (csd_wacom_device_get_device_type (eraser) == WACOM_TYPE_ERASER, NULL); if (pad != NULL) g_return_val_if_fail (csd_wacom_device_get_device_type (pad) == WACOM_TYPE_PAD, NULL); page = g_object_new (CC_TYPE_WACOM_PAGE, NULL); priv = page->priv; priv->panel = panel; cc_wacom_page_update_tools (page, stylus, eraser, pad); /* FIXME move this to construct */ priv->wacom_settings = csd_wacom_device_get_settings (stylus); set_mode_from_gsettings (GTK_COMBO_BOX (WID ("combo-tabletmode")), page); /* Tablet name */ gtk_label_set_text (GTK_LABEL (WID ("label-tabletmodel")), csd_wacom_device_get_name (stylus)); /* Left-handedness */ if (csd_wacom_device_reversible (stylus)) set_left_handed_from_gsettings (page); /* Tablet icon */ set_icon_name (page, "image-tablet", csd_wacom_device_get_icon_name (stylus)); /* Add styli */ add_styli (page); /* Get the current stylus and switch to its page */ stylus_changed (priv->stylus, NULL, page); g_signal_connect (G_OBJECT (priv->stylus), "notify::last-stylus", G_CALLBACK (stylus_changed), page); return GTK_WIDGET (page); }