1// SuperTux
2// Copyright (C) 2015 Hume2 <teratux.mail@gmail.com>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17#include "editor/tool_icon.hpp"
18
19#include "video/drawing_context.hpp"
20#include "video/surface.hpp"
21
22ToolIcon::ToolIcon(const std::string& icon) :
23 m_pos(0, 0),
24 m_surfaces(),
25 m_mode(0),
26 m_surf_count(0)
27{
28 push_mode(icon);
29}
30
31void
32ToolIcon::push_mode(const std::string& icon)
33{
34 auto surface = Surface::from_file(icon);
35 m_surfaces.push_back(surface);
36 m_surf_count++;
37}
38
39void
40ToolIcon::draw(DrawingContext& context)
41{
42 context.color().draw_surface(m_surfaces[m_mode], m_pos, LAYER_GUI - 9);
43}
44
45void
46ToolIcon::next_mode()
47{
48 m_mode++;
49 if (m_mode >= m_surf_count) {
50 m_mode = 0;
51 }
52}
53
54SurfacePtr
55ToolIcon::get_current_surface() const
56{
57 return m_surfaces[m_mode];
58}
59
60/* EOF */
61