* Some cleanup, no functional change.

* Looks like this is neither using the layout engine nor has it been localized
  yet!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37313 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2010-06-30 13:49:27 +00:00
parent c33b89b3bb
commit 79c273aee8
2 changed files with 147 additions and 110 deletions
+112 -81
View File
@@ -62,64 +62,74 @@ const int32 kMsgNeverFadeCornerChanged = 'nfcc';
class TimeSlider : public BSlider {
public:
TimeSlider(BRect frame, const char* name, uint32 changedMessage,
uint32 updateMessage);
virtual ~TimeSlider();
public:
TimeSlider(BRect frame, const char* name,
uint32 changedMessage,
uint32 updateMessage);
virtual ~TimeSlider();
virtual void AttachedToWindow();
virtual void SetValue(int32 value);
virtual void AttachedToWindow();
virtual void SetValue(int32 value);
void SetTime(bigtime_t useconds);
bigtime_t Time();
void SetTime(bigtime_t useconds);
bigtime_t Time() const;
private:
void _TimeToString(bigtime_t useconds, BString& string);
private:
void _TimeToString(bigtime_t useconds,
BString& string);
};
class FadeView : public BView {
public:
FadeView(BRect frame, const char* name, ScreenSaverSettings& settings);
public:
FadeView(BRect frame, const char* name,
ScreenSaverSettings& settings);
virtual void AttachedToWindow();
virtual void AttachedToWindow();
};
class ModulesView : public BView {
public:
ModulesView(BRect frame, const char* name, ScreenSaverSettings& settings);
virtual ~ModulesView();
public:
ModulesView(BRect frame, const char* name,
ScreenSaverSettings& settings);
virtual ~ModulesView();
virtual void DetachedFromWindow();
virtual void AttachedToWindow();
virtual void AllAttached();
virtual void MessageReceived(BMessage* message);
virtual void DetachedFromWindow();
virtual void AttachedToWindow();
virtual void AllAttached();
virtual void MessageReceived(BMessage* message);
void PopulateScreenSaverList();
void SaveState();
void PopulateScreenSaverList();
void SaveState();
private:
static int _CompareScreenSaverItems(const void* left, const void* right);
BScreenSaver* _ScreenSaver();
void _CloseSaver();
void _OpenSaver();
private:
static int _CompareScreenSaverItems(const void* left,
const void* right);
BFilePanel* fFilePanel;
BListView* fListView;
BButton* fTestButton;
BButton* fAddButton;
BScreenSaver* _ScreenSaver();
void _CloseSaver();
void _OpenSaver();
ScreenSaverSettings& fSettings;
ScreenSaverRunner* fSaverRunner;
BString fCurrentName;
private:
BFilePanel* fFilePanel;
BListView* fListView;
BButton* fTestButton;
BButton* fAddButton;
BBox* fSettingsBox;
BView* fSettingsView;
ScreenSaverSettings& fSettings;
ScreenSaverRunner* fSaverRunner;
BString fCurrentName;
PreviewView* fPreviewView;
BBox* fSettingsBox;
BView* fSettingsView;
team_id fScreenSaverTestTeamId;
PreviewView* fPreviewView;
team_id fScreenSaverTestTeam;
};
static const int32 kTimeInUnits[] = {
30, 60, 90,
120, 150, 180,
@@ -131,12 +141,14 @@ static const int32 kTimeInUnits[] = {
7200, 9000, 10800,
14400, 18000
};
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 changedMessage,
uint32 updateMessage)
: BSlider(frame, name, "30 seconds", new BMessage(changedMessage),
:
BSlider(frame, name, "30 seconds", new BMessage(changedMessage),
0, kTimeUnitCount - 1, B_TRIANGLE_THUMB, B_FOLLOW_LEFT_RIGHT)
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
@@ -185,7 +197,7 @@ TimeSlider::SetTime(bigtime_t useconds)
bigtime_t
TimeSlider::Time()
TimeSlider::Time() const
{
return 1000000LL * kTimeInUnits[Value()];
}
@@ -228,7 +240,8 @@ TimeSlider::_TimeToString(bigtime_t useconds, BString& string)
FadeView::FadeView(BRect rect, const char* name, ScreenSaverSettings& settings)
: BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW)
:
BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW)
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
}
@@ -248,16 +261,19 @@ FadeView::AttachedToWindow()
// #pragma mark -
ModulesView::ModulesView(BRect rect, const char* name, ScreenSaverSettings& settings)
: BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW),
ModulesView::ModulesView(BRect rect, const char* name,
ScreenSaverSettings& settings)
:
BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW),
fSettings(settings),
fSaverRunner(NULL),
fSettingsView(NULL)
fSettingsView(NULL),
fScreenSaverTestTeam(-1)
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
fTestButton = new BButton(rect, "TestButton", "Test", new BMessage(kMsgTestSaver),
B_FOLLOW_LEFT | B_FOLLOW_BOTTOM);
fTestButton = new BButton(rect, "TestButton", "Test",
new BMessage(kMsgTestSaver), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM);
float width, height;
fTestButton->GetPreferredSize(&width, &height);
fTestButton->ResizeTo(width + 16, height);
@@ -291,7 +307,8 @@ ModulesView::ModulesView(BRect rect, const char* name, ScreenSaverSettings& sett
rect = Bounds().InsetByCopy(8, 8);
rect.left = fAddButton->Frame().right + 8;
AddChild(fSettingsBox = new BBox(rect, "SettingsBox", B_FOLLOW_ALL, B_WILL_DRAW));
AddChild(fSettingsBox = new BBox(rect, "SettingsBox", B_FOLLOW_ALL,
B_WILL_DRAW));
fSettingsBox->SetLabel("Module settings");
PopulateScreenSaverList();
@@ -348,7 +365,8 @@ ModulesView::MessageReceived(BMessage* message)
if (selection < 0)
break;
ScreenSaverItem* item = (ScreenSaverItem *)fListView->ItemAt(selection);
ScreenSaverItem* item
= (ScreenSaverItem*)fListView->ItemAt(selection);
if (item == NULL)
break;
@@ -371,41 +389,42 @@ ModulesView::MessageReceived(BMessage* message)
_CloseSaver();
be_roster->StartWatching(BMessenger(this, this->Looper()),
be_roster->StartWatching(BMessenger(this, Looper()),
B_REQUEST_QUIT);
if (be_roster->Launch(SCREEN_BLANKER_SIG, &fSettings.Message(),
&fScreenSaverTestTeamId) == B_OK)
&fScreenSaverTestTeam) == B_OK)
break;
// Try really hard to launch it. It's very likely that this fails,
// when we run from the CD and there is only an incomplete mime
// Try really hard to launch it. It's very likely that this fails
// when we run from the CD, and there is only an incomplete mime
// database for example...
BPath path;
if (find_directory(B_SYSTEM_BIN_DIRECTORY, &path) != B_OK
|| path.Append("screen_blanker") != B_OK) {
|| path.Append("screen_blanker") != B_OK)
path.SetTo("/boot/system/bin/screen_blanker");
}
BEntry entry(path.Path());
entry_ref ref;
if (entry.GetRef(&ref) == B_OK)
if (entry.GetRef(&ref) == B_OK) {
be_roster->Launch(&ref, &fSettings.Message(),
&fScreenSaverTestTeamId);
&fScreenSaverTestTeam);
}
break;
}
case kMsgAddSaver:
fFilePanel->Show();
break;
case B_SOME_APP_QUIT: {
team_id team;
if (message->FindInt32("be:team", &team) == B_OK) {
if (team == fScreenSaverTestTeamId) {
be_roster->StopWatching(this);
_OpenSaver();
}
}
case B_SOME_APP_QUIT:
{
team_id team;
if (message->FindInt32("be:team", &team) == B_OK
&& team == fScreenSaverTestTeam) {
be_roster->StopWatching(this);
_OpenSaver();
}
break;
}
default:
BView::MessageReceived(message);
@@ -430,7 +449,8 @@ void
ModulesView::PopulateScreenSaverList()
{
fListView->DeselectAll();
while (ScreenSaverItem* item = (ScreenSaverItem *)fListView->RemoveItem((int32)0)) {
while (ScreenSaverItem* item
= (ScreenSaverItem*)fListView->RemoveItem((int32)0)) {
delete item;
}
@@ -439,7 +459,8 @@ ModulesView::PopulateScreenSaverList()
// Iterate over add-on directories, and add their files to the list view
directory_which which[] = {B_BEOS_ADDONS_DIRECTORY, B_USER_ADDONS_DIRECTORY};
directory_which which[] = {
B_BEOS_ADDONS_DIRECTORY, B_USER_ADDONS_DIRECTORY};
ScreenSaverItem* selectItem = NULL;
for (uint32 i = 0; i < sizeof(which) / sizeof(which[0]); i++) {
@@ -474,7 +495,7 @@ ModulesView::PopulateScreenSaverList()
}
//! sorting function for ScreenSaverItems
//! Sorting function for ScreenSaverItems
int
ModulesView::_CompareScreenSaverItems(const void* left, const void* right)
{
@@ -566,19 +587,23 @@ ModulesView::_OpenSaver()
while ((view = fSettingsView->ChildAt(i++)) != NULL) {
// very simple heuristic...
float viewRight = view->Frame().right;
if ((view->ResizingMode() & _rule_(0, 0xf, 0, 0xf)) == B_FOLLOW_LEFT_RIGHT) {
if ((view->ResizingMode() & _rule_(0, 0xf, 0, 0xf))
== B_FOLLOW_LEFT_RIGHT) {
float width, height;
view->GetPreferredSize(&width, &height);
viewRight = view->Frame().left + width / 2;
} else if ((view->ResizingMode() & _rule_(0, 0xf, 0, 0xf)) == B_FOLLOW_RIGHT)
} else if ((view->ResizingMode() & _rule_(0, 0xf, 0, 0xf))
== B_FOLLOW_RIGHT)
viewRight = 8 + view->Frame().Width();
float viewBottom = view->Frame().bottom;
if ((view->ResizingMode() & _rule_(0xf, 0, 0xf, 0)) == B_FOLLOW_TOP_BOTTOM) {
if ((view->ResizingMode() & _rule_(0xf, 0, 0xf, 0))
== B_FOLLOW_TOP_BOTTOM) {
float width, height;
view->GetPreferredSize(&width, &height);
viewBottom = view->Frame().top + height;
} else if ((view->ResizingMode() & _rule_(0xf, 0, 0xf, 0)) == B_FOLLOW_BOTTOM)
} else if ((view->ResizingMode() & _rule_(0xf, 0, 0xf, 0))
== B_FOLLOW_BOTTOM)
viewBottom = 8 + view->Frame().Height();
if (viewRight > right)
@@ -604,8 +629,9 @@ ModulesView::_OpenSaver()
ScreenSaverWindow::ScreenSaverWindow()
: BWindow(BRect(50, 50, 496, 375), "ScreenSaver",
B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS /*| B_NOT_ZOOMABLE | B_NOT_RESIZABLE*/)
:
BWindow(BRect(50, 50, 496, 375), "ScreenSaver",
B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS)
{
fSettings.Load();
@@ -639,7 +665,8 @@ ScreenSaverWindow::ScreenSaverWindow()
MoveTo(fSettings.WindowFrame().left, fSettings.WindowFrame().top);
ResizeTo(fSettings.WindowFrame().Width(), fSettings.WindowFrame().Height());
fEnableCheckBox->SetValue(fSettings.TimeFlags() & ENABLE_SAVER ? B_CONTROL_ON : B_CONTROL_OFF);
fEnableCheckBox->SetValue(
fSettings.TimeFlags() & ENABLE_SAVER ? B_CONTROL_ON : B_CONTROL_OFF);
fRunSlider->SetTime(fSettings.BlankTime());
fTurnOffSlider->SetTime(fSettings.OffTime() + fSettings.BlankTime());
fFadeNow->SetCorner(fSettings.BlankCorner());
@@ -680,7 +707,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
float textHeight = ceilf(fontHeight.ascent + fontHeight.descent);
// taken from BRadioButton:
float radioButtonOffset = 2 * floorf(textHeight / 2 - 2) + floorf(textHeight / 2);
float radioButtonOffset = 2 * floorf(textHeight / 2 - 2)
+ floorf(textHeight / 2);
fEnableCheckBox = new BCheckBox(BRect(0, 0, 1, 1), "EnableCheckBox",
"Enable screen saver", new BMessage(kMsgEnableScreenSaverBox));
@@ -737,8 +765,9 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
rect.OffsetBy(0, fTurnOffSlider->Bounds().Height() + 4.0f);
rect.left = rect.right;
fPasswordButton = new BButton(rect, "PasswordButton", "Password" B_UTF8_ELLIPSIS,
new BMessage(kMsgChangePassword), B_FOLLOW_TOP | B_FOLLOW_RIGHT);
fPasswordButton = new BButton(rect, "PasswordButton",
"Password" B_UTF8_ELLIPSIS, new BMessage(kMsgChangePassword),
B_FOLLOW_TOP | B_FOLLOW_RIGHT);
fPasswordButton->ResizeToPreferred();
fPasswordButton->MoveBy(-fPasswordButton->Bounds().Width(), 0);
box->AddChild(fPasswordButton);
@@ -774,7 +803,8 @@ ScreenSaverWindow::_SetupFadeTab(BRect rect)
rect.right = rect.left + monitorWidth;
rect.bottom = rect.top + monitorHeight;
box->AddChild(fFadeNever = new ScreenCornerSelector(rect, "FadeNever",
new BMessage(kMsgNeverFadeCornerChanged), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM));
new BMessage(kMsgNeverFadeCornerChanged),
B_FOLLOW_LEFT | B_FOLLOW_BOTTOM));
rect.OffsetBy(monitorWidth + 10, 0);
stringView = new BStringView(rect, NULL,"Don't fade when",
@@ -901,7 +931,8 @@ ScreenSaverWindow::MessageReceived(BMessage *msg)
// "Fade" tab
case kMsgTurnOffCheckBox:
fTurnOffSlider->SetEnabled(fTurnOffCheckBox->Value() == B_CONTROL_ON);
fTurnOffSlider->SetEnabled(
fTurnOffCheckBox->Value() == B_CONTROL_ON);
break;
case kMsgRunSliderChanged:
+35 -29
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2003-2006, Haiku.
* Copyright 2003-2010, Haiku.
* Distributed under the terms of the MIT License.
*
* Authors:
@@ -20,6 +20,7 @@
#include <Slider.h>
#include <ListView.h>
class BButton;
class BTabView;
@@ -28,46 +29,51 @@ class ScreenCornerSelector;
class ScreenSaverRunner;
class TimeSlider;
class ScreenSaverWindow : public BWindow {
public:
ScreenSaverWindow();
virtual ~ScreenSaverWindow();
public:
ScreenSaverWindow();
virtual ~ScreenSaverWindow();
virtual void MessageReceived(BMessage *message);
virtual void ScreenChanged(BRect frame, color_space colorSpace);
virtual bool QuitRequested();
virtual void MessageReceived(BMessage* message);
virtual void ScreenChanged(BRect frame, color_space space);
virtual bool QuitRequested();
void LoadSettings();
void SetMinimalSizeLimit(float width, float height);
void LoadSettings();
void SetMinimalSizeLimit(float width, float height);
private:
void _SetupFadeTab(BRect frame);
void _UpdateTurnOffScreen();
void _UpdateStatus();
private:
void _SetupFadeTab(BRect frame);
void _UpdateTurnOffScreen();
void _UpdateStatus();
float fMinWidth, fMinHeight;
ScreenSaverSettings fSettings;
uint32 fTurnOffScreenFlags;
private:
float fMinWidth;
float fMinHeight;
ScreenSaverSettings fSettings;
uint32 fTurnOffScreenFlags;
BView* fFadeView;
ModulesView* fModulesView;
BTabView* fTabView;
BView* fFadeView;
ModulesView* fModulesView;
BTabView* fTabView;
BCheckBox* fEnableCheckBox;
TimeSlider* fRunSlider;
BCheckBox* fEnableCheckBox;
TimeSlider* fRunSlider;
BCheckBox* fTurnOffCheckBox;
TimeSlider* fTurnOffSlider;
BCheckBox* fTurnOffCheckBox;
TimeSlider* fTurnOffSlider;
BCheckBox* fPasswordCheckBox;
TimeSlider* fPasswordSlider;
BButton* fPasswordButton;
PasswordWindow* fPasswordWindow;
BCheckBox* fPasswordCheckBox;
TimeSlider* fPasswordSlider;
BButton* fPasswordButton;
PasswordWindow* fPasswordWindow;
ScreenCornerSelector* fFadeNow;
ScreenCornerSelector* fFadeNever;
ScreenCornerSelector* fFadeNow;
ScreenCornerSelector* fFadeNever;
};
static const int32 kMsgUpdateList = 'UPDL';
#endif // SCREEN_SAVER_WINDOW_H