20#ifndef Fl_Preferences_H
21# define Fl_Preferences_H
24# include "Fl_Export.H"
132 UNKNOWN_ROOT_TYPE = -1,
141 SYSTEM_L = SYSTEM | C_LOCALE,
142 USER_L = USER | C_LOCALE,
143 CORE_SYSTEM_L = CORE | SYSTEM_L,
144 CORE_USER_L = CORE | USER_L,
145 CORE_SYSTEM = CORE | SYSTEM,
146 CORE_USER = CORE | USER
158 static const char *new_UUID();
164 static const unsigned int NONE = 0x0000;
166 static const unsigned int USER_READ_OK = 0x0001;
168 static const unsigned int USER_WRITE_OK = 0x0002;
170 static const unsigned int USER_OK = USER_READ_OK | USER_WRITE_OK;
172 static const unsigned int SYSTEM_READ_OK = 0x0004;
174 static const unsigned int SYSTEM_WRITE_OK = 0x0008;
176 static const unsigned int SYSTEM_OK = SYSTEM_READ_OK | SYSTEM_WRITE_OK;
178 static const unsigned int APP_OK = SYSTEM_OK | USER_OK;
180 static const unsigned int CORE_READ_OK = 0x0010;
182 static const unsigned int CORE_WRITE_OK = 0x0020;
184 static const unsigned int CORE_OK = CORE_READ_OK | CORE_WRITE_OK;
186 static const unsigned int ALL_READ_OK = USER_READ_OK | SYSTEM_READ_OK | CORE_READ_OK;
188 static const unsigned int ALL_WRITE_OK = USER_WRITE_OK | SYSTEM_WRITE_OK | CORE_WRITE_OK;
190 static const unsigned int ALL = ALL_READ_OK | ALL_WRITE_OK;
192 static void file_access(
unsigned int flags);
193 static unsigned int file_access();
194 static Root filename(
char *buffer,
size_t buffer_size,
Root root,
const char *vendor,
const char *application );
197 Fl_Preferences(
const char *path,
const char *vendor,
const char *application,
Root flags );
206 FL_DEPRECATED(
"since 1.4.0 - use Fl_Preferences(path, vendor, application, flags) instead",
207 Fl_Preferences(
const char *path,
const char *vendor,
const char *application ) );
209 Root filename(
char *buffer,
size_t buffer_size);
221 const char *
name() {
return node->name(); }
225 const char *
path() {
return node->path(); }
228 const char *group(
int num_group );
229 char group_exists(
const char *key );
230 char delete_group(
const char *group );
231 char delete_all_groups();
234 const char *entry(
int index );
235 char entry_exists(
const char *key );
236 char delete_entry(
const char *entry );
237 char delete_all_entries();
241 char set(
const char *entry,
int value );
242 char set(
const char *entry,
float value );
243 char set(
const char *entry,
float value,
int precision );
244 char set(
const char *entry,
double value );
245 char set(
const char *entry,
double value,
int precision );
246 char set(
const char *entry,
const char *value );
247 char set(
const char *entry,
const void *value,
int size );
249 char get(
const char *entry,
int &value,
int defaultValue );
250 char get(
const char *entry,
float &value,
float defaultValue );
251 char get(
const char *entry,
double &value,
double defaultValue );
252 char get(
const char *entry,
char *&value,
const char *defaultValue );
253 char get(
const char *entry,
char *value,
const char *defaultValue,
int maxSize );
254 char get(
const char *entry,
void *&value,
const void *defaultValue,
int defaultSize );
255 char get(
const char *entry,
void *value,
const void *defaultValue,
int defaultSize,
int maxSize );
256 char get(
const char *entry,
void *value,
const void *defaultValue,
int defaultSize,
int *size );
262 char set(
const char *entry,
const std::string &value );
263 char get(
const char *entry, std::string &value,
const std::string &defaultValue );
266 int size(
const char *entry );
268 char get_userdata_path(
char *path,
int pathlen );
275 static const char *newUUID() {
return new_UUID(); }
276 char groupExists(
const char *key ) {
return group_exists(key); }
277 char deleteGroup(
const char *group ) {
return delete_group(group); }
278 char deleteAllGroups() {
return delete_all_groups(); }
279 char entryExists(
const char *key ) {
return entry_exists(key); }
280 char deleteEntry(
const char *entry ) {
return delete_entry(entry); }
281 char deleteAllEntries() {
return delete_all_entries(); }
282 char getUserdataPath(
char *path,
int pathlen ) {
return get_userdata_path(path, pathlen); }
302 Name(
unsigned int n );
303 Name(
const char *format, ... );
309 operator const char *() {
return data_; }
322 static char nameBuffer[128];
323 static char uuidBuffer[40];
325 static unsigned int fileAccess_;
332 Node *first_child_, *next_;
339 int nEntry_, NEntry_;
340 unsigned char dirty_:1;
341 unsigned char top_:1;
342 unsigned char indexed_:1;
345 int nIndex_, NIndex_;
350 static int lastEntrySet;
352 Node(
const char *path );
355 int write( FILE *f );
357 const char *path() {
return path_; }
358 Node *find(
const char *path );
359 Node *search(
const char *path,
int offset=0 );
360 Node *childNode(
int ix );
361 Node *addChild(
const char *path );
362 void setParent(
Node *parent );
363 Node *parent() {
return top_?0L:parent_; }
364 void setRoot(
RootNode *r) { root_node_ = r; top_ = 1; }
368 void clearDirtyFlags();
369 void deleteAllChildren();
372 const char *child(
int ix );
373 void set(
const char *name,
const char *value );
374 void set(
const char *line );
375 void add(
const char *line );
376 const char *get(
const char *name );
377 int getEntry(
const char *name );
378 char deleteEntry(
const char *name );
379 void deleteAllEntries();
380 int nEntry() {
return nEntry_; }
381 Entry &entry(
int i) {
return entry_[i]; }
388 char *vendor_, *application_;
397 char getPath(
char *path,
int pathlen );
398 char *filename() {
return filename_; }
399 Root root() {
return root_type_; }
'Name' provides a simple method to create numerical or more complex procedural names for entries and ...
Definition Fl_Preferences.H:297
Definition Fl_Preferences.H:330
Definition Fl_Preferences.H:385
Fl_Preferences store user settings between application starts.
Definition Fl_Preferences.H:125
Root
Define the scope of the preferences.
Definition Fl_Preferences.H:131
@ USER
Preferences apply only to the current user. Deprecated, see USER_L.
Definition Fl_Preferences.H:134
@ MEMORY
Returned if querying memory mapped preferences.
Definition Fl_Preferences.H:135
ID id()
Return an ID that can later be reused to open more references to this dataset.
Definition Fl_Preferences.H:213
const char * path()
Return the full path to this entry.
Definition Fl_Preferences.H:225
const char * name()
Return the name of this entry.
Definition Fl_Preferences.H:221
static char remove(ID id_)
Remove the group with this ID from a database.
Definition Fl_Preferences.H:217
void * ID
Every Fl_Preferences-Group has a unique ID.
Definition Fl_Preferences.H:156
This file defines compiler-specific macros.
#define FL_DEPRECATED(msg, func)
Enclosing a function or method in FL_DEPRECATED marks it as no longer recommended.
Definition fl_attr.h:57
Definition Fl_Preferences.H:314