break;
}
+ case TYPE_PIXMAP_ALPHABLEND:
case TYPE_PIXMAP_ALPHATEST:
case TYPE_PIXMAP: // pixmap
{
clearRegion(painter, style, local_style, ePyObject(), ePyObject(), pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid);
}
- painter.blit(pixmap, rect.topLeft(), rect, (type == TYPE_PIXMAP_ALPHATEST) ? gPainter::BT_ALPHATEST : 0);
+ painter.blit(pixmap, rect.topLeft(), rect, (type == TYPE_PIXMAP_ALPHATEST) ? gPainter::BT_ALPHATEST : (type == TYPE_PIXMAP_ALPHABLEND) ? gPainter::BT_ALPHABLEND : 0);
painter.clippop();
break;
}
public:
eListboxPythonMultiContent();
~eListboxPythonMultiContent();
- enum { TYPE_TEXT, TYPE_PROGRESS, TYPE_PIXMAP, TYPE_PIXMAP_ALPHATEST };
+ enum { TYPE_TEXT, TYPE_PROGRESS, TYPE_PIXMAP, TYPE_PIXMAP_ALPHATEST, TYPE_PIXMAP_ALPHABLEND };
void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
int currentCursorSelectable();
void setList(SWIG_PYOBJECT(ePyObject) list);
void eSubtitleWidget::setPixmap(ePtr<gPixmap> &pixmap, gRegion changed, eRect pixmap_dest)
{
m_pixmap = pixmap;
- m_pixmap_dest = pixmap_dest;
+ m_pixmap_dest = pixmap_dest; /* this is in a virtual 720x576 cage */
+ /* incoming "changed" regions are relative to the physical pixmap area, so they have to be scaled to the virtual pixmap area, then to the screen */
+ changed.scale(m_pixmap_dest.width(), 720, m_pixmap_dest.height(), 576);
+ changed.moveBy(ePoint(m_pixmap_dest.x(), m_pixmap_dest.y()));
+
changed.scale(size().width(), pixmap->size().width(), size().height(), pixmap->size().height());
invalidate(changed);
def MultiContentEntryPixmapAlphaTest(pos = (0, 0), size = (0, 0), png = None, backcolor = None, backcolor_sel = None):
return (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, pos[0], pos[1], size[0], size[1], png, backcolor, backcolor_sel)
+def MultiContentEntryPixmapAlphaBlend(pos = (0, 0), size = (0, 0), png = None, backcolor = None, backcolor_sel = None):
+ return (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHABLEND, pos[0], pos[1], size[0], size[1], png, backcolor, backcolor_sel)
+
def MultiContentEntryProgress(pos = (0, 0), size = (0, 0), percent = None, borderWidth = None, foreColor = None, backColor = None, backColorSelected = None):
return (eListboxPythonMultiContent.TYPE_PROGRESS, pos[0], pos[1], size[0], size[1], percent, borderWidth, foreColor, backColor, backColorSelected)
#ifdef DDVD_SUPPORTS_GET_BLIT_DESTINATION
ddvd_get_blit_destination(m_ddvdconfig, &x_offset, &y_offset, &width, &height);
eDebug("values got from ddvd: %d %d %d %d", x_offset, y_offset, width, height);
+ y_offset = -y_offset;
width -= x_offset * 2;
height -= y_offset * 2;
#endif