libsegl/glmenu/menumanager.cpp

76 lines
1.1 KiB
C++

#include "menumanager.h"
namespace segl {
MenuManager::MenuManager() {
aktuell = 0;
}
void MenuManager::addMenu(MenuMenu *mm) {
menus.push_back(mm);
if(menus.size()==1)
aktuell = mm;
}
bool MenuManager::changeMenu(MenuMenu *mm) {
for(unsigned int i=0; i<menus.size(); i++) {
if(menus[i]==mm) {
aktuell = mm;
aktuell->resetItemPos();
return true;
}
}
return false;
}
const MenuMenu* MenuManager::getMenu() {
return aktuell;
}
void MenuManager::render() {
glEnable(GL_TEXTURE_2D);
GLFontEngine::prepare2DbyPushingMatrix();
if(aktuell)
aktuell->render();
GLFontEngine::regain3DbyPoppingMatrix();
}
void MenuManager::up() {
if(aktuell)
aktuell->up();
}
void MenuManager::down() {
if(aktuell)
aktuell->down();
}
void MenuManager::left() {
if(aktuell)
aktuell->left();
}
void MenuManager::right() {
if(aktuell)
aktuell->right();
}
void MenuManager::select() {
if(aktuell)
aktuell->select();
}
void MenuManager::charInput(char c) {
if(aktuell)
aktuell->charInput(c);
}
void MenuManager::reset() {
if(aktuell) {
aktuell->resetItemPos();
}
}
} // namespace segl