1 /* 2 * Copyright 2008-2010 Stephan Aßmus <superstippi@gmx.de>. 3 * Copyright 1998 Eric Shepherd. 4 * All rights reserved. Distributed under the terms of the Be Sample Code 5 * license. 6 */ 7 #ifndef SETTINGS_MESSAGE_H 8 #define SETTINGS_MESSAGE_H 9 10 11 #include <FindDirectory.h> 12 #include <Font.h> 13 #include <List.h> 14 #include <Locker.h> 15 #include <Message.h> 16 #include <Path.h> 17 18 class BMessenger; 19 class BString; 20 21 22 enum { 23 SETTINGS_VALUE_CHANGED = '_svc' 24 }; 25 26 27 class SettingsMessage : public BMessage, public BLocker { 28 public: 29 SettingsMessage(directory_which directory, 30 const char* filename); 31 virtual ~SettingsMessage(); 32 33 34 status_t InitCheck() const; 35 status_t Load(); 36 status_t Save() const; 37 38 bool AddListener(const BMessenger& listener); 39 void RemoveListener(const BMessenger& listener); 40 41 status_t SetValue(const char* name, bool value); 42 status_t SetValue(const char* name, int8 value); 43 status_t SetValue(const char* name, int16 value); 44 status_t SetValue(const char* name, uint16 value); 45 status_t SetValue(const char* name, int32 value); 46 status_t SetValue(const char* name, uint32 value); 47 status_t SetValue(const char* name, int64 value); 48 status_t SetValue(const char* name, uint64 value); 49 status_t SetValue(const char* name, float value); 50 status_t SetValue(const char* name, double value); 51 status_t SetValue(const char* name, 52 const char* value); 53 status_t SetValue(const char* name, 54 const BString& value); 55 status_t SetValue(const char *name, 56 const BPoint& value); 57 status_t SetValue(const char* name, const BRect& value); 58 status_t SetValue(const char* name, 59 const entry_ref& value); 60 status_t SetValue(const char* name, 61 const BMessage& value); 62 status_t SetValue(const char* name, 63 const BFlattenable* value); 64 status_t SetValue(const char* name, 65 const BFont& value); 66 67 bool GetValue(const char* name, 68 bool defaultValue) const; 69 int8 GetValue(const char* name, 70 int8 defaultValue) const; 71 int16 GetValue(const char* name, 72 int16 defaultValue) const; 73 uint16 GetValue(const char* name, 74 uint16 defaultValue) const; 75 int32 GetValue(const char* name, 76 int32 defaultValue) const; 77 uint32 GetValue(const char* name, 78 uint32 defaultValue) const; 79 int64 GetValue(const char* name, 80 int64 defaultValue) const; 81 uint64 GetValue(const char* name, 82 uint64 defaultValue) const; 83 float GetValue(const char* name, 84 float defaultValue) const; 85 double GetValue(const char* name, 86 double defaultValue) const; 87 const char* GetValue(const char* name, 88 const char* defaultValue) const; 89 BString GetValue(const char* name, 90 const BString& defaultValue) const; 91 BPoint GetValue(const char *name, 92 BPoint defaultValue) const; 93 BRect GetValue(const char* name, 94 BRect defaultValue) const; 95 entry_ref GetValue(const char* name, 96 const entry_ref& defaultValue) const; 97 BMessage GetValue(const char* name, 98 const BMessage& defaultValue) const; 99 BFont GetValue(const char* name, 100 const BFont& defaultValue) const; 101 102 private: 103 void _NotifyValueChanged(const char* name) const; 104 105 private: 106 BPath fPath; 107 status_t fStatus; 108 BList fListeners; 109 }; 110 111 #endif // SETTINGS_MESSAGE_H 112