libsegl/glmenu/menumanager.cpp

72 lines
1.1 KiB
C++
Raw Normal View History

#include "menumanager.h"
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;
2008-03-23 18:00:55 +01:00
aktuell->resetItemPos();
return true;
}
}
return false;
}
2008-03-23 18:00:55 +01:00
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();
}
2008-03-23 18:00:55 +01:00
void MenuManager::charInput(char c) {
if(aktuell)
aktuell->charInput(c);
}
void MenuManager::reset() {
if(aktuell) {
aktuell->resetItemPos();
}
}