1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
2 // Resource.hh for Blackbox - an X11 Window manager
3 // Copyright (c) 2001 - 2005 Sean 'Shaleh' Perry <shaleh@debian.org>
4 // Copyright (c) 1997 - 2000, 2002 - 2005
5 // Bradley T Hughes <bhughes at trolltech.com>
7 // Permission is hereby granted, free of charge, to any person obtaining a
8 // copy of this software and associated documentation files (the "Software"),
9 // to deal in the Software without restriction, including without limitation
10 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 // and/or sell copies of the Software, and to permit persons to whom the
12 // Software is furnished to do so, subject to the following conditions:
14 // The above copyright notice and this permission notice shall be included in
15 // all copies or substantial portions of the Software.
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 // DEALINGS IN THE SOFTWARE.
30 // forward declaration
31 typedef struct _XrmHashBucketRec
*XrmDatabase
;
36 inline const char* boolAsString(bool b
)
37 { return (b
) ? "True" : "False"; }
42 explicit Resource(const std::string
&filename
);
45 inline bool valid(void) const
46 { return db
!= NULL
; }
48 void load(const std::string
&filename
);
49 void save(const std::string
&filename
);
50 void merge(const std::string
&filename
);
52 std::string
read(const char* name
,
53 const char* classname
,
54 const char* default_value
= "") const;
55 std::string
read(const std::string
&name
,
56 const std::string
&classname
,
57 const std::string
&default_value
= std::string()) const;
59 int read(const char* name
, const char* classname
,
60 int default_value
) const;
61 unsigned int read(const char* name
, const char* classname
,
62 unsigned int default_value
) const;
64 long read(const char* name
, const char* classname
,
65 long default_value
) const;
66 unsigned long read(const char* name
, const char* classname
,
67 unsigned long default_value
) const;
69 bool read(const char* name
, const char* classname
,
70 bool default_value
) const;
72 double read(const char* name
, const char* classname
,
73 double default_value
) const;
75 void write(const char *resource
, const std::string
&value
);
76 void write(const char* resource
, const char* value
);
77 void write(const char* resource
, int value
);
78 void write(const char* resource
, unsigned int value
);
79 void write(const char* resource
, long value
);
80 void write(const char* resource
, unsigned long value
);
81 void write(const char* resource
, bool value
);
82 void write(const char* resource
, double value
);
90 #endif // __Resource_hh