Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:31

0001 #ifndef Fireworks_Core_FWGLEventHandler_h
0002 #define Fireworks_Core_FWGLEventHandler_h
0003 
0004 #include "TEveLegoEventHandler.h"
0005 #include <sigc++/signal.h>
0006 
0007 class TGWindow;
0008 class TGLPhysicalShape;
0009 class FWEveView;
0010 
0011 class FWGLEventHandler : public TEveLegoEventHandler {
0012 public:
0013   FWGLEventHandler(TGWindow *w, TObject *obj, TEveCaloLego *l = nullptr);
0014   ~FWGLEventHandler() override {}
0015 
0016   void PopupContextMenu(TGLPhysicalShape *pshp, Event_t *event, Int_t gx, Int_t gy) override;
0017 
0018   Bool_t HandleKey(Event_t *event) override;
0019 
0020   Bool_t HandleButton(Event_t *event) override;
0021 
0022   Bool_t HandleFocusChange(Event_t *event) override;
0023   Bool_t HandleCrossing(Event_t *event) override;
0024 
0025   sigc::signal<void(Int_t, Int_t)> openSelectedModelContextMenu_;
0026 
0027   void setViewer(FWEveView *ev) { m_viewer = ev; }
0028 
0029   FWGLEventHandler(const FWGLEventHandler &) = delete;                   // stop default
0030   const FWGLEventHandler &operator=(const FWGLEventHandler &) = delete;  // stop default
0031 
0032 private:
0033   FWEveView *m_viewer;
0034 };
0035 
0036 #endif