#ifndef CEF_TESTS_CEFCLIENT_BROWSER_VIEWS_OVERLAY_CONTROLS_H_
#define CEF_TESTS_CEFCLIENT_BROWSER_VIEWS_OVERLAY_CONTROLS_H_
#pragma once
#include "include/views/cef_button_delegate.h"
#include "include/views/cef_label_button.h"
#include "include/views/cef_menu_button.h"
#include "include/views/cef_overlay_controller.h"
#include "include/views/cef_panel.h"
namespace client {
class ViewsOverlayControls : public CefButtonDelegate {
public:
enum class Command {
kMinimize = 1,
kMaximize,
kClose,
};
ViewsOverlayControls();
void Initialize(CefRefPtr<CefWindow> window,
CefRefPtr<CefMenuButton> menu_button,
CefRefPtr<CefView> location_bar,
bool is_chrome_toolbar);
void Destroy();
void UpdateControls();
void UpdateDraggableRegions(std::vector<CefDraggableRegion>& window_regions);
private:
void OnButtonPressed(CefRefPtr<CefButton> button) override;
CefRefPtr<CefLabelButton> CreateButton(Command command);
void MaybeUpdateMaximizeButton();
CefRefPtr<CefWindow> window_;
bool window_maximized_;
CefRefPtr<CefPanel> panel_;
CefRefPtr<CefOverlayController> panel_controller_;
CefRefPtr<CefView> location_bar_;
bool is_chrome_toolbar_;
CefRefPtr<CefOverlayController> location_controller_;
CefRefPtr<CefOverlayController> menu_controller_;
IMPLEMENT_REFCOUNTING(ViewsOverlayControls);
DISALLOW_COPY_AND_ASSIGN(ViewsOverlayControls);
};
}
#endif