Add scrollable options menu (#99)

* * Add new scrollable options list.

* * Add OptionList.cpp to the CMakeLists.txt

* * Add the new stuff by @jonkadelic to the new options menu.
This commit is contained in:
iProgramInCpp
2023-11-05 18:40:44 +02:00
committed by GitHub
parent e6ab1214af
commit 5df07e2fc1
15 changed files with 617 additions and 21 deletions

View File

@@ -11,6 +11,8 @@
#include "../GuiComponent.hpp"
#include "client/app/Minecraft.hpp"
#define C_SCROLLED_LIST_ITEM_WIDTH (220)
class ScrolledSelectionList : public GuiComponent
{
public:
@@ -24,17 +26,19 @@ public:
virtual int getMaxPosition();
virtual void renderItem(int, int, int, int, Tesselator&) = 0;
virtual void renderHeader(int, int, Tesselator&);
virtual void renderBackground() = 0;
virtual void renderBackground(float) = 0;
virtual void renderDecorations(int, int);
virtual void clickedHeader(int x, int y);
virtual int getItemAtPosition(int x, int y);
virtual void capYPosition();
virtual void render(int mouseX, int mouseY, float f);
virtual void renderHoleBackground(float, float, int, int);
virtual void checkInput(int mouseX, int mouseY);
virtual void onClickItem(int index, int mouseX, int mouseY);
virtual void renderScrollBackground();
void setRenderHeader(bool, int);
// @NOTE: This is inlined.
inline int getItemAtYPositionRaw(int y)
{