GG: Cursor.h Source File

GG

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

Cursor.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /* GG is a GUI for SDL and OpenGL.
3 Copyright (C) 2007 T. Zachary Laine
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public License
7 as published by the Free Software Foundation; either version 2.1
8 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA
19
20 If you do not wish to comply with the terms of the LGPL please
21 contact the author as other terms are available for a fee.
22
23 Zach Laine
24 whatwasthataddress@gmail.com */
25
29 #ifndef _GG_Cursor_h_
30 #define _GG_Cursor_h_
31
32 #include <GG/PtRect.h>
33
34 #include <boost/shared_ptr.hpp>
35
36
37 namespace GG {
38
39 class Texture;
40
46 class GG_API Cursor
47 {
48 public:
50 Cursor();
51 virtual ~Cursor();
52
53
55
57 virtual void Render(const Pt& pt) = 0;
59 };
60
66 class GG_API TextureCursor :
67 public Cursor
68 {
69 public:
71
74 TextureCursor(const boost::shared_ptr<Texture>& texture, const Pt& hotspot = Pt());
76
78
79 const boost::shared_ptr<Texture>& GetTexture() const;
80
82 const Pt& Hotspot() const;
84
86 virtual void Render(const Pt& pt);
88
89 private:
90 boost::shared_ptr<Texture> m_texture;
91 Pt m_hotspot;
92 };
93
94 } // namespace GG
95
96 #endif