using UnityEngine;
using FairyGUI.Utils;
namespace FairyGUI
{
///
/// GImage class.
///
public class GImage : GObject, IColorGear
{
Image _content;
public GImage()
{
}
override protected void CreateDisplayObject()
{
_content = new Image();
_content.gOwner = this;
displayObject = _content;
}
///
/// Color of the image.
///
public Color color
{
get { return _content.color; }
set
{
_content.color = value;
UpdateGear(4);
}
}
///
/// Flip type.
///
///
public FlipType flip
{
get { return _content.graphics.flip; }
set { _content.graphics.flip = value; }
}
///
/// Fill method.
///
///
public FillMethod fillMethod
{
get { return _content.fillMethod; }
set { _content.fillMethod = value; }
}
///
/// Fill origin.
///
///
///
///
///
///
public int fillOrigin
{
get { return _content.fillOrigin; }
set { _content.fillOrigin = value; }
}
///
/// Fill clockwise if true.
///
public bool fillClockwise
{
get { return _content.fillClockwise; }
set { _content.fillClockwise = value; }
}
///
/// Fill amount. (0~1)
///
public float fillAmount
{
get { return _content.fillAmount; }
set { _content.fillAmount = value; }
}
///
/// Set texture directly. The image wont own the texture.
///
public NTexture texture
{
get { return _content.texture; }
set
{
if (value != null)
{
sourceWidth = value.width;
sourceHeight = value.height;
}
else
{
sourceWidth = 0;
sourceHeight = 0;
}
initWidth = sourceWidth;
initHeight = sourceHeight;
_content.texture = value;
}
}
///
/// Set material.
///
public Material material
{
get { return _content.material; }
set { _content.material = value; }
}
///
/// Set shader.
///
public string shader
{
get { return _content.shader; }
set { _content.shader = value; }
}
override public void ConstructFromResource()
{
this.gameObjectName = packageItem.name;
PackageItem contentItem = packageItem.getBranch();
sourceWidth = contentItem.width;
sourceHeight = contentItem.height;
initWidth = sourceWidth;
initHeight = sourceHeight;
contentItem = contentItem.getHighResolution();
contentItem.Load();
_content.scale9Grid = contentItem.scale9Grid;
_content.scaleByTile = contentItem.scaleByTile;
_content.tileGridIndice = contentItem.tileGridIndice;
_content.texture = contentItem.texture;
_content.textureScale = new Vector2(contentItem.width / (float)sourceWidth, contentItem.height / (float)sourceHeight);
SetSize(sourceWidth, sourceHeight);
}
override public void Setup_BeforeAdd(ByteBuffer buffer, int beginPos)
{
base.Setup_BeforeAdd(buffer, beginPos);
buffer.Seek(beginPos, 5);
if (buffer.ReadBool())
_content.color = buffer.ReadColor();
_content.graphics.flip = (FlipType)buffer.ReadByte();
_content.fillMethod = (FillMethod)buffer.ReadByte();
if (_content.fillMethod != FillMethod.None)
{
_content.fillOrigin = buffer.ReadByte();
_content.fillClockwise = buffer.ReadBool();
_content.fillAmount = buffer.ReadFloat();
}
}
}
}