void ScrollBar::Refresh()
{
	if( this->getScaleX() == 0.0f || this->getScaleY() == 0.0f )
		FadeIn(NULL);

	unscheduleAllSelectors();
	//scheduleOnce( schedule_selector(UIFlowScrollBar::FadeOut), _fadeDelayTime );

	float offset = 0;
	switch( _type )
	{
	case VERTICAL_IN:
	case VERTICAL_OUT:
		offset = _target->getContentOffset().y;
		_nowContentSize = _target->getContentSize().height;
		break;

	case HORIZONTAL_IN:
	case HORIZONTAL_OUT:
		offset = _target->getContentOffset().x;
		_nowContentSize = _target->getContentSize().width;
		break;
	}

	this->setVisible( _nowContentSize >= _svFixSize );

	RefreshScale();
	RefreshPosition();
}
Example #2
0
	void FringeTile::RefreshTexture()
	{
		printf("RefreshTexture to tileID: %d\n", tileID);

		// free old texture here somehow:
		if (sprite->texture)
		{
			sprite->texture->RemoveReference();
			sprite->texture = NULL;
		}

		const FringeTileData *fringeTileData = Level::GetCurrentFringeTileset()->GetFringeTileDataByID(tileID);
		if (fringeTileData)
		{
			sprite->texture = Assets::RequestTexture(fringeTileData->imageFilename, fringeTileData->filter, fringeTileData->repeatX, fringeTileData->repeatY);
			if (fringeTileData->width == -1 && fringeTileData->height == -1 && sprite->texture)
			{
				sprite->width = sprite->texture->width;
				sprite->height = sprite->texture->height;
			}
			else
			{
				sprite->width = fringeTileData->width;
				sprite->height = fringeTileData->height;
			}

			if (sprite->texture && (sprite->texture->repeatX || sprite->texture->repeatY))
			{
				RefreshScale();
			}
			else if (fringeTileData->atlasX != 0 || fringeTileData->atlasW != 0 || fringeTileData->atlasY != 0 || fringeTileData->atlasH != 0)
			{
				sprite->textureOffset = Vector2(fringeTileData->atlasX / (float)sprite->texture->width, fringeTileData->atlasY / (float)sprite->texture->height);
				sprite->textureScale = Vector2(fringeTileData->atlasW / (float)sprite->texture->width, fringeTileData->atlasH / (float)sprite->texture->height);
			}
		}
	}
Example #3
0
	void FringeTile::Update()
	{
		Entity::Update();
		
		RefreshScale();
	}