std::pair<LocalPoint,LocalVector> secondOrderAccurate( const GlobalPoint& startingPos, const GlobalVector& startingDir, double rho, const Plane& plane) { typedef Basic2DVector<float> Vector2D; // translate problem to local frame of the plane LocalPoint lPos = plane.toLocal(startingPos); LocalVector lDir = plane.toLocal(startingDir); LocalVector yPrime = plane.toLocal( GlobalVector(0,0,1.f)); float sinPhi=0, cosPhi=0; Vector2D pos; Vector2D dir; sinPhi = yPrime.y(); cosPhi = yPrime.x(); pos = Vector2D( lPos.x()*cosPhi + lPos.y()*sinPhi, -lPos.x()*sinPhi + lPos.y()*cosPhi); dir = Vector2D( lDir.x()*cosPhi + lDir.y()*sinPhi, -lDir.x()*sinPhi + lDir.y()*cosPhi); double d = -lPos.z(); double x = pos.x() + dir.x()/lDir.z()*d - 0.5*rho*d*d; double y = pos.y() + dir.y()/lDir.z()*d; LocalPoint thePos( x*cosPhi - y*sinPhi, x*sinPhi + y*cosPhi, 0); float px = dir.x()+rho*d; LocalVector theDir( px*cosPhi - dir.y()*sinPhi, px*sinPhi + dir.y()*cosPhi, lDir.z()); return std::pair<LocalPoint,LocalVector>(thePos,theDir); }
void TBarApp::InitSettings() { desk_settings settings; settings.vertical = fDefaultSettings.vertical = true; settings.left = fDefaultSettings.left = false; settings.top = fDefaultSettings.top = true; settings.state = fDefaultSettings.state = kExpandoState; settings.width = fDefaultSettings.width = 0; settings.switcherLoc = fDefaultSettings.switcherLoc = BPoint(5000, 5000); settings.showClock = fDefaultSettings.showClock = true; // applications settings.trackerAlwaysFirst = fDefaultSettings.trackerAlwaysFirst = false; settings.sortRunningApps = fDefaultSettings.sortRunningApps = false; settings.superExpando = fDefaultSettings.superExpando = false; settings.expandNewTeams = fDefaultSettings.expandNewTeams = false; settings.hideLabels = fDefaultSettings.hideLabels = false; settings.iconSize = fDefaultSettings.iconSize = kMinimumIconSize; // recent items settings.recentDocsEnabled = fDefaultSettings.recentDocsEnabled = true; settings.recentFoldersEnabled = fDefaultSettings.recentFoldersEnabled = true; settings.recentAppsEnabled = fDefaultSettings.recentAppsEnabled = true; settings.recentDocsCount = fDefaultSettings.recentDocsCount = 10; settings.recentFoldersCount = fDefaultSettings.recentFoldersCount = 10; settings.recentAppsCount = fDefaultSettings.recentAppsCount = 10; // window settings.alwaysOnTop = fDefaultSettings.alwaysOnTop = false; settings.autoRaise = fDefaultSettings.autoRaise = false; settings.autoHide = fDefaultSettings.autoHide = false; clock_settings clock; clock.showSeconds = false; clock.showDayOfWeek = false; clock.showTimeZone = false; BPath dirPath; const char* settingsFileName = "settings"; const char* clockSettingsFileName = "clock_settings"; find_directory(B_USER_DESKBAR_DIRECTORY, &dirPath, true); // just make it if (GetDeskbarSettingsDirectory(dirPath, true) == B_OK) { BPath filePath = dirPath; filePath.Append(settingsFileName); fSettingsFile = new BFile(filePath.Path(), O_RDWR); if (fSettingsFile->InitCheck() != B_OK) { BDirectory theDir(dirPath.Path()); if (theDir.InitCheck() == B_OK) theDir.CreateFile(settingsFileName, fSettingsFile); } BMessage prefs; if (fSettingsFile->InitCheck() == B_OK && prefs.Unflatten(fSettingsFile) == B_OK) { settings.vertical = prefs.GetBool("vertical", fDefaultSettings.vertical); settings.left = prefs.GetBool("left", fDefaultSettings.left); settings.top = prefs.GetBool("top", fDefaultSettings.top); settings.state = prefs.GetInt32("state", fDefaultSettings.state); settings.width = prefs.GetFloat("width", fDefaultSettings.width); settings.switcherLoc = prefs.GetPoint("switcherLoc", fDefaultSettings.switcherLoc); settings.showClock = prefs.GetBool("showClock", fDefaultSettings.showClock); // applications settings.trackerAlwaysFirst = prefs.GetBool("trackerAlwaysFirst", fDefaultSettings.trackerAlwaysFirst); settings.sortRunningApps = prefs.GetBool("sortRunningApps", fDefaultSettings.sortRunningApps); settings.superExpando = prefs.GetBool("superExpando", fDefaultSettings.superExpando); settings.expandNewTeams = prefs.GetBool("expandNewTeams", fDefaultSettings.expandNewTeams); settings.hideLabels = prefs.GetBool("hideLabels", fDefaultSettings.hideLabels); settings.iconSize = prefs.GetInt32("iconSize", fDefaultSettings.iconSize); // recent items settings.recentDocsEnabled = prefs.GetBool("recentDocsEnabled", fDefaultSettings.recentDocsEnabled); settings.recentFoldersEnabled = prefs.GetBool("recentFoldersEnabled", fDefaultSettings.recentFoldersEnabled); settings.recentAppsEnabled = prefs.GetBool("recentAppsEnabled", fDefaultSettings.recentAppsEnabled); settings.recentDocsCount = prefs.GetInt32("recentDocsCount", fDefaultSettings.recentDocsCount); settings.recentFoldersCount = prefs.GetInt32("recentFoldersCount", fDefaultSettings.recentFoldersCount); settings.recentAppsCount = prefs.GetInt32("recentAppsCount", fDefaultSettings.recentAppsCount); // window settings.alwaysOnTop = prefs.GetBool("alwaysOnTop", fDefaultSettings.alwaysOnTop); settings.autoRaise = prefs.GetBool("autoRaise", fDefaultSettings.autoRaise); settings.autoHide = prefs.GetBool("autoHide", fDefaultSettings.autoHide); } filePath = dirPath; filePath.Append(clockSettingsFileName); fClockSettingsFile = new BFile(filePath.Path(), O_RDWR); if (fClockSettingsFile->InitCheck() != B_OK) { BDirectory theDir(dirPath.Path()); if (theDir.InitCheck() == B_OK) theDir.CreateFile(clockSettingsFileName, fClockSettingsFile); } if (fClockSettingsFile->InitCheck() == B_OK && prefs.Unflatten(fClockSettingsFile) == B_OK) { clock.showSeconds = prefs.GetBool("showSeconds", false); clock.showDayOfWeek = prefs.GetBool("showDayOfWeek", false); clock.showTimeZone = prefs.GetBool("showTimeZone", false); } } fSettings = settings; fClockSettings = clock; }
void TBarApp::InitSettings() { desk_settings settings; settings.vertical = true; settings.left = false; settings.top = true; settings.ampmMode = true; settings.showTime = true; settings.state = kExpandoState; settings.width = 0; settings.switcherLoc = BPoint(5000, 5000); settings.recentAppsCount = 10; settings.recentDocsCount = 10; settings.timeShowSeconds = false; settings.recentFoldersCount = 10; settings.alwaysOnTop = false; settings.timeFullDate = false; settings.trackerAlwaysFirst = false; settings.sortRunningApps = false; settings.superExpando = false; settings.expandNewTeams = false; settings.autoRaise = false; settings.autoHide = false; settings.recentAppsEnabled = true; settings.recentDocsEnabled = true; settings.recentFoldersEnabled = true; BPath dirPath; const char* settingsFileName = "Deskbar_settings"; find_directory(B_USER_DESKBAR_DIRECTORY, &dirPath, true); // just make it if (find_directory (B_USER_SETTINGS_DIRECTORY, &dirPath, true) == B_OK) { BPath filePath = dirPath; filePath.Append(settingsFileName); fSettingsFile = new BFile(filePath.Path(), O_RDWR); if (fSettingsFile->InitCheck() != B_OK) { BDirectory theDir(dirPath.Path()); if (theDir.InitCheck() == B_OK) theDir.CreateFile(settingsFileName, fSettingsFile); } BMessage storedSettings; if (fSettingsFile->InitCheck() == B_OK && storedSettings.Unflatten(fSettingsFile) == B_OK) { storedSettings.FindBool("vertical", &settings.vertical); storedSettings.FindBool("left", &settings.left); storedSettings.FindBool("top", &settings.top); storedSettings.FindBool("ampmMode", &settings.ampmMode); storedSettings.FindInt32("state", (int32*)&settings.state); storedSettings.FindFloat("width", &settings.width); storedSettings.FindBool("showTime", &settings.showTime); storedSettings.FindPoint("switcherLoc", &settings.switcherLoc); storedSettings.FindInt32("recentAppsCount", &settings.recentAppsCount); storedSettings.FindInt32("recentDocsCount", &settings.recentDocsCount); storedSettings.FindBool("timeShowSeconds", &settings.timeShowSeconds); storedSettings.FindInt32("recentFoldersCount", &settings.recentFoldersCount); storedSettings.FindBool("alwaysOnTop", &settings.alwaysOnTop); storedSettings.FindBool("timeFullDate", &settings.timeFullDate); storedSettings.FindBool("trackerAlwaysFirst", &settings.trackerAlwaysFirst); storedSettings.FindBool("sortRunningApps", &settings.sortRunningApps); storedSettings.FindBool("superExpando", &settings.superExpando); storedSettings.FindBool("expandNewTeams", &settings.expandNewTeams); storedSettings.FindBool("autoRaise", &settings.autoRaise); storedSettings.FindBool("autoHide", &settings.autoHide); storedSettings.FindBool("recentAppsEnabled", &settings.recentAppsEnabled); storedSettings.FindBool("recentDocsEnabled", &settings.recentDocsEnabled); storedSettings.FindBool("recentFoldersEnabled", &settings.recentFoldersEnabled); } } fSettings = settings; }