2 Copyright 2004-2020 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP. If not, see <https://www.gnu.org/licenses/>.
37 class WSelectList : public Boxx
41 virtual ~WSelectList();
43 void addColumn(int x);
47 void setShowSelOption(bool set) { showseloption = set; }
48 void setDarkSelOption(bool set) { darkseloption = set; }
50 int addOption(const char* text, void* data, int selected);
51 int addOption(const std::string& text, void* data, int selected);
52 int addOption(const char* text, void* data, int selected, Image& icon);
53 int addOption(const std::string& text, void* data, int selected, Image& icon);
55 void setBackgroundColour(const DrawStyle& colour);
56 void setLinesPerOption(float lines) { linesPerOption = lines; }
65 int getBottomOption(); // actually returns bottom + 1 i.e. the one just past display ?!
66 int getNumOptionsDisplayable();
67 int getCurrentOption();
68 void* getCurrentOptionData();
70 void hintSetCurrent(int index);
71 void hintSetTop(int index);
73 virtual bool mouseMove(int x, int y);
74 virtual bool mouseLBDOWN(int x, int y);
75 virtual bool mouseAndroidScroll(int x, int y, int sx, int sy);
78 void drawOptionLine(const std::string& text, int xpos, int ypos, int width, const DrawStyle& colour, Image& icon);
79 int getMouseLine(int x, int y);
81 DrawStyle backgroundColour;
82 std::vector<wsloption> options;
85 int numOptionsDisplayable{};
89 bool showseloption{true};
91 float linesPerOption{1};