Files
MinecraftConsoles/Minecraft.Client/Common/XUI/XUI_Ctrl_SlotList.h
2026-03-01 12:16:08 +08:00

73 lines
2.7 KiB
C++

#pragma once
// Sig: HRESULT OnGetItemCountMaxLines(XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled)
#define XUI_ON_XM_GET_ITEMCOUNT_MAX_LINES(MemberFunc)\
if (pMessage->dwMessage == XM_GET_ITEMCOUNT && ((XUIMessageGetItemCount *) pMessage->pvData)->nType == XUI_ITEMCOUNT_MAX_LINES)\
{\
XUIMessageGetItemCount *pData = (XUIMessageGetItemCount *) pMessage->pvData;\
return MemberFunc(pData, pMessage->bHandled);\
}
// Sig: HRESULT OnGetItemCountMaxPerLine(XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled)
#define XUI_ON_XM_GET_ITEMCOUNT_MAX_PER_LINE(MemberFunc)\
if (pMessage->dwMessage == XM_GET_ITEMCOUNT && ((XUIMessageGetItemCount *) pMessage->pvData)->nType == XUI_ITEMCOUNT_MAX_PER_LINE)\
{\
XUIMessageGetItemCount *pData = (XUIMessageGetItemCount *) pMessage->pvData;\
return MemberFunc(pData, pMessage->bHandled);\
}
class AbstractContainerMenu;
class SlotListItemControl;
class CXuiCtrlSlotItemListItem;
class CXuiCtrlSlotList : public CXuiListImpl
{
public:
// Define the class. The class name must match the ClassOverride property
// set for the scene in the UI Authoring tool.
XUI_IMPLEMENT_CLASS( CXuiCtrlSlotList, L"CXuiCtrlSlotList", XUI_CLASS_LIST )
XUI_BEGIN_MSG_MAP()
XUI_ON_XM_INIT( OnInit )
XUI_ON_XM_DESTROY(OnDestroy)
XUI_ON_XM_KEYDOWN( OnKeyDown )
XUI_ON_XM_GET_ITEMCOUNT_ALL( OnGetItemCountAll )
XUI_ON_XM_GET_ITEMCOUNT_MAX_LINES(OnGetItemCountMaxLines)
XUI_ON_XM_GET_ITEMCOUNT_MAX_PER_LINE(OnGetItemCountMaxPerLine)
XUI_END_MSG_MAP()
HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
HRESULT OnDestroy();
HRESULT OnKeyDown(XUIMessageInput *pInputData, BOOL& bHandled);
HRESULT OnGetItemCountAll( XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled );
HRESULT OnGetItemCountMaxLines(XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled);
HRESULT OnGetItemCountMaxPerLine(XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled);
HRESULT OnRender(XUIMessageRender *pRenderData, BOOL &rfHandled);
public:
void SetData(int m_iPad, AbstractContainerMenu* menu, int rows, int columns, int startIndex = 0, int endIndex = 0);
int GetRows() { return rows; };
int GetColumns() { return columns; };
int GetCurrentColumn();
int GetCurrentRow();
int GetCurrentIndex();
void SetCurrentSlot(int row, int column);
void SetEntrySlot(int row, int column, XUI_CONTROL_NAVIGATE direction);
void Clicked();
// 4J WESTY : Pointer Prototype : Made public.
void GetCXuiCtrlSlotItem(int itemIndex, CXuiCtrlSlotItemListItem** CXuiCtrlSlotItem);
private:
int slotCount;
int rows;
int columns;
int startIndex;
// 4J WESTY : Pointer Prototype : Made public.
//void GetCXuiCtrlSlotItem(int itemIndex, CXuiCtrlSlotItemListItem** CXuiCtrlSlotItem);
};