Now makes sure that the other sliders are updated on keyboard input as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19700 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2007-01-04 15:36:22 +00:00
parent 23dac09ac1
commit 7acd0ef0b0
@@ -43,19 +43,20 @@ const int32 kMsgSaverSelected = 'SSEL';
const int32 kMsgTestSaver = 'TEST'; const int32 kMsgTestSaver = 'TEST';
const int32 kMsgAddSaver = 'ADD '; const int32 kMsgAddSaver = 'ADD ';
const int32 kMsgPasswordCheckBox = 'PWCB'; const int32 kMsgPasswordCheckBox = 'PWCB';
const int32 kMsgRunSliderChanged = 'RSch';
const int32 kMsgRunSliderUpdate = 'RSup'; const int32 kMsgRunSliderUpdate = 'RSup';
const int32 kMsgPasswordSliderChanged = 'PWch';
const int32 kMsgPasswordSliderUpdate = 'PWup'; const int32 kMsgPasswordSliderUpdate = 'PWup';
const int32 kMsgChangePassword = 'PWBT'; const int32 kMsgChangePassword = 'PWBT';
const int32 kMsgEnableScreenSaverBox = 'ESCH'; const int32 kMsgEnableScreenSaverBox = 'ESCH';
const int32 kMsgTurnOffCheckBox = 'TUOF'; const int32 kMsgTurnOffCheckBox = 'TUOF';
const int32 kMsgTurnOffSliderChanged = 'TUch';
const int32 kMsgTurnOffSliderUpdate = 'TUup'; const int32 kMsgTurnOffSliderUpdate = 'TUup';
const int32 kMsgFadeCornerChanged = 'fdcc'; const int32 kMsgFadeCornerChanged = 'fdcc';
const int32 kMsgNeverFadeCornerChanged = 'nfcc'; const int32 kMsgNeverFadeCornerChanged = 'nfcc';
const uint32 kMsgTimeSliderChanged = 'tsch';
class TimeSlider : public BSlider { class TimeSlider : public BSlider {
public: public:
@@ -657,7 +658,7 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
box->AddChild(stringView); box->AddChild(stringView);
rect.left += labelWidth; rect.left += labelWidth;
fRunSlider = new TimeSlider(rect, "RunSlider", kMsgTimeSliderChanged, fRunSlider = new TimeSlider(rect, "RunSlider", kMsgRunSliderChanged,
kMsgRunSliderUpdate); kMsgRunSliderUpdate);
float width, height; float width, height;
fRunSlider->GetPreferredSize(&width, &height); fRunSlider->GetPreferredSize(&width, &height);
@@ -673,8 +674,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
box->AddChild(fTurnOffCheckBox); box->AddChild(fTurnOffCheckBox);
rect.left += radioButtonOffset + labelWidth; rect.left += radioButtonOffset + labelWidth;
fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider", kMsgTimeSliderChanged, fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider",
kMsgTurnOffSliderUpdate); kMsgTurnOffSliderChanged, kMsgTurnOffSliderUpdate);
fTurnOffSlider->ResizeTo(fTurnOffSlider->Bounds().Width(), height); fTurnOffSlider->ResizeTo(fTurnOffSlider->Bounds().Width(), height);
box->AddChild(fTurnOffSlider); box->AddChild(fTurnOffSlider);
@@ -687,8 +688,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
box->AddChild(fPasswordCheckBox); box->AddChild(fPasswordCheckBox);
rect.left += radioButtonOffset + labelWidth; rect.left += radioButtonOffset + labelWidth;
fPasswordSlider = new TimeSlider(rect, "PasswordSlider", kMsgTimeSliderChanged, fPasswordSlider = new TimeSlider(rect, "PasswordSlider",
kMsgPasswordSliderUpdate); kMsgPasswordSliderChanged, kMsgPasswordSliderUpdate);
fPasswordSlider->ResizeTo(fPasswordSlider->Bounds().Width(), height); fPasswordSlider->ResizeTo(fPasswordSlider->Bounds().Width(), height);
box->AddChild(fPasswordSlider); box->AddChild(fPasswordSlider);
@@ -829,9 +830,10 @@ ScreenSaverWindow::SetMinimalSizeLimit(float width, float height)
void void
ScreenSaverWindow::MessageReceived(BMessage *msg) ScreenSaverWindow::MessageReceived(BMessage *msg)
{ {
switch (msg->what) { // "Fade" tab, slider updates
// "Fade" tab
switch (msg->what) {
case kMsgRunSliderChanged:
case kMsgRunSliderUpdate: case kMsgRunSliderUpdate:
if (fRunSlider->Value() > fTurnOffSlider->Value()) if (fRunSlider->Value() > fTurnOffSlider->Value())
fTurnOffSlider->SetValue(fRunSlider->Value()); fTurnOffSlider->SetValue(fRunSlider->Value());
@@ -840,21 +842,29 @@ ScreenSaverWindow::MessageReceived(BMessage *msg)
fPasswordSlider->SetValue(fRunSlider->Value()); fPasswordSlider->SetValue(fRunSlider->Value());
break; break;
case kMsgTurnOffCheckBox: case kMsgTurnOffSliderChanged:
fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON);
break;
case kMsgTurnOffSliderUpdate: case kMsgTurnOffSliderUpdate:
if (fRunSlider->Value() > fTurnOffSlider->Value()) if (fRunSlider->Value() > fTurnOffSlider->Value())
fRunSlider->SetValue(fTurnOffSlider->Value()); fRunSlider->SetValue(fTurnOffSlider->Value());
break; break;
case kMsgPasswordSliderChanged:
case kMsgPasswordSliderUpdate: case kMsgPasswordSliderUpdate:
if (fPasswordSlider->Value() < fRunSlider->Value()) if (fPasswordSlider->Value() < fRunSlider->Value())
fRunSlider->SetValue(fPasswordSlider->Value()); fRunSlider->SetValue(fPasswordSlider->Value());
break; break;
}
case kMsgTimeSliderChanged: switch (msg->what) {
// "Fade" tab
case kMsgTurnOffCheckBox:
fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON);
break;
case kMsgRunSliderChanged:
case kMsgTurnOffSliderChanged:
case kMsgPasswordSliderChanged:
case kMsgPasswordCheckBox: case kMsgPasswordCheckBox:
case kMsgEnableScreenSaverBox: case kMsgEnableScreenSaverBox:
case kMsgFadeCornerChanged: case kMsgFadeCornerChanged:
@@ -872,8 +882,11 @@ ScreenSaverWindow::MessageReceived(BMessage *msg)
case kMsgUpdateList: case kMsgUpdateList:
fModulesView->PopulateScreenSaverList(); fModulesView->PopulateScreenSaverList();
break; break;
default:
BWindow::MessageReceived(msg);
break;
} }
BWindow::MessageReceived(msg);
} }