00001 // Copyright (C) 2007, 2008, 2009 EPITA Research and Development 00002 // Laboratory (LRDE) 00003 // 00004 // This file is part of Olena. 00005 // 00006 // Olena is free software: you can redistribute it and/or modify it under 00007 // the terms of the GNU General Public License as published by the Free 00008 // Software Foundation, version 2 of the License. 00009 // 00010 // Olena is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with Olena. If not, see <http://www.gnu.org/licenses/>. 00017 // 00018 // As a special exception, you may use this file as part of a free 00019 // software project without restriction. Specifically, if other files 00020 // instantiate templates or use macros or inline functions from this 00021 // file, or you compile this file and link it with other files to produce 00022 // an executable, this file does not by itself cause the resulting 00023 // executable to be covered by the GNU General Public License. This 00024 // exception does not however invalidate any other reasons why the 00025 // executable file might be covered by the GNU General Public License. 00026 00027 #ifndef MLN_LITERAL_COLORS_HH 00028 # define MLN_LITERAL_COLORS_HH 00029 00033 00034 # include <mln/core/concept/literal.hh> 00035 00036 namespace mln 00037 { 00038 00039 namespace literal 00040 { 00041 00043 struct red_t : public Literal<red_t> 00044 { 00045 }; 00046 00048 struct green_t : public Literal<green_t> 00049 { 00050 }; 00051 00053 struct blue_t : public Literal<blue_t> 00054 { 00055 }; 00056 00058 struct brown_t : public Literal<brown_t> 00059 { 00060 }; 00061 00063 struct lime_t : public Literal<lime_t> 00064 { 00065 }; 00066 00068 struct orange_t : public Literal<orange_t> 00069 { 00070 }; 00071 00073 struct pink_t : public Literal<pink_t> 00074 { 00075 }; 00076 00078 struct purple_t : public Literal<purple_t> 00079 { 00080 }; 00081 00083 struct teal_t : public Literal<teal_t> 00084 { 00085 }; 00086 00088 struct violet_t : public Literal<violet_t> 00089 { 00090 }; 00091 00093 struct cyan_t : public Literal<cyan_t> 00094 { 00095 }; 00096 00098 struct magenta_t : public Literal<magenta_t> 00099 { 00100 }; 00101 00103 struct yellow_t : public Literal<yellow_t> 00104 { 00105 }; 00106 00108 struct olive_t : public Literal<olive_t> 00109 { 00110 }; 00111 00113 extern const red_t& red; 00114 00116 extern const green_t& green; 00117 00119 extern const blue_t& blue; 00120 00122 extern const brown_t& brown; 00123 00125 extern const lime_t& lime; 00126 00128 extern const orange_t& orange; 00129 00131 extern const pink_t& pink; 00132 00134 extern const purple_t& purple; 00135 00137 extern const teal_t& teal; 00138 00140 extern const violet_t& violet; 00141 00143 extern const cyan_t& cyan; 00144 00146 extern const magenta_t& magenta; 00147 00149 extern const yellow_t& yellow; 00150 00152 extern const olive_t& olive; 00153 00154 # ifndef MLN_INCLUDE_ONLY 00155 00156 # ifndef MLN_WO_GLOBAL_VARS 00157 00158 const red_t& red = red_t(); 00159 00160 const green_t& green = green_t(); 00161 00162 const blue_t& blue = blue_t(); 00163 00164 const brown_t& brown = brown_t(); 00165 00166 const lime_t& lime = lime_t(); 00167 00168 const orange_t& orange = orange_t(); 00169 00170 const pink_t& pink = pink_t(); 00171 00172 const purple_t& purple = purple_t(); 00173 00174 const teal_t& teal = teal_t(); 00175 00176 const violet_t& violet = violet_t(); 00177 00178 const cyan_t& cyan = cyan_t(); 00179 00180 const magenta_t& magenta = magenta_t(); 00181 00182 const yellow_t& yellow = yellow_t(); 00183 00184 const olive_t& olive = olive_t(); 00185 00186 # endif 00187 00188 # endif 00189 00190 } // end of namespace mln::literal 00191 00192 } // end of namespace mln 00193 00194 // White and black are color too. 00195 # include <mln/literal/white.hh> 00196 # include <mln/literal/black.hh> 00197 00198 #endif // ! MLN_LITERAL_COLORS_HH