-/* TODO user-selectable colours */
-static const char * const colours[][3] = {
- /*primary bottom top */
- "#fa2e2e", "#c02323", "#ff3939", /* red */
- "#ff8c00", "#c46c00", "#ffa400", /* orange */
- "#ffd700", "#c4a500", "#ffed00", /* yellow */
- "#228b22", "#186318", "#27a027", /* green */
- "#4682b4", "#325c80", "#4c8dc3", /* blue */
- "#faf0e6", "#b2aaa3", "#fff9ee", /* white */
+/* Size of the traditional icon pixmap (multiple of 3) */
+#define ICON_SIZE 48
+
+/* Define to 1 to add highlights and delays for visually debugging redraws */
+#if X11_RENDER_DEBUG
+# include <unistd.h>
+#endif
+
+enum {
+ NUM_TILE_COLOURS = COLOUR_MAX*(TILE_MAX-1),
+ COLOUR_UI_GAMEBG = NUM_TILE_COLOURS,
+ COLOUR_UI_MAX
+};
+typedef Pixel colour_tab[COLOUR_UI_MAX];
+
+#define COLOURRES(name, index, def) { \
+ (name), (NULL), XtRPixel, sizeof (String), \
+ offsetof(struct { colour_tab t; }, t[index]), \
+ XtRString, (def) }
+
+static XtResource colour_resources[] = {
+ COLOURRES("colour0", 0, COLOUR0_PRIMARY),
+ COLOURRES("colour1", 1, COLOUR1_PRIMARY),
+ COLOURRES("colour2", 2, COLOUR2_PRIMARY),
+ COLOURRES("colour3", 3, COLOUR3_PRIMARY),
+ COLOURRES("colour4", 4, COLOUR4_PRIMARY),
+ COLOURRES("colour5", 5, COLOUR5_PRIMARY),
+
+ COLOURRES("colourDark0", 6, COLOUR0_DARK),
+ COLOURRES("colourDark1", 7, COLOUR1_DARK),
+ COLOURRES("colourDark2", 8, COLOUR2_DARK),
+ COLOURRES("colourDark3", 9, COLOUR3_DARK),
+ COLOURRES("colourDark4", 10, COLOUR4_DARK),
+ COLOURRES("colourDark5", 11, COLOUR5_DARK),
+
+ COLOURRES("colourLight0", 12, COLOUR0_LIGHT),
+ COLOURRES("colourLight1", 13, COLOUR1_LIGHT),
+ COLOURRES("colourLight2", 14, COLOUR2_LIGHT),
+ COLOURRES("colourLight3", 15, COLOUR3_LIGHT),
+ COLOURRES("colourLight4", 16, COLOUR4_LIGHT),
+ COLOURRES("colourLight5", 17, COLOUR5_LIGHT),
+
+ COLOURRES("gameBackground", COLOUR_UI_GAMEBG, "#181818")