]> Dogcows Code - chaz/openbox/blobdiff - src/Configuration.cc
add option to the rc file to use/not use AA for Xft fonts
[chaz/openbox] / src / Configuration.cc
index e88e4601667092de427c4db2e4dbcc025063dd38..237b4a63670fe4e45ddf97e65a100ceaa1b79863 100644 (file)
 #include "Configuration.hh"
 #include "Util.hh"
 
+#include <algorithm>
+
 #ifdef    HAVE_STDLIB_H
 #  include <stdlib.h>
 #endif // HAVE_STDLIB_H
 
 using std::string;
 
-bool Configuration::m_initialized = false;
+bool Configuration::m_initialized = False;
 
-Configuration::Configuration(const string &file) {
+Configuration::Configuration(const string &file, bool autosave) {
   setFile(file);
-  m_modified = false;
+  m_modified = False;
   m_database = NULL;
-  m_autosave = true;
+  m_autosave = autosave;
   if (! m_initialized) {
     XrmInitialize();
-    m_initialized = true;
+    m_initialized = True;
   }
 }
 
-Configuration::Configuration() {
-  m_modified = false;
+Configuration::Configuration(bool autosave) {
+  m_modified = False;
   m_database = NULL;
-  m_autosave = true;
+  m_autosave = autosave;
   if (! m_initialized) {
     XrmInitialize();
-    m_initialized = true;
+    m_initialized = True;
   }
 }
 
@@ -70,22 +72,31 @@ void Configuration::setAutoSave(bool autosave) {
 void Configuration::save() {
   assert(m_database != NULL);
   XrmPutFileDatabase(m_database, m_file.c_str());
-  m_modified = false;
+  m_modified = False;
 }
 
 bool Configuration::load() {
   if (m_database != NULL)
     XrmDestroyDatabase(m_database);
-  m_modified = false;
+  m_modified = False;
   if (NULL == (m_database = XrmGetFileDatabase(m_file.c_str())))
-    return false;
-  return true;
+    return False;
+  return True;
+}
+
+bool Configuration::merge(const string &file, bool overwrite) {
+  if (XrmCombineFileDatabase(file.c_str(), &m_database, overwrite) == 0)
+    return False;
+  m_modified = True;
+  if (m_autosave)
+    save();
+  return True;
 }
 
 void Configuration::create() {
   if (m_database != NULL)
     XrmDestroyDatabase(m_database);
-  m_modified = false;
+  m_modified = False;
   assert(NULL != (m_database = XrmGetStringDatabase("")));
 }
 
@@ -96,7 +107,7 @@ void Configuration::setValue(const string &rname, bool value) {
   string rc_string = rname + ": " + val;
   XrmPutLineResource(&m_database, rc_string.c_str());
 
-  m_modified = true;
+  m_modified = True;
   if (m_autosave)
     save();
 }
@@ -107,7 +118,7 @@ void Configuration::setValue(const string &rname, unsigned long value) {
   string rc_string = rname + ": " + itostring(value);
   XrmPutLineResource(&m_database, rc_string.c_str());
 
-  m_modified = true;
+  m_modified = True;
   if (m_autosave)
     save();
 }
@@ -118,7 +129,7 @@ void Configuration::setValue(const string &rname, long value) {
   string rc_string = rname + ": " + itostring(value);
   XrmPutLineResource(&m_database, rc_string.c_str());
 
-  m_modified = true;
+  m_modified = True;
   if (m_autosave)
     save();
 }
@@ -130,7 +141,7 @@ void Configuration::setValue(const string &rname, const char *value) {
   string rc_string = rname + ": " + value;
   XrmPutLineResource(&m_database, rc_string.c_str());
 
-  m_modified = true;
+  m_modified = True;
   if (m_autosave)
     save();
 }
@@ -141,7 +152,7 @@ void Configuration::setValue(const string &rname, const string &value) {
   string rc_string = rname + ": " + value;
   XrmPutLineResource(&m_database, rc_string.c_str());
 
-  m_modified = true;
+  m_modified = True;
   if (m_autosave)
     save();
 }
@@ -155,13 +166,13 @@ bool Configuration::getValue(const string &rname, bool &value) const {
   XrmValue retvalue;
   if (0 == XrmGetResource(m_database, rname.c_str(), rclass.c_str(), 
                           &rettype, &retvalue) || retvalue.addr == NULL)
-    return false;
+    return False;
   string val = retvalue.addr;
-  if (val == "true" || val == "True")
-    value = true;
+  if (val == "True" || val == "True")
+    value = True;
   else
-    value = false;
-  return true;
+    value = False;
+  return True;
 }
 
 bool Configuration::getValue(const string &rname, long &value) const {
@@ -173,12 +184,12 @@ bool Configuration::getValue(const string &rname, long &value) const {
   XrmValue retvalue;
   if (0 == XrmGetResource(m_database, rname.c_str(), rclass.c_str(), 
                           &rettype, &retvalue) || retvalue.addr == NULL)
-    return false;
+    return False;
   char *end;
   value = strtol(retvalue.addr, &end, 10);
   if (end == retvalue.addr)
-    return false;
-  return true;
+    return False;
+  return True;
 }
 
 bool Configuration::getValue(const string &rname, unsigned long &value) const {
@@ -190,12 +201,12 @@ bool Configuration::getValue(const string &rname, unsigned long &value) const {
   XrmValue retvalue;
   if (0 == XrmGetResource(m_database, rname.c_str(), rclass.c_str(), 
                           &rettype, &retvalue) || retvalue.addr == NULL)
-    return false;
+    return False;
   char *end;
   value = strtoul(retvalue.addr, &end, 10);
   if (end == retvalue.addr)
-    return false;
-  return true;
+    return False;
+  return True;
 }
 
 bool Configuration::getValue(const string &rname,
@@ -208,9 +219,9 @@ bool Configuration::getValue(const string &rname,
   XrmValue retvalue;
   if (0 == XrmGetResource(m_database, rname.c_str(), rclass.c_str(), 
                           &rettype, &retvalue) || retvalue.addr == NULL)
-    return false;
+    return False;
   value = retvalue.addr;
-  return true;
+  return True;
 }
   
 
@@ -218,7 +229,7 @@ string Configuration::createClassName(const string &rname) const {
   string rclass(rname);
 
   string::iterator it = rclass.begin(), end = rclass.end();
-  while (true) {
+  while (True) {
     *it = toUpper(*it);
     ++it;
     if (it == end) break;
This page took 0.027978 seconds and 4 git commands to generate.