示例#1
0
void
KdmRect::drawContents( QPainter *p, const QRect &r )
{
    // choose the correct rect class
    RectStruct::RectClass *rClass = &rect.normal;
    if (state == Sactive && rect.active.present)
        rClass = &rect.active;
    if (state == Sprelight && rect.prelight.present)
        rClass = &rect.prelight;

    if (rClass->alpha <= 0 || !rClass->color.isValid())
        return;

    if (rClass->alpha == 1)
        p->fillRect( area, QBrush( rClass->color ) );
    else {
        QRect backRect = r;
        backRect.moveBy( area.x(), area.y() );
        QPixmap backPixmap( backRect.size() );
        bitBlt( &backPixmap, QPoint( 0, 0 ), p->device(), backRect );
        QImage backImage = backPixmap.convertToImage();
        KImageEffect::blend( rClass->color, backImage, rClass->alpha );
        p->drawImage( backRect.x(), backRect.y(), backImage );
        //  area.moveBy(1,1);
    }
}
示例#2
0
void
KdmRect::drawContents( TQPainter *p, const TQRect &r )
{
	// choose the correct rect class
	RectStruct::RectClass *rClass = &rect.normal;
	if (state == Sactive && rect.active.present) {
		rClass = &rect.active;
	}
	if (state == Sprelight && rect.prelight.present) {
		rClass = &rect.prelight;
	}

	if (rClass->alpha <= 0 || !rClass->color.isValid()) {
		return;
	}

	if (rClass->alpha == 1) {
		p->fillRect( area, TQBrush( rClass->color ) );
	}
	else {
// 		if (!argb_visual_available) {
			// Software blend only (no compositing support)
			TQRect backRect = r;
			backRect.moveBy( area.x(), area.y() );
			TQPixmap backPixmap( backRect.size() );
			bitBlt( &backPixmap, TQPoint( 0, 0 ), p->device(), backRect );
			TQImage backImage = backPixmap.convertToImage();
			KImageEffect::blend( rClass->color, backImage, rClass->alpha );
			p->drawImage( backRect.x(), backRect.y(), backImage );
			//  area.moveBy(1,1);
// 		}
// 		else {
// 			// We have compositing support!
// 		}
	}
}