void SelectorControl::notifyWindowChangeCoord(MyGUI::Window* _sender) { MyGUI::IntCoord coord = _sender->getCoord() - mProjectionDiff; const MyGUI::IntCoord& actionScale = _sender->getActionScale(); if (actionScale.left != 0 && actionScale.width != 0) { int right = mCoordValue.right(); mCoordValue.width = (int)((double)coord.width / mScaleValue); mCoordValue.left = right - mCoordValue.width; } else { mCoordValue.left = (int)((double)coord.left / mScaleValue); mCoordValue.width = (int)((double)coord.width / mScaleValue); } if (actionScale.top != 0 && actionScale.height != 0) { int bottom = mCoordValue.bottom(); mCoordValue.height = (int)((double)coord.height / mScaleValue); mCoordValue.top = bottom - mCoordValue.height; } else { mCoordValue.top = (int)((double)coord.top / mScaleValue); mCoordValue.height = (int)((double)coord.height / mScaleValue); } updateCoord(); eventChangePosition(); }
void ListBoxDataControl::notifyListChangePosition(MyGUI::ListBox* _sender, size_t _index) { if (mLastIndex != MyGUI::ITEM_NONE && _index != MyGUI::ITEM_NONE) { if (MyGUI::InputManager::getInstance().isControlPressed()) { if (mEnableChangePosition) { DataPtr data1 = *mListBox->getItemDataAt<DataPtr>(mLastIndex); DataPtr data2 = *mListBox->getItemDataAt<DataPtr>(_index); eventChangePosition(data1, data2); } } } mLastIndex = _index; DataPtr selection = _index != MyGUI::ITEM_NONE ? *mListBox->getItemDataAt<DataPtr>(_index) : nullptr; DataSelectorManager::getInstance().changeParentSelection(mParentData, selection); }