void ItemBox::setIndexSelected(size_t _index) { MYGUI_ASSERT_RANGE_AND_NONE(_index, mItemsInfo.size(), "ItemBox::setIndexSelected"); if (_index == mIndexSelect) return; size_t start = (size_t)(mFirstVisibleIndex * mCountItemInLine); // сбрасываем старое выделение if (mIndexSelect != ITEM_NONE) { size_t index = mIndexSelect; mIndexSelect = ITEM_NONE; if ((index >= start) && (index < (start + mVectorItems.size()))) { IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false); requestDrawItem(this, mVectorItems[index - start], data); } } mIndexSelect = _index; if (mIndexSelect != ITEM_NONE) { if ((_index >= start) && (_index < (start + mVectorItems.size()))) { IBDrawItemInfo data(_index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false); requestDrawItem(this, mVectorItems[_index - start], data); } } }
// на входе индексы реальные, на выходе, то что видит пользователь size_t BiIndexBase::convertToFace(size_t _index) const { #if MYGUI_DEBUG_MODE == 1 MYGUI_ASSERT_RANGE_AND_NONE(_index, mIndexFace.size(), "BiIndexBase::convertToFace"); #endif return _index == ITEM_NONE ? ITEM_NONE : mIndexBack[_index]; }
DataPtr Data::getChildByIndex(size_t _index) { MYGUI_ASSERT_RANGE_AND_NONE(_index, mChilds.size(), "Data::getChildSelected"); if (_index == MyGUI::ITEM_NONE) return NULL; return mChilds[_index]; }
void ListBox::setIndexSelected(size_t _index) { MYGUI_ASSERT_RANGE_AND_NONE(_index, mItemsInfo.size(), "ListBox::setIndexSelected"); if (mIndexSelect != _index) { _selectIndex(mIndexSelect, false); _selectIndex(_index, true); mIndexSelect = _index; } }
void MultiListBox::setIndexSelected(size_t _index) { if (_index == mItemSelected) return; MYGUI_ASSERT(!mVectorColumnInfo.empty(), "MultiListBox::setIndexSelected"); MYGUI_ASSERT_RANGE_AND_NONE(_index, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::setIndexSelected"); mItemSelected = _index; updateBackSelected(BiIndexBase::convertToBack(mItemSelected)); }
void ComboBox::setIndexSelected(size_t _index) { MYGUI_ASSERT_RANGE_AND_NONE(_index, mList->getItemCount(), "ComboBox::setIndexSelected"); mItemIndex = _index; mList->setIndexSelected(_index); if (_index == ITEM_NONE) { Base::setCaption(""); return; } Base::setCaption(mList->getItemNameAt(_index)); Base::updateView(); // hook for update }
void ListCtrl::setIndexSelected(size_t _index) { MYGUI_ASSERT_RANGE_AND_NONE(_index, mItemsInfo.size(), "ListCtrl::setIndexSelected"); if (_index == mIndexSelect) return; //size_t start = (size_t)mFirstVisibleIndex; // сбрасываем старое выделение if (mIndexSelect != ITEM_NONE) { size_t index = mIndexSelect; mIndexSelect = ITEM_NONE; //FIXME потом только один попробовать обновить _updateAllVisible(index, true, false); /*if ((index >= start) && (index < (start + mVectorItems.size()))) { IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false); IntCoord coord(IntPoint(), mItemsInfo[index].size); requestDrawItem(this, mVectorItems[index - start], data, coord); mItemsInfo[index].size = coord.size(); }*/ } mIndexSelect = _index; if (mIndexSelect != ITEM_NONE) { //FIXME потом только один попробовать обновить _updateAllVisible(_index, true, false); /*if ((_index >= start) && (_index < (start + mVectorItems.size()))) { IBDrawItemInfo data(_index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false); IntCoord coord(IntPoint(), mItemsInfo[_index].size); requestDrawItem(this, mVectorItems[_index - start], data, coord); mItemsInfo[_index].size = coord.size(); }*/ } }