package speiger.src.coreengine.rendering.gui.components.base;

public interface IInteractable
{
	public default boolean isMouseColliding(int mouseX, int mouseY) { return false; };
	
	public default boolean onMouseClick(int button, int mouseX, int mouseY) { return false; }
	public default boolean onMouseDragged(int mouseX, int mouseY, int diffX, int diffY) { return false; }
	public default boolean onMouseReleased(int button, int mouseX, int mouseY) { return false; }
	public default boolean onMouseScroll(int scroll, int mouseX, int mouseY) { return false; }
	
	public default boolean isPriorityKeyTarget() { return false; }
	public default boolean onKeyPressed(int key, int mouseX, int mouseY) { return false; }
	public default boolean onKeyReleased(int key, int mouseX, int mouseY) { return false; }
	public default boolean onKeyTyped(char letter, int codepoint) { return false; }
	
	public boolean isFocused();
	public void setFocused(boolean value);
}
