[gimp] app: actually use the device's pressure curve to map the pressure axis
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: actually use the device's pressure curve to map the pressure axis
- Date: Tue, 16 Feb 2010 12:28:52 +0000 (UTC)
commit 2a92f5757774a270297ffcc341532296b89eb516
Author: Michael Natterer <mitch gimp org>
Date: Tue Feb 16 13:27:46 2010 +0100
app: actually use the device's pressure curve to map the pressure axis
unfortunately i have no way of testing this, so please test...
app/widgets/gimpdeviceinfo-coords.c | 15 +++++++++------
app/widgets/gimpdeviceinfo.c | 18 ++++++++++++++++++
app/widgets/gimpdeviceinfo.h | 3 +++
3 files changed, 30 insertions(+), 6 deletions(-)
---
diff --git a/app/widgets/gimpdeviceinfo-coords.c b/app/widgets/gimpdeviceinfo-coords.c
index 44f9846..230117c 100644
--- a/app/widgets/gimpdeviceinfo-coords.c
+++ b/app/widgets/gimpdeviceinfo-coords.c
@@ -51,8 +51,9 @@ gimp_device_info_get_event_coords (GimpDeviceInfo *info,
if (gdk_event_get_axis (event, GDK_AXIS_PRESSURE, &coords->pressure))
{
- coords->pressure = CLAMP (coords->pressure, GIMP_COORDS_MIN_PRESSURE,
- GIMP_COORDS_MAX_PRESSURE);
+ coords->pressure = gimp_device_info_map_axis (info,
+ GDK_AXIS_PRESSURE,
+ coords->pressure);
}
if (gdk_event_get_axis (event, GDK_AXIS_XTILT, &coords->xtilt))
@@ -102,8 +103,9 @@ gimp_device_info_get_device_coords (GimpDeviceInfo *info,
if (gdk_device_get_axis (info->device,
axes, GDK_AXIS_PRESSURE, &coords->pressure))
{
- coords->pressure = CLAMP (coords->pressure, GIMP_COORDS_MIN_PRESSURE,
- GIMP_COORDS_MAX_PRESSURE);
+ coords->pressure = gimp_device_info_map_axis (info,
+ GDK_AXIS_PRESSURE,
+ coords->pressure);
}
if (gdk_device_get_axis (info->device,
@@ -145,8 +147,9 @@ gimp_device_info_get_time_coords (GimpDeviceInfo *info,
if (gdk_device_get_axis (info->device,
event->axes, GDK_AXIS_PRESSURE, &coords->pressure))
{
- coords->pressure = CLAMP (coords->pressure, GIMP_COORDS_MIN_PRESSURE,
- GIMP_COORDS_MAX_PRESSURE);
+ coords->pressure = gimp_device_info_map_axis (info,
+ GDK_AXIS_PRESSURE,
+ coords->pressure);
}
if (gdk_device_get_axis (info->device,
diff --git a/app/widgets/gimpdeviceinfo.c b/app/widgets/gimpdeviceinfo.c
index 10cde7d..a76b7b8 100644
--- a/app/widgets/gimpdeviceinfo.c
+++ b/app/widgets/gimpdeviceinfo.c
@@ -29,6 +29,7 @@
#include "core/gimp.h"
#include "core/gimpcontainer.h"
#include "core/gimpcurve.h"
+#include "core/gimpcurve-map.h"
#include "core/gimpdatafactory.h"
#include "core/gimpmarshal.h"
@@ -773,6 +774,23 @@ gimp_device_info_get_curve (GimpDeviceInfo *info,
}
}
+gdouble
+gimp_device_info_map_axis (GimpDeviceInfo *info,
+ GdkAxisUse use,
+ gboolean value)
+{
+ GimpCurve *curve;
+
+ g_return_val_if_fail (GIMP_IS_DEVICE_INFO (info), value);
+
+ curve = gimp_device_info_get_curve (info, use);
+
+ if (curve)
+ return gimp_curve_map_value (curve, value);
+
+ return value;
+}
+
void
gimp_device_info_changed (GimpDeviceInfo *info)
{
diff --git a/app/widgets/gimpdeviceinfo.h b/app/widgets/gimpdeviceinfo.h
index c235b36..91555d4 100644
--- a/app/widgets/gimpdeviceinfo.h
+++ b/app/widgets/gimpdeviceinfo.h
@@ -110,6 +110,9 @@ void gimp_device_info_set_key (GimpDeviceInfo *info,
GimpCurve * gimp_device_info_get_curve (GimpDeviceInfo *info,
GdkAxisUse use);
+gdouble gimp_device_info_map_axis (GimpDeviceInfo *info,
+ GdkAxisUse use,
+ gboolean value);
void gimp_device_info_changed (GimpDeviceInfo *info);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]