No longer accesses any SettingsView members directly. It now takes all

information it needs out of the messages it gets.
Now used MessageSettings::Defaults() instead of having an own implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5960 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2004-01-07 08:10:48 +00:00
parent 3e92b3c74b
commit 7116278ebd
2 changed files with 78 additions and 93 deletions
+53 -67
View File
@@ -28,7 +28,7 @@
#include <string.h> #include <string.h>
#include "MouseWindow.h" #include "MouseWindow.h"
#include "MouseMessages.h" #include "MouseConstants.h"
#include "SettingsView.h" #include "SettingsView.h"
@@ -83,20 +83,8 @@ MouseWindow::MessageReceived(BMessage *message)
switch (message->what) { switch (message->what) {
case BUTTON_DEFAULTS: { case BUTTON_DEFAULTS: {
// reverts to default settings // reverts to default settings
fSettingsView->dcSpeedSlider->SetValue(500); fSettings.Defaults();
fSettingsView->dcSpeedSlider->Invoke(); fSettingsView->UpdateFromSettings();
fSettingsView->mouseSpeedSlider->SetValue(500);
fSettingsView->mouseSpeedSlider->Invoke();
fSettingsView->mouseAccSlider->SetValue(500);
fSettingsView->mouseAccSlider->Invoke();
fSettingsView->focusMenu->ItemAt(0)->SetMarked(true);
set_mouse_type(3);
fSettingsView->mouseTypeMenu->ItemAt(2)->SetMarked(true);
set_mouse_mode(B_NORMAL_MOUSE);
fSettingsView->fCurrentMouseMap.button[0] = B_PRIMARY_MOUSE_BUTTON;
fSettingsView->fCurrentMouseMap.button[1] = B_SECONDARY_MOUSE_BUTTON;
fSettingsView->fCurrentMouseMap.button[2] = B_TERTIARY_MOUSE_BUTTON;
set_mouse_map(&fSettingsView->fCurrentMouseMap);
SetRevertable(true); SetRevertable(true);
break; break;
@@ -104,88 +92,86 @@ MouseWindow::MessageReceived(BMessage *message)
case BUTTON_REVERT: { case BUTTON_REVERT: {
// revert to last settings // revert to last settings
fSettingsView->Init();
fSettings.Revert(); fSettings.Revert();
//fSettingsView->Update(); fSettingsView->UpdateFromSettings();
SetRevertable(false); SetRevertable(false);
break; break;
} }
case POPUP_MOUSE_TYPE: { case POPUP_MOUSE_TYPE:
status_t err = set_mouse_type(fSettingsView->mouseTypeMenu->IndexOf(fSettingsView->mouseTypeMenu->FindMarked())+1); {
if (err < B_OK) int32 type;
printf("error while setting mouse type : %s\n", strerror(err)); if (message->FindInt32("index", &type) == B_OK) {
fSettings.SetMouseType(++type);
fSettingsView->SetMouseType(type);
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
case POPUP_MOUSE_FOCUS: { case POPUP_MOUSE_FOCUS:
mode_mouse mouse_mode = B_NORMAL_MOUSE; {
switch (fSettingsView->focusMenu->IndexOf(fSettingsView->focusMenu->FindMarked())) { int32 mode;
case 0: mouse_mode = B_NORMAL_MOUSE; break; if (message->FindInt32("mode", &mode) == B_OK) {
case 1: mouse_mode = B_FOCUS_FOLLOWS_MOUSE; break; fSettings.SetMouseMode((mode_mouse)mode);
case 2: mouse_mode = B_WARP_MOUSE; break;
case 3: mouse_mode = B_INSTANT_WARP_MOUSE; break;
}
set_mouse_mode(mouse_mode);
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
case SLIDER_DOUBLE_CLICK_SPEED: { case SLIDER_DOUBLE_CLICK_SPEED:
int32 value = fSettingsView->dcSpeedSlider->Value(); {
int32 click_speed; // slow = 1000000, fast = 0 int32 value;
click_speed = (int32) (1000000 - value * 1000); if (message->FindInt32("be:value", &value) == B_OK) {
status_t err = set_click_speed(click_speed); // slow = 1000000, fast = 0
if (err < B_OK) fSettings.SetClickSpeed(value * 1000);
printf("error while setting click speed : %s\n", strerror(err));
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
case SLIDER_MOUSE_SPEED: { case SLIDER_MOUSE_SPEED:
int32 value = fSettingsView->mouseSpeedSlider->Value(); {
int32 mouse_speed; // slow = 8192, fast = 524287 int32 value;
mouse_speed = (int32) pow(2, value * 6 / 1000) * 8192; if (message->FindInt32("be:value", &value) == B_OK) {
status_t err = set_mouse_speed(mouse_speed); // slow = 8192, fast = 524287
if (err < B_OK) fSettings.SetMouseSpeed((int32)pow(2, value * 6 / 1000) * 8192);
printf("error while setting mouse speed : %s\n", strerror(err));
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
case SLIDER_MOUSE_ACC: { case SLIDER_MOUSE_ACC:
int32 value = fSettingsView->mouseAccSlider->Value(); {
int32 mouse_acc; // slow = 0, fast = 262144 int32 value;
mouse_acc = (int32) pow(value * 4 / 1000, 2) * 16384; if (message->FindInt32("be:value", &value) == B_OK) {
status_t err = set_mouse_acceleration(mouse_acc); // slow = 0, fast = 262144
if (err < B_OK) fSettings.SetAccelerationFactor((int32)pow(value * 4 / 1000, 2) * 16384);
printf("error while setting mouse acceleration : %s\n", strerror(err));
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
case POPUP_MOUSE_MAP: { case POPUP_MOUSE_MAP:
int32 index = fSettingsView->mouseMapMenu->IndexOf(fSettingsView->mouseMapMenu->FindMarked()); {
int32 number = B_PRIMARY_MOUSE_BUTTON; int32 index;
int32 button;
if (message->FindInt32("index", &index) == B_OK
&& message->FindInt32("button", &button) == B_OK) {
int32 mapping = B_PRIMARY_MOUSE_BUTTON;
switch (index) { switch (index) {
case 0: number = B_PRIMARY_MOUSE_BUTTON; break; case 1:
case 1: number = B_SECONDARY_MOUSE_BUTTON; break; mapping = B_SECONDARY_MOUSE_BUTTON;
case 2: number = B_TERTIARY_MOUSE_BUTTON; break; break;
case 2:
mapping = B_TERTIARY_MOUSE_BUTTON;
break;
} }
fSettingsView->fCurrentMouseMap.button[fSettingsView->fCurrentButton] = number;
status_t err = set_mouse_map(&fSettingsView->fCurrentMouseMap);
fSettingsView->fCurrentButton = -1;
if (err < B_OK)
printf("error while setting mouse map : %s\n", strerror(err));
fSettings.SetMapping(button, mapping);
SetRevertable(true); SetRevertable(true);
}
break; break;
} }
+4 -5
View File
@@ -7,8 +7,10 @@
// //
// //
// File: MouseWindow.h // File: MouseWindow.h
// Author: Jérôme Duval, Andrew McCall ([email protected]) // Authors: Jérôme Duval,
// Description: Media Preferences // Andrew McCall ([email protected])
// Axel Dörfler ([email protected])
// Description: Mouse Preferences
// Created: December 10, 2003 // Created: December 10, 2003
// //
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@@ -39,7 +41,4 @@ class MouseWindow : public BWindow {
SettingsView *fSettingsView; SettingsView *fSettingsView;
}; };
#define kBorderSpace 10
#define kItemSpace 7
#endif /* MOUSE_WINDOW_H */ #endif /* MOUSE_WINDOW_H */