// Path: src/main/java/p455w0rdslib/api/gui/IGuiElement.java
// public interface IGuiElement {
// 
// 	int getX();
// 
// 	IGuiElement setX(int posX);
// 
// 	int getY();
// 
// 	IGuiElement setY(int posY);
// 
// 	int getWidth();
// 
// 	IGuiElement setWidth(int width);
// 
// 	int getHeight();
// 
// 	IGuiElement setHeight(int height);
// 
// 	IGuiElement setSize(int width, int height);
// 
// 	void drawBackground(int mouseX, int mouseY, float gameTicks);
// 
// 	void drawForeground(int mouseX, int mouseY);
// 
// 	boolean onClick(int mouseX, int mouseY);
// 
// 	boolean onRightClick(int mouseX, int mouseY);
// 
// 	boolean onMiddleClick(int mouseX, int mouseY);
// 
// 	boolean onMousePressed(int mouseX, int mouseY, int button);
// 
// 	void onMouseReleased(int mouseX, int mouseY, int button);
// 
// 	boolean onMouseWheel(int mouseX, int mouseY, int movement);
// 
// 	IModularGui getGui();
// 
// 	IGuiElement setGui(IModularGui guiIn);
// 
// 	boolean isVisible();
// 
// 	IGuiElement setVisible(boolean visibility);
// 
// 	boolean isEnabled();
// 
// 	IGuiElement setEnabled(boolean doEnable);
// 
// 	IGuiElement enable();
// 
// 	IGuiElement disable();
// 
// 	GuiPos getPos();
// 
// 	IGuiElement setPos(int xPos, int yPos);
// 
// 	void update(int mouseX, int mouseY);
// 
// 	boolean isMouseOver(int mouseX, int mouseY);
// 
// 	List<String> getTooltip();
// 
// 	IGuiElement setTooltip(List<String> tooltipLines);
// 
// 	boolean hasTooltip();
// 
// }
// 
// Path: src/main/java/p455w0rdslib/api/gui/IGuiScrollbar.java
// public interface IGuiScrollbar extends IGuiElement {
// 
// 	void doDrag(int x, int y);
// 
// 	int getSliderXPos();
// 
// 	int getSliderYPos();
// 
// 	IGuiElement getParentElement();
// 
// 	IGuiScrollbar setParentElement(IGuiElement element);
// 
// 	int getScrollPos();
// 
// 	IGuiScrollbar setScrollPos(int pos);
// 
// 	void onStopDragging();
// 
// 	int getMinPos();
// 
// 	IGuiScrollbar setMinPos(int pos);
// 
// 	int getMaxPos();
// 
// 	IGuiScrollbar setMaxPos(int pos);
// 
// 	IGuiScrollbar setBounds(int min, int max);
// 
// 	int getSliderWidth();
// 
// 	IGuiScrollbar setSliderWidth(int width);
// 
// 	int getSliderHeight();
// 
// 	IGuiScrollbar setSliderHeight(int height);
// 
// 	int getBorderColor();
// 
// 	IGuiScrollbar setBorderColor(int color);
// 
// 	int getFaceColor();
// 
// 	IGuiScrollbar setFaceColor(int color);
// 
// 	IGuiScrollbar setColors(int border, int face);
// 
// 	boolean isDragging();
// 
// 	void setDragging(boolean isDragging);
// 
// }
// 
// Path: src/main/java/p455w0rdslib/api/gui/IModularGui.java
// public interface IModularGui {
// 
// 	IModularGui addElement(IGuiElement element);
// 
// 	boolean isMouseOverElement(IGuiElement element, int mouseX, int mouseY);
// 
// 	void drawElements(float partialTick, int mouseX, int mouseY, boolean foreground);
// 
// 	List<IGuiElement> getElements();
// 
// 	void updateElements(int mouseX, int mouseY);
// 
// 	String getTitle();
// 
// 	IModularGui setTitle(String titleText);
// 
// 	IModularGui setTitleScale(float scale);
// 
// 	IModularGui setTitleOffsetX(int offset);
// 
// 	IModularGui setTitleOffsetY(int offset);
// 
// 	IModularGui setTitlePos(int x, int y);
// 
// 	int getTitleColor();
// 
// 	IModularGui setTitleColor(int color);
// 
// 	ResourceLocation getBackgroundTexture();
// 
// 	IModularGui setBackgroundTexture(ResourceLocation location);
// 
// 	boolean isMouseOver(int rectX, int rectY, int rectWidth, int rectHeight, int pointX, int pointY);
// 
// 	int getX();
// 
// 	int getY();
// 
// 	int getWidth();
// 
// 	IModularGui setWidth(int w);
// 
// 	int getHeight();
// 
// 	IModularGui setHeight(int h);
// 
// 	IModularGui setSize(int w, int h);
// 
// 	IModularGui setTooltipColor(int color, boolean top);
// 
// 	int[] getTooltipColors();
// 
// 	boolean onMouseWheel(int mouseX, int mouseY, int wheelMovement);
// 
// }


import net.minecraft.client.gui.Gui;
import net.minecraft.client.renderer.GlStateManager;
import p455w0rdslib.api.gui.IGuiElement;
import p455w0rdslib.api.gui.IGuiScrollbar;
import p455w0rdslib.api.gui.IModularGui;
package p455w0rdslib.client.gui.element;


/**
 * @author p455w0rd
 *
 */
public abstract class GuiScrollbar extends GuiElement implements IGuiScrollbar {

