From b99173690e92a503b3b5d7513a9ceaa68f7ba3b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 7 Jan 2004 08:04:39 +0000 Subject: [PATCH] Some more {Set}Mapping() functions. Now has a Default() method that activates the system default settings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5957 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/prefs/mouse/MouseSettings.cpp | 68 +++++++++++++++++++++++-------- src/prefs/mouse/MouseSettings.h | 7 +++- 2 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/prefs/mouse/MouseSettings.cpp b/src/prefs/mouse/MouseSettings.cpp index 96a9a5fb2c..e24af7d5a4 100644 --- a/src/prefs/mouse/MouseSettings.cpp +++ b/src/prefs/mouse/MouseSettings.cpp @@ -15,15 +15,14 @@ // // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -#include #include #include #include -#include +#include + #include #include "MouseSettings.h" -#include "MouseMessages.h" // The R5 settings file differs from that of OpenBeOS; @@ -32,6 +31,11 @@ static const char kMouseSettingsFile[] = "Mouse_settings"; +static const bigtime_t kDefaultClickSpeed = 500000; +static const int32 kDefaultMouseSpeed = 65536; +static const int32 kDefaultMouseType = 3; // 3 button mouse +static const int32 kDefaultAccelerationFactor = 65536; + MouseSettings::MouseSettings() { @@ -165,6 +169,28 @@ MouseSettings::Dump() #endif +/** Resets the settings to the system defaults + */ + +void +MouseSettings::Defaults() +{ + SetClickSpeed(kDefaultClickSpeed); + SetMouseSpeed(kDefaultMouseSpeed); + SetMouseType(kDefaultMouseType); + SetAccelerationFactor(kDefaultAccelerationFactor); + SetMouseMode(B_NORMAL_MOUSE); + + mouse_map map; + if (get_mouse_map(&map) == B_OK) { + map.button[0] = B_PRIMARY_MOUSE_BUTTON; + map.button[1] = B_SECONDARY_MOUSE_BUTTON; + map.button[2] = B_TERTIARY_MOUSE_BUTTON; + SetMapping(map); + } +} + + /** Reverts to the active settings at program startup */ @@ -230,26 +256,34 @@ MouseSettings::SetAccelerationFactor(int32 factor) } -void -MouseSettings::Mapping(uint32 &first, uint32 &second, uint32 &third) const +uint32 +MouseSettings::Mapping(int32 index) const { - first = fSettings.map.button[0]; - second = fSettings.map.button[1]; - third = fSettings.map.button[2]; + return fSettings.map.button[index]; +} + + +void +MouseSettings::Mapping(mouse_map &map) const +{ + map = fSettings.map; +} + + +void +MouseSettings::SetMapping(int32 index, uint32 button) +{ + fSettings.map.button[index] = button; + if (set_mouse_map(&fSettings.map) != B_OK) // message better for syslog? + fprintf(stderr, "could not set mouse mapping\n"); } void -MouseSettings::SetMapping(uint32 first, uint32 second, uint32 third) +MouseSettings::SetMapping(mouse_map &map) { - mouse_map map; - if (get_mouse_map(&map) == B_OK) { - map.button[0] = first; - map.button[1] = second; - map.button[2] = third; - if (set_mouse_map(&map) == B_OK) - fSettings.map = map; - } + if (set_mouse_map(&map) == B_OK) + fSettings.map = map; } diff --git a/src/prefs/mouse/MouseSettings.h b/src/prefs/mouse/MouseSettings.h index ed936a056f..f564e39646 100644 --- a/src/prefs/mouse/MouseSettings.h +++ b/src/prefs/mouse/MouseSettings.h @@ -45,6 +45,7 @@ class MouseSettings { ~MouseSettings(); void Revert(); + void Defaults(); void Dump(); BPoint WindowPosition() const { return fWindowPosition; } @@ -62,8 +63,10 @@ class MouseSettings { int32 AccelerationFactor() const { return fSettings.accel.accel_factor; } void SetAccelerationFactor(int32 factor); - void Mapping(uint32 &first, uint32 &second, uint32 &third) const; - void SetMapping(uint32 first, uint32 second, uint32 third); + uint32 Mapping(int32 index) const; + void Mapping(mouse_map &map) const; + void SetMapping(int32 index, uint32 button); + void SetMapping(mouse_map &map); mode_mouse MouseMode() const { return fMode; } void SetMouseMode(mode_mouse mode);