MCPcopy Create free account
hub / github.com/DISTRHO/DPF / giveMouseEventForSubWidgets

Method giveMouseEventForSubWidgets

dgl/src/WidgetPrivateData.cpp:111–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111bool Widget::PrivateData::giveMouseEventForSubWidgets(MouseEvent& ev)
112{
113 if (! visible)
114 return false;
115 if (subWidgets.size() == 0)
116 return false;
117
118 const double x = ev.absolutePos.getX();
119 const double y = ev.absolutePos.getY();
120
121 if (SubWidget* const selfw = dynamic_cast<SubWidget*>(self))
122 {
123 if (selfw->pData->needsViewportScaling)
124 {
125 ev.absolutePos.setX(x - selfw->getAbsoluteX() + selfw->getMargin().getX());
126 ev.absolutePos.setY(y - selfw->getAbsoluteY() + selfw->getMargin().getY());
127 }
128 }
129
130 FOR_EACH_SUBWIDGET_INV(rit)
131 {
132 SubWidget* const widget(*rit);
133
134 if (! widget->isVisible())
135 continue;
136
137 ev.pos = Point<double>(x - widget->getAbsoluteX() + widget->getMargin().getX(),
138 y - widget->getAbsoluteY() + widget->getMargin().getY());
139
140 if (widget->onMouse(ev))
141 return true;
142 }
143
144 return false;
145}
146
147bool Widget::PrivateData::giveMotionEventForSubWidgets(MotionEvent& ev)
148{

Callers 2

mouseEventMethod · 0.80
onMouseMethod · 0.80

Calls 6

sizeMethod · 0.80
setXMethod · 0.80
getAbsoluteXMethod · 0.80
getMarginMethod · 0.80
setYMethod · 0.80
getAbsoluteYMethod · 0.80

Tested by

no test coverage detected