Small OpenGL based c++ rendering library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

menumanager.cpp 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "menumanager.h"
  2. namespace segl {
  3. MenuManager::MenuManager() {
  4. aktuell = 0;
  5. }
  6. void MenuManager::addMenu(MenuMenu *mm) {
  7. menus.push_back(mm);
  8. if(menus.size()==1)
  9. aktuell = mm;
  10. }
  11. bool MenuManager::changeMenu(MenuMenu *mm) {
  12. for(unsigned int i=0; i<menus.size(); i++) {
  13. if(menus[i]==mm) {
  14. aktuell = mm;
  15. aktuell->resetItemPos();
  16. return true;
  17. }
  18. }
  19. return false;
  20. }
  21. const MenuMenu* MenuManager::getMenu() {
  22. return aktuell;
  23. }
  24. void MenuManager::render() {
  25. glEnable(GL_TEXTURE_2D);
  26. GLFontEngine::prepare2DbyPushingMatrix();
  27. if(aktuell)
  28. aktuell->render();
  29. GLFontEngine::regain3DbyPoppingMatrix();
  30. }
  31. void MenuManager::up() {
  32. if(aktuell)
  33. aktuell->up();
  34. }
  35. void MenuManager::down() {
  36. if(aktuell)
  37. aktuell->down();
  38. }
  39. void MenuManager::left() {
  40. if(aktuell)
  41. aktuell->left();
  42. }
  43. void MenuManager::right() {
  44. if(aktuell)
  45. aktuell->right();
  46. }
  47. void MenuManager::select() {
  48. if(aktuell)
  49. aktuell->select();
  50. }
  51. void MenuManager::charInput(char c) {
  52. if(aktuell)
  53. aktuell->charInput(c);
  54. }
  55. void MenuManager::reset() {
  56. if(aktuell) {
  57. aktuell->resetItemPos();
  58. }
  59. }
  60. } // namespace segl