43 #include "EST_TNamedEnum.h"
46 # define __STRINGIZE(X) #X
47 # define DATA __STRINGIZE(DATAC)
67 typedef enum { c_red=1, c_blue=2, c_green=3, c_unknown=666} Colour;
84 Start_TNamedEnum(Colour, ColourMap)
86 { c_unknown, {
"kinda brownish"}},
87 { c_red, {
"red",
"scarlet"}},
88 { c_blue, {
"blue",
"navy",
"sad"}},
91 End_TNamedEnum(Colour, ColourMap)
97 Start_TNamedEnum(Colour, SpanishColourMap)
99 { c_unknown, {
"no conocido"}},
100 { c_red, {
"rojo",
"escarlata",
"sangre"}},
101 { c_blue, {
"azul",
"piscina",
"mar",
"cielo"}},
103 End_TNamedEnum(Colour, SpanishColourMap)
112 int red, green, blue;
121 Start_TNamedEnumI(Colour, colour_info, RGBColourMap)
123 { c_unknown, {
"kinda grey"}, {0x7f, 0x7f, 0x7f}},
124 { c_red, {
"red",
"scarlet"}, {0xff, 0, 0}},
125 { c_blue, {
"blue",
"navy",
"sad"}, {0, 0, 0xff}},
127 End_TNamedEnumI(Colour, colour_info, RGBColourMap)
140 n = ColourMap.name(c1);
141 cout <<
"c1 is " << (n?n:
"[NULL]") <<
"\n";
143 n = ColourMap.name(c2);
144 cout <<
"c2 is " << (n?n:
"[NULL]") <<
"\n";
148 const char *colours[] = {
"red",
"navy",
"puce"};
149 for(
int i=0; i<3; i++)
155 const char *nm= colours[i];
156 Colour c = ColourMap.token(nm);
157 colour_info &info = RGBColourMap.info(c);
158 const char *spanish = SpanishColourMap.name(c);
160 cout << nm <<
" is " << (int)c
161 <<
" = " << ColourMap.name(c)
162 <<
" (" << (spanish?spanish:
"[NULL]") <<
" in Spanish)"
165 << info.green <<
", "
177 if (ColourMap.save(
"tmp/colour.map") != write_ok)
178 cout <<
"\n\nname map write failed\n";
181 cout <<
"\n\ncolour name map\n";
183 system(
"cat tmp/colour.map");
197 if (SpanishColourMap.save(
"tmp/colour_spanish.map", ColourMap) != write_ok)
198 cout <<
"\n\nname map write failed\n";
201 cout <<
"\n\ncolour name map (spanish)\n";
203 system(
"cat tmp/colour_spanish.map");
211 if (LoadedColourMap.load(DATA
"/colours.map") !=format_ok)
212 cout <<
"\n\nname map read failed\n";
215 cout <<
"\n\nread in table\n";
216 LoadedColourMap.save(
"tmp/tmp.map");
218 system(
"cat tmp/tmp.map");
223 if (LoadedColourMap.load(DATA
"/colours_translation.map", ColourMap) !=format_ok)
224 cout <<
"\n\nname map read failed\n";
227 cout <<
"\n\nread in table (translation)\n";
229 LoadedColourMap.save(
"tmp/tmp.map");
231 system(
"cat tmp/tmp.map");
244 Declare_TNamedEnumI(Colour, colour_info)
245 Declare_TNamedEnum(Colour)
247 #if defined(INSTANTIATE_TEMPLATES)
248 #include "../base_class/EST_TNamedEnum.cc"
250 Instantiate_TNamedEnumI(Colour, colour_info)
251 Instantiate_TNamedEnum(Colour)