GApplication.cpp 820 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <LibGUI/GApplication.h>
  2. #include <LibGUI/GEventLoop.h>
  3. #include <LibGUI/GMenuBar.h>
  4. static GApplication* s_the;
  5. GApplication& GApplication::the()
  6. {
  7. ASSERT(s_the);
  8. return *s_the;
  9. }
  10. GApplication::GApplication(int argc, char** argv)
  11. {
  12. (void)argc;
  13. (void)argv;
  14. ASSERT(!s_the);
  15. s_the = this;
  16. m_event_loop = make<GEventLoop>();
  17. }
  18. GApplication::~GApplication()
  19. {
  20. }
  21. int GApplication::exec()
  22. {
  23. return m_event_loop->exec();
  24. }
  25. void GApplication::quit(int exit_code)
  26. {
  27. m_event_loop->quit(exit_code);
  28. }
  29. void GApplication::set_menubar(OwnPtr<GMenuBar>&& menubar)
  30. {
  31. if (m_menubar)
  32. m_menubar->notify_removed_from_application(Badge<GApplication>());
  33. m_menubar = move(menubar);
  34. if (m_menubar)
  35. m_menubar->notify_added_to_application(Badge<GApplication>());
  36. }