/*
* This file is part of SpoutcraftPlugin.
*
* Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org//>
* SpoutcraftPlugin is licensed under the GNU Lesser General Public License.
*
* SpoutcraftPlugin is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SpoutcraftPlugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.getspout.spoutapi.gui;
import java.io.IOException;
import org.getspout.spoutapi.io.SpoutInputStream;
import org.getspout.spoutapi.io.SpoutOutputStream;
public class GenericTexture extends GenericWidget implements Texture {
protected String url = null;
protected boolean drawAlpha = false;
protected int top = -1;
protected int left = -1;
public GenericTexture() {
}
@Override
public int getVersion() {
return super.getVersion() + 3;
}
public GenericTexture(String url) {
this.url = url;
}
@Override
public WidgetType getType() {
return WidgetType.Texture;
}
@Override
public void readData(SpoutInputStream input) throws IOException {
super.readData(input);
this.setUrl(input.readString());
this.setDrawAlphaChannel(input.readBoolean());
setTop(input.readShort());
setLeft(input.readShort());
}
@Override
public void writeData(SpoutOutputStream output) throws IOException {
super.writeData(output);
output.writeString(getUrl());
output.writeBoolean(isDrawingAlphaChannel());
output.writeShort((short) top);
output.writeShort((short) left);
}
@Override
public String getUrl() {
return url;
}
@Override
public Texture setUrl(String Url) {
if ((getUrl() != null && !getUrl().equals(Url)) || (getUrl() == null && Url != null)) {
this.url = Url;
autoDirty();
}
return this;
}
@Override
public Texture copy() {
return ((Texture) super.copy()).setUrl(getUrl()).setDrawAlphaChannel(isDrawingAlphaChannel());
}
@Override
public boolean isDrawingAlphaChannel() {
return drawAlpha;
}
@Override
public Texture setDrawAlphaChannel(boolean draw) {
if (isDrawingAlphaChannel() != draw) {
drawAlpha = draw;
autoDirty();
}
return this;
}
@Override
public Texture setTop(int top) {
if (getTop() != top) {
this.top = top;
autoDirty();
}
return this;
}
@Override
public int getTop() {
return top;
}
@Override
public Texture setLeft(int left) {
if (getLeft() != left) {
this.left = left;
autoDirty();
}
return this;
}
@Override
public int getLeft() {
return left;
}
}