Hi Fons,
> 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.
Thanks, that helped! It's a pity that this information is not mentioned in
any example. Don't forget to include it the upcoming GUI manual! :-)
Cheers,
Bertalan
> 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