MCPcopy Create free account
hub / github.com/MyGUI/mygui / notifyMousePressed

Method notifyMousePressed

MyGUIEngine/src/MyGUI_ScrollBar.cpp:263–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

261 }
262
263 void ScrollBar::notifyMousePressed(Widget* _sender, int _left, int _top, MouseButton _id)
264 {
265 // диспечерезируем нажатие своих детей как свое
266 eventMouseButtonPressed(this, _left, _top, _id);
267
268 if (MouseButton::Left != _id)
269 return;
270
271 if (mEnableRepeat && _sender != mWidgetTrack &&
272 ((_sender != mWidgetFirstPart && _sender != mWidgetSecondPart) || !mMoveToClick))
273 {
274 ControllerItem* item =
275 ControllerManager::getInstance().createItem(ControllerRepeatClick::getClassTypeName());
276 ControllerRepeatClick* controller = item->castType<ControllerRepeatClick>();
277 controller->eventRepeatClick += newDelegate(this, &ScrollBar::repeatClick);
278 controller->setRepeat(mRepeatTriggerTime, mRepeatStepTime);
279 ControllerManager::getInstance().addItem(_sender, controller);
280 }
281
282 if (mMoveToClick && _sender != mWidgetTrack && _sender != mWidgetStart && _sender != mWidgetEnd)
283 {
284 if (mWidgetTrack != nullptr)
285 {
286 mPreActionOffset = InputManager::getInstance().getLastPressedPosition(MouseButton::Left);
287 const IntPoint& point = InputManager::getInstance().getMousePositionByLayer() -
288 mWidgetTrack->getParent()->getAbsolutePosition();
289
290 mPreActionOffset.left -= getTrackSize() / 2;
291 mPreActionOffset.top -= getTrackSize() / 2;
292
293 TrackMove(point.left, point.top);
294 }
295 }
296 else if (_sender == mWidgetStart)
297 {
298 widgetStartPressed();
299 }
300 else if (_sender == mWidgetEnd)
301 {
302 widgetEndPressed();
303 }
304 else if (_sender == mWidgetFirstPart)
305 {
306 widgetFirstPartPressed();
307 }
308 else if (_sender == mWidgetSecondPart)
309 {
310 widgetSecondPartPressed();
311 }
312 else if (_sender == mWidgetTrack)
313 {
314 mPreActionOffset.left = _sender->getLeft();
315 mPreActionOffset.top = _sender->getTop();
316 }
317 }
318
319 void ScrollBar::notifyMouseReleased(Widget* _sender, int _left, int _top, MouseButton _id)
320 {

Callers

nothing calls this directly

Calls 9

getClassTypeNameFunction · 0.85
newDelegateFunction · 0.85
createItemMethod · 0.80
setRepeatMethod · 0.80
getLeftMethod · 0.80
getTopMethod · 0.80
addItemMethod · 0.45
getParentMethod · 0.45

Tested by

no test coverage detected