mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-12-01 18:45:39 +00:00
Moved configuration files to $HOME/.emulationstation/
Folders should now be sorted alphabetically. Will now fall back to a system font if LinLibertine.ttf is not found. Added a Menu button. Began working on a simple menu.
This commit is contained in:
parent
b56094fe3d
commit
eaf7df7ad5
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
CC=g++
|
CC=g++
|
||||||
CFLAGS=-c -Wall
|
CFLAGS=-c -Wall
|
||||||
LDFLAGS=-lSDL -lSDL_ttf -lSDL_image -lboost_system -lboost_filesystem
|
LDFLAGS=-lSDL -lSDL_ttf -lSDL_image -lboost_system -lboost_filesystem
|
||||||
SRCSOURCES=main.cpp Renderer.cpp Renderer_draw.cpp GuiComponent.cpp InputManager.cpp SystemData.cpp GameData.cpp FolderData.cpp XMLReader.cpp components/GuiList.cpp components/GuiGameList.cpp components/GuiInputConfig.cpp components/GuiImage.cpp pugiXML/pugixml.cpp
|
SRCSOURCES=main.cpp Renderer.cpp Renderer_draw.cpp GuiComponent.cpp InputManager.cpp SystemData.cpp GameData.cpp FolderData.cpp XMLReader.cpp components/GuiList.cpp components/GuiGameList.cpp components/GuiInputConfig.cpp components/GuiImage.cpp components/GuiMenu.cpp pugiXML/pugixml.cpp
|
||||||
SOURCES=$(addprefix src/,$(SRCSOURCES))
|
SOURCES=$(addprefix src/,$(SRCSOURCES))
|
||||||
OBJECTS=$(SOURCES:.cpp=.o)
|
OBJECTS=$(SOURCES:.cpp=.o)
|
||||||
EXECUTABLE=emulationstation
|
EXECUTABLE=emulationstation
|
||||||
|
|
6
changelog.txt
Normal file
6
changelog.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
August 4
|
||||||
|
-Moved configuration files to $HOME/.emulationstation/
|
||||||
|
-Renderer::loadFonts() will now fall back to /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf if LinLibertine.ttf is not
|
||||||
|
-Folders should now be sorted alphabetically
|
||||||
|
-Added Menu button
|
||||||
|
-Added simple menu
|
|
@ -1,5 +1,6 @@
|
||||||
#include "FolderData.h"
|
#include "FolderData.h"
|
||||||
#include "SystemData.h"
|
#include "SystemData.h"
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
bool FolderData::isFolder() { return true; }
|
bool FolderData::isFolder() { return true; }
|
||||||
std::string FolderData::getName() { return mName; }
|
std::string FolderData::getName() { return mName; }
|
||||||
|
@ -29,3 +30,32 @@ void FolderData::pushFileData(FileData* file)
|
||||||
mFileVector.push_back(file);
|
mFileVector.push_back(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//returns if file1 should come before file2
|
||||||
|
bool filesort(FileData* file1, FileData* file2)
|
||||||
|
{
|
||||||
|
std::string name1 = file1->getName();
|
||||||
|
std::string name2 = file2->getName();
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i < name1.length(); i++)
|
||||||
|
{
|
||||||
|
if(name1[i] != name2[i])
|
||||||
|
{
|
||||||
|
if(name1[i] < name2[i])
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(name1.length() < name2.length())
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FolderData::sort()
|
||||||
|
{
|
||||||
|
std::sort(mFileVector.begin(), mFileVector.end(), filesort);
|
||||||
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@ public:
|
||||||
FileData* getFile(unsigned int i);
|
FileData* getFile(unsigned int i);
|
||||||
|
|
||||||
void pushFileData(FileData* file);
|
void pushFileData(FileData* file);
|
||||||
|
|
||||||
|
void sort();
|
||||||
private:
|
private:
|
||||||
SystemData* mSystem;
|
SystemData* mSystem;
|
||||||
std::string mPath;
|
std::string mPath;
|
||||||
|
|
|
@ -57,3 +57,18 @@ void GuiComponent::render()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GuiComponent::pause()
|
||||||
|
{
|
||||||
|
onPause();
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i < mChildren.size(); i++)
|
||||||
|
mChildren.at(i)->pause();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiComponent::resume()
|
||||||
|
{
|
||||||
|
onResume();
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i < mChildren.size(); i++)
|
||||||
|
mChildren.at(i)->resume();
|
||||||
|
}
|
||||||
|
|
|
@ -15,6 +15,11 @@ public:
|
||||||
virtual void onRender() { };
|
virtual void onRender() { };
|
||||||
virtual void onTick(int deltaTime) { };
|
virtual void onTick(int deltaTime) { };
|
||||||
|
|
||||||
|
void pause();
|
||||||
|
void resume();
|
||||||
|
virtual void onPause() { };
|
||||||
|
virtual void onResume() { };
|
||||||
|
|
||||||
virtual void onInput(InputManager::InputButton button, bool keyDown) { };
|
virtual void onInput(InputManager::InputButton button, bool keyDown) { };
|
||||||
|
|
||||||
void addChild(GuiComponent* comp);
|
void addChild(GuiComponent* comp);
|
||||||
|
|
|
@ -39,4 +39,3 @@ void Renderer::render()
|
||||||
renderVector.at(i)->render();
|
renderVector.at(i)->render();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,8 @@ void SystemData::populateFolder(FolderData* folder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
folder->sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "GuiGameList.h"
|
#include "GuiGameList.h"
|
||||||
#include "../InputManager.h"
|
#include "../InputManager.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "GuiMenu.h"
|
||||||
|
|
||||||
#define SCREENSHOTWIDTH 256
|
#define SCREENSHOTWIDTH 256
|
||||||
#define SCREENSHOTHEIGHT 256
|
#define SCREENSHOTHEIGHT 256
|
||||||
|
@ -128,6 +129,11 @@ void GuiGameList::onInput(InputManager::InputButton button, bool keyDown)
|
||||||
setSystemId(mSystemId - 1);
|
setSystemId(mSystemId - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(button == InputManager::MENU && keyDown)
|
||||||
|
{
|
||||||
|
new GuiMenu(this);
|
||||||
|
}
|
||||||
|
|
||||||
if(mDetailed)
|
if(mDetailed)
|
||||||
{
|
{
|
||||||
if(!keyDown && (button == InputManager::UP || button == InputManager::DOWN))
|
if(!keyDown && (button == InputManager::UP || button == InputManager::DOWN))
|
||||||
|
@ -159,3 +165,16 @@ void GuiGameList::updateList()
|
||||||
mList->addObject(file->getName(), file);
|
mList->addObject(file->getName(), file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//these are called when the menu opens/closes
|
||||||
|
void GuiGameList::onPause()
|
||||||
|
{
|
||||||
|
InputManager::unregisterComponent(this);
|
||||||
|
InputManager::unregisterComponent(mList);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiGameList::onResume()
|
||||||
|
{
|
||||||
|
InputManager::registerComponent(this);
|
||||||
|
InputManager::registerComponent(mList);
|
||||||
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@ public:
|
||||||
|
|
||||||
void onRender();
|
void onRender();
|
||||||
void onInput(InputManager::InputButton button, bool keyDown);
|
void onInput(InputManager::InputButton button, bool keyDown);
|
||||||
|
void onPause();
|
||||||
|
void onResume();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SystemData* mSystem;
|
SystemData* mSystem;
|
||||||
|
|
50
src/components/GuiMenu.cpp
Normal file
50
src/components/GuiMenu.cpp
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#include "GuiMenu.h"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
GuiMenu::GuiMenu(GuiComponent* parent)
|
||||||
|
{
|
||||||
|
mParent = parent;
|
||||||
|
parent->pause();
|
||||||
|
|
||||||
|
mList = new GuiList(Renderer::getScreenWidth() * 0.5, 20);
|
||||||
|
|
||||||
|
addChild(mList);
|
||||||
|
|
||||||
|
mSkippedMenuClose = false;
|
||||||
|
|
||||||
|
Renderer::registerComponent(this);
|
||||||
|
InputManager::registerComponent(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
GuiMenu::~GuiMenu()
|
||||||
|
{
|
||||||
|
Renderer::unregisterComponent(this);
|
||||||
|
InputManager::unregisterComponent(this);
|
||||||
|
|
||||||
|
delete mList;
|
||||||
|
mParent->resume();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiMenu::onInput(InputManager::InputButton button, bool keyDown)
|
||||||
|
{
|
||||||
|
if(button == InputManager::MENU && !keyDown)
|
||||||
|
{
|
||||||
|
if(!mSkippedMenuClose)
|
||||||
|
{
|
||||||
|
mSkippedMenuClose = true;
|
||||||
|
}else{
|
||||||
|
delete this;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiMenu::populateList()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiMenu::onRender()
|
||||||
|
{
|
||||||
|
Renderer::drawRect(Renderer::getScreenWidth() * 0.25, 0, Renderer::getScreenWidth() * 0.5, Renderer::getScreenHeight(), 0xFF00FF);
|
||||||
|
}
|
22
src/components/GuiMenu.h
Normal file
22
src/components/GuiMenu.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef _GUIMENU_H_
|
||||||
|
#define _GUIMENU_H_
|
||||||
|
|
||||||
|
#include "../GuiComponent.h"
|
||||||
|
#include "GuiList.h"
|
||||||
|
|
||||||
|
class GuiMenu : public GuiComponent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GuiMenu(GuiComponent* parent);
|
||||||
|
~GuiMenu();
|
||||||
|
|
||||||
|
void onInput(InputManager::InputButton button, bool keyDown);
|
||||||
|
void onRender();
|
||||||
|
|
||||||
|
private:
|
||||||
|
GuiComponent* mParent;
|
||||||
|
GuiList* mList;
|
||||||
|
bool mSkippedMenuClose;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue