| 602 | } |
| 603 | |
| 604 | void ItemBox::notifyMouseButtonPressed(Widget* _sender, int _left, int _top, MouseButton _id) |
| 605 | { |
| 606 | mouseButtonPressed(_id); |
| 607 | |
| 608 | if (MouseButton::Left == _id) |
| 609 | { |
| 610 | size_t old = mIndexSelect; |
| 611 | |
| 612 | if (_sender == _getClientWidget()) |
| 613 | { |
| 614 | // сбрасываем выделение |
| 615 | setIndexSelected(ITEM_NONE); |
| 616 | } |
| 617 | else |
| 618 | { |
| 619 | // индекс отправителя |
| 620 | mDropSenderIndex = getIndexByWidget(_sender); |
| 621 | |
| 622 | // выделенный елемент |
| 623 | setIndexSelected(mDropSenderIndex); |
| 624 | } |
| 625 | |
| 626 | // смещение внутри виджета, куда кликнули мышкой |
| 627 | mClickInWidget = |
| 628 | InputManager::getInstance().getLastPressedPosition(MouseButton::Left) - _sender->getAbsolutePosition(); |
| 629 | |
| 630 | // отсылаем событие |
| 631 | eventMouseItemActivate(this, mIndexSelect); |
| 632 | // смену позиции отсылаем только при реальном изменении |
| 633 | if (old != mIndexSelect) |
| 634 | eventChangeItemPosition(this, mIndexSelect); |
| 635 | } |
| 636 | |
| 637 | eventNotifyItem( |
| 638 | this, |
| 639 | IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::MousePressed, _left, _top, _id)); |
| 640 | } |
| 641 | |
| 642 | void ItemBox::notifyMouseButtonReleased(Widget* _sender, int _left, int _top, MouseButton _id) |
| 643 | { |
nothing calls this directly
no test coverage detected