void TreeInspectorPreview::init(spActor item)
    {
        //_item = item;
        STDRenderer r(&_videoCache);
        RenderState rs;
        rs.renderer = &r;
        rs.transform = item->getTransform();
        r.begin(0);
        //r.setTransform(rs.transform);
        item->doRender(rs);
        r.end();
        r.drawBatch();

        setSize(30, 30);

        RectF itemRect = _videoCache._bounds;
        if (itemRect.isEmpty())
        {
            itemRect = item->getDestRect();
            if (itemRect.isEmpty())
                itemRect.setSize(Vector2(10, 4));
        }

        Vector2 ns = fitSize(Vector2(50.0f, 50.0f), itemRect.size);
        float scale = ns.x / itemRect.size.x;

        _cacheTransform.identity();

        _cacheTransform.scale(Vector2(scale, scale));
        _cacheTransform.translate(-itemRect.pos);



        AnimationFrame fr = _tree->_resSystem->getResAnim("checker")->getFrame(0, 0);
        //Point itemSize(30, 30);// = _getItemRect().size;

        RectF srcRect = fr.getSrcRect();
        const Diffuse& df = fr.getDiffuse();
        srcRect.size.x = ns.x / (float)df.base->getWidth();
        srcRect.size.y = ns.y / (float)df.base->getHeight();
        RectF destRect = fr.getDestRect();
        destRect.size = ns;

        AnimationFrame cfr;
        cfr.init(0, df, srcRect, destRect, ns);

        setAnimFrame(cfr);


        /*
        spEventHandler bh = new EventHandler();

        bh->setCallbackEnter(CLOSURE(this, &TreeInspectorPreview::_onEvent));
        bh->setCallbackExit(CLOSURE(this, &TreeInspectorPreview::_onEvent));
        bh->setCallbackPressDown(CLOSURE(this, &TreeInspectorPreview::_onEvent));
        bh->setCallbackPressUp(CLOSURE(this, &TreeInspectorPreview::_onEvent));
        addEventHandler(bh);
        */
    }
        TextureLine(spNativeTexture t)
        {
            setVerticalMode(Box9Sprite::TILING_FULL);
            setHorizontalMode(Box9Sprite::TILING_FULL);
            Sprite::setResAnim(DebugActor::resSystem->getResAnim("checker"));

            AnimationFrame f;
            Vector2 s = fitSize(itemSize, Vector2((float)t->getWidth(), (float)t->getHeight()));

            setSize(s);

            Diffuse df;
            df.base = t;

            f.init(0, df, RectF(0, 0, 1.0f, 1.0f), RectF(0, 0, s.x, s.y), s);
            spSprite image = initActor(new Sprite,
                                       arg_blend = blend_disabled,
                                       arg_resAnim = f);
            addChild(image);

            spColorRectSprite rect = initActor(new ColorRectSprite,
                                               arg_color = Color(Color::White, 255),
                                               arg_attachTo = this);

            rect->addTween(Sprite::TweenColor(Color(Color::White, 0)), 4000, -1, true);

            char path[255];
            path::normalize(t->getName().c_str(), path);

            char txt[255];
            safe_sprintf(txt, "%s\n<div c=\"FF0000\">%s</div>-<div c=\"0000ff\">%dx%d</div>\nid: %d",
                         path,
                         textureFormat2String(t->getFormat()),
                         t->getWidth(), t->getHeight(), t->getObjectID());

            spTextField text = initActor(new TextField,
                                         arg_color = Color::Black,
                                         arg_w = (float)itemSize.x,
                                         arg_vAlign = TextStyle::VALIGN_TOP,
                                         arg_hAlign = TextStyle::HALIGN_LEFT,
                                         arg_multiline = true,
                                         arg_attachTo = rect,
                                         arg_htmlText = txt
                                        );

            text->setBreakLongWords(true);

            rect->setSize(text->getTextRect().size.cast<Vector2>() + Vector2(2, 2));
            rect->setY((itemSize.y - rect->getHeight()) / 2.0f);
        }
