1/*
2 * Copyright 2000, Georges-Edouard Berenger. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef PREFERENCES_H
6#define PREFERENCES_H
7
8#include <Locker.h>
9#include <Message.h>
10#include <Window.h>
11
12
13class Preferences : public BMessage, public BLocker {
14	public:
15		Preferences(const char* thename, const char* thesignature = NULL, bool doSave = true);
16		Preferences(const entry_ref& ref, const char* thesignature = NULL, bool doSave = true);
17		~Preferences();
18		status_t	MakeEmpty();
19		void		SaveWindowPosition(BWindow* window, const char* name);
20		void		LoadWindowPosition(BWindow* window, const char* name);
21		void		SaveWindowFrame(BWindow* window, const char* name);
22		void		LoadWindowFrame(BWindow* window, const char* name);
23		void		SaveInt32(int32 val, const char* name);
24		bool		ReadInt32(int32& val, const char* name);
25		void		SaveFloat(float val, const char* name);
26		bool		ReadFloat(float& val, const char* name);
27		void		SaveRect(BRect& rect, const char* name);
28		BRect&		ReadRect(BRect& rect, const char* name);
29		void		SaveString(BString& string, const char* name);
30		void		SaveString(const char* string, const char* name);
31		bool		ReadString(BString& string, const char* name);
32
33	private:
34		bool		fNewPreferences;
35		bool		fSavePreferences;
36		char*		fName;
37		char*		fSignature;
38		entry_ref*	fSettingsFile;
39};
40
41extern Preferences gPreferences;
42
43// ggPreferences.LoadWindowPosition(this, kPosPrefName);
44// ggPreferences.SaveWindowPosition(this, kPosPrefName);
45
46// ggPreferences.LoadWindowFrame(this, frame);
47// ggPreferences.SaveWindowFrame(this, frame);
48
49#endif // PREFERENCES_H
50