aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk/Resource.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbTk/Resource.cc')
-rw-r--r--src/FbTk/Resource.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/FbTk/Resource.cc b/src/FbTk/Resource.cc
index 4be85de..85e78da 100644
--- a/src/FbTk/Resource.cc
+++ b/src/FbTk/Resource.cc
@@ -226,4 +226,33 @@ void ResourceManager::unlock() {
226 } 226 }
227} 227}
228 228
229// add the resource and load its value
230void ResourceManager::addResource(Resource_base &r) {
231 m_resourcelist.push_back(&r);
232 m_resourcelist.unique();
233
234 // lock ensures that the database is loaded.
235 lock();
236
237 if (m_database == 0) {
238 unlock();
239 return;
240 }
241
242 XrmValue value;
243 char *value_type;
244
245 // now, load the value for this resource
246 if (XrmGetResource(**m_database, r.name().c_str(),
247 r.altName().c_str(), &value_type, &value)) {
248 r.setFromString(value.addr);
249 } else {
250 std::cerr<<"Failed to read: "<<r.name()<<std::endl;
251 std::cerr<<"Setting default value"<<std::endl;
252 r.setDefaultValue();
253 }
254
255 unlock();
256}
257
229} // end namespace FbTk 258} // end namespace FbTk