+
+ eRect rect(x+bwidth, y+bwidth, width-bwidth*2, height-bwidth*2);
+ gRegion rc(rect);
+ rc &= itemregion;
+ painter.clip(rc);
+ itemregion -= rc;
+ if (selected && sel_clip.valid())
+ {
+ painter.clip(rc-sel_clip);
+ if (pbackColor)
+ {
+ int color = PyInt_AsLong(pbackColor);
+ painter.setBackgroundColor(gRGB(color));
+ }
+ else
+ style.setStyle(painter, eWindowStyle::styleListboxNormal);
+ painter.clear();
+ painter.clippop();
+ painter.clip(rc&sel_clip);
+ style.setStyle(painter, eWindowStyle::styleListboxSelected);
+ if (pbackColorSelected)
+ {
+ int color = PyInt_AsLong(pbackColorSelected);
+ painter.setBackgroundColor(gRGB(color));
+ }
+ painter.clear();
+ painter.clippop();
+ }
+ else
+ {
+ if (selected)
+ {
+ style.setStyle(painter, eWindowStyle::styleListboxSelected);
+ if (pbackColorSelected)
+ {
+ int color = PyInt_AsLong(pbackColorSelected);
+ painter.setBackgroundColor(gRGB(color));
+ }
+ }
+ else
+ {
+ style.setStyle(painter, eWindowStyle::styleListboxNormal);
+ if (pbackColor)
+ {
+ int color = PyInt_AsLong(pbackColor);
+ painter.setBackgroundColor(gRGB(color));
+ }
+ }
+ painter.clear();
+ }
+
+ if (pforeColor)
+ {
+ int color = PyInt_AsLong(pforeColor);
+ painter.setForegroundColor(gRGB(color));
+ }
+