#pragma once
#include "mborder.h"

class mbutton : public mborder {
public:
	mbutton();
	virtual void init() override;

	virtual void on_paint(mirage_paint_context& in_context) override;
	virtual Eigen::Vector2f compute_desired_size(float in_layout_scale_multiplier) const override;

	virtual void on_click(const Eigen::Vector2f& in_position, mouse_button in_button) override;
	virtual void on_double_click(const Eigen::Vector2f& in_position, mouse_button in_button) override;
	virtual void on_mouse_enter() override;
	virtual void on_mouse_leave() override;
	virtual hit_test_handle on_mouse_move(const Eigen::Vector2f& in_position) override;
	virtual hit_test_handle on_mouse_button_down(const Eigen::Vector2f& in_position, mouse_button in_button) override;
	virtual hit_test_handle on_mouse_button_up(const Eigen::Vector2f& in_position, mouse_button in_button) override;
	virtual hit_test_handle on_mouse_wheel(const Eigen::Vector2f& in_position, const wheel_event& in_delta) override;
private:
	linear_color color_;
};
