]> Dogcows Code - chaz/openbox/blobdiff - src/Resource.cc
BScreen (ScreenInfo) now contains a size() instead of a getWidth/getHeight
[chaz/openbox] / src / Resource.cc
index 5ff05657c28a7822991e0556ea82106e97e1a63a..42dd230175c985c2d7588fa3833a38395f5d6f1f 100644 (file)
@@ -20,6 +20,7 @@
 // DEALINGS IN THE SOFTWARE.
 
 #include "Resource.h"
+#include "Util.h"
 
 #ifdef    HAVE_CONFIG_H
 #  include "../config.h"
 #  include <stdio.h>
 #endif // HAVE_STDIO_H
 
-#include <assert.h>
+bool obResource::m_initialized = false;
 
 obResource::obResource(const std::string &file) {
   setFile(file);
   m_modified = false;
   m_database = NULL;
   m_autosave = true;
+  if (!m_initialized) {
+    XrmInitialize();
+    m_initialized = true;
+  }
 }
 
 obResource::obResource() {
   m_modified = false;
   m_database = NULL;
   m_autosave = true;
+  if (!m_initialized) {
+    XrmInitialize();
+    m_initialized = true;
+  }
 }
 
 obResource::~obResource() {
@@ -62,14 +71,12 @@ void obResource::setAutoSave(bool autosave) {
 }
 
 void obResource::save() {
-  assert(m_file.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   XrmPutFileDatabase(m_database, m_file.c_str());
   m_modified = false;
 }
 
 bool obResource::load() {
-  assert(m_file.c_str() != NULL);
   if (m_database != NULL)
     XrmDestroyDatabase(m_database);
   m_modified = false;
@@ -79,8 +86,7 @@ bool obResource::load() {
 }
 
 void obResource::setValue(const std::string &rname, bool value) {
-  assert(rname.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
 
   const char *val = (value ? "True" : "False");
   std::string rc_string = rname + ": " + val;
@@ -91,9 +97,12 @@ void obResource::setValue(const std::string &rname, bool value) {
     save();
 }
 
+void obResource::setValue(const std::string &rname, int value) {
+  setValue(rname, (long)value);
+}
+
 void obResource::setValue(const std::string &rname, long value) {
-  assert(rname.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   
   char val[11];
   sprintf(val, "%ld", value);
@@ -106,8 +115,7 @@ void obResource::setValue(const std::string &rname, long value) {
 }
 
 void obResource::setValue(const std::string &rname, const char *value) {
-  assert(rname.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   
   std::string rc_string = rname + ": " + value;
   XrmPutLineResource(&m_database, rc_string.c_str());
@@ -118,8 +126,7 @@ void obResource::setValue(const std::string &rname, const char *value) {
 }
 
 void obResource::setValue(const std::string &rname, const std::string &value) {
-  assert(rname.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   
   std::string rc_string = rname + ": " + value;
   XrmPutLineResource(&m_database, rc_string.c_str());
@@ -131,9 +138,8 @@ void obResource::setValue(const std::string &rname, const std::string &value) {
 
 bool obResource::getValue(const std::string &rname, const std::string &rclass,
                           bool &value) const {
-  assert(rname.c_str() != NULL);
-  assert(rclass.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(rclass.c_str() != NULL);
+  ASSERT(m_database != NULL);
   
   char *rettype;
   XrmValue retvalue;
@@ -141,7 +147,7 @@ bool obResource::getValue(const std::string &rname, const std::string &rclass,
                           &rettype, &retvalue) || retvalue.addr == NULL)
     return false;
   std::string val = retvalue.addr;
-  if (val == "True")
+  if (0 == strncasecmp(val.c_str(), "true", val.length()))
     value = true;
   else
     value = false;
@@ -150,9 +156,7 @@ bool obResource::getValue(const std::string &rname, const std::string &rclass,
 
 bool obResource::getValue(const std::string &rname, const std::string &rclass,
                           long &value) const {
-  assert(rname.c_str() != NULL);
-  assert(rclass.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   
   char *rettype;
   XrmValue retvalue;
@@ -168,9 +172,7 @@ bool obResource::getValue(const std::string &rname, const std::string &rclass,
 
 bool obResource::getValue(const std::string &rname, const std::string &rclass,
                           std::string &value) const {
-  assert(rname.c_str() != NULL);
-  assert(rclass.c_str() != NULL);
-  assert(m_database != NULL);
+  ASSERT(m_database != NULL);
   
   char *rettype;
   XrmValue retvalue;
This page took 0.024823 seconds and 4 git commands to generate.