19#pragma GCC diagnostic ignored "-Wunused-parameter" 
   20#pragma GCC diagnostic ignored "-Wshadow" 
   29#include "include/cef_browser.h" 
   30#include "include/cef_version.h" 
   31#include "include/views/cef_browser_view.h" 
   32#include "include/views/cef_window.h" 
   33#include "include/wrapper/cef_helpers.h" 
   45class SimpleWindowDelegate : 
public CefWindowDelegate {
 
   46   CefRefPtr<CefBrowserView> fBrowserView;
 
   50   explicit SimpleWindowDelegate(CefRefPtr<CefBrowserView> browser_view, 
int width = 800, 
int height = 600)
 
   51      : fBrowserView(browser_view), fWidth(
width), fHeight(
height)
 
   55   void OnWindowCreated(CefRefPtr<CefWindow> window)
 override 
   58      window->AddChildView(fBrowserView);
 
   62      fBrowserView->RequestFocus();
 
   65   void OnWindowDestroyed(CefRefPtr<CefWindow> window)
 override { fBrowserView = 
nullptr; }
 
   67   bool CanClose(CefRefPtr<CefWindow> window)
 override 
   70      CefRefPtr<CefBrowser> browser = fBrowserView->GetBrowser();
 
   72         return browser->GetHost()->TryCloseBrowser();
 
   76   CefSize GetPreferredSize(CefRefPtr<CefView> view)
 override 
   78     return CefSize(fWidth, fHeight);
 
   84   IMPLEMENT_REFCOUNTING(SimpleWindowDelegate);
 
   85   DISALLOW_COPY_AND_ASSIGN(SimpleWindowDelegate);
 
   89class SimpleBrowserViewDelegate : 
public CefBrowserViewDelegate {
 
   91  SimpleBrowserViewDelegate() {}
 
   93  bool OnPopupBrowserViewCreated(CefRefPtr<CefBrowserView> browser_view,
 
   94                                 CefRefPtr<CefBrowserView> popup_browser_view,
 
   95                                 bool is_devtools)
 override {
 
   98    CefWindow::CreateTopLevelWindow(
new SimpleWindowDelegate(popup_browser_view));
 
  105  IMPLEMENT_REFCOUNTING(SimpleBrowserViewDelegate);
 
  106  DISALLOW_COPY_AND_ASSIGN(SimpleBrowserViewDelegate);
 
  113                     THttpServer *serv, 
const std::string &url, 
const std::string &cont,
 
  119#if defined(OS_WIN) || defined(OS_LINUX) 
  170   CEF_REQUIRE_UI_THREAD();
 
  182   CEF_REQUIRE_UI_THREAD();
 
  191   if(addr.empty() && !cont.empty()) {
 
  201   CefBrowserSettings browser_settings;
 
  209      CefRefPtr<CefBrowserView> browser_view =
 
  210         CefBrowserView::CreateBrowserView(
fGuiHandler, url, browser_settings, 
nullptr, 
nullptr, 
new SimpleBrowserViewDelegate());
 
  213      CefWindow::CreateTopLevelWindow(
new SimpleWindowDelegate(browser_view, 
rect.width, 
rect.height));
 
  222      CefWindowInfo window_info;
 
  229         if (!
rect.IsEmpty()) window_info.SetAsChild(0, wnd_rect);
 
  232         window_info.SetAsPopup(0, 
"cefsimple");
 
  235      #elif defined(OS_LINUX) 
  236         if (!
rect.IsEmpty()) window_info.SetAsChild(0, 
rect);
 
  247      auto browser = CefBrowserHost::CreateBrowserSync(window_info, 
fGuiHandler, url, browser_settings, 
nullptr, 
nullptr);
 
#define R__LOG_ERROR(...)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t rect
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
void SetBrowser(CefRefPtr< CefBrowser > br)
RCefWebDisplayHandle * fNextHandle
next handle where browser will be created
SimpleApp(bool use_viewes, THttpServer *serv=nullptr, const std::string &url="", const std::string &cont="", int width=0, int height=0, bool headless=false)
std::string fFirstUrl
! first URL to open
bool fUseViewes
! is views framework used
void OnContextInitialized() override
THttpServer * fFirstServer
! first server
void StartWindow(THttpServer *serv, const std::string &url, const std::string &cont, CefRect &rect)
void OnBeforeChildProcessLaunch(CefRefPtr< CefCommandLine > command_line) override
CefRect fFirstRect
! original width
void SetNextHandle(RCefWebDisplayHandle *handle)
void OnRegisterCustomSchemes(CefRawPtr< CefSchemeRegistrar > registrar) override
CefRefPtr< GuiHandler > fGuiHandler
! normal handler
std::string fFirstContent
! first page content open
void OnBeforeCommandLineProcessing(const CefString &process_type, CefRefPtr< CefCommandLine > command_line) override
Online http server for arbitrary ROOT application.
ROOT::Experimental::RLogChannel & CefWebDisplayLog()