1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // SuperTux
- // Copyright (C) 2015 Hume2 <teratux.mail@gmail.com>
- //
- // This program is free software: you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
- #ifndef HEADER_SUPERTUX_GUI_ITEM_FLOATFIELD_HPP
- #define HEADER_SUPERTUX_GUI_ITEM_FLOATFIELD_HPP
- #include "gui/menu_item.hpp"
- class ItemFloatField final : public MenuItem
- {
- public:
- ItemFloatField(const std::string& text_, float* input_, int id_ = -1);
- /** Draws the menu item. */
- virtual void draw(DrawingContext&, const Vector& pos, int menu_width, bool active) override;
- /** Returns the minimum width of the menu item. */
- virtual int get_width() const override;
- /** Processes the menu action. */
- virtual void process_action(const MenuAction& action) override;
- float* number;
- void change_input(const std::string& input_) {
- input = input_;
- }
- /** Processes the given event. */
- virtual void event(const SDL_Event& ev) override;
- virtual bool changes_width() const override {
- return true;
- }
- private:
- std::string input;
- int flickw;
- bool has_comma;
- void add_char(char c);
- private:
- ItemFloatField(const ItemFloatField&) = delete;
- ItemFloatField& operator=(const ItemFloatField&) = delete;
- };
- #endif
- /* EOF */
|