157#ifndef OLC_PGEX_POPUPMENU_H
158#define OLC_PGEX_POPUPMENU_H
201 std::vector<olc::popup::Menu>
items;
230 std::list<Menu*> panels;
239#ifdef OLC_PGEX_POPUPMENU
240#undef OLC_PGEX_POPUPMENU
291 return !
items.empty();
296 return { int32_t(
sName.size()), 1 };
320 for (
auto& m :
items)
359 if (vPatchPos.
x > 0) vSourcePatch.
x = 1;
361 if (vPatchPos.
y > 0) vSourcePatch.
y = 1;
378 nBottomRightItem = std::min(int32_t(
items.size()), nBottomRightItem);
379 int32_t nVisibleItems = nBottomRightItem - nTopLeftItem;
399 for (int32_t i = 0; i < nVisibleItems; i++)
421 vScreenLocation = vPatchPos *
nPatch + vScreenOffset;
513 panels.push_back(mo);
523 if (!panels.empty()) panels.back()->OnUp();
528 if (!panels.empty()) panels.back()->OnDown();
533 if (!panels.empty()) panels.back()->OnLeft();
538 if (!panels.empty()) panels.back()->OnRight();
543 if (!panels.empty()) panels.pop_back();
548 if (panels.empty())
return nullptr;
550 Menu* next = panels.back()->OnConfirm();
551 if (next == panels.back())
553 if (panels.back()->GetSelectedItem()->Enabled())
554 return panels.back()->GetSelectedItem();
559 panels.push_back(next);
567 if (panels.empty())
return;
570 for (
auto& p : panels)
572 p->DrawSelf(*
pge, sprGFX, vScreenOffset);
573 vScreenOffset += {10, 10};
Definition olcPixelGameEngine.h:1615
static PixelGameEngine * pge
Definition olcPixelGameEngine.h:1627
Definition olcPixelGameEngine.h:1225
void DrawPartialSprite(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)
void DrawString(int32_t x, int32_t y, const std::string &sText, Pixel col=olc::WHITE, uint32_t scale=1)
Pixel::Mode GetPixelMode()
void SetPixelMode(Pixel::Mode m)
Definition olcPixelGameEngine.h:1047
Definition olcPixelGameEngine.h:593
static const Pixel DARK_GREY(128, 128, 128)
static const Pixel WHITE(255, 255, 255)
Mode
Definition olcPixelGameEngine.h:931
@ MASK
Definition olcPixelGameEngine.h:931
@ ALPHA
Definition olcPixelGameEngine.h:931
T x
Definition olcPixelGameEngine.h:604
T y
Definition olcPixelGameEngine.h:606