Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

juce_Colours.cpp 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library.
  4. Copyright (c) 2017 - ROLI Ltd.
  5. JUCE is an open source library subject to commercial or open-source
  6. licensing.
  7. By using JUCE, you agree to the terms of both the JUCE 5 End-User License
  8. Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
  9. 27th April 2017).
  10. End User License Agreement: www.juce.com/juce-5-licence
  11. Privacy Policy: www.juce.com/juce-5-privacy-policy
  12. Or: You may also use this code under the terms of the GPL v3 (see
  13. www.gnu.org/licenses).
  14. JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
  15. EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
  16. DISCLAIMED.
  17. ==============================================================================
  18. */
  19. namespace juce
  20. {
  21. const Colour Colours::transparentBlack (0);
  22. const Colour Colours::transparentWhite (0x00ffffff);
  23. const Colour Colours::aliceblue (0xfff0f8ff);
  24. const Colour Colours::antiquewhite (0xfffaebd7);
  25. const Colour Colours::aqua (0xff00ffff);
  26. const Colour Colours::aquamarine (0xff7fffd4);
  27. const Colour Colours::azure (0xfff0ffff);
  28. const Colour Colours::beige (0xfff5f5dc);
  29. const Colour Colours::bisque (0xffffe4c4);
  30. const Colour Colours::black (0xff000000);
  31. const Colour Colours::blanchedalmond (0xffffebcd);
  32. const Colour Colours::blue (0xff0000ff);
  33. const Colour Colours::blueviolet (0xff8a2be2);
  34. const Colour Colours::brown (0xffa52a2a);
  35. const Colour Colours::burlywood (0xffdeb887);
  36. const Colour Colours::cadetblue (0xff5f9ea0);
  37. const Colour Colours::chartreuse (0xff7fff00);
  38. const Colour Colours::chocolate (0xffd2691e);
  39. const Colour Colours::coral (0xffff7f50);
  40. const Colour Colours::cornflowerblue (0xff6495ed);
  41. const Colour Colours::cornsilk (0xfffff8dc);
  42. const Colour Colours::crimson (0xffdc143c);
  43. const Colour Colours::cyan (0xff00ffff);
  44. const Colour Colours::darkblue (0xff00008b);
  45. const Colour Colours::darkcyan (0xff008b8b);
  46. const Colour Colours::darkgoldenrod (0xffb8860b);
  47. const Colour Colours::darkgrey (0xff555555);
  48. const Colour Colours::darkgreen (0xff006400);
  49. const Colour Colours::darkkhaki (0xffbdb76b);
  50. const Colour Colours::darkmagenta (0xff8b008b);
  51. const Colour Colours::darkolivegreen (0xff556b2f);
  52. const Colour Colours::darkorange (0xffff8c00);
  53. const Colour Colours::darkorchid (0xff9932cc);
  54. const Colour Colours::darkred (0xff8b0000);
  55. const Colour Colours::darksalmon (0xffe9967a);
  56. const Colour Colours::darkseagreen (0xff8fbc8f);
  57. const Colour Colours::darkslateblue (0xff483d8b);
  58. const Colour Colours::darkslategrey (0xff2f4f4f);
  59. const Colour Colours::darkturquoise (0xff00ced1);
  60. const Colour Colours::darkviolet (0xff9400d3);
  61. const Colour Colours::deeppink (0xffff1493);
  62. const Colour Colours::deepskyblue (0xff00bfff);
  63. const Colour Colours::dimgrey (0xff696969);
  64. const Colour Colours::dodgerblue (0xff1e90ff);
  65. const Colour Colours::firebrick (0xffb22222);
  66. const Colour Colours::floralwhite (0xfffffaf0);
  67. const Colour Colours::forestgreen (0xff228b22);
  68. const Colour Colours::fuchsia (0xffff00ff);
  69. const Colour Colours::gainsboro (0xffdcdcdc);
  70. const Colour Colours::ghostwhite (0xfff8f8ff);
  71. const Colour Colours::gold (0xffffd700);
  72. const Colour Colours::goldenrod (0xffdaa520);
  73. const Colour Colours::grey (0xff808080);
  74. const Colour Colours::green (0xff008000);
  75. const Colour Colours::greenyellow (0xffadff2f);
  76. const Colour Colours::honeydew (0xfff0fff0);
  77. const Colour Colours::hotpink (0xffff69b4);
  78. const Colour Colours::indianred (0xffcd5c5c);
  79. const Colour Colours::indigo (0xff4b0082);
  80. const Colour Colours::ivory (0xfffffff0);
  81. const Colour Colours::khaki (0xfff0e68c);
  82. const Colour Colours::lavender (0xffe6e6fa);
  83. const Colour Colours::lavenderblush (0xfffff0f5);
  84. const Colour Colours::lawngreen (0xff7cfc00);
  85. const Colour Colours::lemonchiffon (0xfffffacd);
  86. const Colour Colours::lightblue (0xffadd8e6);
  87. const Colour Colours::lightcoral (0xfff08080);
  88. const Colour Colours::lightcyan (0xffe0ffff);
  89. const Colour Colours::lightgoldenrodyellow (0xfffafad2);
  90. const Colour Colours::lightgreen (0xff90ee90);
  91. const Colour Colours::lightgrey (0xffd3d3d3);
  92. const Colour Colours::lightpink (0xffffb6c1);
  93. const Colour Colours::lightsalmon (0xffffa07a);
  94. const Colour Colours::lightseagreen (0xff20b2aa);
  95. const Colour Colours::lightskyblue (0xff87cefa);
  96. const Colour Colours::lightslategrey (0xff778899);
  97. const Colour Colours::lightsteelblue (0xffb0c4de);
  98. const Colour Colours::lightyellow (0xffffffe0);
  99. const Colour Colours::lime (0xff00ff00);
  100. const Colour Colours::limegreen (0xff32cd32);
  101. const Colour Colours::linen (0xfffaf0e6);
  102. const Colour Colours::magenta (0xffff00ff);
  103. const Colour Colours::maroon (0xff800000);
  104. const Colour Colours::mediumaquamarine (0xff66cdaa);
  105. const Colour Colours::mediumblue (0xff0000cd);
  106. const Colour Colours::mediumorchid (0xffba55d3);
  107. const Colour Colours::mediumpurple (0xff9370db);
  108. const Colour Colours::mediumseagreen (0xff3cb371);
  109. const Colour Colours::mediumslateblue (0xff7b68ee);
  110. const Colour Colours::mediumspringgreen (0xff00fa9a);
  111. const Colour Colours::mediumturquoise (0xff48d1cc);
  112. const Colour Colours::mediumvioletred (0xffc71585);
  113. const Colour Colours::midnightblue (0xff191970);
  114. const Colour Colours::mintcream (0xfff5fffa);
  115. const Colour Colours::mistyrose (0xffffe4e1);
  116. const Colour Colours::moccasin (0xffffe4b5);
  117. const Colour Colours::navajowhite (0xffffdead);
  118. const Colour Colours::navy (0xff000080);
  119. const Colour Colours::oldlace (0xfffdf5e6);
  120. const Colour Colours::olive (0xff808000);
  121. const Colour Colours::olivedrab (0xff6b8e23);
  122. const Colour Colours::orange (0xffffa500);
  123. const Colour Colours::orangered (0xffff4500);
  124. const Colour Colours::orchid (0xffda70d6);
  125. const Colour Colours::palegoldenrod (0xffeee8aa);
  126. const Colour Colours::palegreen (0xff98fb98);
  127. const Colour Colours::paleturquoise (0xffafeeee);
  128. const Colour Colours::palevioletred (0xffdb7093);
  129. const Colour Colours::papayawhip (0xffffefd5);
  130. const Colour Colours::peachpuff (0xffffdab9);
  131. const Colour Colours::peru (0xffcd853f);
  132. const Colour Colours::pink (0xffffc0cb);
  133. const Colour Colours::plum (0xffdda0dd);
  134. const Colour Colours::powderblue (0xffb0e0e6);
  135. const Colour Colours::purple (0xff800080);
  136. const Colour Colours::rebeccapurple (0xff663399);
  137. const Colour Colours::red (0xffff0000);
  138. const Colour Colours::rosybrown (0xffbc8f8f);
  139. const Colour Colours::royalblue (0xff4169e1);
  140. const Colour Colours::saddlebrown (0xff8b4513);
  141. const Colour Colours::salmon (0xfffa8072);
  142. const Colour Colours::sandybrown (0xfff4a460);
  143. const Colour Colours::seagreen (0xff2e8b57);
  144. const Colour Colours::seashell (0xfffff5ee);
  145. const Colour Colours::sienna (0xffa0522d);
  146. const Colour Colours::silver (0xffc0c0c0);
  147. const Colour Colours::skyblue (0xff87ceeb);
  148. const Colour Colours::slateblue (0xff6a5acd);
  149. const Colour Colours::slategrey (0xff708090);
  150. const Colour Colours::snow (0xfffffafa);
  151. const Colour Colours::springgreen (0xff00ff7f);
  152. const Colour Colours::steelblue (0xff4682b4);
  153. const Colour Colours::tan (0xffd2b48c);
  154. const Colour Colours::teal (0xff008080);
  155. const Colour Colours::thistle (0xffd8bfd8);
  156. const Colour Colours::tomato (0xffff6347);
  157. const Colour Colours::turquoise (0xff40e0d0);
  158. const Colour Colours::violet (0xffee82ee);
  159. const Colour Colours::wheat (0xfff5deb3);
  160. const Colour Colours::white (0xffffffff);
  161. const Colour Colours::whitesmoke (0xfff5f5f5);
  162. const Colour Colours::yellow (0xffffff00);
  163. const Colour Colours::yellowgreen (0xff9acd32);
  164. //==============================================================================
  165. Colour Colours::findColourForName (const String& colourName,
  166. Colour defaultColour)
  167. {
  168. static const uint32 presets[] =
  169. {
  170. // (first value is the string's hashcode, second is ARGB)
  171. 0x05978fff, 0xff000000, /* black */
  172. 0x06bdcc29, 0xffffffff, /* white */
  173. 0x002e305a, 0xff0000ff, /* blue */
  174. 0x00308adf, 0xff808080, /* grey */
  175. 0x05e0cf03, 0xff008000, /* green */
  176. 0x0001b891, 0xffff0000, /* red */
  177. 0xd43c6474, 0xffffff00, /* yellow */
  178. 0x620886da, 0xfff0f8ff, /* aliceblue */
  179. 0x20a2676a, 0xfffaebd7, /* antiquewhite */
  180. 0x002dcebc, 0xff00ffff, /* aqua */
  181. 0x46bb5f7e, 0xff7fffd4, /* aquamarine */
  182. 0x0590228f, 0xfff0ffff, /* azure */
  183. 0x05947fe4, 0xfff5f5dc, /* beige */
  184. 0xad388e35, 0xffffe4c4, /* bisque */
  185. 0x00674f7e, 0xffffebcd, /* blanchedalmond */
  186. 0x39129959, 0xff8a2be2, /* blueviolet */
  187. 0x059a8136, 0xffa52a2a, /* brown */
  188. 0x89cea8f9, 0xffdeb887, /* burlywood */
  189. 0x0fa260cf, 0xff5f9ea0, /* cadetblue */
  190. 0x6b748956, 0xff7fff00, /* chartreuse */
  191. 0x2903623c, 0xffd2691e, /* chocolate */
  192. 0x05a74431, 0xffff7f50, /* coral */
  193. 0x618d42dd, 0xff6495ed, /* cornflowerblue */
  194. 0xe4b479fd, 0xfffff8dc, /* cornsilk */
  195. 0x3d8c4edf, 0xffdc143c, /* crimson */
  196. 0x002ed323, 0xff00ffff, /* cyan */
  197. 0x67cc74d0, 0xff00008b, /* darkblue */
  198. 0x67cd1799, 0xff008b8b, /* darkcyan */
  199. 0x31bbd168, 0xffb8860b, /* darkgoldenrod */
  200. 0x67cecf55, 0xff555555, /* darkgrey */
  201. 0x920b194d, 0xff006400, /* darkgreen */
  202. 0x923edd4c, 0xffbdb76b, /* darkkhaki */
  203. 0x5c293873, 0xff8b008b, /* darkmagenta */
  204. 0x6b6671fe, 0xff556b2f, /* darkolivegreen */
  205. 0xbcfd2524, 0xffff8c00, /* darkorange */
  206. 0xbcfdf799, 0xff9932cc, /* darkorchid */
  207. 0x55ee0d5b, 0xff8b0000, /* darkred */
  208. 0xc2e5f564, 0xffe9967a, /* darksalmon */
  209. 0x61be858a, 0xff8fbc8f, /* darkseagreen */
  210. 0xc2b0f2bd, 0xff483d8b, /* darkslateblue */
  211. 0xc2b34d42, 0xff2f4f4f, /* darkslategrey */
  212. 0x7cf2b06b, 0xff00ced1, /* darkturquoise */
  213. 0xc8769375, 0xff9400d3, /* darkviolet */
  214. 0x25832862, 0xffff1493, /* deeppink */
  215. 0xfcad568f, 0xff00bfff, /* deepskyblue */
  216. 0x634c8b67, 0xff696969, /* dimgrey */
  217. 0x45c1ce55, 0xff1e90ff, /* dodgerblue */
  218. 0xef19e3cb, 0xffb22222, /* firebrick */
  219. 0xb852b195, 0xfffffaf0, /* floralwhite */
  220. 0xd086fd06, 0xff228b22, /* forestgreen */
  221. 0xe106b6d7, 0xffff00ff, /* fuchsia */
  222. 0x7880d61e, 0xffdcdcdc, /* gainsboro */
  223. 0x2018a2fa, 0xfff8f8ff, /* ghostwhite */
  224. 0x00308060, 0xffffd700, /* gold */
  225. 0xb3b3bc1e, 0xffdaa520, /* goldenrod */
  226. 0xbab8a537, 0xffadff2f, /* greenyellow */
  227. 0xe4cacafb, 0xfff0fff0, /* honeydew */
  228. 0x41892743, 0xffff69b4, /* hotpink */
  229. 0xd5796f1a, 0xffcd5c5c, /* indianred */
  230. 0xb969fed2, 0xff4b0082, /* indigo */
  231. 0x05fef6a9, 0xfffffff0, /* ivory */
  232. 0x06149302, 0xfff0e68c, /* khaki */
  233. 0xad5a05c7, 0xffe6e6fa, /* lavender */
  234. 0x7c4d5b99, 0xfffff0f5, /* lavenderblush */
  235. 0x41cc4377, 0xff7cfc00, /* lawngreen */
  236. 0x195756f0, 0xfffffacd, /* lemonchiffon */
  237. 0x28e4ea70, 0xffadd8e6, /* lightblue */
  238. 0xf3c7ccdb, 0xfff08080, /* lightcoral */
  239. 0x28e58d39, 0xffe0ffff, /* lightcyan */
  240. 0x21234e3c, 0xfffafad2, /* lightgoldenrodyellow */
  241. 0xf40157ad, 0xff90ee90, /* lightgreen */
  242. 0x28e744f5, 0xffd3d3d3, /* lightgrey */
  243. 0x28eb3b8c, 0xffffb6c1, /* lightpink */
  244. 0x9fb78304, 0xffffa07a, /* lightsalmon */
  245. 0x50632b2a, 0xff20b2aa, /* lightseagreen */
  246. 0x68fb7b25, 0xff87cefa, /* lightskyblue */
  247. 0xa8a35ba2, 0xff778899, /* lightslategrey */
  248. 0xa20d484f, 0xffb0c4de, /* lightsteelblue */
  249. 0xaa2cf10a, 0xffffffe0, /* lightyellow */
  250. 0x0032afd5, 0xff00ff00, /* lime */
  251. 0x607bbc4e, 0xff32cd32, /* limegreen */
  252. 0x06234efa, 0xfffaf0e6, /* linen */
  253. 0x316858a9, 0xffff00ff, /* magenta */
  254. 0xbf8ca470, 0xff800000, /* maroon */
  255. 0xbd58e0b3, 0xff66cdaa, /* mediumaquamarine */
  256. 0x967dfd4f, 0xff0000cd, /* mediumblue */
  257. 0x056f5c58, 0xffba55d3, /* mediumorchid */
  258. 0x07556b71, 0xff9370db, /* mediumpurple */
  259. 0x5369b689, 0xff3cb371, /* mediumseagreen */
  260. 0x066be19e, 0xff7b68ee, /* mediumslateblue */
  261. 0x3256b281, 0xff00fa9a, /* mediumspringgreen */
  262. 0xc0ad9f4c, 0xff48d1cc, /* mediumturquoise */
  263. 0x628e63dd, 0xffc71585, /* mediumvioletred */
  264. 0x168eb32a, 0xff191970, /* midnightblue */
  265. 0x4306b960, 0xfff5fffa, /* mintcream */
  266. 0x4cbc0e6b, 0xffffe4e1, /* mistyrose */
  267. 0xd9447d59, 0xffffe4b5, /* moccasin */
  268. 0xe97218a6, 0xffffdead, /* navajowhite */
  269. 0x00337bb6, 0xff000080, /* navy */
  270. 0xadd2d33e, 0xfffdf5e6, /* oldlace */
  271. 0x064ee1db, 0xff808000, /* olive */
  272. 0x9e33a98a, 0xff6b8e23, /* olivedrab */
  273. 0xc3de262e, 0xffffa500, /* orange */
  274. 0x58bebba3, 0xffff4500, /* orangered */
  275. 0xc3def8a3, 0xffda70d6, /* orchid */
  276. 0x28cb4834, 0xffeee8aa, /* palegoldenrod */
  277. 0x3d9dd619, 0xff98fb98, /* palegreen */
  278. 0x74022737, 0xffafeeee, /* paleturquoise */
  279. 0x15e2ebc8, 0xffdb7093, /* palevioletred */
  280. 0x5fd898e2, 0xffffefd5, /* papayawhip */
  281. 0x93e1b776, 0xffffdab9, /* peachpuff */
  282. 0x003472f8, 0xffcd853f, /* peru */
  283. 0x00348176, 0xffffc0cb, /* pink */
  284. 0x00348d94, 0xffdda0dd, /* plum */
  285. 0xd036be93, 0xffb0e0e6, /* powderblue */
  286. 0xc5c507bc, 0xff800080, /* purple */
  287. 0xf381f607, 0xff663399, /* rebeccapurple */
  288. 0xa89d65b3, 0xffbc8f8f, /* rosybrown */
  289. 0xbd9413e1, 0xff4169e1, /* royalblue */
  290. 0xf456044f, 0xff8b4513, /* saddlebrown */
  291. 0xc9c6f66e, 0xfffa8072, /* salmon */
  292. 0x0bb131e1, 0xfff4a460, /* sandybrown */
  293. 0x34636c14, 0xff2e8b57, /* seagreen */
  294. 0x3507fb41, 0xfffff5ee, /* seashell */
  295. 0xca348772, 0xffa0522d, /* sienna */
  296. 0xca37d30d, 0xffc0c0c0, /* silver */
  297. 0x80da74fb, 0xff87ceeb, /* skyblue */
  298. 0x44a8dd73, 0xff6a5acd, /* slateblue */
  299. 0x44ab37f8, 0xff708090, /* slategrey */
  300. 0x0035f183, 0xfffffafa, /* snow */
  301. 0xd5440d16, 0xff00ff7f, /* springgreen */
  302. 0x3e1524a5, 0xff4682b4, /* steelblue */
  303. 0x0001bfa1, 0xffd2b48c, /* tan */
  304. 0x0036425c, 0xff008080, /* teal */
  305. 0xafc8858f, 0xffd8bfd8, /* thistle */
  306. 0xcc41600a, 0xffff6347, /* tomato */
  307. 0xfeea9b21, 0xff40e0d0, /* turquoise */
  308. 0xcf57947f, 0xffee82ee, /* violet */
  309. 0x06bdbae7, 0xfff5deb3, /* wheat */
  310. 0x10802ee6, 0xfff5f5f5, /* whitesmoke */
  311. 0xe1b5130f, 0xff9acd32 /* yellowgreen */
  312. };
  313. const uint32 hash = (uint32) colourName.trim().toLowerCase().hashCode();
  314. for (int i = 0; i < numElementsInArray (presets); i += 2)
  315. if (presets [i] == hash)
  316. return Colour (presets [i + 1]);
  317. return defaultColour;
  318. }
  319. } // namespace juce