Logo ROOT   6.14/05
Reference Guide
TGLEventHandler.h
Go to the documentation of this file.
1 // @(#)root/gl:$Id$
2 // Author: Bertrand Bellenot 29/01/2008
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGLEventHandler
13 #define ROOT_TGLEventHandler
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TGLEventHandler //
18 // //
19 //////////////////////////////////////////////////////////////////////////
20 
21 #include "TGEventHandler.h"
22 #include "TPoint.h"
23 
24 class TGToolTip;
25 
26 class TGLViewer;
27 class TGLPhysicalShape;
28 
30 {
31 protected:
33  TTimer *fMouseTimer; // mouse delay timer
38  TGToolTip *fTooltip; // tooltip for highlight
49  Int_t fSecSelType; // secondary selection type
55 
56  virtual Bool_t Rotate(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
57 
58  virtual void GrabMouse();
59  virtual void UnGrabMouse();
60 
61  virtual void SelectForClicked(Event_t *event);
62  virtual void SelectForMouseOver();
63 
64  Int_t ControlValue(Int_t v) { return fViewerCentricControls ? -v : v; }
65 
66 public:
68  virtual ~TGLEventHandler();
69 
70  virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
71  virtual Bool_t HandleEvent(Event_t *event);
72  virtual Bool_t HandleExpose(Event_t * event);
73  virtual Bool_t HandleFocusChange(Event_t *event);
74  virtual Bool_t HandleCrossing(Event_t *event);
75  virtual Bool_t HandleButton(Event_t * event);
76  virtual Bool_t HandleDoubleClick(Event_t *event);
77  virtual Bool_t HandleConfigureNotify(Event_t *event);
78  virtual Bool_t HandleKey(Event_t *event);
79  virtual Bool_t HandleMotion(Event_t * event);
80  virtual Bool_t HandleTimer(TTimer *t);
81  virtual void StartMouseTimer();
82  virtual void StopMouseTimer();
83  virtual void ClearMouseOver();
84  virtual void Repaint();
85 
86  virtual void PopupContextMenu(TGLPhysicalShape* pshp, Event_t *event, Int_t gx, Int_t gy);
87 
88  virtual void TriggerTooltip(const char* text);
89  virtual void RemoveTooltip();
90 
93 
95  void SetTooltipPixelTolerance(Int_t t) { fTooltipPixelTolerance = t; }
96 
97  Int_t GetSecSelType() const { return fSecSelType; }
98  void SetSecSelType(Int_t t) { fSecSelType = t; }
99 
101  void SetDoInternalSelection(Bool_t x) { fDoInternalSelection = x; }
102 
103  Bool_t GetArcBall() const { return fArcBall; }
104  void SetArcBall(Bool_t a) { fArcBall = a; }
105 
106  ClassDef(TGLEventHandler, 0); // Base-class and default implementation of event-handler for TGLViewer.
107 };
108 
109 #endif
110 
Int_t GetSecSelType() const
float Float_t
Definition: RtypesCore.h:53
TGLEventHandler(TGWindow *w, TObject *obj)
Constructor.
Float_t fMouseWheelFactor
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual void SelectForMouseOver()
Run selection (optionally with on secondary selection) and emit corresponding MouseOver() signals...
virtual void UnGrabMouse()
Release mouse grab.
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Process event of type 'event' - one of EEventType types, occurring at window location px...
void SetArcBall(Bool_t a)
Bool_t GetDoInternalSelection() const
void SetTooltipPixelTolerance(Int_t t)
TTimer * fMouseTimer
Concrete physical shape - a GL drawable.
Int_t ControlValue(Int_t v)
Int_t GetTooltipPixelTolerance() const
Bool_t fMouseTimerRunning
virtual ~TGLEventHandler()
Destructor.
Bool_t fDoInternalSelection
Double_t x[n]
Definition: legend1.C:17
#define ClassDef(name, id)
Definition: Rtypes.h:320
virtual Bool_t HandleEvent(Event_t *event)
Handle generic Event_t type 'event' - provided to catch focus changes and terminate any interaction i...
void SetDoInternalSelection(Bool_t x)
void SetMouseOverTooltipDelay(Int_t ms)
Set delay of tooltip timer.
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion 'event'.
virtual void GrabMouse()
Acquire mouse grab.
Definition: TPoint.h:31
virtual void StopMouseTimer()
Make sure mouse timers are not running.
virtual void PopupContextMenu(TGLPhysicalShape *pshp, Event_t *event, Int_t gx, Int_t gy)
Popup context menu.
void SetMouseOverSelectDelay(Int_t ms)
Set delay of mouse-over probe (highlight).
TGLViewer * fGLViewer
virtual Bool_t HandleTimer(TTimer *t)
If mouse delay timer times out emit signal.
Float_t fArrowKeyFactor
SVector< double, 2 > v
Definition: Dict.h:5
auto * a
Definition: textangle.C:12
virtual Bool_t HandleFocusChange(Event_t *event)
Handle generic Event_t type &#39;event&#39; - provided to catch focus changes and terminate any interaction i...
unsigned int UInt_t
Definition: RtypesCore.h:42
TGToolTip * fTooltip
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:51
Base GL viewer object - used by both standalone and embedded (in pad) GL.
Definition: TGLViewer.h:53
static constexpr double ms
Int_t fTooltipPixelTolerance
virtual Bool_t HandleDoubleClick(Event_t *event)
Handle mouse double click &#39;event&#39;.
TGLPhysicalShape * fLastMouseOverShape
virtual void TriggerTooltip(const char *text)
Trigger display of tooltip.
virtual void ClearMouseOver()
Clear mouse-over state and emit mouse-over signals.
TText * text
Base-class and default implementation of event-handler for TGLViewer.
Mother of all ROOT objects.
Definition: TObject.h:37
virtual Bool_t HandleCrossing(Event_t *event)
Handle generic Event_t type &#39;event&#39; - provided to catch focus changes and terminate any interaction i...
virtual void SelectForClicked(Event_t *event)
Run selection (optionally with on secondary selection) and emit corresponding Clicked() signals...
virtual Bool_t HandleExpose(Event_t *event)
Handle window expose &#39;event&#39; - show.
TPoint fLastMouseOverPos
void SetSecSelType(Int_t t)
virtual Bool_t Rotate(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
Method to handle action TGLViewer::kDragCameraRotate.
virtual Bool_t HandleConfigureNotify(Event_t *event)
Handle configure notify &#39;event&#39; - a window resize/movement.
virtual void StartMouseTimer()
Start mouse timer in single-shot mode.
Bool_t fViewerCentricControls
Float_t fMouseDragFactor
Bool_t GetArcBall() const
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button &#39;event&#39;.
virtual void RemoveTooltip()
Hide the tooltip.
virtual Bool_t HandleKey(Event_t *event)
Handle keyboard &#39;event&#39;.
virtual void Repaint()
Handle window expose &#39;event&#39; - show.