Files
PlanetFleet/slider.h
T
devZoGok 179f4c28ac factored out a state manager
using GameManager via a singleton
2021-10-30 08:09:30 +03:00

57 lines
2.1 KiB
C++
Executable File

#pragma once
#ifndef SLIDER_H
#define SLIDER_H
#include<irrlicht.h>
#include "button.h"
#include "textbox.h"
namespace game{
namespace gui{
class Slider {
public:
Slider(irr::core::vector2d<s32>, irr::core::vector2d<s32>, double, double);
~Slider();
void update();
inline void addTextbox(Textbox *t){this->textbox=t;}
inline double getMinValue(){return minValue;}
inline double getValue(){return value;}
inline double getMaxValue(){return maxValue;}
inline double getIncrement(){return increment;}
inline void setValue(double v){this->value=v;}
inline void setIncrement(double i){this->increment=i;}
inline irr::core::vector2d<s32> getPos(){return pos;}
inline irr::core::vector2d<s32> getSize(){return size;}
inline Textbox* getTextbox(){return textbox;}
private:
class MovableSliderButton : public Button {
public:
MovableSliderButton(Slider*, irr::core::vector2d<s32>, irr::core::vector2d<s32>, irr::core::stringw, bool);
void onClick();
void update();
private:
Slider *slider;
bool clicked = false;
};
class StaticSliderButton : public Button {
public:
StaticSliderButton(Slider*, irr::core::vector2d<s32>, irr::core::vector2d<s32>, irr::core::stringw, bool);
void onClick();
private:
Slider *slider;
};
MovableSliderButton *movableSliderButton = nullptr;
StaticSliderButton *staticSliderButton = nullptr;
double minValue, value, maxValue, increment = .1;
irr::core::vector2d<s32> pos, size;
Textbox *textbox = nullptr;
public:
inline MovableSliderButton* getMovableSliderButton(){return movableSliderButton;}
inline StaticSliderButton* getStaticSliderButton(){return staticSliderButton;}
};
}
}
#endif