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

Method notifyRootMouseChangeFocus

MyGUIEngine/src/MyGUI_ItemBox.cpp:653–684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

651 }
652
653 void ItemBox::notifyRootMouseChangeFocus(Widget* _sender, bool _focus)
654 {
655 size_t index = calcIndexByWidget(_sender);
656 if (_focus)
657 {
658 MYGUI_ASSERT_RANGE(index, mItemsInfo.size(), "ItemBox::notifyRootMouseChangeFocus");
659
660 // сбрасываем старый
661 if (mIndexActive != ITEM_NONE)
662 {
663 size_t old_index = mIndexActive;
664 mIndexActive = ITEM_NONE;
665 IBDrawItemInfo data(old_index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
666 requestDrawItem(this, mVectorItems[old_index - (mFirstVisibleIndex * mCountItemInLine)], data);
667 }
668
669 mIndexActive = index;
670 IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
671 requestDrawItem(this, mVectorItems[*_sender->_getInternalData<size_t>()], data);
672 }
673 else
674 {
675 // при сбросе виджет может быть уже скрыт, и соответсвенно отсутсвовать индекс
676 // сбрасываем индекс, только если мы и есть актив
677 if (index < mItemsInfo.size() && mIndexActive == index)
678 {
679 mIndexActive = ITEM_NONE;
680 IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
681 requestDrawItem(this, mVectorItems[*_sender->_getInternalData<size_t>()], data);
682 }
683 }
684 }
685
686 void ItemBox::updateMetrics()
687 {

Callers

nothing calls this directly

Calls 2

requestDrawItemFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected