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); }
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()); }
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(); }
void QAutoExpandList::resizeEvent ( QResizeEvent * event ) { fitSize(); QListWidget::resizeEvent(event); }
//-------------------------------------------------------------- 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); }