WebClient.cpp 833 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <ThirdParty/CEF/include/cef_client.h>
  2. #include "WebClient.h"
  3. namespace Atomic
  4. {
  5. class WebClientPrivate : public CefClient
  6. {
  7. friend class WebClient;
  8. public:
  9. WebClientPrivate(WebClient* client)
  10. {
  11. webClient_ = client;
  12. }
  13. CefRefPtr<CefRenderHandler> GetRenderHandler() OVERRIDE {
  14. if (webClient_->renderHandler_.Null())
  15. return nullptr;
  16. return webClient_->renderHandler_->GetCEFRenderHandler();
  17. }
  18. IMPLEMENT_REFCOUNTING(WebClientPrivate)
  19. private:
  20. WeakPtr<WebClient> webClient_;
  21. };
  22. WebClient::WebClient(Context* context) : Object(context)
  23. {
  24. d_ = new WebClientPrivate(this);
  25. d_->AddRef();
  26. }
  27. WebClient::~WebClient()
  28. {
  29. d_->Release();
  30. }
  31. void WebClient::SetWebRenderHandler(WebRenderHandler* handler)
  32. {
  33. renderHandler_ = handler;
  34. }
  35. }