1// SuperTux
2// Copyright (C) 2003 Tobias Glaesser <tobi.web@gmx.de>
3// Copyright (C) 2006 Matthias Braun <matze@braunis.de>
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program 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
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18#ifndef HEADER_SUPERTUX_SUPERTUX_RESOURCES_HPP
19#define HEADER_SUPERTUX_SUPERTUX_RESOURCES_HPP
20
21#include <memory>
22#include <string>
23
24#include "video/font_ptr.hpp"
25#include "video/surface_ptr.hpp"
26
27class MouseCursor;
28
29class Resources final
30{
31public:
32 static std::unique_ptr<MouseCursor> mouse_cursor;
33
34 /** Font used in the console */
35 static FontPtr console_font;
36
37 /** A version of the regular font with fixed spacing for displaying
38 coin counts and other numbers in the HUD */
39 static FontPtr fixed_font;
40
41 /** Regular sized font for menus and text scrolls. */
42 static FontPtr normal_font;
43
44 /** Small font for statistics, FPS, etc. */
45 static FontPtr small_font;
46
47 /** Big font for menu titles and headers in text scrolls */
48 static FontPtr big_font;
49
50 static SurfacePtr checkbox;
51 static SurfacePtr checkbox_checked;
52 static SurfacePtr back;
53 static SurfacePtr arrow_left;
54 static SurfacePtr arrow_right;
55 static SurfacePtr no_tile;
56
57public:
58 static void load();
59 static void unload();
60
61private:
62 static std::string current_font;
63 static std::string get_font_for_locale(const std::string& locale);
64
65public:
66 Resources();
67 ~Resources();
68};
69
70#endif
71
72/* EOF */
73