main.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <csignal>
  2. #include <iostream>
  3. #include "WallpaperEngine/Application/CApplicationContext.h"
  4. #include "WallpaperEngine/Application/CWallpaperApplication.h"
  5. #include "WallpaperEngine/Core/Wallpapers/CWeb.h"
  6. #include "WallpaperEngine/WebBrowser/CWebBrowserContext.h"
  7. #include "common.h"
  8. WallpaperEngine::Application::CWallpaperApplication* appPointer;
  9. void signalhandler(int sig)
  10. {
  11. if (appPointer == nullptr)
  12. return;
  13. appPointer->signal (sig);
  14. }
  15. void initLogging ()
  16. {
  17. sLog.addOutput (new std::ostream (std::cout.rdbuf ()));
  18. sLog.addError (new std::ostream (std::cerr.rdbuf ()));
  19. }
  20. int main (int argc, char* argv[]) {
  21. initLogging ();
  22. WallpaperEngine::WebBrowser::CWebBrowserContext webBrowserContext(argc, argv);
  23. WallpaperEngine::Application::CApplicationContext appContext (argc, argv);
  24. // halt if the list-properties option was specified
  25. if (appContext.settings.general.onlyListProperties)
  26. return 0;
  27. WallpaperEngine::Application::CWallpaperApplication app (appContext, webBrowserContext);
  28. appPointer = &app;
  29. // attach signals to gracefully stop
  30. std::signal (SIGINT, signalhandler);
  31. std::signal (SIGTERM, signalhandler);
  32. // show the wallpaper application
  33. app.show ();
  34. appPointer = nullptr;
  35. return 0;
  36. }