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