]> git.lyx.org Git - lyx.git/blobdiff - src/BranchList.h
Less expensive OP first as this might be called often.
[lyx.git] / src / BranchList.h
index e3e18e1c71f49ba2ae9f305a43633052545318cd..7bf435217de502f102a968bd4c1ce8a2ea1c296c 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "support/docstring.h"
 
+#include <cstdlib> // rand()
 #include <list>
 
 
@@ -43,7 +44,7 @@ namespace lyx {
 class Branch {
 public:
        ///
-       Branch();
+       Branch() {}
        ///
        docstring const & branch() const;
        ///
@@ -61,26 +62,40 @@ public:
        /// Select/deselect filename suffix property.
        void setFileNameSuffix(bool);
        ///
-       RGBColor const & color() const;
+       void setListID(int const id) { branch_list_id_ = id; }
        ///
-       void setColor(RGBColor const &);
+       std::string const & color() const;
+       ///
+       std::string const & lightModeColor() const;
+       ///
+       std::string const & darkModeColor() const;
        /**
-        * Set color from a string "#rrggbb".
+        * Set background color from a hexcolor string "#rrggbb" or a lyx color name.
         * Use Color:background if the string is no valid color.
         * This ensures compatibility with LyX 1.4.0 that had the symbolic
         * color "none" that was displayed as Color:background.
+        * This sets the dark color if in dark mode, else the light color.
         */
-       void setColor(std::string const &);
+       void setColor(std::string const & color);
+       /// Set dark and light background colors
+       void setColors(std::string const & color,
+                     std::string const & dmcolor = std::string());
+       ///
+       int listID() const { return branch_list_id_; }
 
 private:
        ///
        docstring branch_;
        ///
-       bool selected_;
+       bool selected_ = false;
        ///
-       bool filenameSuffix_;
+       bool filenameSuffix_ = false;
+       /// light mode background color
+       std::string lmcolor_ = "background";
+       /// dark mode background color
+       std::string dmcolor_ = "background";
        ///
-       RGBColor color_;
+       int branch_list_id_ = 0;
 };
 
 
@@ -91,18 +106,21 @@ public:
        typedef List::const_iterator const_iterator;
 
        ///
-       BranchList() : separator_(from_ascii("|")) {}
+       BranchList() : separator_(from_ascii("|")), id_(rand()) {}
 
        ///
        docstring separator() const { return separator_; }
 
        ///
-       bool empty() const { return list.empty(); }
+       int id() const { return id_; }
+
+       ///
+       bool empty() const { return list_.empty(); }
        ///
-       void clear() { list.clear(); }
+       void clear() { list_.clear(); }
        ///
-       const_iterator begin() const { return list.begin(); }
-       const_iterator end() const { return list.end(); }
+       const_iterator begin() const { return list_.begin(); }
+       const_iterator end() const { return list_.end(); }
 
        /** \returns the Branch with \c name. If not found, returns 0.
         */
@@ -128,9 +146,11 @@ public:
 
 private:
        ///
-       List list;
+       List list_;
        ///
        docstring separator_;
+       ///
+       int id_;
 };
 
 } // namespace lyx