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

Method giveScrollEventForSubWidgets

dgl/src/WidgetPrivateData.cpp:183–217  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181}
182
183bool Widget::PrivateData::giveScrollEventForSubWidgets(ScrollEvent& ev)
184{
185 if (! visible)
186 return false;
187 if (subWidgets.size() == 0)
188 return false;
189
190 const double x = ev.absolutePos.getX();
191 const double y = ev.absolutePos.getY();
192
193 if (SubWidget* const selfw = dynamic_cast<SubWidget*>(self))
194 {
195 if (selfw->pData->needsViewportScaling)
196 {
197 ev.absolutePos.setX(x - selfw->getAbsoluteX() + selfw->getMargin().getX());
198 ev.absolutePos.setY(y - selfw->getAbsoluteY() + selfw->getMargin().getY());
199 }
200 }
201
202 FOR_EACH_SUBWIDGET_INV(rit)
203 {
204 SubWidget* const widget(*rit);
205
206 if (! widget->isVisible())
207 continue;
208
209 ev.pos = Point<double>(x - widget->getAbsoluteX() + widget->getMargin().getX(),
210 y - widget->getAbsoluteY() + widget->getMargin().getY());
211
212 if (widget->onScroll(ev))
213 return true;
214 }
215
216 return false;
217}
218
219// -----------------------------------------------------------------------
220

Callers 2

scrollEventMethod · 0.80
onScrollMethod · 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