ROOT logo
// @(#)root/qtgsi:$Id: TQRootCanvas.h 20882 2007-11-19 11:31:26Z rdm $
// Author: Denis Bertini, M. AL-Turany  01/11/2000

/*************************************************************************
 * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TQRootCanvas
#define ROOT_TQRootCanvas

///////////////////////////////////////////////////////////////////////
//
// TQRootCanvas
//
// This canvas uses Qt eventloop to handle user input.
//
// @short Graphic Qt Widget based Canvas
//
// @authors Denis Bertini <d.bertini@gsi.de>
//	   M. AL-Turany  <m.al-turany@gsi.de>
//version 2.0
//////////////////////////////////////////////////////////////////////

#ifndef __CINT__
#include "qwidget.h"
#include "qstring.h"
#if !(QT_VERSION > 0x039999) // Added by cholm@nbi.dk - for Qt 3
# include "qdragobject.h"
#endif
#endif

#ifndef ROOT_TVirtualPad
#include "TVirtualPad.h"
#endif


class QAction;
class QMouseEvent;
class QResizeEvent;
class QPaintEvent;

class TPad;
class TContextMenu;
class TControlBar;
class TCanvas;
class TQCanvasMenu;
class TBrowser;
class QWidget;
class QDropEvent;
class QDragEnterEvent;
class QCloseEvent;
class QEvent;

class TQRootCanvas : public QWidget
{
#ifndef __CINT__
   Q_OBJECT
#endif
private:
   TQRootCanvas(const TQRootCanvas &);
   TQRootCanvas& operator=(const TQRootCanvas &);
      
public:

   TQRootCanvas( QWidget *parent = 0, const char *name = 0 ,TCanvas *c=0);
   TQRootCanvas( QWidget *parent, QWidget* tabWin , const char *name = 0 ,TCanvas *c=0);
   virtual ~TQRootCanvas();
   TCanvas* GetCanvas() { return fCanvas;}
   Int_t GetRootWid() { return fWid;}
   Bool_t GetCanvasOwner(){ return fIsCanvasOwned; }
   QWidget* GetParent() { return fParent;}
   QWidget* GetTabWin() { return fTabWin;}
   virtual void dropEvent( QDropEvent *Event );
   virtual void dragEnterEvent( QDragEnterEvent *e );

#ifndef __CINT__
signals:
   void SelectedPadChanged(TPad *);
#endif
public slots:
   void              cd(Int_t subpadnumber=0);
   virtual void      Browse(TBrowser *b);
   void              Clear(Option_t *option="");
   void              Close(Option_t *option="");
   virtual void      Draw(Option_t *option="");
   virtual TObject  *DrawClone(Option_t *option="");
   virtual TObject  *DrawClonePad();
   virtual void      EditorBar();
   void              EnterLeave(TPad *prevSelPad, TObject *prevSelObj);
   void              FeedbackMode(Bool_t set);
   void              Flush();
   void              UseCurrentStyle();
   void              ForceUpdate() ;
   const char       *GetDISPLAY();
   TContextMenu     *GetContextMenu() ;
   Int_t             GetDoubleBuffer() ;
   Int_t             GetEvent()  ;
   Int_t             GetEventX() ;
   Int_t             GetEventY() ;
   Color_t           GetHighLightColor() ;
   TVirtualPad      *GetPadSave() ;
   TObject          *GetSelected() ;
   Option_t         *GetSelectedOpt() ;
   TVirtualPad      *GetSelectedPad()  ;
   Bool_t            GetShowEventStatus() ;
   Bool_t            GetAutoExec() ;
   Size_t            GetXsizeUser()  ;
   Size_t            GetYsizeUser()  ;
   Size_t            GetXsizeReal()  ;
   Size_t            GetYsizeReal()  ;
   Int_t             GetCanvasID()  ;
   Int_t             GetWindowTopX();
   Int_t             GetWindowTopY();
   UInt_t            GetWindowWidth() ;
   UInt_t            GetWindowHeight()  ;
   UInt_t            GetWw() ;
   UInt_t            GetWh() ;
   virtual void      GetCanvasPar(Int_t &wtopx, Int_t &wtopy, UInt_t &ww, UInt_t &wh);
   virtual void      HandleInput(EEventType button, Int_t x, Int_t y);
   Bool_t            HasMenuBar()  ;
   void              Iconify() ;
   Bool_t            IsBatch() ;
   Bool_t            IsRetained() ;
   virtual void      ls(Option_t *option="") ;
   void              MoveOpaque(Int_t set=1);
   Bool_t            OpaqueMoving() ;
   Bool_t            OpaqueResizing() ;
   virtual void      Paint(Option_t *option="");
   virtual TPad     *Pick(Int_t px, Int_t py, TObjLink *&pickobj) ;
   virtual TPad     *Pick(Int_t px, Int_t py, TObject *prevSelObj);
   virtual void      Resize(Option_t *option="");
   void              ResizeOpaque(Int_t set=1) ;
   void              SaveSource(const char *filename="", Option_t *option="");
   virtual void      SetCursor(ECursor cursor);
   virtual void      SetDoubleBuffer(Int_t mode=1);
   void              SetWindowPosition(Int_t x, Int_t y) ;
   void              SetWindowSize(UInt_t ww, UInt_t wh) ;
   void              SetCanvasSize(UInt_t ww, UInt_t wh);
   void              SetHighLightColor(Color_t col);
   void              SetSelected(TObject *obj) ;
   void              SetSelectedPad(TPad *pad) ;
   void              Show() ;
   virtual void     Size(Float_t xsizeuser=0, Float_t ysizeuser=0);
   void              SetBatch(Bool_t batch=kTRUE);
   void              SetRetained(Bool_t retained=kTRUE);
   void              SetTitle(const char *title="");
   virtual void      ToggleEventStatus();
   virtual void      ToggleAutoExec();
   virtual void      Update();
   //////////////////////////////////////////////////////////////////////
   Bool_t NeedsResize(){return fNeedResize;}
   void SetNeedsResize(Bool_t yes) {fNeedResize=yes;}

protected:
   virtual bool eventFilter( QObject *, QEvent * );
   virtual void mousePressEvent( QMouseEvent *e );
   virtual void mouseReleaseEvent( QMouseEvent *e );
   virtual void resizeEvent( QResizeEvent *e );
   virtual void paintEvent( QPaintEvent *e );
   virtual void mouseDoubleClickEvent(QMouseEvent* e );
   virtual void mouseMoveEvent(QMouseEvent *e);
   virtual void leaveEvent(QEvent *e);
   virtual void  closeEvent( QCloseEvent * e);
   ////////////////////////////////////
   TQCanvasMenu *fContextMenu;   // Qt Context menu for this canvas
   TCanvas *fCanvas;             // Root Canvas
   Int_t fWid;                   // Windows Id of the Canvas
   Bool_t fNeedResize;           // Resize flag
   Bool_t fIsCanvasOwned;        // Ownership flag
   QWidget *fParent,*fTabWin;    // parent widgets
   
   ClassDef(TQRootCanvas,1)  //interface to Qt eventloop to handle user input
};

#endif






 TQRootCanvas.h:1
 TQRootCanvas.h:2
 TQRootCanvas.h:3
 TQRootCanvas.h:4
 TQRootCanvas.h:5
 TQRootCanvas.h:6
 TQRootCanvas.h:7
 TQRootCanvas.h:8
 TQRootCanvas.h:9
 TQRootCanvas.h:10
 TQRootCanvas.h:11
 TQRootCanvas.h:12
 TQRootCanvas.h:13
 TQRootCanvas.h:14
 TQRootCanvas.h:15
 TQRootCanvas.h:16
 TQRootCanvas.h:17
 TQRootCanvas.h:18
 TQRootCanvas.h:19
 TQRootCanvas.h:20
 TQRootCanvas.h:21
 TQRootCanvas.h:22
 TQRootCanvas.h:23
 TQRootCanvas.h:24
 TQRootCanvas.h:25
 TQRootCanvas.h:26
 TQRootCanvas.h:27
 TQRootCanvas.h:28
 TQRootCanvas.h:29
 TQRootCanvas.h:30
 TQRootCanvas.h:31
 TQRootCanvas.h:32
 TQRootCanvas.h:33
 TQRootCanvas.h:34
 TQRootCanvas.h:35
 TQRootCanvas.h:36
 TQRootCanvas.h:37
 TQRootCanvas.h:38
 TQRootCanvas.h:39
 TQRootCanvas.h:40
 TQRootCanvas.h:41
 TQRootCanvas.h:42
 TQRootCanvas.h:43
 TQRootCanvas.h:44
 TQRootCanvas.h:45
 TQRootCanvas.h:46
 TQRootCanvas.h:47
 TQRootCanvas.h:48
 TQRootCanvas.h:49
 TQRootCanvas.h:50
 TQRootCanvas.h:51
 TQRootCanvas.h:52
 TQRootCanvas.h:53
 TQRootCanvas.h:54
 TQRootCanvas.h:55
 TQRootCanvas.h:56
 TQRootCanvas.h:57
 TQRootCanvas.h:58
 TQRootCanvas.h:59
 TQRootCanvas.h:60
 TQRootCanvas.h:61
 TQRootCanvas.h:62
 TQRootCanvas.h:63
 TQRootCanvas.h:64
 TQRootCanvas.h:65
 TQRootCanvas.h:66
 TQRootCanvas.h:67
 TQRootCanvas.h:68
 TQRootCanvas.h:69
 TQRootCanvas.h:70
 TQRootCanvas.h:71
 TQRootCanvas.h:72
 TQRootCanvas.h:73
 TQRootCanvas.h:74
 TQRootCanvas.h:75
 TQRootCanvas.h:76
 TQRootCanvas.h:77
 TQRootCanvas.h:78
 TQRootCanvas.h:79
 TQRootCanvas.h:80
 TQRootCanvas.h:81
 TQRootCanvas.h:82
 TQRootCanvas.h:83
 TQRootCanvas.h:84
 TQRootCanvas.h:85
 TQRootCanvas.h:86
 TQRootCanvas.h:87
 TQRootCanvas.h:88
 TQRootCanvas.h:89
 TQRootCanvas.h:90
 TQRootCanvas.h:91
 TQRootCanvas.h:92
 TQRootCanvas.h:93
 TQRootCanvas.h:94
 TQRootCanvas.h:95
 TQRootCanvas.h:96
 TQRootCanvas.h:97
 TQRootCanvas.h:98
 TQRootCanvas.h:99
 TQRootCanvas.h:100
 TQRootCanvas.h:101
 TQRootCanvas.h:102
 TQRootCanvas.h:103
 TQRootCanvas.h:104
 TQRootCanvas.h:105
 TQRootCanvas.h:106
 TQRootCanvas.h:107
 TQRootCanvas.h:108
 TQRootCanvas.h:109
 TQRootCanvas.h:110
 TQRootCanvas.h:111
 TQRootCanvas.h:112
 TQRootCanvas.h:113
 TQRootCanvas.h:114
 TQRootCanvas.h:115
 TQRootCanvas.h:116
 TQRootCanvas.h:117
 TQRootCanvas.h:118
 TQRootCanvas.h:119
 TQRootCanvas.h:120
 TQRootCanvas.h:121
 TQRootCanvas.h:122
 TQRootCanvas.h:123
 TQRootCanvas.h:124
 TQRootCanvas.h:125
 TQRootCanvas.h:126
 TQRootCanvas.h:127
 TQRootCanvas.h:128
 TQRootCanvas.h:129
 TQRootCanvas.h:130
 TQRootCanvas.h:131
 TQRootCanvas.h:132
 TQRootCanvas.h:133
 TQRootCanvas.h:134
 TQRootCanvas.h:135
 TQRootCanvas.h:136
 TQRootCanvas.h:137
 TQRootCanvas.h:138
 TQRootCanvas.h:139
 TQRootCanvas.h:140
 TQRootCanvas.h:141
 TQRootCanvas.h:142
 TQRootCanvas.h:143
 TQRootCanvas.h:144
 TQRootCanvas.h:145
 TQRootCanvas.h:146
 TQRootCanvas.h:147
 TQRootCanvas.h:148
 TQRootCanvas.h:149
 TQRootCanvas.h:150
 TQRootCanvas.h:151
 TQRootCanvas.h:152
 TQRootCanvas.h:153
 TQRootCanvas.h:154
 TQRootCanvas.h:155
 TQRootCanvas.h:156
 TQRootCanvas.h:157
 TQRootCanvas.h:158
 TQRootCanvas.h:159
 TQRootCanvas.h:160
 TQRootCanvas.h:161
 TQRootCanvas.h:162
 TQRootCanvas.h:163
 TQRootCanvas.h:164
 TQRootCanvas.h:165
 TQRootCanvas.h:166
 TQRootCanvas.h:167
 TQRootCanvas.h:168
 TQRootCanvas.h:169
 TQRootCanvas.h:170
 TQRootCanvas.h:171
 TQRootCanvas.h:172
 TQRootCanvas.h:173
 TQRootCanvas.h:174
 TQRootCanvas.h:175
 TQRootCanvas.h:176
 TQRootCanvas.h:177
 TQRootCanvas.h:178
 TQRootCanvas.h:179
 TQRootCanvas.h:180
 TQRootCanvas.h:181
 TQRootCanvas.h:182
 TQRootCanvas.h:183
 TQRootCanvas.h:184
 TQRootCanvas.h:185