TGComboBox for selecting colors

From: Rutger van der Eijk (r36@nikhef.nl)
Date: Mon Aug 24 1998 - 20:07:20 MEST


Hi ROOTers (Fons),

I need a 'widget' or sort of ListBox to select a color. I was thinking of
using a TGComboBox for this, but don't succeed to get it working. 

By idea is the following:

Instead of adding 'text' as 'entry' via

TGComboBox::AddEntry(char *s, Int_t id);

I add a TGLBEntry with

TGComboBox* fComboBox;
<....>
fComboBox->AddEntry(lbe, lhints);

where 

lbe = new TGLBEntry(fComboBox->GetListBox()->GetContainer, id,
			kHorizontalFrame, entryColor);
lhints = new TGLayoutHints(kLHintsExpandX | kLHintsTop);

where 'entryColor' is the color I want for the entry.

This seems not to work at all (the TGPopupComboBox is empty => no
entries).

This is the first part I don't understand. It might be that this is
because of the comment in the TGListBox class description (i.e. 'Currently
entries are simple text strings (TGTextLBEntry)'). But it seems strange
to me that I need to use a TGTextLBEntry, instead of the base class
TGLBEntry (which is used in the TGListBox!!!) if I don't want the extra
functionality of adding text.

But to continue I tried using a TGTextLBEntry which I then give the
required entryColor as background color. now I use:

lbe = new TGTextLBEntry(fComboBox->GetListBox()->GetContainer(), 
		        new TGString("don't want this string"), id,
                        theGC,
		        theFont,
		   	kHorizontalFrame,
			entryColor),

where theGC and theFont are GC and FontStruct defined as mentioned in
guitest.cxx.


What happens is that I indead get the entry in the TGComboBox (I infact
add more TGTextLBEnties with different color) with a color (not the one I
want, but that's for later concern.) But when I select an entry the
'selected entry' does not have the 'right' background color anymore.
Looking into the source code it seems that this is caused by:

TGTextLBEntry::Update(TGLBEntry *e)
       { SetText(new TGString(((TGTextLBEntry *)e)->GetText())); }

which only updates the text...


This seems not to bring me any further. My question(s); 
- am I on the right way to implement the 'widget' that I want (i.e. a
color selector)? 
- Did anybody implement something like that already (in a different way?)
- any suggestions (Fons?)


Thanks, and keep up the good work,

Rutger van der Eijk.



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:36 MET