void QDeclarativePinchArea::updatePinch() { Q_D(QDeclarativePinchArea); if (d->touchPoints.count() == 0) { if (d->inPinch) { d->stealMouse = false; setKeepMouseGrab(false); d->inPinch = false; QPointF pinchCenter = mapFromScene(d->sceneLastCenter); QDeclarativePinchEvent pe(pinchCenter, d->pinchLastScale, d->pinchLastAngle, d->pinchRotation); pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(pinchCenter); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(mapFromScene(d->lastPoint1)); pe.setPoint2(mapFromScene(d->lastPoint2)); emit pinchFinished(&pe); d->pinchStartDist = 0; d->pinchActivated = false; if (d->pinch && d->pinch->target()) d->pinch->setActive(false); } return; } QTouchEvent::TouchPoint touchPoint1 = d->touchPoints.at(0); QTouchEvent::TouchPoint touchPoint2 = d->touchPoints.at(d->touchPoints. count() >= 2 ? 1 : 0); if (d->touchPoints.count() == 2 && (touchPoint1.state() & Qt::TouchPointPressed || touchPoint2.state() & Qt::TouchPointPressed)) { d->id1 = touchPoint1.id(); d->sceneStartPoint1 = touchPoint1.scenePos(); d->sceneStartPoint2 = touchPoint2.scenePos(); d->inPinch = false; d->pinchRejected = false; d->pinchActivated = true; } else if (d->pinchActivated && !d->pinchRejected) { const int dragThreshold = QApplication::startDragDistance(); QPointF p1 = touchPoint1.scenePos(); QPointF p2 = touchPoint2.scenePos(); qreal dx = p1.x() - p2.x(); qreal dy = p1.y() - p2.y(); qreal dist = sqrt(dx*dx + dy*dy); QPointF sceneCenter = (p1 + p2)/2; qreal angle = QLineF(p1, p2).angle(); if (d->touchPoints.count() == 1) { // If we only have one point then just move the center if (d->id1 == touchPoint1.id()) sceneCenter = d->sceneLastCenter + touchPoint1.scenePos() - d->lastPoint1; else sceneCenter = d->sceneLastCenter + touchPoint2.scenePos() - d->lastPoint2; angle = d->pinchLastAngle; } d->id1 = touchPoint1.id(); if (angle > 180) angle -= 360; if (!d->inPinch) { if (d->touchPoints.count() >= 2 && (qAbs(p1.x()-d->sceneStartPoint1.x()) > dragThreshold || qAbs(p1.y()-d->sceneStartPoint1.y()) > dragThreshold || qAbs(p2.x()-d->sceneStartPoint2.x()) > dragThreshold || qAbs(p2.y()-d->sceneStartPoint2.y()) > dragThreshold)) { d->sceneStartCenter = sceneCenter; d->sceneLastCenter = sceneCenter; d->pinchStartCenter = mapFromScene(sceneCenter); d->pinchStartDist = dist; d->pinchStartAngle = angle; d->pinchLastScale = 1.0; d->pinchLastAngle = angle; d->pinchRotation = 0.0; d->lastPoint1 = p1; d->lastPoint2 = p2; QDeclarativePinchEvent pe(d->pinchStartCenter, 1.0, angle, 0.0); pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(d->pinchStartCenter); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(mapFromScene(d->lastPoint1)); pe.setPoint2(mapFromScene(d->lastPoint2)); pe.setPointCount(d->touchPoints.count()); emit pinchStarted(&pe); if (pe.accepted()) { d->inPinch = true; d->stealMouse = true; QGraphicsScene *s = scene(); if (s && s->mouseGrabberItem() != this) grabMouse(); setKeepMouseGrab(true); if (d->pinch && d->pinch->target()) { d->pinchStartPos = pinch()->target()->pos(); d->pinchStartScale = d->pinch->target()->scale(); d->pinchStartRotation = d->pinch->target()->rotation(); d->pinch->setActive(true); } } else { d->pinchRejected = true; } } } else if (d->pinchStartDist > 0) { qreal scale = dist ? dist / d->pinchStartDist : d->pinchLastScale; qreal da = d->pinchLastAngle - angle; if (da > 180) da -= 360; else if (da < -180) da += 360; d->pinchRotation += da; QPointF pinchCenter = mapFromScene(sceneCenter); QDeclarativePinchEvent pe(pinchCenter, scale, angle, d->pinchRotation); pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(mapFromScene(d->sceneLastCenter)); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(touchPoint1.pos()); pe.setPoint2(touchPoint2.pos()); pe.setPointCount(d->touchPoints.count()); d->pinchLastScale = scale; d->sceneLastCenter = sceneCenter; d->pinchLastAngle = angle; d->lastPoint1 = touchPoint1.scenePos(); d->lastPoint2 = touchPoint2.scenePos(); emit pinchUpdated(&pe); if (d->pinch && d->pinch->target()) { qreal s = d->pinchStartScale * scale; s = qMin(qMax(pinch()->minimumScale(),s), pinch()->maximumScale()); pinch()->target()->setScale(s); QPointF pos = sceneCenter - d->sceneStartCenter + d->pinchStartPos; if (pinch()->axis() & QDeclarativePinch::XAxis) { qreal x = pos.x(); if (x < pinch()->xmin()) x = pinch()->xmin(); else if (x > pinch()->xmax()) x = pinch()->xmax(); pinch()->target()->setX(x); } if (pinch()->axis() & QDeclarativePinch::YAxis) { qreal y = pos.y(); if (y < pinch()->ymin()) y = pinch()->ymin(); else if (y > pinch()->ymax()) y = pinch()->ymax(); pinch()->target()->setY(y); } if (d->pinchStartRotation >= pinch()->minimumRotation() && d->pinchStartRotation <= pinch()->maximumRotation()) { qreal r = d->pinchRotation + d->pinchStartRotation; r = qMin(qMax(pinch()->minimumRotation(),r), pinch()->maximumRotation()); pinch()->target()->setRotation(r); } } } } }
void KTabBar::mouseMoveEvent( QMouseEvent *e ) { if ( e->state() == LeftButton ) { QTab *tab = selectTab( e->pos() ); if ( mDragSwitchTab && tab != mDragSwitchTab ) { mActivateDragSwitchTabTimer->stop(); mDragSwitchTab = 0; } int delay = KGlobalSettings::dndEventDelay(); QPoint newPos = e->pos(); if( newPos.x() > mDragStart.x()+delay || newPos.x() < mDragStart.x()-delay || newPos.y() > mDragStart.y()+delay || newPos.y() < mDragStart.y()-delay ) { if( tab!= 0L ) { emit( initiateDrag( indexOf( tab->identifier() ) ) ); return; } } } else if ( e->state() == MidButton ) { if (mReorderStartTab==-1) { int delay = KGlobalSettings::dndEventDelay(); QPoint newPos = e->pos(); if( newPos.x() > mDragStart.x()+delay || newPos.x() < mDragStart.x()-delay || newPos.y() > mDragStart.y()+delay || newPos.y() < mDragStart.y()-delay ) { QTab *tab = selectTab( e->pos() ); if( tab!= 0L && mTabReorderingEnabled ) { mReorderStartTab = indexOf( tab->identifier() ); grabMouse( sizeAllCursor ); return; } } } else { QTab *tab = selectTab( e->pos() ); if( tab!= 0L ) { int reorderStopTab = indexOf( tab->identifier() ); if ( mReorderStartTab!=reorderStopTab && mReorderPreviousTab!=reorderStopTab ) { emit( moveTab( mReorderStartTab, reorderStopTab ) ); mReorderPreviousTab=mReorderStartTab; mReorderStartTab=reorderStopTab; return; } } } } if ( mHoverCloseButtonEnabled && mReorderStartTab==-1) { QTab *t = selectTab( e->pos() ); //BEGIN Workaround //Qt3.2.0 (and 3.2.1) emit wrong local coordinates //for MouseMove events when the pointer leaves a widget. Discard those //to avoid enabling the wrong hover button #ifdef __GNUC__ #warning "Workaround for Qt 3.2.0, 3.2.1 bug" #endif if ( e->globalPos() != mapToGlobal( e->pos() ) ) return; //END Workaround if( t && t->iconSet() && t->isEnabled() ) { QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ); QRect rect( 0, 0, pixmap.width() + 4, pixmap.height() +4); int xoff = 0, yoff = 0; // The additional offsets were found by try and error, TODO: find the rational behind them if ( t == tab( currentTab() ) ) { #if QT_VERSION >= 0x030200 xoff = style().pixelMetric( QStyle::PM_TabBarTabShiftHorizontal, this ) + 3; yoff = style().pixelMetric( QStyle::PM_TabBarTabShiftVertical, this ) - 4; #else xoff = 3; yoff = -4; #endif } else { xoff = 7; yoff = 0; } rect.moveLeft( t->rect().left() + 2 + xoff ); rect.moveTop( t->rect().center().y()-pixmap.height()/2 + yoff ); if ( rect.contains( e->pos() ) ) { if ( mHoverCloseButton ) { if ( mHoverCloseButtonTab == t ) return; mEnableCloseButtonTimer->stop(); delete mHoverCloseButton; } mHoverCloseButton = new QPushButton( this ); mHoverCloseButton->setIconSet( KGlobal::iconLoader()->loadIcon("fileclose", KIcon::Toolbar, KIcon::SizeSmall, KIcon::ActiveState) ); mHoverCloseButton->setGeometry( rect ); QToolTip::add(mHoverCloseButton,i18n("Close this tab")); mHoverCloseButton->setFlat(true); mHoverCloseButton->show(); if ( mHoverCloseButtonDelayed ) { mHoverCloseButton->setEnabled(false); mEnableCloseButtonTimer->start( QApplication::doubleClickInterval(), true ); } mHoverCloseButtonTab = t; connect( mHoverCloseButton, SIGNAL( clicked() ), SLOT( closeButtonClicked() ) ); return; } } if ( mHoverCloseButton ) { mEnableCloseButtonTimer->stop(); delete mHoverCloseButton; mHoverCloseButton = 0; } } QTabBar::mouseMoveEvent( e ); }
void QWidget::grabMouse(const QCursor &cursor) { Q_UNUSED(cursor); grabMouse(); }
/** Default constructor */ GenCertDialog::GenCertDialog(bool onlyGenerateIdentity, QWidget *parent) : QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint), mOnlyGenerateIdentity(onlyGenerateIdentity) { /* Invoke Qt Designer generated QObject setup routine */ ui.setupUi(this); ui.headerFrame->setHeaderImage(QPixmap(":/images/contact_new128.png")); ui.headerFrame->setHeaderText(tr("Create a new profile")); connect(ui.new_gpg_key_checkbox, SIGNAL(clicked()), this, SLOT(newGPGKeyGenUiSetup())); connect(ui.adv_checkbox, SIGNAL(clicked()), this, SLOT(updateUiSetup())); connect(ui.hidden_checkbox, SIGNAL(clicked()), this, SLOT(updateUiSetup())); connect(ui.genButton2, SIGNAL(clicked()), this, SLOT(genPerson())); connect(ui.importIdentity_PB, SIGNAL(clicked()), this, SLOT(importIdentity())); connect(ui.exportIdentity_PB, SIGNAL(clicked()), this, SLOT(exportIdentity())); //ui.genName->setFocus(Qt::OtherFocusReason); // QObject *obj = QCoreApplication::eventFilter() ; // std::cerr << "Event filter : " << obj << std::endl; // QCoreApplication::instance()->setEventFilter(MyEventFilter) ; entropy_timer = new QTimer ; entropy_timer->start(20) ; QObject::connect(entropy_timer,SIGNAL(timeout()),this,SLOT(grabMouse())) ; // EntropyCollectorWidget *ecw = new EntropyCollectorWidget(ui.entropy_bar,this) ; // ecw->resize(size()) ; // ecw->move(0,0) ; // // QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect ; // effect->setOpacity(0.2) ; // ecw->setGraphicsEffect(effect) ; //ecw->setBackgroundColor(QColor::fromRGB(1,1,1)) ; // ecw->show() ; ui.entropy_bar->setValue(0) ; // make sure that QVariant always takes an 'int' otherwise the program will crash! ui.keylength_comboBox->addItem("default (2048 bits, recommended)", QVariant(2048)); ui.keylength_comboBox->addItem("high (3072 bits)", QVariant(3072)); ui.keylength_comboBox->addItem("insane (4096 bits)", QVariant(4096)); #if QT_VERSION >= 0x040700 ui.email_input->setPlaceholderText(tr("[Optional] Visible to your friends, and friends of friends.")) ; ui.node_input->setPlaceholderText(tr("[Required] Examples: Home, Laptop,...")) ; ui.hiddenaddr_input->setPlaceholderText(tr("[Required] Tor/I2P address - Examples: xa76giaf6ifda7ri63i263.onion (obtained by you from Tor)")) ; ui.name_input->setPlaceholderText(tr("[Required] Visible to your friends, and friends of friends.")); ui.password_input->setPlaceholderText(tr("[Required] This password protects your private PGP key.")); ui.password_input_2->setPlaceholderText(tr("[Required] Type the same password again here.")); #endif ui.node_input->setToolTip(tr("Enter a meaningful node description. e.g. : home, laptop, etc. \nThis field will be used to differentiate different installations with\nthe same profile (PGP key pair).")) ; ui.email_input->hide() ; ui.email_label->hide() ; /* get all available pgp private certificates.... * mark last one as default. */ init(); }
void SettingsWidget::grabAll() { grabKeyboard(); grabMouse(); _waitingForHotkey = true; }
void Colordialog::mousePressEvent(QMouseEvent *event) { mousepos = event->pos(); grabMouse(QCursor(Qt::SizeAllCursor)); raise(); }
void QQuickPinchArea::updatePinch() { Q_D(QQuickPinchArea); QQuickWindow *win = window(); if (d->touchPoints.count() < 2) { setKeepMouseGrab(false); QQuickWindow *c = window(); if (c && c->mouseGrabberItem() == this) ungrabMouse(); } if (d->touchPoints.count() == 0) { if (d->inPinch) { d->inPinch = false; QPointF pinchCenter = mapFromScene(d->sceneLastCenter); QQuickPinchEvent pe(pinchCenter, d->pinchLastScale, d->pinchLastAngle, d->pinchRotation); pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(pinchCenter); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(mapFromScene(d->lastPoint1)); pe.setPoint2(mapFromScene(d->lastPoint2)); emit pinchFinished(&pe); d->pinchStartDist = 0; d->pinchActivated = false; if (d->pinch && d->pinch->target()) d->pinch->setActive(false); } d->initPinch = false; d->pinchRejected = false; d->stealMouse = false; return; } QTouchEvent::TouchPoint touchPoint1 = d->touchPoints.at(0); QTouchEvent::TouchPoint touchPoint2 = d->touchPoints.at(d->touchPoints. count() >= 2 ? 1 : 0); if (touchPoint1.state() == Qt::TouchPointPressed) d->sceneStartPoint1 = touchPoint1.scenePos(); if (touchPoint2.state() == Qt::TouchPointPressed) d->sceneStartPoint2 = touchPoint2.scenePos(); QRectF bounds = clipRect(); // Pinch is not started unless there are exactly two touch points // AND one or more of the points has just now been pressed (wasn't pressed already) // AND both points are inside the bounds. if (d->touchPoints.count() == 2 && (touchPoint1.state() & Qt::TouchPointPressed || touchPoint2.state() & Qt::TouchPointPressed) && bounds.contains(touchPoint1.pos()) && bounds.contains(touchPoint2.pos())) { d->id1 = touchPoint1.id(); d->pinchActivated = true; d->initPinch = true; int touchMouseId = QQuickWindowPrivate::get(win)->touchMouseId; if (touchPoint1.id() == touchMouseId || touchPoint2.id() == touchMouseId) { if (win && win->mouseGrabberItem() != this) { grabMouse(); } } } if (d->pinchActivated && !d->pinchRejected) { const int dragThreshold = qApp->styleHints()->startDragDistance(); QPointF p1 = touchPoint1.scenePos(); QPointF p2 = touchPoint2.scenePos(); qreal dx = p1.x() - p2.x(); qreal dy = p1.y() - p2.y(); qreal dist = sqrt(dx*dx + dy*dy); QPointF sceneCenter = (p1 + p2)/2; qreal angle = QLineF(p1, p2).angle(); if (d->touchPoints.count() == 1) { // If we only have one point then just move the center if (d->id1 == touchPoint1.id()) sceneCenter = d->sceneLastCenter + touchPoint1.scenePos() - d->lastPoint1; else sceneCenter = d->sceneLastCenter + touchPoint2.scenePos() - d->lastPoint2; angle = d->pinchLastAngle; } d->id1 = touchPoint1.id(); if (angle > 180) angle -= 360; if (!d->inPinch || d->initPinch) { if (d->touchPoints.count() >= 2) { if (d->initPinch) { if (!d->inPinch) d->pinchStartDist = dist; d->initPinch = false; } d->sceneStartCenter = sceneCenter; d->sceneLastCenter = sceneCenter; d->pinchStartCenter = mapFromScene(sceneCenter); d->pinchStartAngle = angle; d->pinchLastScale = 1.0; d->pinchLastAngle = angle; d->pinchRotation = 0.0; d->lastPoint1 = p1; d->lastPoint2 = p2; if (qAbs(dist - d->pinchStartDist) >= dragThreshold || (pinch()->axis() != QQuickPinch::NoDrag && (qAbs(p1.x()-d->sceneStartPoint1.x()) >= dragThreshold || qAbs(p1.y()-d->sceneStartPoint1.y()) >= dragThreshold || qAbs(p2.x()-d->sceneStartPoint2.x()) >= dragThreshold || qAbs(p2.y()-d->sceneStartPoint2.y()) >= dragThreshold))) { QQuickPinchEvent pe(d->pinchStartCenter, 1.0, angle, 0.0); d->pinchStartDist = dist; pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(d->pinchStartCenter); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(mapFromScene(d->lastPoint1)); pe.setPoint2(mapFromScene(d->lastPoint2)); pe.setPointCount(d->touchPoints.count()); emit pinchStarted(&pe); if (pe.accepted()) { d->inPinch = true; d->stealMouse = true; if (win && win->mouseGrabberItem() != this) grabMouse(); setKeepMouseGrab(true); grabTouchPoints(QVector<int>() << touchPoint1.id() << touchPoint2.id()); d->inPinch = true; d->stealMouse = true; if (d->pinch && d->pinch->target()) { d->pinchStartPos = pinch()->target()->position(); d->pinchStartScale = d->pinch->target()->scale(); d->pinchStartRotation = d->pinch->target()->rotation(); d->pinch->setActive(true); } } else { d->pinchRejected = true; } } } } else if (d->pinchStartDist > 0) { qreal scale = dist ? dist / d->pinchStartDist : d->pinchLastScale; qreal da = d->pinchLastAngle - angle; if (da > 180) da -= 360; else if (da < -180) da += 360; d->pinchRotation += da; QPointF pinchCenter = mapFromScene(sceneCenter); QQuickPinchEvent pe(pinchCenter, scale, angle, d->pinchRotation); pe.setStartCenter(d->pinchStartCenter); pe.setPreviousCenter(mapFromScene(d->sceneLastCenter)); pe.setPreviousAngle(d->pinchLastAngle); pe.setPreviousScale(d->pinchLastScale); pe.setStartPoint1(mapFromScene(d->sceneStartPoint1)); pe.setStartPoint2(mapFromScene(d->sceneStartPoint2)); pe.setPoint1(touchPoint1.pos()); pe.setPoint2(touchPoint2.pos()); pe.setPointCount(d->touchPoints.count()); d->pinchLastScale = scale; d->sceneLastCenter = sceneCenter; d->pinchLastAngle = angle; d->lastPoint1 = touchPoint1.scenePos(); d->lastPoint2 = touchPoint2.scenePos(); emit pinchUpdated(&pe); if (d->pinch && d->pinch->target()) { qreal s = d->pinchStartScale * scale; s = qMin(qMax(pinch()->minimumScale(),s), pinch()->maximumScale()); pinch()->target()->setScale(s); QPointF pos = sceneCenter - d->sceneStartCenter + d->pinchStartPos; if (pinch()->axis() & QQuickPinch::XAxis) { qreal x = pos.x(); if (x < pinch()->xmin()) x = pinch()->xmin(); else if (x > pinch()->xmax()) x = pinch()->xmax(); pinch()->target()->setX(x); } if (pinch()->axis() & QQuickPinch::YAxis) { qreal y = pos.y(); if (y < pinch()->ymin()) y = pinch()->ymin(); else if (y > pinch()->ymax()) y = pinch()->ymax(); pinch()->target()->setY(y); } if (d->pinchStartRotation >= pinch()->minimumRotation() && d->pinchStartRotation <= pinch()->maximumRotation()) { qreal r = d->pinchRotation + d->pinchStartRotation; r = qMin(qMax(pinch()->minimumRotation(),r), pinch()->maximumRotation()); pinch()->target()->setRotation(r); } } } } }
//____________________________________________________________________ bool SplitterProxy::event( QEvent *event ) { switch( event->type() ) { case QEvent::MouseMove: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: { // check splitter if( !_splitter ) return false; event->accept(); // grab on mouse press if( event->type() == QEvent::MouseButtonPress) grabMouse(); parentWidget()->setUpdatesEnabled(false); resize(1,1); parentWidget()->setUpdatesEnabled(true); // cast to mouse event QMouseEvent *mouseEvent( static_cast<QMouseEvent*>( event ) ); // get relevant position to post mouse drag event to application if( event->type() == QEvent::MouseButtonPress ) { // use hook, to make sure splitter is properly dragged QMouseEvent mouseEvent2( mouseEvent->type(), _hook, _splitter.data()->mapToGlobal(_hook), mouseEvent->button(), mouseEvent->buttons(), mouseEvent->modifiers()); QCoreApplication::sendEvent( _splitter.data(), &mouseEvent2 ); } else { // map event position to current splitter and post. QMouseEvent mouseEvent2( mouseEvent->type(), _splitter.data()->mapFromGlobal( mouseEvent->globalPos() ), mouseEvent->globalPos(), mouseEvent->button(), mouseEvent->buttons(), mouseEvent->modifiers()); QCoreApplication::sendEvent( _splitter.data(), &mouseEvent2 ); } // release grab on mouse-Release if( event->type() == QEvent::MouseButtonRelease && mouseGrabber() == this ) { releaseMouse(); } return true; } case QEvent::Timer: if( static_cast<QTimerEvent*>( event )->timerId() != _timerId ) { return QWidget::event( event ); } if( mouseGrabber() == this ) { return true; } /* Fall through is intended. We somehow lost a QEvent::Leave and gonna fix that from here */ case QEvent::HoverLeave: case QEvent::Leave: { // reset splitter if( isVisible() && !rect().contains( mapFromGlobal( QCursor::pos() ) ) ) { clearSplitter(); } return true; } default: return QWidget::event( event ); } }