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:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user