web_browser.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2018 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <functional>
  6. #include <QObject>
  7. #ifdef YUZU_USE_QT_WEB_ENGINE
  8. #include <QWebEngineView>
  9. #endif
  10. #include "core/frontend/applets/web_browser.h"
  11. class GMainWindow;
  12. #ifdef YUZU_USE_QT_WEB_ENGINE
  13. QString GetNXShimInjectionScript();
  14. class NXInputWebEngineView : public QWebEngineView {
  15. public:
  16. explicit NXInputWebEngineView(QWidget* parent = nullptr);
  17. protected:
  18. void keyPressEvent(QKeyEvent* event) override;
  19. void keyReleaseEvent(QKeyEvent* event) override;
  20. };
  21. #endif
  22. class QtWebBrowser final : public QObject, public Core::Frontend::WebBrowserApplet {
  23. Q_OBJECT
  24. public:
  25. explicit QtWebBrowser(GMainWindow& main_window);
  26. ~QtWebBrowser() override;
  27. void OpenPageLocal(std::string_view url, std::function<void()> unpack_romfs_callback_,
  28. std::function<void()> finished_callback_) override;
  29. signals:
  30. void MainWindowOpenPage(std::string_view filename, std::string_view additional_args) const;
  31. private:
  32. void MainWindowUnpackRomFS();
  33. void MainWindowFinishedBrowsing();
  34. std::function<void()> unpack_romfs_callback;
  35. std::function<void()> finished_callback;
  36. };