Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2...
[oweals/minetest.git] / src / quicktune_shortcutter.h
1 /*
2 Minetest-c55
3 Copyright (C) 2012 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 #include "utility.h"
25
26 class QuicktuneShortcutter
27 {
28 private:
29         std::vector<std::string> m_names;
30         u32 m_selected_i;
31         std::string m_message;
32 public:
33         std::string getMessage()
34         {
35                 std::string s = m_message;
36                 m_message = "";
37                 if(s != "")
38                         return std::string("[quicktune] ") + s;
39                 return "";
40         }
41         std::string getSelectedName()
42         {
43                 if(m_selected_i < m_names.size())
44                         return m_names[m_selected_i];
45                 return "(nothing)";
46         }
47         void next()
48         {
49                 m_names = getQuicktuneNames();
50                 if(m_selected_i < m_names.size()-1)
51                         m_selected_i++;
52                 else
53                         m_selected_i = 0;
54                 m_message = std::string("Selected \"")+getSelectedName()+"\"";
55         }
56         void prev()
57         {
58                 m_names = getQuicktuneNames();
59                 if(m_selected_i > 0)
60                         m_selected_i--;
61                 else
62                         m_selected_i = m_names.size()-1;
63                 m_message = std::string("Selected \"")+getSelectedName()+"\"";
64         }
65         void inc()
66         {
67                 QuicktuneValue val = getQuicktuneValue(getSelectedName());
68                 val.relativeAdd(0.05);
69                 m_message = std::string("\"")+getSelectedName()
70                                 +"\" = "+val.getString();
71                 setQuicktuneValue(getSelectedName(), val);
72         }
73         void dec()
74         {
75                 QuicktuneValue val = getQuicktuneValue(getSelectedName());
76                 val.relativeAdd(-0.05);
77                 m_message = std::string("\"")+getSelectedName()
78                                 +"\" = "+val.getString();
79                 setQuicktuneValue(getSelectedName(), val);
80         }
81 };
82
83 #endif
84