Menu.cpp 989 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <GL/freeglut.h>
  2. #include "Menu.h"
  3. #include "CrystalPoint.h"
  4. Menu::Menu()
  5. {
  6. cursor = Cursor::getInstance();
  7. }
  8. Menu::~Menu()
  9. {
  10. }
  11. void Menu::draw(void)
  12. {
  13. //Switch view to Ortho
  14. glMatrixMode(GL_PROJECTION);
  15. glLoadIdentity();
  16. glOrtho(0, CrystalPoint::width, CrystalPoint::height, 0, -10, 10);
  17. glMatrixMode(GL_MODELVIEW);
  18. glLoadIdentity();
  19. glDisable(GL_LIGHTING);
  20. glDisable(GL_DEPTH_TEST);
  21. glDisable(GL_TEXTURE_2D);
  22. glColor4f(60/255.0f, 60/255.0f, 60/255.0f, 0.8f);
  23. glBegin(GL_QUADS);
  24. glVertex2f(0,0);
  25. glVertex2f(0, CrystalPoint::height);
  26. glVertex2f(CrystalPoint::width, CrystalPoint::height);
  27. glVertex2f(CrystalPoint::width, 0);
  28. glEnd();
  29. for (MenuElement* e : elements)
  30. {
  31. e->draw();
  32. }
  33. cursor->draw();
  34. glEnable(GL_LIGHTING);
  35. glEnable(GL_DEPTH_TEST);
  36. }
  37. void Menu::update()
  38. {
  39. for (MenuElement* e : elements)
  40. {
  41. e->update(cursor->mousePosition.x, cursor->mousePosition.y);
  42. }
  43. }
  44. void Menu::AddMenuElement(MenuElement * e)
  45. {
  46. elements.push_back(e);
  47. }