MCPcopy Create free account
hub / github.com/Gecode/gecode / eventNode

Method eventNode

gecode/gist/treecanvas.cpp:1125–1178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1123 }
1124
1125 VisualNode*
1126 TreeCanvas::eventNode(QEvent* event) {
1127 int x = 0;
1128 int y = 0;
1129 switch (event->type()) {
1130 case QEvent::ToolTip:
1131 {
1132 QHelpEvent* he = static_cast<QHelpEvent*>(event);
1133 x = he->x();
1134 y = he->y();
1135 break;
1136 }
1137 case QEvent::MouseButtonDblClick:
1138 case QEvent::MouseButtonPress:
1139 case QEvent::MouseButtonRelease:
1140 case QEvent::MouseMove:
1141 {
1142 QMouseEvent* me = static_cast<QMouseEvent*>(event);
1143#if QT_VERSION >= 0x060000
1144 x = me->position().x();
1145 y = me->position().y();
1146#else
1147 x = me->x();
1148 y = me->y();
1149#endif
1150 break;
1151 }
1152 case QEvent::ContextMenu:
1153 {
1154 QContextMenuEvent* ce = static_cast<QContextMenuEvent*>(event);
1155 x = ce->x();
1156 y = ce->y();
1157 break;
1158 }
1159 default:
1160 return nullptr;
1161 }
1162 QAbstractScrollArea* sa =
1163 static_cast<QAbstractScrollArea*>(parentWidget()->parentWidget());
1164 int xoff = sa->horizontalScrollBar()->value()/scale;
1165 int yoff = sa->verticalScrollBar()->value()/scale;
1166
1167 BoundingBox bb = root->getBoundingBox();
1168 int w =
1169 static_cast<int>((bb.right-bb.left+Layout::extent)*scale);
1170 if (w < sa->viewport()->width())
1171 xoff -= (sa->viewport()->width()-w)/2;
1172
1173 VisualNode* n;
1174 n = root->findNode(*na,
1175 static_cast<int>(x/scale-xtrans+xoff),
1176 static_cast<int>((y-30)/scale+yoff));
1177 return n;
1178 }
1179
1180 bool
1181 TreeCanvas::event(QEvent* event) {

Callers

nothing calls this directly

Calls 7

getBoundingBoxMethod · 0.80
findNodeMethod · 0.80
typeMethod · 0.45
xMethod · 0.45
yMethod · 0.45
valueMethod · 0.45
widthMethod · 0.45

Tested by

no test coverage detected