diff options
author | Pavel Labath <pavelo@centrum.sk> | 2011-06-12 13:17:47 (GMT) |
---|---|---|
committer | Pavel Labath <pavelo@centrum.sk> | 2011-11-01 09:55:30 (GMT) |
commit | 7a46f95d0ce4e249812fb5c2685308cd7283b37d (patch) | |
tree | 51f1bb9b88d4499a487b42b6bf17512a56d987c7 /src/FbTk/Resource.cc | |
parent | 7817fd254e9bd1529fa6e98cdba249b7c0b8a6f8 (diff) | |
download | fluxbox_paul-7a46f95d0ce4e249812fb5c2685308cd7283b37d.zip fluxbox_paul-7a46f95d0ce4e249812fb5c2685308cd7283b37d.tar.bz2 |
Factor out "session." from resource names
this reduces typing and it makes more sense in lua, since there the resources are implemented as
hierarchical tables and the topmost table has to be handled a bit specially.
Diffstat (limited to 'src/FbTk/Resource.cc')
-rw-r--r-- | src/FbTk/Resource.cc | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/FbTk/Resource.cc b/src/FbTk/Resource.cc index fb0f595..37555b3 100644 --- a/src/FbTk/Resource.cc +++ b/src/FbTk/Resource.cc | |||
@@ -82,10 +82,13 @@ void ResourceManager_base::setResourceValue(const string &resname, const string | |||
82 | 82 | ||
83 | } | 83 | } |
84 | 84 | ||
85 | ResourceManager::ResourceManager(const char *filename, bool lock_db) : | 85 | ResourceManager::ResourceManager(const std::string &root, const std::string &alt_root, |
86 | const char *filename, bool lock_db) : | ||
87 | ResourceManager_base(root), | ||
86 | m_db_lock(0), | 88 | m_db_lock(0), |
87 | m_database(0), | 89 | m_database(0), |
88 | m_filename(filename ? filename : "") | 90 | m_filename(filename ? filename : ""), |
91 | m_alt_root(alt_root) | ||
89 | { | 92 | { |
90 | static bool xrm_initialized = false; | 93 | static bool xrm_initialized = false; |
91 | if (!xrm_initialized) { | 94 | if (!xrm_initialized) { |
@@ -131,8 +134,8 @@ bool ResourceManager::load(const char *filename) { | |||
131 | for (; i != i_end; ++i) { | 134 | for (; i != i_end; ++i) { |
132 | 135 | ||
133 | Resource_base *resource = *i; | 136 | Resource_base *resource = *i; |
134 | if (XrmGetResource(**m_database, resource->name().c_str(), | 137 | if (XrmGetResource(**m_database, (m_root + '.' + resource->name()).c_str(), |
135 | resource->altName().c_str(), &value_type, &value)) | 138 | (m_alt_root + '.' + resource->altName()).c_str(), &value_type, &value)) |
136 | resource->setFromString(value.addr); | 139 | resource->setFromString(value.addr); |
137 | else { | 140 | else { |
138 | _FB_USES_NLS; | 141 | _FB_USES_NLS; |
@@ -166,13 +169,12 @@ bool ResourceManager::save(const char *filename, const char *mergefilename) { | |||
166 | // empty database | 169 | // empty database |
167 | XrmDatabaseHelper database; | 170 | XrmDatabaseHelper database; |
168 | 171 | ||
169 | string rc_string; | ||
170 | ResourceList::iterator i = m_resourcelist.begin(); | 172 | ResourceList::iterator i = m_resourcelist.begin(); |
171 | ResourceList::iterator i_end = m_resourcelist.end(); | 173 | ResourceList::iterator i_end = m_resourcelist.end(); |
172 | //write all resources to database | 174 | //write all resources to database |
173 | for (; i != i_end; ++i) { | 175 | for (; i != i_end; ++i) { |
174 | Resource_base *resource = *i; | 176 | Resource_base *resource = *i; |
175 | rc_string = resource->name() + string(": ") + resource->getString(); | 177 | const string &rc_string = m_root + '.' + resource->name() + ": " + resource->getString(); |
176 | XrmPutLineResource(&*database, rc_string.c_str()); | 178 | XrmPutLineResource(&*database, rc_string.c_str()); |
177 | } | 179 | } |
178 | 180 | ||
@@ -248,8 +250,8 @@ void ResourceManager::addResource(Resource_base &r) { | |||
248 | char *value_type; | 250 | char *value_type; |
249 | 251 | ||
250 | // now, load the value for this resource | 252 | // now, load the value for this resource |
251 | if (XrmGetResource(**m_database, r.name().c_str(), | 253 | if (XrmGetResource(**m_database, (m_root + '.' + r.name()).c_str(), |
252 | r.altName().c_str(), &value_type, &value)) { | 254 | (m_alt_root + '.' + r.altName()).c_str(), &value_type, &value)) { |
253 | r.setFromString(value.addr); | 255 | r.setFromString(value.addr); |
254 | } else { | 256 | } else { |
255 | std::cerr<<"Failed to read: "<<r.name()<<std::endl; | 257 | std::cerr<<"Failed to read: "<<r.name()<<std::endl; |