diff options
author | tapted <tapted@chromium.org> | 2016-02-03 15:45:34 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-03 23:46:49 +0000 |
commit | eb0962214e28fcbe6349bae6214d020cfe67f7cc (patch) | |
tree | 54a2e170df606c9e90f817ae3221b7a9d7b3ea31 /chrome/browser/ui/views/exclusive_access_bubble_views_context.h | |
parent | 3c0ef4309a77bbf172f081c99bbb33e732ea07af (diff) | |
download | chromium_src-eb0962214e28fcbe6349bae6214d020cfe67f7cc.zip chromium_src-eb0962214e28fcbe6349bae6214d020cfe67f7cc.tar.gz chromium_src-eb0962214e28fcbe6349bae6214d020cfe67f7cc.tar.bz2 |
Enable showing the toolkit-views simplified fullscreen UI on Mac.
Puts the new simplified fullscreen UI behind
chrome://flags/#simplified-fullscreen-ui on Mac.
It uses the toolkit-views UI, since it's already written and works
pretty well. Only few things need to be farmed out to the delegate
since the bubble can't assume its parent is a views::Widget.
Fixes a quirk where opacity-animating bubbles would briefly change
their bounds to have zero-height and back during construction. (We
complain about visible but zero-sized Widgets on Mac).
If this all works we can delete some ~700 lines of Cocoa code when
this simplified fullscreen UI is default on Mac.
BUG=352425
Review URL: https://codereview.chromium.org/1654723002
Cr-Commit-Position: refs/heads/master@{#373386}
Diffstat (limited to 'chrome/browser/ui/views/exclusive_access_bubble_views_context.h')
-rw-r--r-- | chrome/browser/ui/views/exclusive_access_bubble_views_context.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/chrome/browser/ui/views/exclusive_access_bubble_views_context.h b/chrome/browser/ui/views/exclusive_access_bubble_views_context.h index 5d0f3d4..d2300ea 100644 --- a/chrome/browser/ui/views/exclusive_access_bubble_views_context.h +++ b/chrome/browser/ui/views/exclusive_access_bubble_views_context.h @@ -5,9 +5,14 @@ #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; } @@ -15,16 +20,28 @@ class Widget; // Context in which the exclusive access bubble view is initiated. class ExclusiveAccessBubbleViewsContext { public: - virtual ~ExclusiveAccessBubbleViewsContext() {} - // 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. + // 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() = 0; |