screen_blanker signature is at one place
modules tab selection makes the right module selected git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13863 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
9882caaadd
commit
1437c09cb7
|
@ -18,12 +18,15 @@ enum arrowDirection {
|
||||||
CENTER
|
CENTER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define SCREEN_BLANKER_SIG "application/x-vnd.Be.screenblanker"
|
||||||
|
|
||||||
class ScreenSaverPrefs
|
class ScreenSaverPrefs
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ScreenSaverPrefs();
|
ScreenSaverPrefs();
|
||||||
bool LoadSettings();
|
bool LoadSettings();
|
||||||
void Defaults();
|
void Defaults();
|
||||||
|
BPath & GetPath() { return fSSPath;}
|
||||||
|
|
||||||
BRect WindowFrame() {return fWindowFrame;}
|
BRect WindowFrame() {return fWindowFrame;}
|
||||||
int32 WindowTab() {return fWindowTab;}
|
int32 WindowTab() {return fWindowTab;}
|
||||||
|
@ -76,7 +79,7 @@ private:
|
||||||
bool fIsNetworkPassword;
|
bool fIsNetworkPassword;
|
||||||
|
|
||||||
BMessage fSettings;
|
BMessage fSettings;
|
||||||
BPath ssPath,networkPath;
|
BPath fSSPath, fNetworkPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@
|
||||||
#include <Debug.h>
|
#include <Debug.h>
|
||||||
#define CALLED() SERIAL_PRINT(("%s\n", __PRETTY_FUNCTION__))
|
#define CALLED() SERIAL_PRINT(("%s\n", __PRETTY_FUNCTION__))
|
||||||
|
|
||||||
#define SCREEN_BLANKER_SIG "application/x-vnd.Be.screenblanker"
|
|
||||||
|
|
||||||
extern "C" _EXPORT BInputServerFilter* instantiate_input_filter();
|
extern "C" _EXPORT BInputServerFilter* instantiate_input_filter();
|
||||||
|
|
||||||
BInputServerFilter* instantiate_input_filter() { // required C func to build the IS Filter
|
BInputServerFilter* instantiate_input_filter() { // required C func to build the IS Filter
|
||||||
|
|
|
@ -15,10 +15,10 @@
|
||||||
|
|
||||||
ScreenSaverPrefs::ScreenSaverPrefs()
|
ScreenSaverPrefs::ScreenSaverPrefs()
|
||||||
{
|
{
|
||||||
find_directory(B_USER_SETTINGS_DIRECTORY,&ssPath);
|
find_directory(B_USER_SETTINGS_DIRECTORY,&fSSPath);
|
||||||
find_directory(B_USER_SETTINGS_DIRECTORY,&networkPath);
|
find_directory(B_USER_SETTINGS_DIRECTORY,&fNetworkPath);
|
||||||
ssPath.Append("ScreenSaver_settings",true);
|
fSSPath.Append("ScreenSaver_settings",true);
|
||||||
networkPath.Append("network",true);
|
fNetworkPath.Append("network",true);
|
||||||
|
|
||||||
Defaults();
|
Defaults();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ ScreenSaverPrefs::ScreenSaverPrefs()
|
||||||
bool
|
bool
|
||||||
ScreenSaverPrefs::LoadSettings()
|
ScreenSaverPrefs::LoadSettings()
|
||||||
{
|
{
|
||||||
BFile ssSettings(ssPath.Path(),B_READ_ONLY);
|
BFile ssSettings(fSSPath.Path(),B_READ_ONLY);
|
||||||
if (B_OK==ssSettings.InitCheck()) { // File exists. Unflatten the message and call the settings parser.
|
if (B_OK==ssSettings.InitCheck()) { // File exists. Unflatten the message and call the settings parser.
|
||||||
if (fSettings.Unflatten(&ssSettings)!=B_OK)
|
if (fSettings.Unflatten(&ssSettings)!=B_OK)
|
||||||
return false;
|
return false;
|
||||||
|
@ -61,7 +61,7 @@ ScreenSaverPrefs::LoadSettings()
|
||||||
FILE *networkFile=NULL;
|
FILE *networkFile=NULL;
|
||||||
char buffer[512],*start;
|
char buffer[512],*start;
|
||||||
// This ugly piece opens the networking file and reads the password, if it exists.
|
// This ugly piece opens the networking file and reads the password, if it exists.
|
||||||
if ((networkFile=fopen(networkPath.Path(),"r")))
|
if ((networkFile=fopen(fNetworkPath.Path(),"r")))
|
||||||
while (buffer==fgets(buffer,512,networkFile))
|
while (buffer==fgets(buffer,512,networkFile))
|
||||||
if ((start=strstr(buffer,"PASSWORD ="))) {
|
if ((start=strstr(buffer,"PASSWORD ="))) {
|
||||||
char password[12];
|
char password[12];
|
||||||
|
@ -154,7 +154,7 @@ ScreenSaverPrefs::SaveSettings()
|
||||||
{
|
{
|
||||||
BMessage &settings = GetSettings();
|
BMessage &settings = GetSettings();
|
||||||
settings.PrintToStream();
|
settings.PrintToStream();
|
||||||
BFile file(ssPath.Path(), B_READ_WRITE | B_CREATE_FILE | B_ERASE_FILE);
|
BFile file(fSSPath.Path(), B_READ_WRITE | B_CREATE_FILE | B_ERASE_FILE);
|
||||||
if ((file.InitCheck()!=B_OK) || (settings.Flatten(&file)!=B_OK))
|
if ((file.InitCheck()!=B_OK) || (settings.Flatten(&file)!=B_OK))
|
||||||
fprintf(stderr, "Problem while saving screensaver preferences file!\n");
|
fprintf(stderr, "Problem while saving screensaver preferences file!\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ PreviewView::~PreviewView()
|
||||||
{
|
{
|
||||||
if (fThreadID>=0)
|
if (fThreadID>=0)
|
||||||
kill_thread(fThreadID);
|
kill_thread(fThreadID);
|
||||||
|
delete fSst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,37 @@ UnitsToSlider(bigtime_t val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ModulesTab : public BTab
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ModulesTab(ScreenSaverWin *win, BView *view = NULL);
|
||||||
|
virtual ~ModulesTab();
|
||||||
|
virtual void Select(BView *view);
|
||||||
|
private:
|
||||||
|
ScreenSaverWin *fWin;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
ModulesTab::ModulesTab(ScreenSaverWin *win, BView *view = NULL)
|
||||||
|
: BTab(view),
|
||||||
|
fWin(win)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ModulesTab::~ModulesTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ModulesTab::Select(BView *view)
|
||||||
|
{
|
||||||
|
BTab::Select(view);
|
||||||
|
fWin->SelectCurrentModule();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ScreenSaverWin::ScreenSaverWin()
|
ScreenSaverWin::ScreenSaverWin()
|
||||||
: BWindow(BRect(50,50,496,375),"OBOS Screen Saver",
|
: BWindow(BRect(50,50,496,375),"OBOS Screen Saver",
|
||||||
B_TITLED_WINDOW,B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE) ,
|
B_TITLED_WINDOW,B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE) ,
|
||||||
|
@ -150,7 +181,7 @@ ScreenSaverWin::MessageReceived(BMessage *msg)
|
||||||
case kTest_btn:
|
case kTest_btn:
|
||||||
{
|
{
|
||||||
BMessage &settings = fPrefs.GetSettings();
|
BMessage &settings = fPrefs.GetSettings();
|
||||||
be_roster->Launch("application/x-vnd.haiku-ScreenSaverApp", &settings);
|
be_roster->Launch(SCREEN_BLANKER_SIG, &settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case kAdd_btn:
|
case kAdd_btn:
|
||||||
|
@ -246,7 +277,7 @@ ScreenSaverWin::SetupForm()
|
||||||
fTabView->AddTab(fTab2, tab);
|
fTabView->AddTab(fTab2, tab);
|
||||||
tab->SetLabel("Fade");
|
tab->SetLabel("Fade");
|
||||||
|
|
||||||
tab = new BTab();
|
tab = new ModulesTab(this);
|
||||||
fTab1 = new BView(r,"Modules",B_FOLLOW_NONE,0);
|
fTab1 = new BView(r,"Modules",B_FOLLOW_NONE,0);
|
||||||
fTabView->AddTab(fTab1, tab);
|
fTabView->AddTab(fTab1, tab);
|
||||||
tab->SetLabel("Modules");
|
tab->SetLabel("Modules");
|
||||||
|
@ -270,21 +301,28 @@ ScreenSaverWin::SetupForm()
|
||||||
fFadeNever->setDirection(fPrefs.GetNeverBlankCorner());
|
fFadeNever->setDirection(fPrefs.GetNeverBlankCorner());
|
||||||
fPasswordCheckbox->SetValue(fPrefs.LockEnable());
|
fPasswordCheckbox->SetValue(fPrefs.LockEnable());
|
||||||
fPasswordSlider->SetValue(UnitsToSlider(fPrefs.PasswordTime()));
|
fPasswordSlider->SetValue(UnitsToSlider(fPrefs.PasswordTime()));
|
||||||
int32 count = fListView1->CountItems();
|
SelectCurrentModule();
|
||||||
for (int32 i=0; i<count; i++) {
|
|
||||||
ScreenSaverItem *item = dynamic_cast<ScreenSaverItem*>(fListView1->ItemAt(i));
|
|
||||||
if ((strcmp(fPrefs.ModuleName(), item->Text()) == 0)
|
|
||||||
|| (strcmp(fPrefs.ModuleName(),"") == 0 && strcmp(item->Text(), "Blackness") ==0)) {
|
|
||||||
fListView1->Select(i);
|
|
||||||
SaverSelected();
|
|
||||||
fListView1->ScrollToSelection();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
UpdateStatus();
|
UpdateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ScreenSaverWin::SelectCurrentModule()
|
||||||
|
{
|
||||||
|
int32 count = fListView1->CountItems();
|
||||||
|
for (int32 i=0; i<count; i++) {
|
||||||
|
ScreenSaverItem *item = dynamic_cast<ScreenSaverItem*>(fListView1->ItemAt(i));
|
||||||
|
if ((strcmp(fPrefs.ModuleName(), item->Text()) == 0)
|
||||||
|
|| (strcmp(fPrefs.ModuleName(),"") == 0 && strcmp(item->Text(), "Blackness") ==0)) {
|
||||||
|
fListView1->Select(i);
|
||||||
|
SaverSelected();
|
||||||
|
fListView1->ScrollToSelection();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Set the common Look and Feel stuff for a given control
|
// Set the common Look and Feel stuff for a given control
|
||||||
void
|
void
|
||||||
commonLookAndFeel(BView *widget,bool isSlider,bool isControl)
|
commonLookAndFeel(BView *widget,bool isSlider,bool isControl)
|
||||||
|
|
|
@ -20,7 +20,7 @@ public:
|
||||||
void PopulateScreenSaverList();
|
void PopulateScreenSaverList();
|
||||||
void LoadSettings();
|
void LoadSettings();
|
||||||
virtual ~ScreenSaverWin();
|
virtual ~ScreenSaverWin();
|
||||||
|
void SelectCurrentModule();
|
||||||
private:
|
private:
|
||||||
void SetupForm();
|
void SetupForm();
|
||||||
void SetupTab1();
|
void SetupTab1();
|
||||||
|
|
Loading…
Reference in New Issue