Hi Bertalan, I made a mistake, could you try: fIconBox->Associate(fListView); in that case the container forwards its messages to TGListVIew::ProcessMessage(), which then will issue the correct signals for the container events. Cheers, Fons. Juhász Bertalan wrote: > Hi Fons, > > >> make sure that after creating the TGLVContainer you associate >>the container with the TGListView. In that case the container >>events are properly propagated to the TGListView and things should work. >>Example: >> >> fListView = new TGListView(fV2, 520, 250); >> fIconBox = new TGLVContainer(fListView->GetViewPort(), 520, 250, >> kHorizontalFrame, fgWhitePixel); >> fIconBox->Associate(this); >> > > Thank you, this would be fine but I (and I'm sure other people in the future > too) want to use the signal/slot mechanism i.e. connect some signal > function which is called when I double-click on an item to one of my slot > functions instead of using Associate() and ProcessMessage(). The only signal > function I found was TGListView::DoubleClicked(); neither TGLVContainer nor > TGFileContainer have such a signal function. So I believe my Connect(...) > code below is correct but doesn't work therefore I believe this is a bug in > ROOT because the double (and single) click events are apparently not > properly propagated to the TGListView _signal_ functions. Or do I have to > use Associate() for that? As far as I understood from the example codes I > don't need to. I won't be able to use Associate(this) anyway because my > class is not inherited from TGMainFrame or any other GUI class therefore it > cannot be the argument for Associate(). So I just use > > fFileView = new TGListView(fC2,540,180); > fFileCont = new TGFileContainer(fFileView->GetViewPort(),100,100, > kVerticalFrame,TGFrame::GetWhitePixel()); > fFileView->Connect("DoubleClicked(TGLVEntry*, Int_t)", "PbarFileBrowser", > this, "HandleBrowser(TGLVEntry*, Int_t)"); > > but as I said it doesn't work. > > Cheers, > > Bertalan > > >>Bertalan Juhasz wrote: >> >> >>>Dear Rooters, >>> >>>I'm developing some GUI classes and I've encountered the following >>>problem: even if I connect TGListView::DoubleClicked() to one of my slot >>>functions using >>> >>>fFileView->Connect("DoubleClicked(TGLVEntry*, Int_t)", >>> > "PbarFileBrowser", > >>>this, "HandleBrowser(TGLVEntry*, Int_t)"); >>> >>>the HandleBrowser() function is never called when I double click on an >>>item although ROOT is not complaining about wrong signal/slot >>> > connection. > >>>Was I doing something wrong? After digging into and playing with the >>> > ROOT > >>>code I've discovered that HandleBrowser() is never called because >>>TGListView::DoubleClicked() is never called, only >>>TGLVContainer::HandleDoubleClick(). After I've added the following lines >>>to TGLVContainer::HandleDoubleClick() >>> >>>if (fListView) fListView->DoubleClicked(f, event->fCode); >>>if (fListView) fListView->DoubleClicked(f, event->fCode, event->fXRoot, >>>event->fYRoot); >>> >>>right after SendMessage(...) (similarly to TGTreeView) everything worked >>>fine but maybe this is a dirty/illegal solution (I'm completely new to >>> > GUI > >>>programming). Most likely TGListView::Clicked() has similar problems but >>>that I didn't investigate. >>> >>>I'm using ROOT 3.02/06 with RedHat 7.2. >>> >>>BTW, are there plans to write some User's Guide on GUI programming? For >>>those how never did anything like that before (like myself) it's a bit >>>painful (and dangerous) to learn just by digging through example codes >>>(although those codes are quite nice). >>> >>>Regards, >>> >>>Bertalan >>> >>> >>> >>> >>> >> >>-- >>Org: CERN, European Laboratory for Particle Physics. >>Mail: 1211 Geneve 23, Switzerland >>E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 >>WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480 >> >> >> > > > > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:37 MET