]> git.lyx.org Git - lyx.git/blobdiff - src/Color.cpp
* GuiDocument.cpp: before accessing the buffer() in paramsToDialog(), check
[lyx.git] / src / Color.cpp
index 7995eba38068ab6e079f170827765968ba5f0e14..1b1f513862397c7f7d08138f1e25b7c7de028994 100644 (file)
@@ -17,7 +17,9 @@
 #include <config.h>
 
 #include "Color.h"
+#include "ColorSet.h"
 
+#include "support/convert.h"
 #include "support/debug.h"
 #include "support/gettext.h"
 #include "support/lstrings.h"
@@ -83,6 +85,67 @@ RGBColor rgbFromHexName(string const & x11hexname)
        return c;
 }
 
+string const outputLaTeXColor(RGBColor const & color)
+{
+       // this routine returns a LaTeX readable color string in the form
+       // "red, green, blue" where the colors are a number in the range 0-1 
+       int red = color.r;
+       int green = color.g;
+       int blue = color.b;
+       // the color values are given in the range of 0-255, so to get
+       // an output of "0.5" for the value 127 we need to do the following
+       if (red != 0)
+               ++red;
+       if (green != 0)
+               ++green;
+       if (blue != 0)
+               ++blue;
+       string output;
+       output = convert<string>(float(red) / 256) + ", "
+                        + convert<string>(float(green) / 256) + ", "
+                        + convert<string>(float(blue) / 256);
+       return output;
+}
+
+
+Color::Color(ColorCode base_color) : baseColor(base_color), 
+       mergeColor(Color_ignore)
+{}
+
+
+bool Color::operator==(Color const & color) const
+{
+       return baseColor == color.baseColor;
+}
+
+
+bool Color::operator!=(Color const & color) const      
+{
+       return baseColor != color.baseColor;
+}
+
+
+bool Color::operator<(Color const & color) const
+{
+       return baseColor < color.baseColor;
+}
+
+
+bool Color::operator<=(Color const & color) const
+{
+       return baseColor <= color.baseColor;
+}
+
+
+std::ostream & operator<<(std::ostream & os, Color color)
+{
+       os << to_ascii(lcolor.getGUIName(color.baseColor));
+       if (color.mergeColor != Color_ignore)
+               os << "[merged with:"
+                       << to_ascii(lcolor.getGUIName(color.mergeColor)) << "]";
+       return os;
+}
+
 
 ColorSet::ColorSet()
 {
@@ -164,6 +227,7 @@ ColorSet::ColorSet()
        { Color_changedtextauthor3, N_("changed text 3rd author"), "changedtextauthor3", "#ff0000", "changedtextauthor3" },
        { Color_changedtextauthor4, N_("changed text 4th author"), "changedtextauthor4", "#aa00ff", "changedtextauthor4" },
        { Color_changedtextauthor5, N_("changed text 5th author"), "changedtextauthor5", "#55aa00", "changedtextauthor5" },
+       { Color_deletedtextmodifier, N_("deleted text modifier"), "deletedtextmodifier", "white", "deletedtextmodifier" },
        { Color_added_space, N_("added space markers"), "added_space", "Brown", "added_space" },
        { Color_topline, N_("top/bottom line"), "topline", "Brown", "topline" },
        { Color_tabularline, N_("table line"), "tabularline", "black", "tabularline" },
@@ -175,6 +239,7 @@ ColorSet::ColorSet()
        { Color_buttonframe, N_("frame of button"), "buttonframe", "#dcd2c8", "buttonframe" },
        { Color_buttonbg, N_("button background"), "buttonbg", "#dcd2c8", "buttonbg" },
        { Color_buttonhoverbg, N_("button background under focus"), "buttonhoverbg", "#C7C7CA", "buttonhoverbg" },
+       { Color_paragraphmarker, N_("paragraph marker"), "paragraphmarker", grey80, "paragraphmarker"},
        { Color_inherit, N_("inherit"), "inherit", "black", "inherit" },
        { Color_ignore, N_("ignore"), "ignore", "black", "ignore" },
        { Color_ignore, 0, 0, 0, 0 }