本文整理汇总了C++中MYGUI_ASSERT_RANGE函数的典型用法代码示例。如果您正苦于以下问题:C++ MYGUI_ASSERT_RANGE函数的具体用法?C++ MYGUI_ASSERT_RANGE怎么用?C++ MYGUI_ASSERT_RANGE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MYGUI_ASSERT_RANGE函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MYGUI_ASSERT
void MultiListBox::swapItemsAt(size_t _index1, size_t _index2)
{
MYGUI_ASSERT(!mVectorColumnInfo.empty(), "MultiListBox::removeItemAt");
MYGUI_ASSERT_RANGE(_index1, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::swapItemsAt");
MYGUI_ASSERT_RANGE(_index2, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::swapItemsAt");
// при сортированном, меняем только индексы
BiIndexBase::swapItemsFaceAt(_index1, _index2);
// при несортированном, нужно наоборот, поменять только данные
// FIXME
}
示例2: MYGUI_ASSERT_RANGE
void ListBox::swapItemsAt(size_t _index1, size_t _index2)
{
MYGUI_ASSERT_RANGE(_index1, mItemsInfo.size(), "ListBox::swapItemsAt");
MYGUI_ASSERT_RANGE(_index2, mItemsInfo.size(), "ListBox::swapItemsAt");
if (_index1 == _index2) return;
std::swap(mItemsInfo[_index1], mItemsInfo[_index2]);
Base::redrawItemAt(_index1);
Base::redrawItemAt(_index2);
}
示例3: MYGUI_ASSERT_RANGE
void ImageBox::insertItemFrameDublicate(size_t _index, size_t _indexFrame, size_t _indexSourceFrame)
{
MYGUI_ASSERT_RANGE(_index, mItems.size(), "ImageBox::insertItemFrameDublicate");
VectorImages::iterator iter = mItems.begin() + _index;
MYGUI_ASSERT_RANGE_INSERT(_indexFrame, iter->images.size(), "ImageBox::insertItemFrameDublicate");
if (_indexFrame == ITEM_NONE) _indexFrame = iter->images.size() - 1;
MYGUI_ASSERT_RANGE(_indexSourceFrame, iter->images.size(), "ImageBox::insertItemFrameDublicate");
iter->images.insert(iter->images.begin() + _indexFrame, iter->images[_indexSourceFrame]);
}
示例4: MYGUI_ASSERT_RANGE
size_t BiIndexBase::removeItemAt(size_t _index)
{
#if MYGUI_DEBUG_MODE == 1
MYGUI_ASSERT_RANGE(_index, mIndexFace.size(), "BiIndexBase::removeItemAt");
checkIndexes();
#endif
// для удаления айтема
size_t index = mIndexFace[_index];
mIndexFace.erase(mIndexFace.begin() + _index);
mIndexBack.pop_back();
size_t count = mIndexFace.size();
for (size_t pos = 0; pos < count; ++pos)
{
if (mIndexFace[pos] > index)
mIndexFace[pos]--;
mIndexBack[mIndexFace[pos]] = pos;
}
#if MYGUI_DEBUG_MODE == 1
checkIndexes();
#endif
return index;
}
示例5: MYGUI_ASSERT_RANGE
void ListCtrl::_setContainerItemInfo(size_t _index, bool _set, bool _accept)
{
if (_index == ITEM_NONE) return;
MYGUI_ASSERT_RANGE(_index, mItemsInfo.size(), "ListCtrl::_setContainerItemInfo");
mIndexAccept = (_set && _accept ) ? _index : ITEM_NONE;
mIndexRefuse = (_set && !_accept) ? _index : ITEM_NONE;
//FIXME потом только один попробовать обновить
_updateAllVisible(_index, true, false);
/*size_t start = (size_t)mFirstVisibleIndex;
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();
}*/
}
示例6: MYGUI_ASSERT
void MultiListBox::removeItemAt(size_t _index)
{
MYGUI_ASSERT(!mVectorColumnInfo.empty(), "MultiListBox::removeItemAt");
MYGUI_ASSERT_RANGE(_index, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::removeItemAt");
size_t index = BiIndexBase::removeItemAt(_index);
for (VectorColumnInfo::iterator iter = mVectorColumnInfo.begin(); iter != mVectorColumnInfo.end(); ++iter)
{
(*iter).list->removeItemAt(index);
}
// если надо, то меняем выделенный элемент
size_t count = mVectorColumnInfo.begin()->list->getItemCount();
if (count == 0)
mItemSelected = ITEM_NONE;
else if (mItemSelected != ITEM_NONE)
{
if (_index < mItemSelected)
mItemSelected --;
else if ((_index == mItemSelected) && (mItemSelected == count))
mItemSelected --;
}
updateBackSelected(BiIndexBase::convertToBack(mItemSelected));
}
示例7: requestItemSize
Widget* ItemBox::getItemWidget(size_t _index)
{
// еще нет такого виджета, нуно создать
if (_index == mVectorItems.size())
{
requestItemSize();
Widget* item = _getClientWidget()->createWidget<Widget>("Default", IntCoord(0, 0, mSizeItem.width, mSizeItem.height), Align::Default);
// вызываем запрос на создание виджета
requestCreateWidgetItem(this, item);
item->eventMouseWheel += newDelegate(this, &ItemBox::notifyMouseWheel);
item->eventRootMouseChangeFocus += newDelegate(this, &ItemBox::notifyRootMouseChangeFocus);
item->eventMouseButtonPressed += newDelegate(this, &ItemBox::notifyMouseButtonPressed);
item->eventMouseButtonReleased += newDelegate(this, &ItemBox::notifyMouseButtonReleased);
item->eventMouseButtonDoubleClick += newDelegate(this, &ItemBox::notifyMouseButtonDoubleClick);
item->eventMouseDrag += newDelegate(this, &ItemBox::notifyMouseDrag);
item->_setContainer(this);
item->eventKeyButtonPressed += newDelegate(this, &ItemBox::notifyKeyButtonPressed);
item->eventKeyButtonReleased += newDelegate(this, &ItemBox::notifyKeyButtonReleased);
item->_setInternalData((size_t)mVectorItems.size());
mVectorItems.push_back(item);
}
// запрашивать только последовательно
MYGUI_ASSERT_RANGE(_index, mVectorItems.size(), "ItemBox::getItemWidget");
return mVectorItems[_index];
}
示例8: MYGUI_ASSERT_RANGE
const UString& MultiListBox::getSubItemNameAt(size_t _column, size_t _index)
{
MYGUI_ASSERT_RANGE(_index, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::getSubItemNameAt");
size_t index = BiIndexBase::convertToBack(_index);
return getSubItemAt(_column)->getItemNameAt(index);
}
示例9: MYGUI_ASSERT_RANGE
void ItemBox::removeItemAt(size_t _index)
{
MYGUI_ASSERT_RANGE(_index, mItemsInfo.size(), "ItemBox::removeItemAt");
_resetContainer(false);
resetCurrentActiveItem();
mItemsInfo.erase(mItemsInfo.begin() + _index);
// расчитываем новый индекс выделения
if (mIndexSelect != ITEM_NONE)
{
if (mItemsInfo.empty())
{
mIndexSelect = ITEM_NONE;
}
else if ((mIndexSelect > _index) || (mIndexSelect == mItemsInfo.size()))
{
mIndexSelect --;
}
}
updateScrollSize();
updateScrollPosition();
findCurrentActiveItem();
_updateAllVisible(true);
}
示例10: calcIndexByWidget
void ItemBox::notifyRootMouseChangeFocus(Widget* _sender, bool _focus)
{
size_t index = calcIndexByWidget(_sender);
if (_focus)
{
MYGUI_ASSERT_RANGE(index, mItemsInfo.size(), "ItemBox::notifyRootMouseChangeFocus");
// сбрасываем старый
if (mIndexActive != ITEM_NONE)
{
size_t old_index = mIndexActive;
mIndexActive = ITEM_NONE;
IBDrawItemInfo data(old_index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
requestDrawItem(this, mVectorItems[old_index - (mFirstVisibleIndex * mCountItemInLine)], data);
}
mIndexActive = index;
IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
requestDrawItem(this, mVectorItems[*_sender->_getInternalData<size_t>()], data);
}
else
{
// при сбросе виджет может быть уже скрыт, и соответсвенно отсутсвовать индекс
// сбрасываем индекс, только если мы и есть актив
if (index < mItemsInfo.size() && mIndexActive == index)
{
mIndexActive = ITEM_NONE;
IBDrawItemInfo data(index, mIndexSelect, mIndexActive, mIndexAccept, mIndexRefuse, false, false);
requestDrawItem(this, mVectorItems[*_sender->_getInternalData<size_t>()], data);
}
}
}
示例11: MYGUI_ASSERT_RANGE
void BiIndexData::removeItemAt(size_t _index)
{
MYGUI_ASSERT_RANGE(_index, mItemsInfo.size(), "BiIndexData::removeItemAt");
size_t index = BiIndexBase::removeItemAt(_index);
mItemsInfo.erase(mItemsInfo.begin() + index);
}
示例12: MYGUI_ASSERT_RANGE
Widget* MenuControl::createItemChildByType(size_t _index, const std::string& _type)
{
MYGUI_ASSERT_RANGE(_index, mItemsInfo.size(), "MenuControl::createItemChildByType");
removeItemChildAt(_index);
Widget* child = mItemsInfo[_index].item->createWidgetT(WidgetStyle::Popup, _type, mSubMenuSkin, IntCoord(), Align::Default, mSubMenuLayer);
MYGUI_ASSERT(child->isType<MenuControl>(), "child must have MenuControl base type");
return child;
}
示例13: _selectIndex
void ListBox::notifyMousePressed(Widget* _sender, int _left, int _top, MouseButton _id)
{
if (MouseButton::Left != _id)
return;
if (_sender == mWidgetScroll)
return;
// если выделен клиент, то сбрасываем
if (_sender == _getClientWidget())
{
if (mIndexSelect != ITEM_NONE)
{
_selectIndex(mIndexSelect, false);
mIndexSelect = ITEM_NONE;
eventListChangePosition(this, mIndexSelect);
}
eventListMouseItemActivate(this, mIndexSelect);
// если не клиент, то просчитывам
}
// ячейка может быть скрыта
else if (_sender->getVisible())
{
#if MYGUI_DEBUG_MODE == 1
_checkMapping("ListBox::notifyMousePressed");
MYGUI_ASSERT_RANGE(*_sender->_getInternalData<size_t>(), mWidgetLines.size(), "ListBox::notifyMousePressed");
MYGUI_ASSERT_RANGE(*_sender->_getInternalData<size_t>() + mTopIndex, mItemsInfo.size(), "ListBox::notifyMousePressed");
#endif
size_t index = *_sender->_getInternalData<size_t>() + mTopIndex;
if (mIndexSelect != index)
{
_selectIndex(mIndexSelect, false);
_selectIndex(index, true);
mIndexSelect = index;
eventListChangePosition(this, mIndexSelect);
}
eventListMouseItemActivate(this, mIndexSelect);
}
_resetContainer(true);
}
示例14: MYGUI_ASSERT_RANGE
void ImageBox::deleteItemFrame(size_t _index, size_t _indexFrame)
{
MYGUI_ASSERT_RANGE(_index, mItems.size(), "ImageBox::deleteItemFrame");
VectorImages::iterator iter = mItems.begin() + _index;
MYGUI_ASSERT_RANGE_INSERT(_indexFrame, iter->images.size(), "ImageBox::deleteItemFrame");
if (_indexFrame == ITEM_NONE) _indexFrame = iter->images.size() - 1;
iter->images.erase(iter->images.begin() + _indexFrame);
}
示例15: MYGUI_ASSERT_RANGE
void ListBox::notifyMouseSetFocus(Widget* _sender, Widget* _old)
{
#if MYGUI_DEBUG_MODE == 1
MYGUI_ASSERT_RANGE(*_sender->_getInternalData<size_t>(), mWidgetLines.size(), "ListBox::notifyMouseSetFocus");
#endif
mLineActive = *_sender->_getInternalData<size_t>();
eventListMouseItemFocus(this, mLineActive);
}