From: <AOu...@fr...> - 2006-04-26 13:23:30
|
Hi, I was wondering, if it's possible to select a Tab in a Notebook using the right mouse button and if, then how ? Problem is, that I'm using the right mouse button to show a Popupmenu for the Page, if I click on a Tab. But if I click on a Tab, that isnt the the current Page, I want to change the Page, to this one first. Until now I have to select the Page first (using left mouse button) and then click it (with right button) to open the Popupmenu. So far I tried to use this in the Event Handler for the right button: my $hEvent = Wx::MouseEvent->new(wxEVT_LEFT_DOWN); $hEvent->SetId($this->GetId()); $this->ProcessEvent($hEvent); , but without any luck. And since HitTest isnt implemented under wxPerl (and not on all wxWidgets Ports), I cant determine on which tab the right click was. Does anyone has any idea how to solve this problem ? Btw: What is the difference between wxWidgets "univ" and "generic" ? Many thanks in advance, Andre |
From: Mattia B. \<mattia\.barbon\@libero\.it\> <mat...@li...> - 2006-05-02 19:10:42
|
Hi, > Problem is, that I'm using the right mouse button to show a Popupmenu > for the Page, if I click on a Tab. But if I click on a Tab, that isnt > the the current Page, I want to change the Page, to this one first. I suppose you already tried to call SetSelection in the event handler? > So far I tried to use this in the Event Handler for the right button: > > my $hEvent =3D Wx::MouseEvent->new(wxEVT_LEFT_DOWN); > $hEvent->SetId($this->GetId()); > $this->ProcessEvent($hEvent); > > , but without any luck. Even if it worked now, it is not guaranteed to work in the future. In general, synthesizing events and making controls process them is a bad idea. > And since HitTest isnt implemented under wxPerl (and not on all > wxWidgets Ports), I cant determine on which tab the right click was. I added it to wxPerl CVS, FWIW. > Btw: What is the difference between wxWidgets "univ" and "generic" ? Generic is a widget implemented entirely using wxWidgets code (for example wxCalendarCtrl). Univ stands for wxUniversal and is a wxWidgets port (like wxMSW, wxGTK, wxMac,= ...) except it only relies on basic primitives (device context, window) and implements all the controls in a generic way. It is used in wxMGL. Regards Mattia |