summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/exclusive_access_bubble_views_context.h
diff options
context:
space:
mode:
authortapted <tapted@chromium.org>2016-02-03 15:45:34 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-03 23:46:49 +0000
commiteb0962214e28fcbe6349bae6214d020cfe67f7cc (patch)
tree54a2e170df606c9e90f817ae3221b7a9d7b3ea31 /chrome/browser/ui/views/exclusive_access_bubble_views_context.h
parent3c0ef4309a77bbf172f081c99bbb33e732ea07af (diff)
downloadchromium_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.h23
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;