]> git.sesse.net Git - casparcg/blobdiff - dependencies64/cef/windows/include/internal/cef_win.h
Upgrade CEF to 3.3029.1611.g44e39a8 / Chromium 58.0.3029.81.
[casparcg] / dependencies64 / cef / windows / include / internal / cef_win.h
similarity index 75%
rename from dependencies64/cef/include/internal/cef_win.h
rename to dependencies64/cef/windows/include/internal/cef_win.h
index 29e26c4569e89905e5f6e9590665dd22ae0f630f..9c20c48187da4df5dbeb0dc2288458d30927f017 100644 (file)
 #define CEF_INCLUDE_INTERNAL_CEF_WIN_H_
 #pragma once
 
-#if defined(OS_WIN)
-#include <windows.h>
 #include "include/internal/cef_types_win.h"
 #include "include/internal/cef_types_wrappers.h"
 
-///
-// Atomic increment and decrement.
-///
-#define CefAtomicIncrement(p) InterlockedIncrement(p)
-#define CefAtomicDecrement(p) InterlockedDecrement(p)
-
-///
-// Critical section wrapper.
-///
-class CefCriticalSection {
- public:
-  CefCriticalSection() {
-    memset(&m_sec, 0, sizeof(CRITICAL_SECTION));
-    InitializeCriticalSection(&m_sec);
-  }
-  virtual ~CefCriticalSection() {
-    DeleteCriticalSection(&m_sec);
-  }
-  void Lock() {
-    EnterCriticalSection(&m_sec);
-  }
-  void Unlock() {
-    LeaveCriticalSection(&m_sec);
-  }
-
-  CRITICAL_SECTION m_sec;
-};
-
 ///
 // Handle types.
 ///
 #define CefCursorHandle cef_cursor_handle_t
 #define CefEventHandle cef_event_handle_t
 #define CefWindowHandle cef_window_handle_t
-#define CefTextInputContext cef_text_input_context_t
 
 struct CefMainArgsTraits {
   typedef cef_main_args_t struct_type;
@@ -119,9 +88,9 @@ struct CefWindowInfoTraits {
     target->height = src->height;
     target->parent_window = src->parent_window;
     target->menu = src->menu;
+    target->transparent_painting_enabled = src->transparent_painting_enabled;
+    target->windowless_rendering_enabled = src->windowless_rendering_enabled;
     target->window = src->window;
-    target->transparent_painting = src->transparent_painting;
-    target->window_rendering_disabled = src->window_rendering_disabled;
   }
 };
 
@@ -136,20 +105,26 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
   explicit CefWindowInfo(const cef_window_info_t& r) : parent(r) {}
   explicit CefWindowInfo(const CefWindowInfo& r) : parent(r) {}
 
-  void SetAsChild(HWND hWndParent, RECT windowRect) {
+  ///
+  // Create the browser as a child window.
+  ///
+  void SetAsChild(CefWindowHandle parent, RECT windowRect) {
     style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_TABSTOP |
             WS_VISIBLE;
-    parent_window = hWndParent;
+    parent_window = parent;
     x = windowRect.left;
     y = windowRect.top;
     width = windowRect.right - windowRect.left;
     height = windowRect.bottom - windowRect.top;
   }
 
-  void SetAsPopup(HWND hWndParent, const CefString& windowName) {
+  ///
+  // Create the browser as a popup window.
+  ///
+  void SetAsPopup(CefWindowHandle parent, const CefString& windowName) {
     style = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS |
             WS_VISIBLE;
-    parent_window = hWndParent;
+    parent_window = parent;
     x = CW_USEDEFAULT;
     y = CW_USEDEFAULT;
     width = CW_USEDEFAULT;
@@ -158,16 +133,23 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
     cef_string_copy(windowName.c_str(), windowName.length(), &window_name);
   }
 
-  void SetTransparentPainting(BOOL transparentPainting) {
-    transparent_painting = transparentPainting;
-  }
-
-  void SetAsOffScreen(HWND hWndParent) {
-    window_rendering_disabled = TRUE;
-    parent_window = hWndParent;
+  ///
+  // Create the browser using windowless (off-screen) rendering. No window
+  // will be created for the browser and all rendering will occur via the
+  // CefRenderHandler interface. The |parent| value will be used to identify
+  // monitor info and to act as the parent window for dialogs, context menus,
+  // etc. If |parent| is not provided then the main screen monitor will be used
+  // and some functionality that requires a parent window may not function
+  // correctly. If |transparent| is true a transparent background color will be
+  // used (RGBA=0x00000000). If |transparent| is false the background will be
+  // white and opaque. In order to create windowless browsers the
+  // CefSettings.windowless_rendering_enabled value must be set to true.
+  ///
+  void SetAsWindowless(CefWindowHandle parent, bool transparent) {
+    windowless_rendering_enabled = TRUE;
+    parent_window = parent;
+    transparent_painting_enabled = transparent;
   }
 };
 
-#endif  // OS_WIN
-
 #endif  // CEF_INCLUDE_INTERNAL_CEF_WIN_H_