void ModulesView::AttachedToWindow() { _OpenSaver(); fScreenSaversListView->SetTarget(this); fTestButton->SetTarget(this); fAddButton->SetTarget(this); }
void ModulesView::AttachedToWindow() { if (Parent() != NULL) { // We adopt the size of our parent view (in case the window // was resized during our absence (BTabView...) ResizeTo(Parent()->Bounds().Width(), Parent()->Bounds().Height()); } _OpenSaver(); fListView->SetTarget(this); fTestButton->SetTarget(this); fAddButton->SetTarget(this); }
void ModulesView::MessageReceived(BMessage* message) { switch (message->what) { case kMsgSaverSelected: { int selection = fScreenSaversListView->CurrentSelection(); if (selection < 0) break; ScreenSaverItem* item = (ScreenSaverItem*)fScreenSaversListView->ItemAt(selection); if (item == NULL) break; if (strcmp(item->Text(), B_TRANSLATE("Blackness")) == 0) fSettings.SetModuleName(""); else fSettings.SetModuleName(item->Text()); SaveState(); _CloseSaver(); _OpenSaver(); fSettings.Save(); break; } case kMsgTestSaver: { SaveState(); fSettings.Save(); _CloseSaver(); be_roster->StartWatching(BMessenger(this, Looper()), B_REQUEST_QUIT); if (be_roster->Launch(SCREEN_BLANKER_SIG, &fSettings.Message(), &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 // database for example... BPath path; if (find_directory(B_SYSTEM_BIN_DIRECTORY, &path) != B_OK || path.Append("screen_blanker") != B_OK) { path.SetTo("/bin/screen_blanker"); } BEntry entry(path.Path()); entry_ref ref; if (entry.GetRef(&ref) == B_OK) { be_roster->Launch(&ref, &fSettings.Message(), &fScreenSaverTestTeam); } break; } case kMsgAddSaver: fFilePanel->Show(); break; 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); } }