rendered paste bodypackage org.ucam.ned.foxtrot.engine.renderer;
import com.trolltech.qt.gui.QGraphicsPixmapItem;
import com.trolltech.qt.gui.QGraphicsSceneMouseEvent;
import com.trolltech.qt.gui.QPixmap;
import com.trolltech.qt.gui.QColor;
import org.ucam.ned.foxtrot.components.*;
public class FoxtrotButton extends QGraphicsPixmapItem
{
QPixmap m_depressedImage;
QPixmap m_defaultImage;
Button m_button;
public FoxtrotButton(Button b)
{
m_button = b;
m_defaultImage = new QPixmap(b.getDefaultImage().getSource());
m_depressedImage = new QPixmap(b.getDepressedImage().getSource());
setAlpha(m_defaultImage, b.getOpacity());
setAlpha(m_depressedImage, b.getOpacity());
setPixmap(m_defaultImage);
setPos(b.getX(), b.getY());
}
@Override
public void mousePressEvent(QGraphicsSceneMouseEvent arg0)
{
setPixmap(m_depressedImage);
m_button.fireButton();
}
@Override
public void mouseReleaseEvent(QGraphicsSceneMouseEvent arg0)
{
setPixmap(m_defaultImage);
}
private void setAlpha(QPixmap pixmap, int opacity)
{
QPixmap alphaMask = new QPixmap(pixmap.width(), pixmap.height());
opacity = (opacity * 255) / 100;
alphaMask.fill(new QColor(opacity | opacity << 8 | opacity << 16));
// and apply it
pixmap.setAlphaChannel(alphaMask);
}
}