Check for SYS/GL during library init. Reason is that
[AROS.git] / workbench / devs / diskimage / include / prefs.h
blobc6b36aebb121e4434a1ed189416d11f77e988edb
1 /* Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
2 **
3 ** Redistribution and use in source and binary forms, with or without
4 ** modification, are permitted provided that the following conditions
5 ** are met:
6 **
7 ** 1. Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
9 **
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
14 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ** POSSIBILITY OF SUCH DAMAGE.
27 #ifndef PREFS_H
28 #define PREFS_H
30 #ifndef EXEC_EXEC_H
31 #include <exec/exec.h>
32 #endif
34 typedef struct {
35 struct MinNode node;
36 APTR parent;
37 STRPTR key;
38 ULONG type;
39 union {
40 struct List *list;
41 BOOL bool;
42 LONG integer;
43 STRPTR string;
44 } value;
45 } PrefsObject;
47 enum {
48 PREFS_UNKNOWN,
49 PREFS_DICTIONARY,
50 PREFS_BOOL,
51 PREFS_INTEGER,
52 PREFS_STRING
55 /* prefs.c */
56 PrefsObject *AllocPrefsDictionary (void);
57 PrefsObject *AllocPrefsBoolean (BOOL value);
58 PrefsObject *AllocPrefsInteger (LONG value);
59 PrefsObject *AllocPrefsString (CONST_STRPTR value);
60 void FreePrefsObject (PrefsObject *obj);
61 PrefsObject *DictGetObjectForKey (PrefsObject *dict, CONST_STRPTR key);
62 BOOL DictGetBooleanForKey (PrefsObject *dict, CONST_STRPTR key, BOOL def_val);
63 LONG DictGetIntegerForKey (PrefsObject *dict, CONST_STRPTR key, LONG def_val);
64 CONST_STRPTR DictGetStringForKey (PrefsObject *dict, CONST_STRPTR key, CONST_STRPTR def_val);
65 BOOL DictSetObjectForKey (PrefsObject *dict, PrefsObject *obj, CONST_STRPTR key);
66 BOOL DictRemoveObjForKey (PrefsObject *dict, CONST_STRPTR key);
67 void ClearPrefsDictionary (PrefsObject *dict);
69 /* readprefs.c */
70 BOOL ReadPrefs (PrefsObject *dict, CONST_STRPTR filename);
72 /* writeprefs.c */
73 BOOL WritePrefs (PrefsObject *dict, CONST_STRPTR filename);
75 #endif