Now uses MouseView::SetRevertable() instead of accessing the member

variable directly.
Broken settings no longer quit the app.
Many style fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5945 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2004-01-06 22:03:30 +00:00
parent e9cc36ba1a
commit eb8423f435
2 changed files with 66 additions and 47 deletions
+43 -25
View File
@@ -12,6 +12,7 @@
// Created : December 10, 2003
//
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
#include <Alert.h>
#include <Application.h>
#include <Message.h>
@@ -28,12 +29,13 @@
#include "MouseWindow.h"
#include "MouseView.h"
MouseWindow::MouseWindow(BRect rect)
: BWindow(rect, "Mouse", B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE )
: BWindow(rect, "Mouse", B_TITLED_WINDOW,
B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS)
{
AddChild(fView = new MouseView(Bounds()));
if(fSettings.InitCheck() != B_OK)
PostMessage(ERROR_DETECTED);
SetPulseRate(100000);
}
@@ -41,18 +43,19 @@ MouseWindow::MouseWindow(BRect rect)
bool
MouseWindow::QuitRequested()
{
fSettings.SetWindowCorner(Frame().LeftTop());
fSettings.SetWindowPosition(Frame().LeftTop());
be_app->PostMessage(B_QUIT_REQUESTED);
return(true);
return true;
}
void
MouseWindow::MessageReceived(BMessage *message)
{
switch (message->what) {
case BUTTON_DEFAULTS: {
// reverts to default settings
fView->dcSpeedSlider->SetValue(500);
fView->dcSpeedSlider->Invoke();
fView->mouseSpeedSlider->SetValue(500);
@@ -68,10 +71,12 @@ MouseWindow::MessageReceived(BMessage *message)
fView->fCurrentMouseMap.button[2] = B_TERTIARY_MOUSE_BUTTON;
set_mouse_map(&fView->fCurrentMouseMap);
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case BUTTON_REVERT: {
// revert to last settings
fView->Init();
set_mouse_type(fView->fMouseType);
set_mouse_mode(fView->fMouseMode);
@@ -81,16 +86,19 @@ MouseWindow::MessageReceived(BMessage *message)
set_mouse_map(&fView->fMouseMap);
get_mouse_map(&fView->fCurrentMouseMap);
fView->revertButton->SetEnabled(false);
}
fView->SetRevertable(false);
break;
}
case POPUP_MOUSE_TYPE: {
status_t err = set_mouse_type(fView->mouseTypeMenu->IndexOf(fView->mouseTypeMenu->FindMarked())+1);
if (err < B_OK)
printf("error while setting mouse type : %s\n", strerror(err));
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case POPUP_MOUSE_FOCUS: {
mode_mouse mouse_mode = B_NORMAL_MOUSE;
switch (fView->focusMenu->IndexOf(fView->focusMenu->FindMarked())) {
@@ -100,9 +108,11 @@ MouseWindow::MessageReceived(BMessage *message)
case 3: mouse_mode = B_INSTANT_WARP_MOUSE; break;
}
set_mouse_mode(mouse_mode);
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case SLIDER_DOUBLE_CLICK_SPEED: {
int32 value = fView->dcSpeedSlider->Value();
int32 click_speed; // slow = 1000000, fast = 0
@@ -110,9 +120,11 @@ MouseWindow::MessageReceived(BMessage *message)
status_t err = set_click_speed(click_speed);
if (err < B_OK)
printf("error while setting click speed : %s\n", strerror(err));
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case SLIDER_MOUSE_SPEED: {
int32 value = fView->mouseSpeedSlider->Value();
int32 mouse_speed; // slow = 8192, fast = 524287
@@ -120,9 +132,11 @@ MouseWindow::MessageReceived(BMessage *message)
status_t err = set_mouse_speed(mouse_speed);
if (err < B_OK)
printf("error while setting mouse speed : %s\n", strerror(err));
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case SLIDER_MOUSE_ACC: {
int32 value = fView->mouseAccSlider->Value();
int32 mouse_acc; // slow = 0, fast = 262144
@@ -130,9 +144,11 @@ MouseWindow::MessageReceived(BMessage *message)
status_t err = set_mouse_acceleration(mouse_acc);
if (err < B_OK)
printf("error while setting mouse acceleration : %s\n", strerror(err));
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case POPUP_MOUSE_MAP: {
int32 index = fView->mouseMapMenu->IndexOf(fView->mouseMapMenu->FindMarked());
int32 number = B_PRIMARY_MOUSE_BUTTON;
@@ -146,18 +162,20 @@ MouseWindow::MessageReceived(BMessage *message)
fView->fCurrentButton = -1;
if (err < B_OK)
printf("error while setting mouse map : %s\n", strerror(err));
fView->revertButton->SetEnabled(true);
}
fView->SetRevertable(true);
break;
}
case ERROR_DETECTED: {
(new BAlert("Error", "Something has gone wrong!", "OK", NULL, NULL,
B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_WARNING_ALERT))->Go();
be_app->PostMessage(B_QUIT_REQUESTED);
}
break;
}
default:
BWindow::MessageReceived(message);
break;
}
}
+3 -2
View File
@@ -20,8 +20,8 @@
#include "MouseSettings.h"
#include "MouseView.h"
class MouseWindow : public BWindow
{
class MouseWindow : public BWindow {
public:
MouseWindow(BRect rect);
@@ -29,6 +29,7 @@ public:
void MessageReceived(BMessage *message);
MouseSettings fSettings;
private:
MouseView *fView;
};