xref: /haiku/src/apps/showimage/ShowImageSettings.h (revision cbe0a0c436162d78cc3f92a305b64918c839d079)
1 /*
2  * Copyright 2003-2011 Haiku Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Michael Pfeiffer, laplace@haiku-os.org
7  */
8 #ifndef SHOW_IMAGE_SETTINGS_H
9 #define SHOW_IMAGE_SETTINGS_H
10 
11 
12 #include <Locker.h>
13 #include <Message.h>
14 
15 
16 class BFile;
17 
18 
19 class ShowImageSettings {
20 public:
21 								ShowImageSettings();
22 	virtual						~ShowImageSettings();
23 
24 			bool				Lock();
25 			void				Unlock();
26 
27 			bool				GetBool(const char* name, bool defaultValue);
28 			int32				GetInt32(const char* name, int32 defaultValue);
29 			float				GetFloat(const char* name, float defaultValue);
30 			BRect				GetRect(const char* name, BRect defaultValue);
31 			bigtime_t			GetTime(const char* name,
32 									bigtime_t defaultValue);
33 			const char* 		GetString(const char* name,
34 									const char* defaultValue);
35 
36 			void				SetBool(const char* name, bool value);
37 			void				SetInt32(const char* name, int32 value);
38 			void				SetFloat(const char* name, float value);
39 			void				SetRect(const char* name, BRect value);
40 			void				SetTime(const char* name, bigtime_t value);
41 			void				SetString(const char* name, const char* value);
42 
43 private:
44 			bool				_OpenSettingsFile(BFile* file, bool forReading);
45 			void				_Load();
46 			void				_Save();
47 
48 private:
49 			BLocker				fLock;
50 			BMessage			fSettings;
51 			bool				fUpdated;
52 };
53 
54 
55 #endif	// SHOW_IMAGE_SETTINGS_H
56