* Changing any of the sliders will now cause the settings to be saved.
* The TimeSlider now sends an update message for ongoing changes, and an invokation message when the mouse button was released (standard BSlider behaviour). * Fixed incorrect initial string when the screen saver should start after 30 seconds of inactivity. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19698 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -43,27 +43,27 @@ 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 = 'RSCG';
|
const int32 kMsgRunSliderUpdate = 'RSup';
|
||||||
const int32 kMsgPasswordSliderChanged = 'PWCG';
|
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 = 'TUCG';
|
const int32 kMsgTurnOffSliderUpdate = 'TUup';
|
||||||
|
|
||||||
const int32 kMsgFadeCornerChanged = 'fdcc';
|
const int32 kMsgFadeCornerChanged = 'fdcc';
|
||||||
const int32 kMsgNeverFadeCornerChanged = 'nfcc';
|
const int32 kMsgNeverFadeCornerChanged = 'nfcc';
|
||||||
|
|
||||||
static const uint32 kTimeSliderChanged = 'tsch';
|
const uint32 kMsgTimeSliderChanged = 'tsch';
|
||||||
|
|
||||||
|
|
||||||
class TimeSlider : public BSlider {
|
class TimeSlider : public BSlider {
|
||||||
public:
|
public:
|
||||||
TimeSlider(BRect frame, const char* name, uint32 modificationMessage);
|
TimeSlider(BRect frame, const char* name, uint32 changedMessage,
|
||||||
|
uint32 updateMessage);
|
||||||
virtual ~TimeSlider();
|
virtual ~TimeSlider();
|
||||||
|
|
||||||
virtual void AttachedToWindow();
|
virtual void AttachedToWindow();
|
||||||
virtual void MessageReceived(BMessage* message);
|
|
||||||
virtual void SetValue(int32 value);
|
virtual void SetValue(int32 value);
|
||||||
|
|
||||||
void SetTime(bigtime_t useconds);
|
void SetTime(bigtime_t useconds);
|
||||||
@@ -71,8 +71,6 @@ class TimeSlider : public BSlider {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void _TimeToString(bigtime_t useconds, BString& string);
|
void _TimeToString(bigtime_t useconds, BString& string);
|
||||||
|
|
||||||
uint32 fModificationMessage;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class FadeView : public BView {
|
class FadeView : public BView {
|
||||||
@@ -130,13 +128,13 @@ static const int32 kTimeInUnits[] = {
|
|||||||
static const int32 kTimeUnitCount = sizeof(kTimeInUnits) / sizeof(kTimeInUnits[0]);
|
static const int32 kTimeUnitCount = sizeof(kTimeInUnits) / sizeof(kTimeInUnits[0]);
|
||||||
|
|
||||||
|
|
||||||
TimeSlider::TimeSlider(BRect frame, const char* name, uint32 modificationMessage)
|
TimeSlider::TimeSlider(BRect frame, const char* name, uint32 changedMessage,
|
||||||
: BSlider(frame, name, "0 minutes", new BMessage(kTimeSliderChanged),
|
uint32 updateMessage)
|
||||||
0, kTimeUnitCount - 1, B_TRIANGLE_THUMB, B_FOLLOW_LEFT_RIGHT),
|
: BSlider(frame, name, "30 seconds", new BMessage(changedMessage),
|
||||||
fModificationMessage(modificationMessage)
|
0, kTimeUnitCount - 1, B_TRIANGLE_THUMB, B_FOLLOW_LEFT_RIGHT)
|
||||||
{
|
{
|
||||||
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||||
SetModificationMessage(new BMessage(kTimeSliderChanged));
|
SetModificationMessage(new BMessage(updateMessage));
|
||||||
SetBarThickness(10);
|
SetBarThickness(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,21 +148,7 @@ void
|
|||||||
TimeSlider::AttachedToWindow()
|
TimeSlider::AttachedToWindow()
|
||||||
{
|
{
|
||||||
BSlider::AttachedToWindow();
|
BSlider::AttachedToWindow();
|
||||||
SetTarget(this);
|
SetTarget(Window());
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
TimeSlider::MessageReceived(BMessage* message)
|
|
||||||
{
|
|
||||||
switch (message->what) {
|
|
||||||
case kTimeSliderChanged:
|
|
||||||
Window()->PostMessage(fModificationMessage);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
BSlider::MessageReceived(message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -673,7 +657,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
|
|||||||
box->AddChild(stringView);
|
box->AddChild(stringView);
|
||||||
|
|
||||||
rect.left += labelWidth;
|
rect.left += labelWidth;
|
||||||
fRunSlider = new TimeSlider(rect, "RunSlider", kMsgRunSliderChanged);
|
fRunSlider = new TimeSlider(rect, "RunSlider", kMsgTimeSliderChanged,
|
||||||
|
kMsgRunSliderUpdate);
|
||||||
float width, height;
|
float width, height;
|
||||||
fRunSlider->GetPreferredSize(&width, &height);
|
fRunSlider->GetPreferredSize(&width, &height);
|
||||||
fRunSlider->ResizeTo(fRunSlider->Bounds().Width(), height);
|
fRunSlider->ResizeTo(fRunSlider->Bounds().Width(), height);
|
||||||
@@ -688,7 +673,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
|
|||||||
box->AddChild(fTurnOffCheckBox);
|
box->AddChild(fTurnOffCheckBox);
|
||||||
|
|
||||||
rect.left += radioButtonOffset + labelWidth;
|
rect.left += radioButtonOffset + labelWidth;
|
||||||
fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider", kMsgTurnOffSliderChanged);
|
fTurnOffSlider = new TimeSlider(rect, "TurnOffSlider", kMsgTimeSliderChanged,
|
||||||
|
kMsgTurnOffSliderUpdate);
|
||||||
fTurnOffSlider->ResizeTo(fTurnOffSlider->Bounds().Width(), height);
|
fTurnOffSlider->ResizeTo(fTurnOffSlider->Bounds().Width(), height);
|
||||||
box->AddChild(fTurnOffSlider);
|
box->AddChild(fTurnOffSlider);
|
||||||
|
|
||||||
@@ -701,7 +687,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
|
|||||||
box->AddChild(fPasswordCheckBox);
|
box->AddChild(fPasswordCheckBox);
|
||||||
|
|
||||||
rect.left += radioButtonOffset + labelWidth;
|
rect.left += radioButtonOffset + labelWidth;
|
||||||
fPasswordSlider = new TimeSlider(rect, "PasswordSlider", kMsgPasswordSliderChanged);
|
fPasswordSlider = new TimeSlider(rect, "PasswordSlider", kMsgTimeSliderChanged,
|
||||||
|
kMsgPasswordSliderUpdate);
|
||||||
fPasswordSlider->ResizeTo(fPasswordSlider->Bounds().Width(), height);
|
fPasswordSlider->ResizeTo(fPasswordSlider->Bounds().Width(), height);
|
||||||
box->AddChild(fPasswordSlider);
|
box->AddChild(fPasswordSlider);
|
||||||
|
|
||||||
@@ -845,7 +832,7 @@ ScreenSaverWindow::MessageReceived(BMessage *msg)
|
|||||||
switch (msg->what) {
|
switch (msg->what) {
|
||||||
// "Fade" tab
|
// "Fade" tab
|
||||||
|
|
||||||
case kMsgRunSliderChanged:
|
case kMsgRunSliderUpdate:
|
||||||
if (fRunSlider->Value() > fTurnOffSlider->Value())
|
if (fRunSlider->Value() > fTurnOffSlider->Value())
|
||||||
fTurnOffSlider->SetValue(fRunSlider->Value());
|
fTurnOffSlider->SetValue(fRunSlider->Value());
|
||||||
|
|
||||||
@@ -857,16 +844,17 @@ ScreenSaverWindow::MessageReceived(BMessage *msg)
|
|||||||
fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON);
|
fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kMsgTurnOffSliderChanged:
|
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:
|
||||||
if (fPasswordSlider->Value() < fRunSlider->Value())
|
if (fPasswordSlider->Value() < fRunSlider->Value())
|
||||||
fRunSlider->SetValue(fPasswordSlider->Value());
|
fRunSlider->SetValue(fPasswordSlider->Value());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case kMsgTimeSliderChanged:
|
||||||
case kMsgPasswordCheckBox:
|
case kMsgPasswordCheckBox:
|
||||||
case kMsgEnableScreenSaverBox:
|
case kMsgEnableScreenSaverBox:
|
||||||
case kMsgFadeCornerChanged:
|
case kMsgFadeCornerChanged:
|
||||||
|
|||||||
Reference in New Issue
Block a user