void ItemBox::notifyMouseButtonPressed(Widget* _sender, int _left, int _top, MouseButton _id) { mouseButtonPressed(_id); if ( MouseButton::Left == _id) { size_t old = mIndexSelect; if (_sender == _getClientWidget()) { // сбрасываем выделение setIndexSelected(ITEM_NONE); } else { // индекс отправителя mDropSenderIndex = getIndexByWidget(_sender); // выделенный елемент setIndexSelected(mDropSenderIndex); } // смещение внутри виджета, куда кликнули мышкой mClickInWidget = InputManager::getInstance().getLastPressedPosition(MouseButton::Left) - _sender->getAbsolutePosition(); // отсылаем событие eventMouseItemActivate(this, mIndexSelect); // смену позиции отсылаем только при реальном изменении if (old != mIndexSelect) eventChangeItemPosition(this, mIndexSelect); } eventNotifyItem(this, IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::MousePressed, _left, _top, _id)); }
void ItemBox::notifyMouseButtonReleased(Widget* _sender, int _left, int _top, MouseButton _id) { bool needEvent = !mStartDrop; mouseButtonReleased(_id); if (needEvent) eventNotifyItem(this, IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::MouseReleased, _left, _top, _id)); }
void ItemBox::onKeyButtonPressed(KeyCode _key, Char _char) { Base::onKeyButtonPressed(_key, _char); eventNotifyItem(this, IBNotifyItemData(ITEM_NONE, IBNotifyItemData::KeyPressed, _key, _char)); }
void ItemBox::notifyKeyButtonReleased(Widget* _sender, KeyCode _key) { eventNotifyItem(this, IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::KeyReleased, _key)); }
void ItemBox::notifyKeyButtonPressed(Widget* _sender, KeyCode _key, Char _char) { eventNotifyItem(this, IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::KeyPressed, _key, _char)); }
void ItemBox::onKeyButtonReleased(KeyCode _key) { Base::onKeyButtonReleased(_key); eventNotifyItem(this, IBNotifyItemData(ITEM_NONE, IBNotifyItemData::KeyReleased, _key)); }
void ListCtrl::notifyMouseButtonReleased(Widget* _sender, int _left, int _top, MouseButton _id) { mouseButtonReleased(_id); eventNotifyItem(this, IBNotifyItemData(getIndexByWidget(_sender), IBNotifyItemData::MouseReleased, _left, _top, _id)); }