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
|
// Created : December 10, 2003
|
||||||
//
|
//
|
||||||
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||||
|
|
||||||
#include <Alert.h>
|
#include <Alert.h>
|
||||||
#include <Application.h>
|
#include <Application.h>
|
||||||
#include <Message.h>
|
#include <Message.h>
|
||||||
@@ -28,12 +29,13 @@
|
|||||||
#include "MouseWindow.h"
|
#include "MouseWindow.h"
|
||||||
#include "MouseView.h"
|
#include "MouseView.h"
|
||||||
|
|
||||||
|
|
||||||
MouseWindow::MouseWindow(BRect rect)
|
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()));
|
AddChild(fView = new MouseView(Bounds()));
|
||||||
if(fSettings.InitCheck() != B_OK)
|
|
||||||
PostMessage(ERROR_DETECTED);
|
|
||||||
SetPulseRate(100000);
|
SetPulseRate(100000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,18 +43,19 @@ MouseWindow::MouseWindow(BRect rect)
|
|||||||
bool
|
bool
|
||||||
MouseWindow::QuitRequested()
|
MouseWindow::QuitRequested()
|
||||||
{
|
{
|
||||||
fSettings.SetWindowCorner(Frame().LeftTop());
|
fSettings.SetWindowPosition(Frame().LeftTop());
|
||||||
|
|
||||||
be_app->PostMessage(B_QUIT_REQUESTED);
|
be_app->PostMessage(B_QUIT_REQUESTED);
|
||||||
return(true);
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
MouseWindow::MessageReceived(BMessage *message)
|
MouseWindow::MessageReceived(BMessage *message)
|
||||||
{
|
{
|
||||||
|
switch (message->what) {
|
||||||
switch(message->what) {
|
|
||||||
case BUTTON_DEFAULTS: {
|
case BUTTON_DEFAULTS: {
|
||||||
|
// reverts to default settings
|
||||||
fView->dcSpeedSlider->SetValue(500);
|
fView->dcSpeedSlider->SetValue(500);
|
||||||
fView->dcSpeedSlider->Invoke();
|
fView->dcSpeedSlider->Invoke();
|
||||||
fView->mouseSpeedSlider->SetValue(500);
|
fView->mouseSpeedSlider->SetValue(500);
|
||||||
@@ -67,11 +70,13 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
fView->fCurrentMouseMap.button[1] = B_SECONDARY_MOUSE_BUTTON;
|
fView->fCurrentMouseMap.button[1] = B_SECONDARY_MOUSE_BUTTON;
|
||||||
fView->fCurrentMouseMap.button[2] = B_TERTIARY_MOUSE_BUTTON;
|
fView->fCurrentMouseMap.button[2] = B_TERTIARY_MOUSE_BUTTON;
|
||||||
set_mouse_map(&fView->fCurrentMouseMap);
|
set_mouse_map(&fView->fCurrentMouseMap);
|
||||||
|
|
||||||
fView->revertButton->SetEnabled(true);
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case BUTTON_REVERT: {
|
case BUTTON_REVERT: {
|
||||||
|
// revert to last settings
|
||||||
fView->Init();
|
fView->Init();
|
||||||
set_mouse_type(fView->fMouseType);
|
set_mouse_type(fView->fMouseType);
|
||||||
set_mouse_mode(fView->fMouseMode);
|
set_mouse_mode(fView->fMouseMode);
|
||||||
@@ -80,17 +85,20 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
set_mouse_acceleration(fView->fMouseAcc);
|
set_mouse_acceleration(fView->fMouseAcc);
|
||||||
set_mouse_map(&fView->fMouseMap);
|
set_mouse_map(&fView->fMouseMap);
|
||||||
get_mouse_map(&fView->fCurrentMouseMap);
|
get_mouse_map(&fView->fCurrentMouseMap);
|
||||||
|
|
||||||
fView->revertButton->SetEnabled(false);
|
fView->SetRevertable(false);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case POPUP_MOUSE_TYPE: {
|
case POPUP_MOUSE_TYPE: {
|
||||||
status_t err = set_mouse_type(fView->mouseTypeMenu->IndexOf(fView->mouseTypeMenu->FindMarked())+1);
|
status_t err = set_mouse_type(fView->mouseTypeMenu->IndexOf(fView->mouseTypeMenu->FindMarked())+1);
|
||||||
if(err < B_OK)
|
if (err < B_OK)
|
||||||
printf("error while setting mouse type : %s\n", strerror(err));
|
printf("error while setting mouse type : %s\n", strerror(err));
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case POPUP_MOUSE_FOCUS: {
|
case POPUP_MOUSE_FOCUS: {
|
||||||
mode_mouse mouse_mode = B_NORMAL_MOUSE;
|
mode_mouse mouse_mode = B_NORMAL_MOUSE;
|
||||||
switch (fView->focusMenu->IndexOf(fView->focusMenu->FindMarked())) {
|
switch (fView->focusMenu->IndexOf(fView->focusMenu->FindMarked())) {
|
||||||
@@ -100,39 +108,47 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
case 3: mouse_mode = B_INSTANT_WARP_MOUSE; break;
|
case 3: mouse_mode = B_INSTANT_WARP_MOUSE; break;
|
||||||
}
|
}
|
||||||
set_mouse_mode(mouse_mode);
|
set_mouse_mode(mouse_mode);
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case SLIDER_DOUBLE_CLICK_SPEED: {
|
case SLIDER_DOUBLE_CLICK_SPEED: {
|
||||||
int32 value = fView->dcSpeedSlider->Value();
|
int32 value = fView->dcSpeedSlider->Value();
|
||||||
int32 click_speed; // slow = 1000000, fast = 0
|
int32 click_speed; // slow = 1000000, fast = 0
|
||||||
click_speed = (int32) (1000000 - value * 1000);
|
click_speed = (int32) (1000000 - value * 1000);
|
||||||
status_t err = set_click_speed(click_speed);
|
status_t err = set_click_speed(click_speed);
|
||||||
if(err < B_OK)
|
if (err < B_OK)
|
||||||
printf("error while setting click speed : %s\n", strerror(err));
|
printf("error while setting click speed : %s\n", strerror(err));
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case SLIDER_MOUSE_SPEED: {
|
case SLIDER_MOUSE_SPEED: {
|
||||||
int32 value = fView->mouseSpeedSlider->Value();
|
int32 value = fView->mouseSpeedSlider->Value();
|
||||||
int32 mouse_speed; // slow = 8192, fast = 524287
|
int32 mouse_speed; // slow = 8192, fast = 524287
|
||||||
mouse_speed = (int32) pow(2, value * 6 / 1000) * 8192;
|
mouse_speed = (int32) pow(2, value * 6 / 1000) * 8192;
|
||||||
status_t err = set_mouse_speed(mouse_speed);
|
status_t err = set_mouse_speed(mouse_speed);
|
||||||
if(err < B_OK)
|
if (err < B_OK)
|
||||||
printf("error while setting mouse speed : %s\n", strerror(err));
|
printf("error while setting mouse speed : %s\n", strerror(err));
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case SLIDER_MOUSE_ACC: {
|
case SLIDER_MOUSE_ACC: {
|
||||||
int32 value = fView->mouseAccSlider->Value();
|
int32 value = fView->mouseAccSlider->Value();
|
||||||
int32 mouse_acc; // slow = 0, fast = 262144
|
int32 mouse_acc; // slow = 0, fast = 262144
|
||||||
mouse_acc = (int32) pow(value * 4 / 1000, 2) * 16384;
|
mouse_acc = (int32) pow(value * 4 / 1000, 2) * 16384;
|
||||||
status_t err = set_mouse_acceleration(mouse_acc);
|
status_t err = set_mouse_acceleration(mouse_acc);
|
||||||
if(err < B_OK)
|
if (err < B_OK)
|
||||||
printf("error while setting mouse acceleration : %s\n", strerror(err));
|
printf("error while setting mouse acceleration : %s\n", strerror(err));
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case POPUP_MOUSE_MAP: {
|
case POPUP_MOUSE_MAP: {
|
||||||
int32 index = fView->mouseMapMenu->IndexOf(fView->mouseMapMenu->FindMarked());
|
int32 index = fView->mouseMapMenu->IndexOf(fView->mouseMapMenu->FindMarked());
|
||||||
int32 number = B_PRIMARY_MOUSE_BUTTON;
|
int32 number = B_PRIMARY_MOUSE_BUTTON;
|
||||||
@@ -144,20 +160,22 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
fView->fCurrentMouseMap.button[fView->fCurrentButton] = number;
|
fView->fCurrentMouseMap.button[fView->fCurrentButton] = number;
|
||||||
status_t err = set_mouse_map(&fView->fCurrentMouseMap);
|
status_t err = set_mouse_map(&fView->fCurrentMouseMap);
|
||||||
fView->fCurrentButton = -1;
|
fView->fCurrentButton = -1;
|
||||||
if(err < B_OK)
|
if (err < B_OK)
|
||||||
printf("error while setting mouse map : %s\n", strerror(err));
|
printf("error while setting mouse map : %s\n", strerror(err));
|
||||||
fView->revertButton->SetEnabled(true);
|
|
||||||
|
fView->SetRevertable(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case ERROR_DETECTED: {
|
case ERROR_DETECTED: {
|
||||||
(new BAlert("Error", "Something has gone wrong!","OK",NULL,NULL,
|
(new BAlert("Error", "Something has gone wrong!", "OK", NULL, NULL,
|
||||||
B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_WARNING_ALERT))->Go();
|
B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_WARNING_ALERT))->Go();
|
||||||
be_app->PostMessage(B_QUIT_REQUESTED);
|
be_app->PostMessage(B_QUIT_REQUESTED);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
BWindow::MessageReceived(message);
|
BWindow::MessageReceived(message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,17 +20,18 @@
|
|||||||
#include "MouseSettings.h"
|
#include "MouseSettings.h"
|
||||||
#include "MouseView.h"
|
#include "MouseView.h"
|
||||||
|
|
||||||
class MouseWindow : public BWindow
|
|
||||||
{
|
class MouseWindow : public BWindow {
|
||||||
public:
|
public:
|
||||||
MouseWindow(BRect rect);
|
MouseWindow(BRect rect);
|
||||||
|
|
||||||
bool QuitRequested();
|
bool QuitRequested();
|
||||||
void MessageReceived(BMessage *message);
|
void MessageReceived(BMessage *message);
|
||||||
|
|
||||||
MouseSettings fSettings;
|
MouseSettings fSettings;
|
||||||
private:
|
|
||||||
MouseView *fView;
|
private:
|
||||||
|
MouseView *fView;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user