MyGUI::IntSize CalcTextWidth( MyGUI::UString text,string font ){ MyGUI::FontManager* pfm = MyGUI::FontManager::getInstancePtr(); MyGUI::IFont* pf = pfm->getByName(font); MyGUI::IntSize size; size.height = pf->getDefaultHeight(); if( pf ){ for( MyGUI::UString::iterator i=text.begin();i!=text.end();++i ){ MyGUI::GlyphInfo* pg = pf->getGlyphInfo(*i); if( pg ){ size.width += (int)pg->width; } } } return size; }
void SampleLayout::notifyTreeNodePrepare(MyGUI::TreeControl* pTreeControl, MyGUI::TreeControl::Node* pNode) { if (pNode == pTreeControl->getRoot()) return; pNode->removeAll(); /*#ifdef MYGUI_OGRE_PLATFORM Ogre::Archive* pArchive = *(pNode->getData<Ogre::Archive*>()); MyGUI::UString strPath(getPath(pNode)); Ogre::StringVectorPtr Resources = pArchive->find(strPath + "*", false, true); for (Ogre::StringVector::iterator Iterator = Resources->begin(); Iterator != Resources->end(); ++Iterator) { MyGUI::TreeControl::Node* pChild = new MyGUI::TreeControl::Node(*Iterator, "Folder"); pChild->setData(pArchive); pNode->add(pChild); } Resources = pArchive->find(strPath + "*", false, false); for (Ogre::StringVector::iterator Iterator = Resources->begin(); Iterator != Resources->end(); ++Iterator) { MyGUI::UString strName(*Iterator); MyGUI::UString strExtension; size_t nPosition = strName.rfind("."); if (nPosition != MyGUI::UString::npos) { strExtension = strName.substr(nPosition + 1); std::transform(strExtension.begin(), strExtension.end(), strExtension.begin(), tolower); } MyGUI::UString strImage; if (strExtension == "png" || strExtension == "tif" || strExtension == "tiff" || strExtension == "jpg" || strExtension == "jpeg") strImage = "Image"; else if (strExtension == "mat" || strExtension == "material") strImage = "Material"; else if (strExtension == "layout") strImage = "Layout"; else if (strExtension == "ttf" || strExtension == "font" || strExtension == "fontdef") strImage = "Font"; else if (strExtension == "txt" || strExtension == "text") strImage = "Text"; else if (strExtension == "xml") strImage = "XML"; else if (strExtension == "mesh") strImage = "Mesh"; else if (strExtension == "htm" || strExtension == "html") strImage = "HTML"; else strImage = "Unknown"; MyGUI::TreeControl::Node* pChild = new MyGUI::TreeControl::Node(strName, strImage); pChild->setPrepared(true); pNode->add(pChild); } #else*/ PairFileInfo info = *(pNode->getData<PairFileInfo>()); // если папка, то добавляем детей if (info.second.folder) { std::wstring path = info.first + L"/" + info.second.name; common::VectorFileInfo result; common::getSystemFileList(result, path, L"*.*"); for (common::VectorFileInfo::iterator item = result.begin(); item != result.end(); ++item) { if ((*item).name == L".." || (*item).name == L".") continue; if ((*item).folder) { MyGUI::TreeControl::Node* pChild = new MyGUI::TreeControl::Node((*item).name, "Folder"); pChild->setData(PairFileInfo(path, *item)); pNode->add(pChild); } else { MyGUI::UString strName((*item).name); MyGUI::UString strExtension; size_t nPosition = strName.rfind("."); if (nPosition != MyGUI::UString::npos) { strExtension = strName.substr(nPosition + 1); std::transform(strExtension.begin(), strExtension.end(), strExtension.begin(), tolower); } MyGUI::UString strImage; if (strExtension == "png" || strExtension == "tif" || strExtension == "tiff" || strExtension == "jpg" || strExtension == "jpeg") strImage = "Image"; else if (strExtension == "mat" || strExtension == "material") strImage = "Material"; else if (strExtension == "layout") strImage = "Layout"; else if (strExtension == "ttf" || strExtension == "font" || strExtension == "fontdef") strImage = "Font"; else if (strExtension == "txt" || strExtension == "text") strImage = "Text"; else if (strExtension == "xml") strImage = "XML"; else if (strExtension == "mesh") strImage = "Mesh"; else if (strExtension == "htm" || strExtension == "html") strImage = "HTML"; else strImage = "Unknown"; MyGUI::TreeControl::Node* pChild = new MyGUI::TreeControl::Node((*item).name, strImage); pChild->setPrepared(true); pNode->add(pChild); } } } //#endif }