From 7acd0ef0b06fb7c1698bb4de84946ec200183e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 4 Jan 2007 15:36:22 +0000 Subject: [PATCH] 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 --- .../screensaver/ScreenSaverWindow.cpp | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/preferences/screensaver/ScreenSaverWindow.cpp b/src/preferences/screensaver/ScreenSaverWindow.cpp index 263789463a..5d01b39dad 100644 --- a/src/preferences/screensaver/ScreenSaverWindow.cpp +++ b/src/preferences/screensaver/ScreenSaverWindow.cpp @@ -43,19 +43,20 @@ const int32 kMsgSaverSelected = 'SSEL'; const int32 kMsgTestSaver = 'TEST'; const int32 kMsgAddSaver = 'ADD '; const int32 kMsgPasswordCheckBox = 'PWCB'; +const int32 kMsgRunSliderChanged = 'RSch'; const int32 kMsgRunSliderUpdate = 'RSup'; +const int32 kMsgPasswordSliderChanged = 'PWch'; const int32 kMsgPasswordSliderUpdate = 'PWup'; const int32 kMsgChangePassword = 'PWBT'; const int32 kMsgEnableScreenSaverBox = 'ESCH'; const int32 kMsgTurnOffCheckBox = 'TUOF'; +const int32 kMsgTurnOffSliderChanged = 'TUch'; const int32 kMsgTurnOffSliderUpdate = 'TUup'; const int32 kMsgFadeCornerChanged = 'fdcc'; const int32 kMsgNeverFadeCornerChanged = 'nfcc'; -const uint32 kMsgTimeSliderChanged = 'tsch'; - class TimeSlider : public BSlider { public: @@ -657,7 +658,7 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect) box->AddChild(stringView); rect.left += labelWidth; - fRunSlider = new TimeSlider(rect, "RunSlider", kMsgTimeSliderChanged, + fRunSlider = new TimeSlider(rect, "RunSlider", kMsgRunSliderChanged, kMsgRunSliderUpdate); float width, height; fRunSlider->GetPreferredSize(&width, &height); @@ -673,8 +674,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect) box->AddChild(fTurnOffCheckBox); rect.left += radioButtonOffset + labelWidth; - fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider", kMsgTimeSliderChanged, - kMsgTurnOffSliderUpdate); + fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider", + kMsgTurnOffSliderChanged, kMsgTurnOffSliderUpdate); fTurnOffSlider->ResizeTo(fTurnOffSlider->Bounds().Width(), height); box->AddChild(fTurnOffSlider); @@ -687,8 +688,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect) box->AddChild(fPasswordCheckBox); rect.left += radioButtonOffset + labelWidth; - fPasswordSlider = new TimeSlider(rect, "PasswordSlider", kMsgTimeSliderChanged, - kMsgPasswordSliderUpdate); + fPasswordSlider = new TimeSlider(rect, "PasswordSlider", + kMsgPasswordSliderChanged, kMsgPasswordSliderUpdate); fPasswordSlider->ResizeTo(fPasswordSlider->Bounds().Width(), height); box->AddChild(fPasswordSlider); @@ -829,9 +830,10 @@ ScreenSaverWindow::SetMinimalSizeLimit(float width, float height) void ScreenSaverWindow::MessageReceived(BMessage *msg) { - switch (msg->what) { - // "Fade" tab + // "Fade" tab, slider updates + switch (msg->what) { + case kMsgRunSliderChanged: case kMsgRunSliderUpdate: if (fRunSlider->Value() > fTurnOffSlider->Value()) fTurnOffSlider->SetValue(fRunSlider->Value()); @@ -840,21 +842,29 @@ ScreenSaverWindow::MessageReceived(BMessage *msg) fPasswordSlider->SetValue(fRunSlider->Value()); break; - case kMsgTurnOffCheckBox: - fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON); - break; - + case kMsgTurnOffSliderChanged: case kMsgTurnOffSliderUpdate: if (fRunSlider->Value() > fTurnOffSlider->Value()) fRunSlider->SetValue(fTurnOffSlider->Value()); break; + case kMsgPasswordSliderChanged: case kMsgPasswordSliderUpdate: if (fPasswordSlider->Value() < fRunSlider->Value()) fRunSlider->SetValue(fPasswordSlider->Value()); 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 kMsgEnableScreenSaverBox: case kMsgFadeCornerChanged: @@ -872,8 +882,11 @@ ScreenSaverWindow::MessageReceived(BMessage *msg) case kMsgUpdateList: fModulesView->PopulateScreenSaverList(); break; + + default: + BWindow::MessageReceived(msg); + break; } - BWindow::MessageReceived(msg); }