示例#1
0
	void ImageBox::updateSelectIndex(size_t _index)
	{
		mIndexSelect = _index;

		if ((_index == ITEM_NONE) || (_index >= mItems.size()))
		{
			_setTextureName("");
			return;
		}
		else
		{
			_setTextureName(mCurrentTextureName);
		}

		VectorImages::iterator iter = mItems.begin() + _index;

		if (iter->images.size() < 2)
		{
			frameAdvise(false);
		}
		else
		{
			if ( ! mFrameAdvise)
			{
				mCurrentTime = 0;
				mCurrentFrame = 0;
			}
			frameAdvise(true);
		}

		if ( ! iter->images.empty())
		{
			_setUVSet(iter->images.front());
		}
	}
示例#2
0
    void Canvas::frameEntered( float _time )
    {
        int width = mReqTexSize.width;
        int height = mReqTexSize.height;
        TextureUsage usage = getDefaultTextureUsage();
        PixelFormat format = getDefaultTextureFormat();

        validate( width, height, usage, format );

        bool create = checkCreate( width, height );

        if ( mTexResizeMode == TRM_PT_CONST_SIZE )
            create = false;

        if ( create )
        {
            createExactTexture( width, height, usage, format );
            correctUV();
        }
        else // I thought order is important
        {
            correctUV();
            requestUpdateCanvas( this, Event( false, true, mInvalidateData ) );
        }

        mInvalidateData = false;
        frameAdvise( false );
    }
示例#3
0
    void Canvas::resize( const IntSize& _size )
    {
        if ( _size.width <= 0 || _size.height <= 0 || ! mTexManaged )
            return;

        mReqTexSize = _size;

        frameAdvise( true );
    }
示例#4
0
    void MultiListBox::setSubItemNameAt(size_t _column, size_t _index, const UString& _name)
    {
        MYGUI_ASSERT_RANGE(_index, mVectorColumnInfo.begin()->list->getItemCount(), "MultiListBox::setSubItemAt");

        size_t index = BiIndexBase::convertToBack(_index);
        getSubItemAt(_column)->setItemNameAt(index, _name);

        // если мы попортили список с активным сортом, надо пересчитывать
        if (_column == mSortColumnIndex)
            frameAdvise(true);
    }
示例#5
0
	void RenderBoxScene::setAnimation(const Ogre::String& _animation)
	{
		if (mEntity == nullptr)
			return;

		try
		{
			mAnimationState = mEntity->getAnimationState(_animation);
			mAnimationState->setEnabled(true);
			mAnimationState->setLoop(true);
			mAnimationState->setWeight(1);
		}
		catch (Ogre::ItemIdentityException&)
		{
		}

		frameAdvise(needFrameUpdate());
	}
示例#6
0
	void RenderBoxScene::destroy()
	{
		clearScene();

		if (mCanvas)
		{
			frameAdvise(false);

			mCanvas->eventMouseDrag = nullptr;
			mCanvas->eventMouseButtonPressed = nullptr;
			mCanvas->eventMouseButtonReleased = nullptr;

			Ogre::Root* root = Ogre::Root::getSingletonPtr();
			if (root && mScene)
				root->destroySceneManager(mScene);
			mScene= nullptr;
		}

		RenderBox::destroy();
	}
	void MultiList2::sortList()
	{
		return;
		if (ITEM_NONE == mSortColumnIndex)
			return;

		ListBox* list = mVectorColumnInfo[mSortColumnIndex].list;

		size_t count = list->getItemCount();
		if (0 == count)
			return;

		// shell sort
		int first;
		size_t last;
		for (size_t step = count >> 1; step > 0 ; step >>= 1)
		{
			for (size_t i = 0; i < (count - step); ++i)
			{
				first = (int)i;
				while (first >= 0)
				{
					last = first + step;
					if (compare(list, first, last))
					{
						BiIndexBase::swapItemsBackAt(first, last);
						for (VectorColumnInfo::iterator iter = mVectorColumnInfo.begin(); iter != mVectorColumnInfo.end(); ++iter)
						{
							(*iter).list->swapItemsAt(first, last);
						}
					}
					first--;
				}
			}
		}

		frameAdvise(false);

		updateBackSelected(BiIndexBase::convertToBack(mItemSelected));
	}
示例#8
0
    void MultiListBox::insertItemAt(size_t _index, const UString& _name, Any _data)
    {
        MYGUI_ASSERT(!mVectorColumnInfo.empty(), "MultiListBox::insertItemAt");
        MYGUI_ASSERT_RANGE_INSERT(_index, mVectorColumnInfo.front().list->getItemCount(), "MultiListBox::insertItemAt");
        if (ITEM_NONE == _index)
            _index = mVectorColumnInfo.front().list->getItemCount();

        // если надо, то меняем выделенный элемент
        // при сортировке, обновится
        if ((mItemSelected != ITEM_NONE) && (_index <= mItemSelected))
            mItemSelected ++;

        size_t index = BiIndexBase::insertItemAt(_index);

        // вставляем во все поля пустые, а потом присваиваем первому
        for (VectorColumnInfo::iterator iter = mVectorColumnInfo.begin(); iter != mVectorColumnInfo.end(); ++iter)
        {
            (*iter).list->insertItemAt(index, "");
        }
        mVectorColumnInfo.front().list->setItemNameAt(index, _name);
        mVectorColumnInfo.front().list->setItemDataAt(index, _data);

        frameAdvise(true);
    }
示例#9
0
 void Canvas::shutdownOverride()
 {
     _destroyTexture(false);
     frameAdvise(false);
 }
示例#10
0
 void Canvas::updateTexture()
 {
     mInvalidateData = true;
     frameAdvise( true );
 }
示例#11
0
	void RenderBoxScene::setAutoRotation(bool _auto)
	{
		mAutoRotation = _auto;
		frameAdvise(needFrameUpdate());
	}
示例#12
0
	void ImageBox::shutdownOverride()
	{
		frameAdvise(false);

		Base::shutdownOverride();
	}