//  SuperTux
//  Copyright (C) 2015 Hume2 <teratux.mail@gmail.com>
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#include <string>
#include <vector>

#include "math/fwd.hpp"

class DrawingContext;
class GameObject;

class Tip final
{
public:
  Tip();

  void draw(DrawingContext& context, const Vector& pos, const bool align_right = false);
  void draw_up(DrawingContext& context, const Vector& pos, const bool align_right = false);
  void set_info(const std::string& text);
  void set_info(const std::string& header, const std::vector<std::string>& text);
  void set_info_for_object(GameObject& object);
  inline void set_visible(bool visible) { m_visible = visible; }
  inline bool get_visible() const { return m_visible; }

private:
  std::vector<std::string> m_strings;
  std::vector<std::string> m_warnings;
  std::string m_header;
  bool m_visible;

private:
  Tip(const Tip&) = delete;
  Tip& operator=(const Tip&) = delete;
};
