20 #ifndef Fl_Preferences_H 21 # define Fl_Preferences_H 24 # include "Fl_Export.H" 74 CORE_SYSTEM = CORE|SYSTEM,
87 static const char *newUUID();
93 static const unsigned int NONE = 0x0000;
95 static const unsigned int USER_READ_OK = 0x0001;
97 static const unsigned int USER_WRITE_OK = 0x0002;
99 static const unsigned int USER_OK = USER_READ_OK | USER_WRITE_OK;
101 static const unsigned int SYSTEM_READ_OK = 0x0004;
103 static const unsigned int SYSTEM_WRITE_OK = 0x0008;
105 static const unsigned int SYSTEM_OK = SYSTEM_READ_OK | SYSTEM_WRITE_OK;
107 static const unsigned int APP_OK = SYSTEM_OK | USER_OK;
109 static const unsigned int CORE_READ_OK = 0x0010;
111 static const unsigned int CORE_WRITE_OK = 0x0020;
113 static const unsigned int CORE_OK = CORE_READ_OK | CORE_WRITE_OK;
115 static const unsigned int ALL_READ_OK = USER_READ_OK | SYSTEM_READ_OK | CORE_READ_OK;
117 static const unsigned int ALL_WRITE_OK = USER_WRITE_OK | SYSTEM_WRITE_OK | CORE_WRITE_OK;
119 static const unsigned int ALL = ALL_READ_OK | ALL_WRITE_OK;
121 static void file_access(
unsigned int flags);
122 static unsigned int file_access();
125 Fl_Preferences(
const char *path,
const char *vendor,
const char *application );
136 ID
id() {
return (ID)node; }
140 static char remove(ID id_) {
return ((
Node*)id_)->
remove(); }
144 const char *
name() {
return node->name(); }
148 const char *
path() {
return node->path(); }
151 const char *group(
int num_group );
152 char groupExists(
const char *key );
153 char deleteGroup(
const char *group );
154 char deleteAllGroups();
157 const char *entry(
int index );
158 char entryExists(
const char *key );
159 char deleteEntry(
const char *entry );
160 char deleteAllEntries();
164 char set(
const char *entry,
int value );
165 char set(
const char *entry,
float value );
166 char set(
const char *entry,
float value,
int precision );
167 char set(
const char *entry,
double value );
168 char set(
const char *entry,
double value,
int precision );
169 char set(
const char *entry,
const char *value );
170 char set(
const char *entry,
const void *value,
int size );
172 char get(
const char *entry,
int &value,
int defaultValue );
173 char get(
const char *entry,
float &value,
float defaultValue );
174 char get(
const char *entry,
double &value,
double defaultValue );
175 char get(
const char *entry,
char *&value,
const char *defaultValue );
176 char get(
const char *entry,
char *value,
const char *defaultValue,
int maxSize );
177 char get(
const char *entry,
void *&value,
const void *defaultValue,
int defaultSize );
178 char get(
const char *entry,
void *value,
const void *defaultValue,
int defaultSize,
int maxSize );
180 int size(
const char *entry );
182 char getUserdataPath(
char *path,
int pathlen );
206 Name(
unsigned int n );
207 Name(
const char *format, ... );
213 operator const char *() {
return data_; }
226 static char nameBuffer[128];
227 static char uuidBuffer[40];
229 static unsigned int fileAccess_;
236 Node *child_, *next_;
243 int nEntry_, NEntry_;
244 unsigned char dirty_:1;
245 unsigned char top_:1;
246 unsigned char indexed_:1;
249 int nIndex_, NIndex_;
254 static int lastEntrySet;
256 Node(
const char *path );
259 int write( FILE *f );
261 const char *path() {
return path_; }
262 Node *find(
const char *path );
263 Node *search(
const char *path,
int offset=0 );
264 Node *childNode(
int ix );
265 Node *addChild(
const char *path );
266 void setParent(
Node *parent );
267 Node *parent() {
return top_?0L:parent_; }
268 void setRoot(
RootNode *r) { root_ = r; top_ = 1; }
272 void clearDirtyFlags();
273 void deleteAllChildren();
276 const char *child(
int ix );
277 void set(
const char *name,
const char *value );
278 void set(
const char *line );
279 void add(
const char *line );
280 const char *
get(
const char *name );
281 int getEntry(
const char *name );
282 char deleteEntry(
const char *name );
283 void deleteAllEntries();
284 int nEntry() {
return nEntry_; }
285 Entry &entry(
int i) {
return entry_[i]; }
292 char *vendor_, *application_;
301 char getPath(
char *path,
int pathlen );
310 #endif // !Fl_Preferences_H Definition: Fl_Preferences.H:234
Definition: Fl_Preferences.H:218
const char * path()
Return the full path to this entry.
Definition: Fl_Preferences.H:148
Root
Define the scope of the preferences.
Definition: Fl_Preferences.H:69
const char * name()
Return the name of this entry.
Definition: Fl_Preferences.H:144
'Name' provides a simple method to create numerical or more complex procedural names for entries and ...
Definition: Fl_Preferences.H:201
ID id()
Return an ID that can later be reused to open more references to this dataset.
Definition: Fl_Preferences.H:136
Fl_Preferences provides methods to store user settings between application starts.
Definition: Fl_Preferences.H:63
void * ID
Every Fl_Preferences-Group has a uniqe ID.
Definition: Fl_Preferences.H:85
Definition: Fl_Preferences.H:289
Preferences apply only to the current user.
Definition: Fl_Preferences.H:71