supertux
object_icon.hpp
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 #ifndef HEADER_SUPERTUX_EDITOR_OBJECT_ICON_HPP
18 #define HEADER_SUPERTUX_EDITOR_OBJECT_ICON_HPP
19 
20 #include <string>
21 
22 #include "math/vector.hpp"
23 #include "video/surface_ptr.hpp"
24 
25 class DrawingContext;
26 class ReaderMapping;
27 
29 {
30 public:
31  ObjectIcon(const std::string& name, const std::string& icon);
32  ObjectIcon(const ReaderMapping& reader);
33  virtual ~ObjectIcon();
34 
35  virtual void draw(DrawingContext& context, const Vector& pos);
36  virtual void draw(DrawingContext& context, const Vector& pos, int pixels_shown);
37 
38  const std::string& get_object_class() const { return m_object_class; }
39 
40  ObjectIcon(const ObjectIcon&) = default;
41  ObjectIcon& operator=(const ObjectIcon&) = default;
42 
43 private:
44  void calculate_offset();
45 
46 private:
47  std::string m_object_class;
48  SurfacePtr m_surface;
49  Vector m_offset;
50 };
51 
52 #endif
53 
54 /* EOF */
Definition: object_icon.hpp:28
Definition: reader_mapping.hpp:32
This class provides functions for drawing things on screen.
Definition: drawing_context.hpp:42