19 #include "TVirtualX.h" 21 #include <QMouseEvent> 22 #include <QCloseEvent> 25 #include "TGo4LockGuard.h" 27 #define TGo4LockGuard int 35 TGCompositeFrame(gClient, id, new TGMainFrame(gClient->GetDefaultRoot(),100,100))
66 fxRootwindow(nullptr),
67 fbResizeOnPaint(kTRUE),fQtScalingfactor(1.0)
69 setObjectName( name ? name :
"QRootWindow");
72 setUpdatesEnabled(
true );
73 setMouseTracking(
true);
75 setFocusPolicy( Qt::TabFocus );
76 setCursor( Qt::CrossCursor );
84 if (parent) parent->installEventFilter(
this );
86 fQtScalingfactor = (double) metric(QPaintDevice::PdmDevicePixelRatioScaled)/65536.;
108 if(!e || !rev)
return kFALSE;
110 #if QT_VERSION < QT_VERSION_CHECK(6,0,0) 113 rev->fXRoot = e->globalX();
114 rev->fYRoot = e->globalY();
116 rev->fX = e->position().x();
117 rev->fY = e->position().y();
118 rev->fXRoot = e->globalPosition().x();
119 rev->fYRoot = e->globalPosition().y();
123 if(e->type() == QEvent::MouseButtonPress) rev->fType = kButtonPress;
124 else if(e->type() == QEvent::MouseButtonRelease) rev->fType = kButtonRelease;
125 else if(e->type() == QEvent::MouseButtonDblClick) rev->fType = kButtonDoubleClick;
126 else if(e->type() == QEvent::MouseMove) rev->fType = kMotionNotify;
127 else if(e->type() == QEvent::KeyPress) rev->fType = kGKeyPress;
128 else if(e->type() == QEvent::KeyRelease) rev->fType = kKeyRelease;
129 else rev->fType = kOtherEvent;
133 if(e->buttons() & Qt::LeftButton)
134 rev->fState |= kButton1Mask;
135 if(e->buttons() & Qt::RightButton)
136 rev->fState |= kButton3Mask;
137 if(e->buttons() & Qt::MiddleButton)
138 rev->fState |= kButton2Mask;
139 if(e->buttons() & Qt::MouseButtonMask)
140 rev->fState |= kButton1Mask;
142 if(e->modifiers() & Qt::ShiftModifier)
143 rev->fState |= kKeyShiftMask;
144 if(e->modifiers() & Qt::ControlModifier)
145 rev->fState |= kKeyControlMask;
146 if(e->modifiers() & Qt::AltModifier)
147 rev->fState |= kKeyMod1Mask;
148 if(e->modifiers() & Qt::MetaModifier)
149 rev->fState |= kKeyMod1Mask;
155 rev->fCode = Qt::NoButton;
156 if(e->button() == Qt::LeftButton)
157 rev->fCode |= kButton1Mask;
158 if(e->button() == Qt::RightButton)
159 rev->fCode |= kButton3Mask;
160 if(e->button() == Qt::MiddleButton)
161 rev->fCode |= kButton2Mask;
164 rev->fWindow = gVirtualX->GetWindowID(
fiWinid);
184 std::cout <<
"Warning: QRootWindow::paintEvent finds changed X window id: "<< (ULong_t) winId()<<
", previous:"<<
fQtWinId << std::endl;
194 gVirtualX->Update(1);
197 QWidget::paintEvent(e);
205 QMouseEvent* me =
dynamic_cast<QMouseEvent*
>(e);
214 if ( e->type() == QEvent::Close) {
221 return QWidget::eventFilter( o, e );
virtual void CloseWindow()
bool eventFilter(QObject *, QEvent *) override
void SetEditable(bool on=true)
void AddSubFrame(TGFrame *f, TGLayoutHints *l=nullptr)
void closeEvent(QCloseEvent *e) override
TGCompositeFrame * GetRootFrame()
TQRootFrame * fxRootwindow
void paintEvent(QPaintEvent *e) override
QRootWindow(QWidget *parent=nullptr, const char *name=nullptr, bool designermode=false)
Bool_t MapQMouseEvent(QMouseEvent *e, Event_t *rev)