mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-26 08:05:38 +00:00
Added Exit command to the menu.
This commit is contained in:
parent
38bbbb3fb7
commit
4bbec51a6f
|
@ -1,3 +1,6 @@
|
||||||
|
November 14
|
||||||
|
-Added Exit command to the menu.
|
||||||
|
|
||||||
October 31
|
October 31
|
||||||
-Added custom font support. Check out THEMES.md.
|
-Added custom font support. Check out THEMES.md.
|
||||||
-Happy halloween!
|
-Happy halloween!
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "GuiMenu.h"
|
#include "GuiMenu.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <SDL/SDL.h>
|
||||||
|
|
||||||
GuiMenu::GuiMenu(GuiComponent* parent)
|
GuiMenu::GuiMenu(GuiComponent* parent)
|
||||||
{
|
{
|
||||||
|
@ -41,10 +42,21 @@ void GuiMenu::onInput(InputManager::InputButton button, bool keyDown)
|
||||||
|
|
||||||
if(button == InputManager::BUTTON1 && keyDown)
|
if(button == InputManager::BUTTON1 && keyDown)
|
||||||
{
|
{
|
||||||
if(system(mList->getSelectedObject().c_str()) != 0)
|
executeCommand(mList->getSelectedObject());
|
||||||
{
|
|
||||||
std::cout << "(menu command terminated with a nonzero errorcode)\n";
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiMenu::executeCommand(std::string command)
|
||||||
|
{
|
||||||
|
if(command == "exit")
|
||||||
|
{
|
||||||
|
//push SDL quit event
|
||||||
|
SDL_Event* event = new SDL_Event();
|
||||||
|
event->type = SDL_QUIT;
|
||||||
|
SDL_PushEvent(event);
|
||||||
|
}else{
|
||||||
|
if(system(command.c_str()) != 0)
|
||||||
|
std::cout << "(warning: command terminated with nonzero result!)\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,8 +68,10 @@ void GuiMenu::populateList()
|
||||||
//commands added here are called with system() when selected (so are executed as shell commands)
|
//commands added here are called with system() when selected (so are executed as shell commands)
|
||||||
//the method is GuiList::addObject(std::string displayString, std::string commandString, unsigned int displayHexColor);
|
//the method is GuiList::addObject(std::string displayString, std::string commandString, unsigned int displayHexColor);
|
||||||
//the list will automatically adjust as items are added to it, this should be the only area you need to change
|
//the list will automatically adjust as items are added to it, this should be the only area you need to change
|
||||||
|
//if you want to do something special within ES, override your command in the executeComand() method
|
||||||
mList->addObject("Restart", "sudo shutdown -r now", 0x0000FFFF);
|
mList->addObject("Restart", "sudo shutdown -r now", 0x0000FFFF);
|
||||||
mList->addObject("Shutdown", "sudo shutdown -h now", 0x0000FFFF);
|
mList->addObject("Shutdown", "sudo shutdown -h now", 0x0000FFFF);
|
||||||
|
mList->addObject("Exit", "exit", 0xFF0000FF); //a special case; pushes an SDL quit event to the event stack instead of being called by system()
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiMenu::onRender()
|
void GuiMenu::onRender()
|
||||||
|
|
|
@ -19,6 +19,7 @@ private:
|
||||||
GuiList<std::string>* mList;
|
GuiList<std::string>* mList;
|
||||||
|
|
||||||
void populateList();
|
void populateList();
|
||||||
|
void executeCommand(std::string command);
|
||||||
|
|
||||||
bool mSkippedMenuClose;
|
bool mSkippedMenuClose;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue