- int color = PyInt_AsLong(pforeColor);
- painter.setForegroundColor(gRGB(color));
- }/* if we have a local foreground color set, use that. */
- else if (local_style && local_style->m_foreground_color_set)
- painter.setForegroundColor(local_style->m_foreground_color);
+ if (pforeColor)
+ {
+ unsigned int color = PyInt_AsUnsignedLongMask(pforeColor);
+ painter.setForegroundColor(gRGB(color));
+ }
+ /* if we have a local foreground color set, use that. */
+ else if (local_style && local_style->m_foreground_color_set)
+ painter.setForegroundColor(local_style->m_foreground_color);
+ }
+}
+
+static ePyObject lookupColor(ePyObject color, ePyObject data)
+{
+ if (color == Py_None)
+ return ePyObject();
+
+ if ((!color) && (!data))
+ return color;
+
+ unsigned int icolor = PyInt_AsUnsignedLongMask(color);
+
+ /* check if we have the "magic" template color */
+ if ((icolor & 0xFF000000) == 0xFF000000)
+ {
+ int index = icolor & 0xFFFFFF;
+ eDebug("[eListboxPythonMultiContent] template color index: %d", index);
+ return PyTuple_GetItem(data, index);
+ }
+
+ if (color == Py_None)
+ return ePyObject();
+
+ return color;