Files
MinecraftConsoles/Minecraft.Client/SlideButton.cpp
ModMaker101 a9be52c41a Project modernization (#630)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides
2026-03-08 09:56:03 +07:00

51 lines
1.3 KiB
C++

#include "stdafx.h"
#include "SlideButton.h"
SlideButton::SlideButton(int id, int x, int y, const Options::Option *option, const wstring& msg, float value) : Button(id, x, y, 150, 20, msg)
{
this->sliding = false; //4J added
this->option = option;
this->value = value;
}
int SlideButton::getYImage(bool hovered)
{
return 0;
}
void SlideButton::renderBg(Minecraft *minecraft, int xm, int ym)
{
if (!visible) return;
if (sliding)
{
value = (xm - (x + 4)) / static_cast<float>(w - 8);
if (value < 0) value = 0;
if (value > 1) value = 1;
minecraft->options->set(option, value);
msg = minecraft->options->getMessage(option);
}
glColor4f(1, 1, 1, 1);
blit(x + static_cast<int>(value * (w - 8)), y, 0, 46 + 1 * 20, 4, 20);
blit(x + static_cast<int>(value * (w - 8)) + 4, y, 196, 46 + 1 * 20, 4, 20);
}
bool SlideButton::clicked(Minecraft *minecraft, int mx, int my)
{
if (Button::clicked(minecraft, mx, my))
{
value = (mx - (x + 4)) / static_cast<float>(w - 8);
if (value < 0) value = 0;
if (value > 1) value = 1;
minecraft->options->set(option, value);
msg = minecraft->options->getMessage(option);
sliding = true;
return true;
}
return false;
}
void SlideButton::released(int mx, int my)
{
sliding = false;
}