#pragma once

#include "holly/ta_parameter.hpp"
#include "ta_multiwriter.hpp"
#include "widget/button.hpp"
#include "icons.hpp"

namespace widget {

  struct button_icon : button {
    const icons::icon_type icon_type;

    inline button_icon(float _width, float _height, icons::icon_type icon_type, void (* const _on_click)())
      : button(0, 0, _width, _height, _on_click), icon_type(icon_type)
    { }

    inline button_icon(float _x, float _y, float _width, float _height, icons::icon_type icon_type, void (* const _on_click)())
      : button(_x, _y, _width, _height, _on_click), icon_type(icon_type)
    { }

    void draw_icon(ta_parameter_writer& writer) const;
    void draw(ta_multiwriter& multi) override;
  };
}
