main.cpp 1.2 KB

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