1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef UI_PLATFORM_WINDOW_PLATFORM_WINDOW_DELEGATE_H_ 6#define UI_PLATFORM_WINDOW_PLATFORM_WINDOW_DELEGATE_H_ 7 8#include "ui/gfx/native_widget_types.h" 9 10namespace gfx { 11class Rect; 12} 13 14namespace ui { 15 16class Event; 17 18enum PlatformWindowState { 19 PLATFORM_WINDOW_STATE_UNKNOWN, 20 PLATFORM_WINDOW_STATE_MAXIMIZED, 21 PLATFORM_WINDOW_STATE_MINIMIZED, 22 PLATFORM_WINDOW_STATE_NORMAL, 23 PLATFORM_WINDOW_STATE_FULLSCREEN, 24}; 25 26class PlatformWindowDelegate { 27 public: 28 virtual ~PlatformWindowDelegate() {} 29 30 // Note that |new_bounds| is in physical screen coordinates. 31 virtual void OnBoundsChanged(const gfx::Rect& new_bounds) = 0; 32 33 // Note that |damaged_region| is in the platform-window's coordinates, in 34 // physical pixels. 35 virtual void OnDamageRect(const gfx::Rect& damaged_region) = 0; 36 37 virtual void DispatchEvent(Event* event) = 0; 38 39 virtual void OnCloseRequest() = 0; 40 virtual void OnClosed() = 0; 41 42 virtual void OnWindowStateChanged(PlatformWindowState new_state) = 0; 43 44 virtual void OnLostCapture() = 0; 45 46 virtual void OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget) = 0; 47 48 virtual void OnActivationChanged(bool active) = 0; 49}; 50 51} // namespace ui 52 53#endif // UI_PLATFORM_WINDOW_PLATFORM_WINDOW_DELEGATE_H_ 54