| // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #ifndef CHROME_BROWSER_UI_VIEWS_EXCLUSIVE_ACCESS_BUBBLE_VIEWS_CONTEXT_H_ |
| #define CHROME_BROWSER_UI_VIEWS_EXCLUSIVE_ACCESS_BUBBLE_VIEWS_CONTEXT_H_ |
| |
| #include "ui/gfx/geometry/rect.h" |
| #include "ui/gfx/native_widget_types.h" |
| |
| class ExclusiveAccessManager; |
| |
| namespace ui { |
| class AcceleratorProvider; |
| } |
| |
| namespace views { |
| class Widget; |
| } |
| |
| // Context in which the exclusive access bubble view is initiated. |
| class ExclusiveAccessBubbleViewsContext { |
| public: |
| // Returns ExclusiveAccessManager controlling exclusive access for the given |
| // webview. |
| virtual ExclusiveAccessManager* GetExclusiveAccessManager() = 0; |
| |
| // Returns the Widget that hosts the view containing the exclusive access |
| // bubble. Not used for the simplified fullscreen UI. |
| virtual views::Widget* GetBubbleAssociatedWidget() = 0; |
| |
| // Returns the AcceleratorProvider, providing the shortcut key to exit the |
| // exclusive access. |
| virtual ui::AcceleratorProvider* GetAcceleratorProvider() = 0; |
| |
| // Returns the view used to parent the bubble Widget. |
| virtual gfx::NativeView GetBubbleParentView() const = 0; |
| |
| // Return the current mouse cursor location, offset from the top-left of the |
| // parent window. |
| virtual gfx::Point GetCursorPointInParent() const = 0; |
| |
| // Return the current bounds (not restored bounds) of the parent window. |
| virtual gfx::Rect GetClientAreaBoundsInScreen() const = 0; |
| |
| // Returns true if immersive mode is enabled. |
| virtual bool IsImmersiveModeEnabled() const = 0; |
| |
| // Returns the bounds of the top level View in screen coordinate system. |
| virtual gfx::Rect GetTopContainerBoundsInScreen() = 0; |
| |
| // Destroy any exclusive access bubble. This allows the bubble to ask its |
| // owner to clean up when the bubble observes its native widget being |
| // destroyed before the owner requested it. |
| virtual void DestroyAnyExclusiveAccessBubble() = 0; |
| |
| // Returns true if mouse position can trigger showing the bubble. |
| virtual bool CanTriggerOnMouse() const = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_UI_VIEWS_EXCLUSIVE_ACCESS_BUBBLE_VIEWS_CONTEXT_H_ |