Пример #3
0
bool QGroupList::setFilter(const QString& filerString)
{	
    int NumHidden=0;

	for (int i=0; i< count(); i++)
	{
                QCPItem* curr = (QCPItem*)item(i);
		if (!filerString.length())
		{
			curr->setHidden(false);
            curr->setFlags(curr->flags() | Qt::ItemIsEnabled);
		}
		else
		{
             bool IsHide = !curr->itemName().contains(filerString, Qt::CaseInsensitive);
             IsHide = IsHide && (!curr->itemOriginalName().contains(filerString, Qt::CaseInsensitive));
             //IsHide = IsHide && (!curr->tags().contains(filerString, Qt::CaseInsensitive));
             //curr->setHidden(IsHide);
             QStringList Tags = curr->tags();
             QString Tag;
             for(int i=0; i<Tags.size(); i++)
             {
                Tag = Tags.at(i).trimmed();
                if (Tag.contains(filerString, Qt::CaseInsensitive))
                {
                    IsHide = false;
                    break;
                }
             }

             curr->setFlags((IsHide)?curr->flags() & (~Qt::ItemIsEnabled)
                                    :curr->flags() | Qt::ItemIsEnabled);
             if (IsHide)
                NumHidden++;
		}
	}

        fitSize();
        this->layout()->update();

        return (NumHidden<count());
}
Пример #4
0
int QGroupList::read(QString Path, const QVector<QString>& vEnabledDE, bool EnableSudo, bool EnableSu)
{
	clear();
	QDir dir(Path);
	if (!dir.exists(Path))
		return 0;    

	QStringList DirList =dir.entryList(QStringList("*.desktop"));
	for(int i=0; i<DirList.size(); i++)
	{
		QCPItem* anItem = new QCPItem;

                if (anItem->readDE(dir.absoluteFilePath(DirList[i]), vEnabledDE))
                {
                    if ((anItem->isSudoRequired() && (!EnableSudo))
                      ||(anItem->isRootRequired() && (!EnableSu)))
                    {
                        delete anItem;
                    }
                    else
                    {
                        makeIcon(anItem);
                        addItem(anItem);
                    }
                }
                else
                    delete anItem;
	}// for all files in dir

    setAcceptDrops(false);
    setDragEnabled(false);

	setIconSize(QSize(32, 32));

    fitSize();



    return count();
}
void tMercuryControlRPMIndicator::AdjustControl()
{
    tMercuryStyle* style = GetMercuryStyle();
    if( style == 0 || m_Font.isNull() || m_FontBottom.isNull() )
    {
        return;
    }

    QRect contentRect(GetContentRect());
    QSize fitSize(int(contentRect.width() * 0.8f), contentRect.height());
    if( m_PropDoubleValue )
    {
        fitSize.setHeight(int(fitSize.height() / 2.33f));
    }
    else
    {
        fitSize.setHeight(int(fitSize.height() / 1.33f));
    }
    QRect textRect = m_Font->Adapt(m_PropAdjustText.isEmpty() ? m_PropText : m_PropAdjustText, fitSize);
    m_FontBottom->Adapt(m_PropTextBottom, QSize(textRect.width(), int(textRect.height() * 0.33f)));

    update();
}
Пример #6
0
void QAutoExpandList::resizeEvent ( QResizeEvent * event )
{	
    fitSize();
    QListWidget::resizeEvent(event);
}
Пример #7
0
//--------------------------------------------------------------
void ofApp::setup() {
    ofDirectory dir;
    ofVideoPlayer player;

    int edge = 2;

    ofxXmlSettings settings;
    settings.loadFile("settings.xml");


    ofVec2f movieSize(settings.getValue("movieSize:width", 128) + edge,
                      settings.getValue("movieSize:height", 128) + edge);
    ofVec2f texSize(settings.getValue("texSize:width", 1024),
                    settings.getValue("texSize:height", 1024));
    float duration = settings.getValue("duration", 1.0);
    float fps = settings.getValue("fps", 1.0);

    int numFrames = duration * fps;
    int numMovies = dir.listDir("movies");
    int totalFrames = numFrames * numMovies;

    float movieRatio = movieSize.x / movieSize.y;

    float texArea = texSize.x * texSize.y;
    float fitArea = texArea / (float)totalFrames;

    float fitHeight = sqrt(fitArea/movieRatio);
    float fitWidth = fitArea/fitHeight;

    ofVec2f fitSize(fitWidth,
                    fitHeight);

    ofVec2f numUnits(ceil(texSize.x / fitSize.x),
                     ceil(texSize.y / fitSize.y));

    ofVec2f size = texSize / numUnits;
    ofVec2f scale = movieSize / size;

    ofFile::removeFile("sprite.js");
    ofstream js;
    js.open (ofToDataPath("sprite.js").c_str(), std::ios::out | std::ios::app);
    js << "var sprite={coordinates:[";

    ofFbo fbo;
    fbo.allocate(texSize.x, texSize.y);
    fbo.begin();
    ofClear(0, 0, 0, 0);
    fbo.end();

    float column = -1;
    float row = -1;
    int frameIndex = 0;

    for (float i = 0; i < numMovies; i++) {
        player.loadMovie(dir.getPath(i));
        cout << dir.getPath(i) << endl;
        int playerNumFrames = player.getTotalNumFrames();
        float offset = (float)playerNumFrames / (float)numFrames;

        js << "[";
        for (float j = 0; j < numFrames; j++) {
            column = frameIndex % (int)numUnits.x;
            if(column == 0) row++;

            js << "\"-" << (column * movieSize.x) << "px -" << (row * movieSize.y) << "px\"";
            if(j < numFrames-1) js << ",";

            player.setFrame(j * offset+1);
            player.update();
            fbo.begin();
            player.draw(floor(column * size.x), floor(row * size.y), ceil(size.x), ceil(size.y));
            fbo.end();

            frameIndex++;
        }
        js << "]";
        if(i < numMovies-1) js << ",";

    }

    js << "]";
    js << ",duration:" << duration;
    js << ",image:\"sprite.png\"";
    js << ",numFrames:" << numFrames;
    js << ",numMovies:" << numMovies;
    js << ",width:" << movieSize.x - edge;
    js << ",height:" << movieSize.y - edge;
    js << ",backgroundSize:\"" << (texSize.x * scale.x) << "px " << (texSize.y * scale.y)<< "px\"";
    js << "};";
    js.close();

    ofPixels pixels;
    pixels.allocate(texSize.x, texSize.y, 4);
    fbo.readToPixels(pixels);
    ofSaveImage(pixels, "sprite.png");

    ofExit(0);
}