Esempio n. 1
0
void RGBAudio::calculateColors(int barsHeight)
{
    if (barsHeight > 0)
    {
        m_barColors.clear();
        if (endColor() == QColor())
        {
            for (int i = 0; i < barsHeight; i++)
                m_barColors.append(startColor().rgb());
        }
        else
        {
            int crDelta = (endColor().red() - startColor().red()) / (barsHeight - 1);
            int cgDelta = (endColor().green() - startColor().green()) / (barsHeight - 1);
            int cbDelta = (endColor().blue() - startColor().blue()) / (barsHeight - 1);
            QColor pixelColor = startColor();

            for (int i = 0; i < barsHeight; i++)
            {
                m_barColors.append(pixelColor.rgb());
                pixelColor = QColor(pixelColor.red() + crDelta,
                                    pixelColor.green() + cgDelta,
                                    pixelColor.blue() + cbDelta);
            }
        }
    }
}
void FractalCreator::drawFractal() {

	RGB startColor(0, 0, 0);
	RGB endColor(0, 0, 255);
	RGB colorDiff = endColor - startColor;

	for (int y = 0; y < m_height; y++) {
		for (int x = 0; x < m_width; x++) {

			uint8_t red = 0;
			uint8_t green = 0;
			uint8_t blue = 0;

			int iterations = m_fractal[y * m_width + x];

			if (iterations != Mandelbrot::MAX_ITERATIONS) {

				double hue = 0.0;

				for (int i = 0; i <= iterations; i++) {
					hue += ((double) m_histogram[i]) / m_total;
				}

				red = startColor.r + colorDiff.r*hue;
				green = startColor.g + colorDiff.g*hue;
				blue = startColor.b + colorDiff.b*hue;
			}

			m_bitmap.setPixel(x, y, red, green, blue);

		}
	}

}
Esempio n. 3
0
void ParticlePerformTest4::doTest()
{
    auto s = Director::getInstance()->getWinSize();
    auto particleSystem = (ParticleSystem*) getChildByTag(kTagParticleSystem);

    // duration
    particleSystem->setDuration(-1);

    // gravity
    particleSystem->setGravity(Vec2(0,-90));

    // angle
    particleSystem->setAngle(90);
    particleSystem->setAngleVar(0);

    // radial
    particleSystem->setRadialAccel(0);
    particleSystem->setRadialAccelVar(0);

    // speed of particles
    particleSystem->setSpeed(180);
    particleSystem->setSpeedVar(50);

    // emitter position
    particleSystem->setPosition(Vec2(s.width/2, 100));
    particleSystem->setPosVar(Vec2(s.width/2,0));

    // life of particles
    particleSystem->setLife(2.0f);
    particleSystem->setLifeVar(1);

    // emits per frame
    particleSystem->setEmissionRate(particleSystem->getTotalParticles() / particleSystem->getLife());

    // color of particles
    Color4F startColor(0.5f, 0.5f, 0.5f, 1.0f);
    particleSystem->setStartColor(startColor);

    Color4F startColorVar(0.5f, 0.5f, 0.5f, 1.0f);
    particleSystem->setStartColorVar(startColorVar);

    Color4F endColor(0.1f, 0.1f, 0.1f, 0.2f);
    particleSystem->setEndColor(endColor);

    Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f);   
    particleSystem->setEndColorVar(endColorVar);

    // size, in pixels
    particleSystem->setEndSize(64.0f);
    particleSystem->setStartSize(64.0f);
    particleSystem->setEndSizeVar(0);
    particleSystem->setStartSizeVar(0);

    // additive
    particleSystem->setBlendAdditive(false);

}
Esempio n. 4
0
bool RGBMatrix::saveXML(QXmlStreamWriter *doc)
{
    Q_ASSERT(doc != NULL);

    /* Function tag */
    doc->writeStartElement(KXMLQLCFunction);

    /* Common attributes */
    saveXMLCommon(doc);

    /* Speeds */
    saveXMLSpeed(doc);

    /* Direction */
    saveXMLDirection(doc);

    /* Run order */
    saveXMLRunOrder(doc);

    /* Algorithm */
    if (m_algorithm != NULL)
        m_algorithm->saveXML(doc);

    /* Dimmer Control */
    doc->writeTextElement(KXMLQLCRGBMatrixDimmerControl, QString::number(dimmerControl()));

    /* Start Color */
    doc->writeTextElement(KXMLQLCRGBMatrixStartColor, QString::number(startColor().rgb()));

    /* End Color */
    if (endColor().isValid())
    {
        doc->writeTextElement(KXMLQLCRGBMatrixEndColor, QString::number(endColor().rgb()));
    }

    /* Fixture Group */
    doc->writeTextElement(KXMLQLCRGBMatrixFixtureGroup, QString::number(fixtureGroup()));

    /* Properties */
    QHashIterator<QString, QString> it(m_properties);
    while(it.hasNext())
    {
        it.next();
        doc->writeStartElement(KXMLQLCRGBMatrixProperty);
        doc->writeAttribute(KXMLQLCRGBMatrixPropertyName, it.key());
        doc->writeAttribute(KXMLQLCRGBMatrixPropertyValue, it.value());
        doc->writeEndElement();
    }

    /* End the <Function> tag */
    doc->writeEndElement();

    return true;
}
Esempio n. 5
0
bool RGBMatrix::saveXML(QDomDocument* doc, QDomElement* wksp_root)
{
    QDomElement root;
    QDomElement tag;
    QDomText text;
    QString str;

    Q_ASSERT(doc != NULL);
    Q_ASSERT(wksp_root != NULL);

    /* Function tag */
    root = doc->createElement(KXMLQLCFunction);
    wksp_root->appendChild(root);

    /* Common attributes */
    saveXMLCommon(&root);

    /* Speeds */
    saveXMLSpeed(doc, &root);

    /* Direction */
    saveXMLDirection(doc, &root);

    /* Run order */
    saveXMLRunOrder(doc, &root);

    /* Algorithm */
    if (m_algorithm != NULL)
        m_algorithm->saveXML(doc, &root);

    /* Start Color */
    tag = doc->createElement(KXMLQLCRGBMatrixStartColor);
    root.appendChild(tag);
    text = doc->createTextNode(QString::number(startColor().rgb()));
    tag.appendChild(text);

    /* End Color */
    if (endColor().isValid())
    {
        tag = doc->createElement(KXMLQLCRGBMatrixEndColor);
        root.appendChild(tag);
        text = doc->createTextNode(QString::number(endColor().rgb()));
        tag.appendChild(text);
    }

    /* Fixture Group */
    tag = doc->createElement(KXMLQLCRGBMatrixFixtureGroup);
    root.appendChild(tag);
    text = doc->createTextNode(QString::number(fixtureGroup()));
    tag.appendChild(text);

    return true;
}
Esempio n. 6
0
// This function is a slot activated by clientsocket when the image change is required.
void ServerNForm::slotGUIupdateStopButtonImage()
{
	QColor startColor(192,192,192);
	QColor stopColor_rl03(0,255,0);   // button up
	QColor stopColor_rl02(0,0,255);   // button down
	QColor stopColor_rl01(255,255,0); // Initializing
	QColor stopColor_rl00(255,0,0);   // Emergency

	static int prv_runlevel=3, prv_start=TRUE;
	if( (prv_start) && !(UI2Madata.flag01&BASIC_START) ) {
		startButton->setPixmap(pm_start);
		setPaletteBackgroundColor_ksy(A_startButton, startColor);
	} else if( !(prv_start) && (UI2Madata.flag01&BASIC_START) )	{
		if( Ma2UIdata.runlevel == 0) {
				startButton->setPixmap(pm_stop00);
				setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl00);
		} else if( Ma2UIdata.runlevel == 1) {
				startButton->setPixmap(pm_stop01);
				setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl01);
		} else if( Ma2UIdata.runlevel == 2) {
				startButton->setPixmap(pm_stop02);
				setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl02);
		} else if( Ma2UIdata.runlevel == 3) {
				startButton->setPixmap(pm_stop03);
				setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl03);
		}
	} else if( (prv_start) && (UI2Madata.flag01&BASIC_START) ) {
		if(prv_runlevel != 0 && Ma2UIdata.runlevel == 0) {
			startButton->setPixmap(pm_stop00);
			setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl00);
		} else if(prv_runlevel != 1 && Ma2UIdata.runlevel == 1) {
			startButton->setPixmap(pm_stop01);
			setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl01);
		} else if(prv_runlevel != 2 && Ma2UIdata.runlevel == 2) {
			startButton->setPixmap(pm_stop02);
			setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl02);
		}	else if(prv_runlevel != 3 && Ma2UIdata.runlevel == 3) {
			startButton->setPixmap(pm_stop03);
			setPaletteBackgroundColor_ksy(A_startButton, stopColor_rl03);
		}
	}
	prv_start = UI2Madata.flag01&BASIC_START;
	prv_runlevel = Ma2UIdata.runlevel;
}
Esempio n. 7
0
void TestScene::emit()
{
    auto _emitter = ParticleSystemQuad::createWithTotalParticles(100);
    addChild(_emitter, 10);

    _emitter->setTexture(Director::getInstance()->getTextureCache()->addImage("images/test_lizi.png"));
    _emitter->setDuration(1.f);

    // gravity
    _emitter->setGravity(Vec2::ZERO);

    // angle
    _emitter->setAngle(90);
    _emitter->setAngleVar(0);

    // speed of particles
    _emitter->setSpeed(260);
    _emitter->setSpeedVar(0);

    // radial
    _emitter->setRadialAccel(-260);
    _emitter->setRadialAccelVar(0);

    // tagential
    _emitter->setTangentialAccel(00);
    _emitter->setTangentialAccelVar(0);

    // emitter position
    //    _emitter->setPosition( Vec2(160,240) );
    _emitter->setPosVar({2,10});

    // life of particles
    _emitter->setLife(1);
    _emitter->setLifeVar(0);

    // spin of particles
    _emitter->setStartSpin(10000);
    _emitter->setStartSizeVar(360);
    _emitter->setEndSpin(0);
    _emitter->setEndSpinVar(360);

    // color of particles
    Color4F startColor(0.f, 0.5f, 0.f, 1.0f);
    _emitter->setStartColor(startColor);

    Color4F startColorVar(0.f, 0.1f, 0.f, 1.0f);
    _emitter->setStartColorVar(startColorVar);

    Color4F endColor(0.1f, 0.5f, 0.1f, 1.0f);
    _emitter->setEndColor(endColor);

    Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f);
    _emitter->setEndColorVar(endColorVar);

    // size, in pixels
    _emitter->setStartSize(5.0f);
    _emitter->setStartSizeVar(1.0f);
    _emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);

    // emits per second
    _emitter->setEmissionRate(_emitter->getTotalParticles()/_emitter->getLife());

    // additive
    _emitter->setBlendAdditive(true);
    //addChild(_emitter);
    _emitter->setPosition(genPos({0.5,0.5}));
    //    _emitter->runAction(RotateBy::create(10.f, 1000));
}
Esempio n. 8
0
ParticleSystemQuad* BaseScene::createComplexParticle(int type){
	if (type == 0){
		_emitter = ParticleSystemQuad::createWithTotalParticles(50);

		addChild(_emitter, 10);

		_emitter->setTexture(Director::getInstance()->getTextureCache()->addImage("Images/stars.png"));

		_emitter->setDuration(-1);

		// gravity
		_emitter->setGravity(Vec2::ZERO);

		// angle
		_emitter->setAngle(90);
		_emitter->setAngleVar(360);

		// speed of particles
		_emitter->setSpeed(160);
		_emitter->setSpeedVar(20);

		// radial
		_emitter->setRadialAccel(-120);
		_emitter->setRadialAccelVar(0);

		// tagential
		_emitter->setTangentialAccel(30);
		_emitter->setTangentialAccelVar(0);

		// emitter position
		_emitter->setPosition(Vec2(160, 240));
		_emitter->setPosVar(Vec2::ZERO);

		// life of particles
		_emitter->setLife(4);
		_emitter->setLifeVar(1);

		// spin of particles
		_emitter->setStartSpin(0);
		_emitter->setStartSizeVar(0);
		_emitter->setEndSpin(0);
		_emitter->setEndSpinVar(0);

		// color of particles
		Color4F startColor(0.5f, 0.5f, 0.5f, 1.0f);
		_emitter->setStartColor(startColor);

		Color4F startColorVar(0.5f, 0.5f, 0.5f, 1.0f);
		_emitter->setStartColorVar(startColorVar);

		Color4F endColor(0.1f, 0.1f, 0.1f, 0.2f);
		_emitter->setEndColor(endColor);

		Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f);
		_emitter->setEndColorVar(endColorVar);

		// size, in pixels
		_emitter->setStartSize(80.0f);
		_emitter->setStartSizeVar(40.0f);
		_emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);

		// emits per second
		_emitter->setEmissionRate(_emitter->getTotalParticles() / _emitter->getLife());

		// additive
		_emitter->setBlendAdditive(true);
	}
	else if (type == 1){
		_emitter = ParticleSystemQuad::createWithTotalParticles(300);
		_emitter->retain();

		addChild(_emitter, 10);
		////_emitter->release();    // win32 : Remove this line
		_emitter->setTexture(Director::getInstance()->getTextureCache()->addImage("Images/stars.png"));

		// duration
		_emitter->setDuration(-1);

		// gravity
		_emitter->setGravity(Vec2::ZERO);

		// angle
		_emitter->setAngle(90);
		_emitter->setAngleVar(360);

		// speed of particles
		_emitter->setSpeed(160);
		_emitter->setSpeedVar(20);

		// radial
		_emitter->setRadialAccel(-120);
		_emitter->setRadialAccelVar(0);

		// tagential
		_emitter->setTangentialAccel(30);
		_emitter->setTangentialAccelVar(0);

		// emitter position
		_emitter->setPosition(Vec2(160, 240));
		_emitter->setPosVar(Vec2::ZERO);

		// life of particles
		_emitter->setLife(3);
		_emitter->setLifeVar(1);

		// spin of particles
		_emitter->setStartSpin(0);
		_emitter->setStartSpinVar(0);
		_emitter->setEndSpin(0);
		_emitter->setEndSpinVar(2000);

		// color of particles
		Color4F startColor(0.5f, 0.5f, 0.5f, 1.0f);
		_emitter->setStartColor(startColor);

		Color4F startColorVar(0.5f, 0.5f, 0.5f, 1.0f);
		_emitter->setStartColorVar(startColorVar);

		Color4F endColor(0.1f, 0.1f, 0.1f, 0.2f);
		_emitter->setEndColor(endColor);

		Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f);
		_emitter->setEndColorVar(endColorVar);

		// size, in pixels
		_emitter->setStartSize(30.0f);
		_emitter->setStartSizeVar(00.0f);
		_emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);

		// emits per second
		_emitter->setEmissionRate(_emitter->getTotalParticles() / _emitter->getLife());

		// additive
		_emitter->setBlendAdditive(false);
	}

	return _emitter;
}
Esempio n. 9
0
void GameSceneQuattro::addPartcleStella(Vec2 posizione) {

	        _boom = ParticleSystemQuad::createWithTotalParticles(900);
	        _boom->setTexture(Director::getInstance()->getTextureCache()->addImage("gugut_01.png"));

	        //The code below we can use both in 2.x and 3.x
	        _boom->setDuration(-1);
	        _boom->setGravity(Point(0, -240));  // in Cocos2d-x-2.x CCPoint(0, -240) is used
	        _boom->setAngle(90);
	        _boom->setAngleVar(360);
	        _boom->setRadialAccel(50);
	        _boom->setRadialAccelVar(0);
	        _boom->setTangentialAccel(30);
	        _boom->setTangentialAccelVar(0);
	        _boom->setPosition(Point(_visibleSize.width / 2 , _visibleSize.width / 2 ));
	        _boom->setPosVar(Point(400, 0));
	        _boom->setLife(4);
	        _boom->setLifeVar(2);
	        _boom->setStartSpin(30);
	        _boom->setStartSpinVar(60);
	        _boom->setEndSpin(60);
	        _boom->setEndSpinVar(60);
	        _boom->setStartColor(Color4F(255,255,255,1));
	        _boom->setStartColorVar(Color4F(0,0,0,0));
	        _boom->setEndColor(Color4F(255, 255, 255, 1));
	        _boom->setEndColorVar(Color4F(0, 0, 0, 0));
	        _boom->setStartSize(30);
	        _boom->setStartSizeVar(0);
	        _boom->setEndSize(20.0f);
	        _boom->setEndSizeVar(0);
	        _boom->setEmissionRate(100);
	        _boom->stopSystem();
	        addChild(_boom,10);



	       _emitter = ParticleSystemQuad::createWithTotalParticles(300);
	        _emitter->retain();

	        addChild(_emitter, 15);
	        ////_emitter->release();    // win32 : Remove this line
	        _emitter->setTexture( Director::getInstance()->getTextureCache()->addImage("star.png") );

	        // duration
	        _emitter->setDuration(-1);

	        // gravity
	        _emitter->setGravity(Vec2::ZERO);

	        // angle
	        _emitter->setAngle(90);
	        _emitter->setAngleVar(360);

	        // speed of particles
	        _emitter->setSpeed(160);
	        _emitter->setSpeedVar(20);

	        // radial
	        _emitter->setRadialAccel(-120);
	        _emitter->setRadialAccelVar(0);

	        // tagential
	        _emitter->setTangentialAccel(30);
	        _emitter->setTangentialAccelVar(0);

	        // emitter position
	        _emitter->setPosition( Vec2(160,240) );
	        _emitter->setPosVar(Vec2::ZERO);

	        // life of particles
	        _emitter->setLife(3);
	        _emitter->setLifeVar(1);

	        // spin of particles
	        _emitter->setStartSpin(0);
	        _emitter->setStartSpinVar(0);
	        _emitter->setEndSpin(0);
	        _emitter->setEndSpinVar(2000);

	        // color of particles
	        Color4F startColor(0.5f, 0.5f, 0.5f, 1.0f);
	        _emitter->setStartColor(startColor);

	        Color4F startColorVar(0.5f, 0.5f, 0.5f, 1.0f);
	        _emitter->setStartColorVar(startColorVar);

	        Color4F endColor(0.1f, 0.1f, 0.1f, 0.2f);
	        _emitter->setEndColor(endColor);

	        Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f);
	        _emitter->setEndColorVar(endColorVar);

	        // size, in pixels
	        _emitter->setStartSize(30.0f);
	        _emitter->setStartSizeVar(00.0f);
	        _emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);

	        // emits per second
	        _emitter->setEmissionRate(_emitter->getTotalParticles()/_emitter->getLife());

	        // additive
	        _emitter->setBlendAdditive(false);
	        _emitter->setPosition(Point(_visibleSize.width / 2 , _visibleSize.height / 2 ));
	        _emitter->stopSystem();




}
Esempio n. 10
0
bool RGBMatrix::saveXML(QDomDocument* doc, QDomElement* wksp_root)
{
    QDomElement root;
    QDomElement tag;
    QDomText text;
    QString str;

    Q_ASSERT(doc != NULL);
    Q_ASSERT(wksp_root != NULL);

    /* Function tag */
    root = doc->createElement(KXMLQLCFunction);
    wksp_root->appendChild(root);

    /* Common attributes */
    saveXMLCommon(&root);

    /* Speeds */
    saveXMLSpeed(doc, &root);

    /* Direction */
    saveXMLDirection(doc, &root);

    /* Run order */
    saveXMLRunOrder(doc, &root);

    /* Algorithm */
    if (m_algorithm != NULL)
        m_algorithm->saveXML(doc, &root);

    /* Dimmer Control */
    tag = doc->createElement(KXMLQLCRGBMatrixDimmerControl);
    root.appendChild(tag);
    text = doc->createTextNode(QString::number(dimmerControl()));
    tag.appendChild(text);

    /* Start Color */
    tag = doc->createElement(KXMLQLCRGBMatrixStartColor);
    root.appendChild(tag);
    text = doc->createTextNode(QString::number(startColor().rgb()));
    tag.appendChild(text);

    /* End Color */
    if (endColor().isValid())
    {
        tag = doc->createElement(KXMLQLCRGBMatrixEndColor);
        root.appendChild(tag);
        text = doc->createTextNode(QString::number(endColor().rgb()));
        tag.appendChild(text);
    }

    /* Fixture Group */
    tag = doc->createElement(KXMLQLCRGBMatrixFixtureGroup);
    root.appendChild(tag);
    text = doc->createTextNode(QString::number(fixtureGroup()));
    tag.appendChild(text);

    /* Properties */
    QHashIterator<QString, QString> it(m_properties);
    while(it.hasNext())
    {
        it.next();
        tag = doc->createElement(KXMLQLCRGBMatrixProperty);
        tag.setAttribute(KXMLQLCRGBMatrixPropertyName, it.key());
        tag.setAttribute(KXMLQLCRGBMatrixPropertyValue, it.value());
        root.appendChild(tag);
    }

    return true;
}
void FloatingEffectManager::toast_cure(const cocos2d::Vec2& srcPos, const cocos2d::Vec2& desPos, DDElementType elementType, int level)
{

    const float speed = 300;
    float len = (desPos-srcPos).length();
    if (len == 0) {
        return;
    }
    auto _emitter = ParticleSystemQuad::createWithTotalParticles(500);
    _emitter->setAutoRemoveOnFinish(true);
    _layer->addChild(_emitter, 10);

    _emitter->setTexture(Director::getInstance()->getTextureCache()->addImage("images/test_lizi.png"));
    _emitter->setDuration(len/speed);

    // gravity
    _emitter->setGravity(Vec2::ZERO);

    // angle
    _emitter->setAngle(vector2angel(desPos-srcPos));
    _emitter->setAngleVar(0.5f* std::atan(DDConfig::battleCubeWidth()/len) * 180.f/3.1415926f);

    // speed of particles
    _emitter->setSpeed(speed);
    _emitter->setSpeedVar(0);

    // radial
    _emitter->setRadialAccel(-(speed/(2*len/speed)));
    _emitter->setRadialAccelVar(0);

    // tagential
    _emitter->setTangentialAccel(00);
    _emitter->setTangentialAccelVar(0);

    // emitter position
    //    _emitter->setPosition( Vec2(160,240) );
    _emitter->setPosVar({0,0});

    // life of particles
    _emitter->setLife(2*len/speed);
    _emitter->setLifeVar(0);

    // spin of particles
    _emitter->setStartSpin(720);
    _emitter->setStartSizeVar(360);
    _emitter->setEndSpin(0);
    _emitter->setEndSpinVar(360);

    // color of particles
    Color4F startColor(0.f, 0.5f, 0.f, 0.8f);
    _emitter->setStartColor(startColor);

    Color4F startColorVar(0.f, 0.1f, 0.f, 0.1f);
    _emitter->setStartColorVar(startColorVar);

    Color4F endColor(0.1f, 0.5f, 0.1f, 0.8f);
    _emitter->setEndColor(endColor);

    Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.1f);
    _emitter->setEndColorVar(endColorVar);

    // size, in pixels
    _emitter->setStartSize(3.0f);
    _emitter->setStartSizeVar(1.0f);
    _emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);

    // emits per second
    _emitter->setEmissionRate(_emitter->getTotalParticles()/_emitter->getLife());

    // additive
    _emitter->setBlendAdditive(true);

    _emitter->setPosition(srcPos);
}
Esempio n. 12
0
void PlexyDayWidget::paintFrontView(QPainter *painter, const QRectF &rect) {
  if (!painter->isActive()) {
    return;
  }
  if (isObscured()) {
    return;
  }

  /* Painter settings */
  painter->setRenderHint(QPainter::Antialiasing, true);
  painter->setRenderHint(QPainter::TextAntialiasing, true);
  painter->setRenderHint(QPainter::HighQualityAntialiasing, true);

  /* Draw the background. */
  float headerHight = 64.0;
#ifdef Q_WS_QPA
  headerHight = 64.0 * 2;
#endif

  QPainterPath backgroundPath;
  backgroundPath.addRect(QRectF(0.0, headerHight, rect.width(), rect.height()));

  QLinearGradient linearGrad(QPointF(0, 0), QPointF(0.0, rect.height()));

  linearGrad.setColorAt(1, QColor(189, 191, 196));
  linearGrad.setColorAt(0, QColor(231, 235, 238));

  painter->fillPath(backgroundPath, linearGrad);

  QPen pen(QColor(98, 101, 108), 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
  painter->setPen(pen);
  painter->drawPath(backgroundPath);

  /* Draw the top header date box */

  QRectF titleCornerRect = QRect(0.0, 0.0, headerHight, headerHight);

  QLinearGradient titleCornerGrad(QPointF(0, 0),
                                  QPointF(0.0, titleCornerRect.height()));

  titleCornerGrad.setColorAt(0, QColor(81, 168, 201));
  titleCornerGrad.setColorAt(1, QColor(21, 108, 169));

  painter->fillRect(titleCornerRect, titleCornerGrad);

  QPointF start(0.0, 0.0);
  QPointF end(0.0, titleCornerRect.height());

  QList<QColor> colors;
  QColor startColor(235, 238, 241);
  QColor endColor(220, 225, 228);

  colors << startColor << endColor;

  QLinearGradient titleHeaderGrad = genGrad(start, end, colors);

  QRectF titleHeaderRect(titleCornerRect.width(), 0.0,
                         rect.width() - titleCornerRect.width(),
                         titleCornerRect.height());

  drawBox(painter, titleHeaderGrad, rect, titleHeaderRect);
}
Esempio n. 13
0
void GroupBoxWidget::paintEvent(QPaintEvent * /*event*/)
{
    // skip the rest of the painting if no text
    if (m_titleText.isEmpty())
        return;

    // draw hovering
    QPainter p(this);
    if (m_hoverValue > 0 && (m_checkValue == 0.0 || m_checkValue == 1.0)) {
        QRadialGradient rg = m_checkValue == 1.0 ? QRadialGradient(0.5, 0.2, 0.8) : QRadialGradient(0.5, 1.0, 1.5);
        QColor startColor(Qt::white);
        startColor.setAlpha((int)(255.0 * m_hoverValue));
        rg.setColorAt(0.0, startColor);
        rg.setColorAt(1.0, Qt::transparent);
        rg.setColorAt(0.0, startColor);
        rg.setColorAt(1.0, Qt::transparent);
        rg.setCoordinateMode(QGradient::ObjectBoundingMode);
        p.fillRect(0, 0, width(), height() - m_checkValue * (height() - 12) , rg);
    }

    // draw left/right lines
    if (m_borderFlags & 0x0001)
        p.fillRect(0, 0, 1, height(), QColor(230, 230, 230));
    if (m_borderFlags & 0x0002)
        p.fillRect(width() - 1, 0, 1, height(), Qt::white);

    // precalc text position and move painter
    QStyle * ss = m_checkable ? style() : 0;
    int indW = ss ? ss->pixelMetric(QStyle::PM_IndicatorWidth, 0, 0) : 0;
    int indH = ss ? ss->pixelMetric(QStyle::PM_IndicatorHeight, 0, 0) : 0;
    p.save();
    p.setFont(m_titleFont);
    QFontMetrics metrics(m_titleFont);
    QRect textRect = metrics.boundingRect(m_titleText);
//    int textHeight = textRect.height();
    int dx = 0;
    if (m_checkValue < 1.0) {
        qreal x1 = -textRect.top() + 2,
              x2 = (width() - textRect.width() - indW - 4) / 2;
        qreal y1 = height() - 2, //height() + textRect.width()) / 2,
              y2 = -textRect.top();
        p.translate(x1 + m_checkValue * (x2 - x1), y1 + m_checkValue * (y2 - y1));
        p.rotate(m_checkValue * 90 - 90);
    } else
        p.translate((width() - textRect.width() - indW - 4) / 2, -textRect.top());

    // draw checkbox indicator
    if (m_checkable && indW && indH) {
        QStyleOptionButton opt;
        opt.state = QStyle::State_Enabled;
        int styleOffset = (textRect.height() - indH) / 2;
        opt.rect = QRect(0, -indH + 4 - styleOffset, indW, indH);
        dx = indW + 4;
        opt.state |= m_checked ? QStyle::State_On : QStyle::State_Off;
        if (underMouse())
            opt.state |= QStyle::State_MouseOver;
        //p.setRenderHints(QPainter::Antialiasing);
        style()->drawPrimitive(QStyle::PE_IndicatorCheckBox, &opt, &p, this);
    }

    // draw text
    p.drawText(dx, 0, m_titleText);
    p.restore();
}
Esempio n. 14
0
void Ui::Ncurses::writeInColor(const std::string &string, ColorCombination combination)
{
  startColor(combination);
  printw(string.c_str());
  startColor(DEFAULT_COLOR);
}
Esempio n. 15
0
Ui::Ncurses &Ui::Ncurses::operator<<(Ui::Ncurses::ColorCombination combination)
{
  startColor(combination);
  return *this;
}
Esempio n. 16
0
/*绘制*/
void CheckersPicture::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    painter.setRenderHint(QPainter::Antialiasing, true);
    painter.setViewport(p.x(),p.y(),side,side);
    painter.setWindow(0, 0, zoom*(n), zoom*(n));

    QColor dark(0xcc,0xcc,0xcc,200);

    QColor endColor(0x78,0xff,0x21,200);            /*终点颜色*/
    QColor startColor(0xea,0x76,0x0f,200);              /*起点颜色*/
    QColor capturedColor(0xed,0x50,0x62,200);       /*捕获颜色*/
    QColor normalColor(0xd6,0xb8,0x2c,200);         /*正常色*/
    QColor black(0x00, 0x00, 0x00, 200);
    QColor white(0xff, 0xff, 0xff, 220);
    QColor light(0xed,0xfc,0xdf,200);
    QColor deep(0x5a,0x61,0x54,200);

    /*绘制棋盘*/
    for(int i=0; i<n; i++) {
        for(int j=0; j<n; j++) {
            QRect rect = pixelRect(i, j);
            if( !((i+j%2)%2) ) {
                    painter.fillRect(rect, deep);
            } else {
                painter.fillRect(rect, light);
            }
        }
    }

    int ix,jx;

    if(v.size()) {
        int type;
        for(unsigned i=0; i< v.size(); i++) {
            color==WHITE ? jx = n-1-v.at(i).y : jx = v.at(i).y;
            color==WHITE ? ix = n-1-v.at(i).x : ix = v.at(i).x;
            QRect rect = pixelRect(ix, jx);
            type = v.at(i).type;
            if(type == MOVEDFROM)
                painter.fillRect(rect, startColor);
            else if(type == MOVEDTO || type == TOKING)
                painter.fillRect(rect, endColor);
            else if(type == MOVEDTHROUGH)
                painter.fillRect(rect, normalColor);
            else if(type == DELETED)
                painter.fillRect(rect, capturedColor);
        }
    }

    int s = zoom*0.4;
    int sd = zoom*0.3;
    /*画白棋*/
    if(curstate){   /*如果棋局状态发生了改变*/
        painter.setPen(QPen(black,zoom*0.025));
        painter.setBrush(QBrush(white));
        for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++) {
                /*如果是白色则从最后一行开始画*/
                color==WHITE ? jx = j+1 : jx = n-j;
                color==WHITE? ix = n-i : ix = i+1;
                if(curstate->at(i,j)==WHITE)
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),s,s);
                if(curstate->at(i,j)==WHITEKING) {
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),s,s);
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),sd,sd);
                }
            }
        }
        /*画黑棋*/
        painter.setBrush(QBrush(black));
        for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++) {
                color==WHITE ? jx = j+1 : jx = n-j;
                color==WHITE ? ix = n-i : ix = i+1;
                if(curstate->at(i,j)==BLACK)
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),s,s);
                if(curstate->at(i,j)==BLACKKING) {
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),s,s);
                    painter.setPen(QPen(white,zoom*0.1));
                    painter.drawEllipse(QPoint(zoom*(ix-0.5),zoom*(jx-0.5)),sd,sd);
                    painter.setPen(QPen(black,zoom*0.1));
                }
            }
        }
    }
    if (thinking && showHourglass)
    {
        painter.setWindow(painter.viewport());
        painter.drawImage((width() - hourglass.width()) / 2, (height() - hourglass.height()) / 2, hourglass);
    }
}