]> git.lizzy.rs Git - minetest.git/blob - src/quicktune_shortcutter.h
Generalize hud_builtin_enable into hud_set_flags
[minetest.git] / src / quicktune_shortcutter.h
1 /*
2 Minetest
3 Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 #ifndef QVT_SHORTCUTTER_HEADER
21 #define QVT_SHORTCUTTER_HEADER
22
23 #include "quicktune.h"
24
25 class QuicktuneShortcutter
26 {
27 private:
28         std::vector<std::string> m_names;
29         u32 m_selected_i;
30         std::string m_message;
31 public:
32         std::string getMessage()
33         {
34                 std::string s = m_message;
35                 m_message = "";
36                 if(s != "")
37                         return std::string("[quicktune] ") + s;
38                 return "";
39         }
40         std::string getSelectedName()
41         {
42                 if(m_selected_i < m_names.size())
43                         return m_names[m_selected_i];
44                 return "(nothing)";
45         }
46         void next()
47         {
48                 m_names = getQuicktuneNames();
49                 if(m_selected_i < m_names.size()-1)
50                         m_selected_i++;
51                 else
52                         m_selected_i = 0;
53                 m_message = std::string("Selected \"")+getSelectedName()+"\"";
54         }
55         void prev()
56         {
57                 m_names = getQuicktuneNames();
58                 if(m_selected_i > 0)
59                         m_selected_i--;
60                 else
61                         m_selected_i = m_names.size()-1;
62                 m_message = std::string("Selected \"")+getSelectedName()+"\"";
63         }
64         void inc()
65         {
66                 QuicktuneValue val = getQuicktuneValue(getSelectedName());
67                 val.relativeAdd(0.05);
68                 m_message = std::string("\"")+getSelectedName()
69                                 +"\" = "+val.getString();
70                 setQuicktuneValue(getSelectedName(), val);
71         }
72         void dec()
73         {
74                 QuicktuneValue val = getQuicktuneValue(getSelectedName());
75                 val.relativeAdd(-0.05);
76                 m_message = std::string("\"")+getSelectedName()
77                                 +"\" = "+val.getString();
78                 setQuicktuneValue(getSelectedName(), val);
79         }
80 };
81
82 #endif
83