Example #1
0
status_t
CharacterWindow::_LoadSettings(BMessage& settings)
{
	BFile file;
	status_t status = _OpenSettings(file, B_READ_ONLY);
	if (status < B_OK)
		return status;

	return settings.Unflatten(&file);
}
Example #2
0
status_t
CharacterWindow::_SaveSettings()
{
	BFile file;
	status_t status = _OpenSettings(file, B_WRITE_ONLY | B_CREATE_FILE
		| B_ERASE_FILE);
	if (status < B_OK)
		return status;

	BMessage settings('chrm');
	status = settings.AddRect("window frame", Frame());
	if (status != B_OK)
		return status;

	if (status == B_OK) {
		status = settings.AddBool("show private blocks",
			fCharacterView->IsShowingPrivateBlocks());
	}
	if (status == B_OK) {
		status = settings.AddBool("show contained blocks only",
			fCharacterView->IsShowingContainedBlocksOnly());
	}

	if (status == B_OK) {
		BFont font = fCharacterView->CharacterFont();
		status = settings.AddInt32("font size", font.Size());

		font_family family;
		font_style style;
		if (status == B_OK)
			font.GetFamilyAndStyle(&family, &style);
		if (status == B_OK)
			status = settings.AddString("font family", family);
		if (status == B_OK)
			status = settings.AddString("font style", style);
	}

	if (status == B_OK)
		status = settings.Flatten(&file);

	return status;
}
status_t
ActivityWindow::_SaveSettings()
{
    BFile file;
    status_t status = _OpenSettings(file, B_WRITE_ONLY | B_CREATE_FILE
                                    | B_ERASE_FILE);
    if (status < B_OK)
        return status;

    BMessage settings('actm');
    status = settings.AddRect("window frame", Frame());
    if (status != B_OK)
        return status;

    status = settings.SetBool("always on top", fAlwaysOnTop->IsMarked());
    if (status != B_OK)
        return status;

#ifdef __HAIKU__
    BView* top = fLayout->View();
#else
    BView* top = ChildAt(0);
#endif
    int32 count = top->CountChildren();
    for (int32 i = 0; i < count; i++) {
        ActivityView* view = dynamic_cast<ActivityView*>(top->ChildAt(i));
        if (view == NULL)
            continue;

        BMessage viewState;
        status = view->SaveState(viewState);
        if (status == B_OK)
            status = settings.AddMessage("activity view", &viewState);
        if (status != B_OK)
            break;
    }

    if (status == B_OK)
        status = settings.Flatten(&file);

    return status;
}
Example #4
0
status_t
TeamsWindow::_SaveSettings()
{
	BFile file;
	status_t status = _OpenSettings(file,
		B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE);

	if (status < B_OK)
		return status;

	BMessage settings('hdbg');
	status = settings.AddRect("teams window frame", Frame());
	if (status != B_OK)
		return status;

	if (status == B_OK)
		status = settings.Flatten(&file);

	return status;
}
Example #5
0
status_t
SudokuWindow::_SaveSettings()
{
	BFile file;
	status_t status = _OpenSettings(file, B_WRITE_ONLY | B_CREATE_FILE
		| B_ERASE_FILE);
	if (status != B_OK)
		return status;

	BMessage settings('sudo');
	status = settings.AddRect("window frame", Frame());
	if (status == B_OK)
		status = fSudokuView->SaveState(settings);
	if (status == B_OK && fStoredState != NULL)
		status = settings.AddMessage("stored state", fStoredState);
	if (status == B_OK)
		status = settings.AddInt32("level", _Level());
	if (status == B_OK)
		status = settings.Flatten(&file);

	return status;
}
Example #6
0
CAbstractSettings::CAbstractSettings () {
	m_pCache = NULL;
	TCHAR szSettingsLocation[256];
	if (!GetSettingsLocation (szSettingsLocation, sizeof (szSettingsLocation))) {
		LOGWARN (TEXT ("Couldn't get settings location, error ") << GetLastError ());
		return;
	}
#ifdef _WIN32
	m_hkeyGlobal = NULL;
	m_hkeyLocal = NULL;
	HKEY hkey;
	LOGDEBUG ("Opening registry keys");
	HRESULT hr;
	if ((hr = RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT ("SOFTWARE"), 0, KEY_READ, &hkey)) == ERROR_SUCCESS) {
		if ((hr = RegOpenKeyEx (hkey, szSettingsLocation, 0, KEY_READ, &m_hkeyGlobal)) != ERROR_SUCCESS) {
			LOGDEBUG ("Couldn't find machine global configuration settings, error " << hr);
		}
		RegCloseKey (hkey);
	} else {
		LOGWARN ("Couldn't open HKEY_LOCAL_MACHINE\\SOFTWARE registry key, error " << hr);
	}
	if ((hr = RegOpenKeyEx (HKEY_CURRENT_USER, TEXT ("SOFTWARE"), 0, KEY_READ, &hkey)) == ERROR_SUCCESS) {
		if ((hr = RegOpenKeyEx (hkey, szSettingsLocation, 0, KEY_READ, &m_hkeyLocal)) != ERROR_SUCCESS) {
			LOGDEBUG ("Couldn't find user local configuration settings, error " << hr);
		}
		RegCloseKey (hkey);
	} else {
		LOGWARN ("Couldn't open HKEY_CURRENT_USER\\Software registry key, error " << hr);
	}
#else /* ifdef _WIN32 */
#ifndef DEFAULT_CONFIG_FOLDER
#define DEFAULT_CONFIG_FOLDER	"/etc/"
#endif /* ifndef DEFAULT_CONFIG_FOLDER */
#ifndef DEFAULT_CONFIG_BASE
#define DEFAULT_CONFIG_BASE		"/usr/local"
#endif /* ifndef DEFAULT_CONFIG_BASE */
	FILE *f = _OpenSettings (szSettingsLocation, getenv ("HOME"), TEXT (DEFAULT_CONFIG_FOLDER));
	if (!f) {
		f = _OpenSettings (szSettingsLocation, TEXT (DEFAULT_CONFIG_BASE), TEXT (DEFAULT_CONFIG_FOLDER));
		if (!f) {
			f = _OpenSettings (szSettingsLocation, TEXT (""), TEXT (DEFAULT_CONFIG_FOLDER));
			if (!f) {
				LOGWARN (TEXT ("Couldn't open configuration file"));
				return;
			}
		}
	}
	int nLine = 0;
	while (fgets (szSettingsLocation, sizeof (szSettingsLocation), f)) {
		nLine++;
		TCHAR *psz = szSettingsLocation;
		while (isspace (*psz)) psz++;
		if (!*psz || (*psz == '#') || !strtok (psz, "\r\n")) continue;
		TCHAR *pszKey = strtok (psz, "=");
		if (!pszKey) {
			// This shouldn't happen
			LOGFATAL (TEXT ("Bad line ") << nLine);
			continue;
		}
		TCHAR *pszValue = strtok (NULL, "");
		if (!pszValue) {
			LOGWARN (TEXT ("Bad line ") << nLine);
			continue;
		}
		LOGDEBUG (TEXT ("Key=") << pszKey << TEXT (", Value=") << pszValue);
		CachePut (pszKey, pszValue);
	}
	fclose (f);
	LOGDEBUG (TEXT ("Configuration file read, ") << nLine << TEXT (" lines"));
#endif /* ifdef _WIN32 */
}