	protected int scrollPos, minPos, maxPos, sliderWidth, sliderHeight, borderColor = 0xFF000000,
			faceColor = 0xFF333333;
	protected boolean dragging;
// Path: src/main/java/p455w0rdslib/api/gui/IGuiElement.java
// public interface IGuiElement {
// 
// 	int getX();
// 
// 	IGuiElement setX(int posX);
// 
// 	int getY();
// 
// 	IGuiElement setY(int posY);
// 
// 	int getWidth();
// 
// 	IGuiElement setWidth(int width);
// 
// 	int getHeight();
// 
// 	IGuiElement setHeight(int height);
// 
// 	IGuiElement setSize(int width, int height);
// 
// 	void drawBackground(int mouseX, int mouseY, float gameTicks);
// 
// 	void drawForeground(int mouseX, int mouseY);
// 
// 	boolean onClick(int mouseX, int mouseY);
// 
// 	boolean onRightClick(int mouseX, int mouseY);
// 
// 	boolean onMiddleClick(int mouseX, int mouseY);
// 
// 	boolean onMousePressed(int mouseX, int mouseY, int button);
// 
// 	void onMouseReleased(int mouseX, int mouseY, int button);
// 
// 	boolean onMouseWheel(int mouseX, int mouseY, int movement);
// 
// 	IModularGui getGui();
// 
// 	IGuiElement setGui(IModularGui guiIn);
// 
// 	boolean isVisible();
// 
// 	IGuiElement setVisible(boolean visibility);
// 
// 	boolean isEnabled();
// 
// 	IGuiElement setEnabled(boolean doEnable);
// 
// 	IGuiElement enable();
// 
// 	IGuiElement disable();
// 
// 	GuiPos getPos();
// 
// 	IGuiElement setPos(int xPos, int yPos);
// 
// 	void update(int mouseX, int mouseY);
// 
// 	boolean isMouseOver(int mouseX, int mouseY);
// 
// 	List<String> getTooltip();
// 
// 	IGuiElement setTooltip(List<String> tooltipLines);
// 
// 	boolean hasTooltip();
// 
// }
// 
// Path: src/main/java/p455w0rdslib/api/gui/IGuiScrollbar.java
// public interface IGuiScrollbar extends IGuiElement {
// 
// 	void doDrag(int x, int y);
// 
// 	int getSliderXPos();
// 
// 	int getSliderYPos();
// 
// 	IGuiElement getParentElement();
// 
// 	IGuiScrollbar setParentElement(IGuiElement element);
// 
// 	int getScrollPos();
// 
// 	IGuiScrollbar setScrollPos(int pos);
// 
// 	void onStopDragging();
// 
// 	int getMinPos();
// 
// 	IGuiScrollbar setMinPos(int pos);
// 
// 	int getMaxPos();
// 
// 	IGuiScrollbar setMaxPos(int pos);
// 
// 	IGuiScrollbar setBounds(int min, int max);
// 
// 	int getSliderWidth();
// 
// 	IGuiScrollbar setSliderWidth(int width);
// 
// 	int getSliderHeight();
// 
// 	IGuiScrollbar setSliderHeight(int height);
// 
// 	int getBorderColor();
// 
// 	IGuiScrollbar setBorderColor(int color);
// 
// 	int getFaceColor();
// 
// 	IGuiScrollbar setFaceColor(int color);
// 
// 	IGuiScrollbar setColors(int border, int face);
// 
// 	boolean isDragging();
// 
// 	void setDragging(boolean isDragging);
// 
// }
// 
// Path: src/main/java/p455w0rdslib/api/gui/IModularGui.java
// public interface IModularGui {
// 
// 	IModularGui addElement(IGuiElement element);
// 
// 	boolean isMouseOverElement(IGuiElement element, int mouseX, int mouseY);
// 
// 	void drawElements(float partialTick, int mouseX, int mouseY, boolean foreground);
// 
// 	List<IGuiElement> getElements();
// 
// 	void updateElements(int mouseX, int mouseY);
// 
// 	String getTitle();
// 
// 	IModularGui setTitle(String titleText);
// 
// 	IModularGui setTitleScale(float scale);
// 
// 	IModularGui setTitleOffsetX(int offset);
// 
// 	IModularGui setTitleOffsetY(int offset);
// 
// 	IModularGui setTitlePos(int x, int y);
// 
// 	int getTitleColor();
// 
// 	IModularGui setTitleColor(int color);
// 
// 	ResourceLocation getBackgroundTexture();
// 
// 	IModularGui setBackgroundTexture(ResourceLocation location);
// 
// 	boolean isMouseOver(int rectX, int rectY, int rectWidth, int rectHeight, int pointX, int pointY);
// 
// 	int getX();
// 
// 	int getY();
// 
// 	int getWidth();
// 
// 	IModularGui setWidth(int w);
// 
// 	int getHeight();
// 
// 	IModularGui setHeight(int h);
// 
// 	IModularGui setSize(int w, int h);
// 
// 	IModularGui setTooltipColor(int color, boolean top);
// 
// 	int[] getTooltipColors();
// 
// 	boolean onMouseWheel(int mouseX, int mouseY, int wheelMovement);
// 
// }


// Path: src/main/java/p455w0rdslib/client/gui/element/GuiScrollbar.java
import net.minecraft.client.gui.Gui;
import net.minecraft.client.renderer.GlStateManager;
import p455w0rdslib.api.gui.IGuiElement;
import p455w0rdslib.api.gui.IGuiScrollbar;
import p455w0rdslib.api.gui.IModularGui;

package p455w0rdslib.client.gui.element;


/**
 * @author p455w0rd
 *
 */
public abstract class GuiScrollbar extends GuiElement implements IGuiScrollbar {

	protected int scrollPos, minPos, maxPos, sliderWidth, sliderHeight, borderColor = 0xFF000000,
			faceColor = 0xFF333333;
	protected boolean dragging;
	IGuiElement parentElement;