mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-04 19:36:43 +03:00
72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "GuiComponent.hpp"
|
|
#include "Minecraft.hpp"
|
|
|
|
class ScrolledSelectionList : public GuiComponent
|
|
{
|
|
public:
|
|
ScrolledSelectionList(Minecraft*, int, int, int, int, int);
|
|
|
|
virtual void setRenderSelection(bool);
|
|
virtual int getNumberOfItems() = 0;
|
|
virtual void selectItem(int, bool) = 0;
|
|
virtual bool isSelectedItem(int) = 0;
|
|
virtual int getMaxPosition();
|
|
virtual void renderItem(int, int, int, int, Tesselator&) = 0;
|
|
virtual void renderHeader(int, int, Tesselator&);
|
|
virtual void renderBackground() = 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);
|
|
|
|
void setRenderHeader(bool, int);
|
|
|
|
|
|
// @NOTE: This is inlined.
|
|
inline int getItemAtYPositionRaw(int y)
|
|
{
|
|
if (y < 0)
|
|
return -1;
|
|
|
|
// @NOTE: redundant check
|
|
int idx = y / m_itemHeight;
|
|
if (idx < 0)
|
|
return -1;
|
|
|
|
if (idx >= getNumberOfItems())
|
|
return -1;
|
|
|
|
return idx;
|
|
}
|
|
// @NOTE: This is also inlined.
|
|
inline int transformY(int y)
|
|
{
|
|
return int(y - field_C - field_48 + field_34 - 4.0f);
|
|
}
|
|
|
|
public:
|
|
Minecraft* m_pMinecraft;
|
|
float field_C;
|
|
float field_10;
|
|
int m_itemHeight;
|
|
int field_18;
|
|
int field_1C;
|
|
float field_20;
|
|
float field_24 = 0.0f;
|
|
int field_28;
|
|
int field_2C = -2;
|
|
float field_30 = 0.0f;
|
|
float field_34 = 0.0f;
|
|
float field_38 = 0.0f;
|
|
int field_3C = -1;
|
|
int field_40 = 0;
|
|
bool m_bRenderSelection = true;
|
|
bool field_45 = false;
|
|
int field_48 = 0;
|
|
};
|
|
|