// MENU.CPP
//
// Graphical User Interface menu support
-// by James L. Hammons
+// by James Hammons
//
-// JLH = James L. Hammons <jlhamm@acm.org>
+// JLH = James Hammons <jlhamm@acm.org>
//
// WHO WHEN WHAT
// --- ---------- ------------------------------------------------------------
{
}
-bool MenuItems::Inside(uint32 x, uint32 y)
+bool MenuItems::Inside(uint32_t x, uint32_t y)
{
- return (x >= (uint32)extents.x && x < (uint32)(extents.x + extents.w)
- && y >= (uint32)extents.y && y < (uint32)(extents.y + extents.h) ? true : false);
+ return (x >= (uint32_t)extents.x && x < (uint32_t)(extents.x + extents.w)
+ && y >= (uint32_t)extents.y && y < (uint32_t)(extents.y + extents.h) ? true : false);
}
//
// Menu class implementation
//
-Menu::Menu(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/,
- uint8 fgcR/*= 0x00*/, uint8 fgcG/*= 0x00*/, uint8 fgcB/*= 0x7F*/, uint8 fgcA/*= 0xFF*/,
- uint8 bgcR/*= 0x3F*/, uint8 bgcG/*= 0x3F*/, uint8 bgcB/*= 0xFF*/, uint8 bgcA/*= 0xFF*/,
- uint8 fgchR/*= 0x3F*/, uint8 fgchG/*= 0x3F*/, uint8 fgchB/*= 0xFF*/, uint8 fgchA/*= 0xFF*/,
- uint8 bgchR/*= 0x87*/, uint8 bgchG/*= 0x87*/, uint8 bgchB/*= 0xFF*/, uint8 bgchA/*= 0xFF*/):
+Menu::Menu(uint32_t x/*= 0*/, uint32_t y/*= 0*/, uint32_t w/*= 0*/, uint32_t h/*= 0*/,
+ uint8_t fgcR/*= 0x00*/, uint8_t fgcG/*= 0x00*/, uint8_t fgcB/*= 0x7F*/, uint8_t fgcA/*= 0xFF*/,
+ uint8_t bgcR/*= 0x3F*/, uint8_t bgcG/*= 0x3F*/, uint8_t bgcB/*= 0xFF*/, uint8_t bgcA/*= 0xFF*/,
+ uint8_t fgchR/*= 0x3F*/, uint8_t fgchG/*= 0x3F*/, uint8_t fgchB/*= 0xFF*/, uint8_t fgchA/*= 0xFF*/,
+ uint8_t bgchR/*= 0x87*/, uint8_t bgchG/*= 0x87*/, uint8_t bgchB/*= 0xFF*/, uint8_t bgchA/*= 0xFF*/):
Element(x, y, w, GetFontHeight(), fgcR, fgcG, fgcB, fgcA, bgcR, bgcG, bgcB, bgcA),
activated(false), clicked(false),
inside(0), insidePopup(0), menuChosen(-1), menuItemChosen(-1),
#if 0
// This *should* allow us to store our colors in an endian safe way... :-/
// Nope. Only on SW surfaces. With HW, all bets are off. :-(
- uint8 * c = (uint8 *)&fgColorHL;
+ uint8_t * c = (uint8_t *)&fgColorHL;
c[0] = fgchR, c[1] = fgchG, c[2] = fgchB, c[3] = fgchA;
- c = (uint8 *)&bgColorHL;
+ c = (uint8_t *)&bgColorHL;
c[0] = bgchR, c[1] = bgchG, c[2] = bgchB, c[3] = bgchA;
#else
fgColorHL = SDL_MapRGBA(screen->format, fgchR, fgchG, fgchB, fgchA);
Menu::~Menu()
{
- for(uint32 i=0; i<itemList.size(); i++)
+ for(uint32_t i=0; i<itemList.size(); i++)
{
if (itemList[i].popupBackstore)
SDL_FreeSurface(itemList[i].popupBackstore);
}
}
-void Menu::HandleKey(SDLKey key)
+void Menu::HandleKey(SDL_Scancode key)
{
SaveStateVariables();
- for(uint32 i=0; i<itemList.size(); i++)
+ for(uint32_t i=0; i<itemList.size(); i++)
{
- for(uint32 j=0; j<itemList[i].item.size(); j++)
+ for(uint32_t j=0; j<itemList[i].item.size(); j++)
{
if (itemList[i].item[j].hotKey == key)
{
CheckStateAndRedrawIfNeeded();
}
-void Menu::HandleMouseMove(uint32 x, uint32 y)
+void Menu::HandleMouseMove(uint32_t x, uint32_t y)
{
#ifdef DEBUG_MENU
WriteLog("--> Inside Menu::HandleMouseMove()...\n");
if (Inside(x, y))
{
// Find out *where* we are inside the menu bar
- uint32 xpos = extents.x;
+ uint32_t xpos = extents.x;
- for(uint32 i=0; i<itemList.size(); i++)
+ for(uint32_t i=0; i<itemList.size(); i++)
{
- uint32 width = (itemList[i].title.length() + 2) * GetFontWidth();
+ uint32_t width = (itemList[i].title.length() + 2) * GetFontWidth();
if (x >= xpos && x < xpos + width)
{
CheckStateAndRedrawIfNeeded();
}
-void Menu::HandleMouseButton(uint32 x, uint32 y, bool mouseDown)
+void Menu::HandleMouseButton(uint32_t x, uint32_t y, bool mouseDown)
{
#ifdef DEBUG_MENU
WriteLog("--> Inside Menu::HandleMouseButton()...\n");
#endif
char separator[] = "--------------------------------------------------------";
- uint32 xpos = extents.x;
+ uint32_t xpos = extents.x;
- for(uint32 i=0; i<itemList.size(); i++)
+ for(uint32_t i=0; i<itemList.size(); i++)
{
- uint32 color1 = fgColor, color2 = bgColor;
+ uint32_t color1 = fgColor, color2 = bgColor;
- if (inside == (i + 1) || (menuChosen != -1 && (uint32)menuChosen == i))
+ if (inside == (i + 1) || (menuChosen != -1 && (uint32_t)menuChosen == i))
color1 = fgColorHL, color2 = bgColorHL;
DrawStringOpaque(screen, xpos, extents.y, color1, color2,
// Draw sub menu (but only if active)
if (clicked)
{
- uint32 ypos = extents.y + GetFontHeight() + 1;
+ uint32_t ypos = extents.y + GetFontHeight() + 1;
- for(uint32 i=0; i<itemList[menuChosen].item.size(); i++)
+ for(uint32_t i=0; i<itemList[menuChosen].item.size(); i++)
{
- uint32 color1 = fgColor, color2 = bgColor;
+ uint32_t color1 = fgColor, color2 = bgColor;
if (insidePopup == i + 1)
color1 = fgColorHL, color2 = bgColorHL, menuItemChosen = i;
void Menu::Add(MenuItems mi)
{
- for(uint32 i=0; i<mi.item.size(); i++)
+ for(uint32_t i=0; i<mi.item.size(); i++)
if (mi.item[i].name.length() > mi.charLength)
mi.charLength = mi.item[i].name.length();