status_t ScreensaverThemesAddon::MakeTheme(BMessage &theme, uint32 flags) { BMessage screensaver; status_t err; BPath path; BString str; BMessage settings; BMessage modsettings; (void)flags; err = MyMessage(theme, screensaver); if (err) screensaver.MakeEmpty(); if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) < B_OK) return B_ERROR; path.Append("ScreenSaver_settings"); BFile f(path.Path(), B_READ_ONLY); if (settings.Unflatten(&f) < B_OK) return B_ERROR; if (settings.FindString("modulename", &str) >= B_OK) { screensaver.AddString(Z_THEME_SS_MODULE, str.String()); BString msname(MS_NAME); msname += str.String(); if (settings.FindMessage(msname.String(), &modsettings) >= B_OK) { screensaver.AddMessage(Z_THEME_SS_MODULE_SETTINGS, &modsettings); } } err = SetMyMessage(theme, screensaver); return err; }
TotalStress<EvalT, Traits>:: TotalStress(const Teuchos::ParameterList& p, const Teuchos::RCP<Albany::Layouts>& dl) : macroStress (p.get<std::string>("Macro Stress Name"),dl->qp_tensor), totalStress (p.get<std::string>("Total Stress Name"),dl->qp_tensor), numMicroScales (p.get<int>("Additional Scales")) { this->addDependentField(macroStress); microStress.resize(numMicroScales); for(int i=0; i<numMicroScales; i++){ std::string ms = Albany::strint("Micro Stress",i); std::string msname(ms); msname += " Name"; microStress[i] = Teuchos::rcp(new HMC2Tensor(p.get<std::string>(msname), p.get<Teuchos::RCP<PHX::DataLayout>>("QP 2Tensor Data Layout") ) ); this->addDependentField(*(microStress[i])); } this->addEvaluatedField(totalStress); this->setName("TotalStress"+PHX::typeAsString<EvalT>()); std::vector<PHX::DataLayout::size_type> dims; dl->qp_tensor->dimensions(dims); numQPs = dims[1]; numDims = dims[2]; }
status_t ScreensaverThemesAddon::ApplyTheme(BMessage &theme, uint32 flags) { BMessage screensaver; status_t err; BPath path; BString str; BMessage settings; BMessage modsettings; if (!(flags & UI_THEME_SETTINGS_SET_ALL) || !(AddonFlags() & Z_THEME_ADDON_DO_SET_ALL)) return B_OK; err = MyMessage(theme, screensaver); if (err) return err; if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) < B_OK) return B_ERROR; path.Append("ScreenSaver_settings"); BFile f(path.Path(), B_READ_WRITE); if (settings.Unflatten(&f) < B_OK) return B_ERROR; if (screensaver.FindString(Z_THEME_SS_MODULE, &str) >= B_OK) { if (settings.ReplaceString("modulename", str.String()) < B_OK) if (settings.AddString("modulename", str.String()) < B_OK) return B_ERROR; if (screensaver.FindMessage(Z_THEME_SS_MODULE_SETTINGS, &modsettings) >= B_OK) { BString msname(MS_NAME); msname += str.String(); if (settings.ReplaceMessage(msname.String(), &modsettings) < B_OK) settings.AddMessage(msname.String(), &modsettings); } f.Seek(0LL, SEEK_SET); if (settings.Flatten(&f) < B_OK) return B_ERROR; } return err; }