pokeheartgold/include/list_menu_2d.h
2025-07-25 18:13:43 -04:00

44 lines
1.4 KiB
C

#ifndef POKEHEARTGOLD_LIST_MENU_2D_H
#define POKEHEARTGOLD_LIST_MENU_2D_H
#include "list_menu_cursor.h"
#include "list_menu_items.h"
struct ListMenu2DTemplate {
LISTMENUITEM *items;
Window *window;
u8 fontId;
u8 itemsWide;
u8 itemsHigh;
u8 yTop : 4;
u8 cursorType : 2;
u8 enableWrap : 2;
};
struct ListMenu2D {
struct ListMenu2DTemplate template;
struct ListMenuCursor *cursor;
int cancelKey;
u8 unk14;
u8 selectedIndex;
u8 maxItemWidth;
u8 x;
u8 y;
u8 maxGlyphWidth;
u8 maxGlyphHeight;
u8 scheduledScroll;
u8 heapID;
u8 pad_1D[3];
}; // size=0x20
struct ListMenu2D *Create2dMenu(const struct ListMenu2DTemplate *template, u8 initialSelection, u8 heapID);
void Delete2dMenu(struct ListMenu2D *menu, u8 *ret_p);
int Handle2dMenuInput(struct ListMenu2D *menu);
u8 Get2dMenuSelection(struct ListMenu2D *menu);
struct ListMenu2D *CreateYesNoMenu(BgConfig *bgConfig, const WindowTemplate *windowTemplate, u16 tileNum, u8 paletteNum, u8 initialSelection, enum HeapID heapID);
struct ListMenu2D *Std_CreateYesNoMenu(BgConfig *bgConfig, const WindowTemplate *windowTemplate, u16 tileNum, u8 paletteNum, enum HeapID heapID);
int Handle2dMenuInput_DeleteOnFinish(struct ListMenu2D *menu, enum HeapID heapID);
void Clear2dMenuWindowAndDelete(struct ListMenu2D *menu, enum HeapID heapID);
#endif // POKEHEARTGOLD_LIST_MENU_2D_H