Code

Use subdirectories with icon sizes.
[inkscape.git] / src / preferences.h
index a7be080094ae91f9267f9587e0a90ece8c462e38..5e1ccf9d6f7a451f48fd3d97b328e618035cc1a3 100644 (file)
@@ -177,6 +177,11 @@ public:
          */
         inline Glib::ustring getString() const;
 
+        /**
+         * @brief Interpret the preference as an RGBA color value.
+         */
+        inline guint32 getColor(guint32 def) const;
+
         /**
          * @brief Interpret the preference as a CSS style.
          * @return A CSS style that has to be unrefed when no longer necessary. Never NULL.
@@ -329,6 +334,10 @@ public:
         return getEntry(pref_path).getString();
     }
 
+    guint32 getColor(Glib::ustring const &pref_path, guint32 def=0x000000ff) {
+        return getEntry(pref_path).getColor(def);
+    }
+
     /**
      * @brief Retrieve a CSS style
      * @param pref_path Path to the retrieved preference
@@ -383,6 +392,11 @@ public:
      */
     void setString(Glib::ustring const &pref_path, Glib::ustring const &value);
 
+    /**
+     * @brief Set an RGBA color value
+     */
+    void setColor(Glib::ustring const &pref_path, guint32 value);
+
     /**
      * @brief Set a CSS style
      */
@@ -459,6 +473,7 @@ protected:
     int _extractInt(Entry const &v);
     double _extractDouble(Entry const &v);
     Glib::ustring _extractString(Entry const &v);
+    guint32 _extractColor(Entry const &v);
     SPCSSAttr *_extractStyle(Entry const &v);
     SPCSSAttr *_extractInheritedStyle(Entry const &v);
 
@@ -567,6 +582,15 @@ inline Glib::ustring Preferences::Entry::getString() const
     }
 }
 
+inline guint32 Preferences::Entry::getColor(guint32 def) const
+{
+    if (!this->isValid()) {
+        return def;
+    } else {
+        return Inkscape::Preferences::get()->_extractColor(*this);
+    }
+}
+
 inline SPCSSAttr *Preferences::Entry::getStyle() const
 {
     if (!this->isValid()) {