Hi Valery, thanks, I found a workaround for my problem by defining 2 different classes - one for the "green" folders, another one - for the "red" ones... But I think that having the following interface if (isKey) set = fMimeTypeList->GetIcon(obj->GetIconName()); if GetIconName() is not defined, then use whatever defaults are foreseen in *mime*. would be much more flexible and elegant... -best, Pasha "Faine, Valeri" wrote: > > Hi Pasha, > > > Dear Rooters, Happy New Year to all! > > Thank you. > Happy New Year for all ROOTmen and ROOTwomen > > > I have a set of subdirectories (subfolders) in ROOT file containing > > good/bad objects - and would like to the corresponding folder > > icons to be displayed by TBrowser in different colors - is there a > > way to do it? > > Have you tried to add your class/xpm class combination to > $ROOTSYS/etc/root.mimes > > [root/tmuffin] > pattern = TMuffin > icon = muffin_s.xpm muffin_t.xpm > > At the moment ROOT uses your class name as a key to find your xpm image. > I think it can be changed to use the GetName() as an option. > > I mean at the moment ROOT selects the icon image with the > statements: > > if (isKey) set = fMimeTypeList->GetIcon(isKey->GetClassName()); > else set = fMimeTypeList->GetIcon(obj->ClassName()); > > If one would add > > If (!set) set = fMimeTypeList->GetIcon(obj->GetName()); > > this may have added an extra functionality you probably speaking about. > > May be it worth to modify the existent > > TBrowser::Add(TObject *obj, const char *name = 0); > > interface like this: > > TBrowser::Add(TObject *obj, const char *name = 0, const char > *iconKey=0); > > And use the "iconKey" to select the user-provided icon first. The logic > to select the appropriated icon may have looked as follow: > > set = 0; > if (iconKey && iconKey[0]) > set = fMimeTypeList->GetIcon(iconKey); > if (!set) > set = fMimeTypeList->GetIcon(obj->GetName()); > if (!set) { > if (isKey) > set = fMimeTypeList->GetIcon(isKey->GetClassName()); > else > set = fMimeTypeList->GetIcon(obj->ClassName()); > } > > I've added this feature to my Qt-based ROOT version ( > http://root.cern.ch ) > > Of course with Qt-based version one can use Qt method > http://doc.trolltech.com/3.1/qiconviewitem.html#setPixmap-2 > also. However this way one may have became Qt addicted ( like me :-) > > Valeri
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:08 MET