/********************************************************************
	Minecraft: Pocket Edition - Decompilation Project
	Copyright (C) 2023 iProgramInCpp
	
	The following code is licensed under the BSD 1 clause license.
	SPDX-License-Identifier: BSD-1-Clause
 ********************************************************************/

#pragma once

#include "../GuiComponent.hpp"
#include "client/app/Minecraft.hpp"

class Screen;

class Button : public GuiComponent
{
private:
	void _init();
public:
	Button(int, int x, int y, int width, int height, const std::string&);
	Button(int, int x, int y, const std::string&);
	Button(int, const std::string&);

	// I can't possibly explain why Minecraft is referenced here
	bool clicked(Minecraft*, int xPos, int yPos);
	int  getYImage(bool bHovered);
	void released(int xPos, int yPos);
	void renderBg(Minecraft*, int, int);
	void render(Minecraft*, int xPos, int yPos);

public:
	int m_width;
	int m_height;
	int m_xPos;
	int m_yPos;
	std::string m_text;
	int m_buttonId;
	bool m_bEnabled;
	bool m_bVisible;
	bool field_36;

#ifndef ORIGINAL_CODE
	int m_lastX;
	int m_lastY;
#endif
};

