summaryrefslogtreecommitdiffstats
path: root/fltk/fltk/Color.h
diff options
context:
space:
mode:
Diffstat (limited to 'fltk/fltk/Color.h')
-rw-r--r--fltk/fltk/Color.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/fltk/fltk/Color.h b/fltk/fltk/Color.h
new file mode 100644
index 0000000..d1d5977
--- /dev/null
+++ b/fltk/fltk/Color.h
@@ -0,0 +1,131 @@
+//
+// "$Id: Color.h 6233 2008-09-14 07:54:06Z spitzak $"
+//
+// Color value. These are 32-bit unsigned numbers with RGB as the
+// upper 3 bytes. The lowest-order byte is treated as an "index"
+// for back compatabilty, or as an "alpha", depending on context.
+//
+// Copyright 1998-2006 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems to:
+//
+// http://www.fltk.org/str.php
+//
+
+#ifndef fltk_Color_h
+#define fltk_Color_h
+
+#include "FL_API.h"
+#include "Flags.h"
+
+namespace fltk {
+
+/// \name fltk/Color.h
+//@{
+
+typedef unsigned Color;
+
+/*! Symbolic names for some of the indexed colors.
+
+ The 24-entry "gray ramp" is modified by fltk::set_background() so
+ that the color fltk::GRAY75 is the background color, and the others
+ are a nice range from black to a lighter version of the gray. These
+ are used to draw box edges. The gray levels are chosen to be evenly
+ spaced, listed here is the actual 8-bit and decimal gray level
+ assigned by default. Also listed here is the letter used for
+ fltk::FrameBox and the old fltk1.1 names used for these levels.
+
+ The remiander of the colormap is a 5x8x5 color cube. This cube is
+ used to dither images on 8-bit screens X colormaps to reduce the
+ number of colors used.
+*/
+enum {
+ NO_COLOR = 0, //!< Black, empty place holder in Style
+
+ FREE_COLOR = 16, //!< Starting from index 16 is the FREE_COLOR area
+ NUM_FREE_COLOR= 16, //!< Number of free color slots starting from index FREE_COLOR
+
+ GRAY00 = 32, //!< hex=00, dec=.00, framebox=A, fltk1 = GRAY0, GRAY_RAMP
+ GRAY05 = 33, //!< hex=0d, dec=.05, framebox=B
+ GRAY10 = 34, //!< hex=1a, dec=.10, framebox=C
+ GRAY15 = 35, //!< hex=27, dec=.15, framebox=D
+ GRAY20 = 36, //!< hex=34, dec=.20, framebox=E
+ GRAY25 = 37, //!< hex=41, dec=.25, framebox=F
+ GRAY30 = 38, //!< hex=4f, dec=.31, framebox=G
+ GRAY33 = 39, //!< hex=5c, dec=.36, framebox=H, fltk1 = DARK3
+ GRAY35 = 40, //!< hex=69, dec=.41, framebox=I
+ GRAY40 = 41, //!< hex=76, dec=.46, framebox=J (18% gray card)
+ GRAY45 = 42, //!< hex=83, dec=.51, framebox=K
+ GRAY50 = 43, //!< hex=90, dec=.56, framebox=L
+ GRAY55 = 44, //!< hex=9e, dec=.62, framebox=M
+ GRAY60 = 45, //!< hex=ab, dec=.67, framebox=N, fltk1 = DARK2
+ GRAY65 = 46, //!< hex=b8, dec=.72, framebox=O
+ GRAY66 = 47, //!< hex=c5, dec=.77, framebox=P, fltk1 = DARK1, INACTIVE_COLOR
+ GRAY70 = 48, //!< hex=d2, dec=.82, framebox=Q
+ GRAY75 = 49, //!< hex=e0, dec=.88, framebox=R, fltk1 = GRAY, SELECTION_COLOR
+ GRAY80 = 50, //!< hex=e5, dec=.90, framebox=S
+ GRAY85 = 51, //!< hex=ea, dec=.92, framebox=T, fltk1 = LIGHT1
+ //unnamed entry hex=ef, dec=.94, framebox=U
+ GRAY90 = 53, //!< hex=f4, dec=.96, framebox=V, fltk1 = LIGHT2
+ GRAY95 = 54, //!< hex=f9, dec=.98, framebox=W
+ GRAY99 = 55, //!< hex=ff, dec=1.0, framebox=X, fltk1 = LIGHT3
+
+ BLACK = 0x38, //!< Corner of color cube
+ RED = 0x58, //!< Corner of color cube
+ GREEN = 0x3f, //!< Corner of color cube
+ YELLOW = 0x5f, //!< Corner of color cube
+ BLUE = 0xd8, //!< Corner of color cube
+ MAGENTA = 0xf8, //!< Corner of color cube
+ CYAN = 0xdf, //!< Corner of color cube
+ WHITE = 0xff, //!< Corner of color cube
+
+ DARK_RED = 72,
+ DARK_GREEN = 60,
+ DARK_YELLOW = 76,
+ DARK_BLUE = 136,
+ DARK_MAGENTA = 152,
+ DARK_CYAN = 140,
+
+ WINDOWS_BLUE = 0x88 //!< default selection_color
+};
+
+inline Color color(unsigned char r, unsigned char g, unsigned char b) {
+ return Color((r<<24)+(g<<16)+(b<<8)); }
+inline Color color(unsigned char g) {
+ return Color(g*0x1010100u); }
+FL_API Color color(const char*);
+FL_API Color parsecolor(const char*, unsigned length);
+FL_API Color lerp(Color c0, Color c1, float f);
+FL_API Color inactive(Color fg);
+FL_API Color inactive(Color fg, Color bg);
+FL_API Color contrast(Color fg, Color bg);
+FL_API void split_color(Color c, unsigned char& r, unsigned char& g, unsigned char& b);
+FL_API void set_color_index(Color index, Color);
+FL_API Color get_color_index(Color index);
+FL_API void set_background(Color);
+FL_API Color nearest_index(Color);
+
+}
+
+//@}
+
+#endif
+
+//
+// End of "$Id: Color.h 6233 2008-09-14 07:54:06Z spitzak $".
+//