示例#1
0
/**
 * \brief Calls the on_animation_finished() method of a Lua sprite.
 *
 * Does nothing if the method is not defined.
 *
 * \param sprite A sprite whose animation has just finished.
 * \param animation Name of the animation finished.
 */
void LuaContext::sprite_on_animation_finished(Sprite& sprite,
    const std::string& animation) {

  if (!userdata_has_field(sprite, "on_animation_finished")) {
    return;
  }

  push_sprite(l, sprite);
  on_animation_finished(animation);
  lua_pop(l, 1);
}
示例#2
0
NCoverWidgetPopup::NCoverWidgetPopup(QWidget *parent) : QWidget(parent)
{
    m_pixmapLabel = new QLabel;
    m_pixmapLabel->setStyleSheet("border: 1px solid white;");

    QHBoxLayout *hLayout = new QHBoxLayout;
    hLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding));
    hLayout->addWidget(m_pixmapLabel);
    hLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding));

    QVBoxLayout *vLayout = new QVBoxLayout;
    vLayout->setContentsMargins(MARGIN, MARGIN, MARGIN, MARGIN);
    vLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding));
    vLayout->addLayout(hLayout);
    vLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding));

    QWidget *container = new QWidget();
    QVBoxLayout *cLayout = new QVBoxLayout;
    cLayout->addWidget(container);
    cLayout->setContentsMargins(0, 0, 0, 0);
    container->setLayout(vLayout);
    container->setStyleSheet("background-color: rgba(0, 0, 0, 150);");

    this->setLayout(cLayout);

    m_effect = new QGraphicsOpacityEffect(this);
    m_effect->setOpacity(1.0);
    setGraphicsEffect(m_effect);

    m_animation = new QPropertyAnimation(m_effect, "opacity", this);
    connect(m_animation, SIGNAL(finished()), this, SLOT(on_animation_finished()));
    m_animation->setDuration(150);
    m_animation->setEasingCurve(QEasingCurve::OutQuad);
    m_animation->setStartValue(0.0);
    m_animation->setEndValue(1.0);

    QWidget::window()->installEventFilter(this);
}