110std::string
RenderMenuHtml(
const Menu* menu,
int slot,
int selectedIndex,
bool isSubmenu)
117 int itemCount =
static_cast<int>(menu->Items.size());
118 int totalPages = itemCount == 0 ? 1 : (itemCount + ItemsPerPage - 1) / ItemsPerPage;
119 int currentPage = itemCount == 0 ? 0 : selectedIndex / ItemsPerPage;
120 int pageStart = currentPage * ItemsPerPage;
121 int pageEnd = std::min(itemCount, pageStart + ItemsPerPage);
123 std::ostringstream html;
125 if (menu->Layout.Header)
127 html << menu->Layout.Header();
134 html <<
RenderItems(menu, slot, selectedIndex, pageStart, pageEnd);
136 if (menu->Layout.Footer)
138 html << menu->Layout.Footer();