Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Side by Side Diff: chrome/browser/ui/views/fullscreen_exit_bubble_views.h

Issue 789403002: Rename fullscreen_exit_bubble_* to exclusive_access_bubble_* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated based on CR comments Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_VIEWS_FULLSCREEN_EXIT_BUBBLE_VIEWS_H_
6 #define CHROME_BROWSER_UI_VIEWS_FULLSCREEN_EXIT_BUBBLE_VIEWS_H_
7
8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/ui/fullscreen/fullscreen_exit_bubble.h"
11 #include "content/public/browser/notification_observer.h"
12 #include "content/public/browser/notification_registrar.h"
13 #include "ui/views/widget/widget_observer.h"
14
15 class BrowserView;
16 class GURL;
17 namespace gfx {
18 class SlideAnimation;
19 }
20 namespace views {
21 class View;
22 class Widget;
23 }
24
25 // FullscreenExitBubbleViews is responsible for showing a bubble atop the
26 // screen in fullscreen mode, telling users how to exit and providing a click
27 // target. The bubble auto-hides, and re-shows when the user moves to the
28 // screen top.
29 class FullscreenExitBubbleViews : public FullscreenExitBubble,
30 public content::NotificationObserver,
31 public views::WidgetObserver {
32 public:
33 FullscreenExitBubbleViews(BrowserView* browser,
34 const GURL& url,
35 FullscreenExitBubbleType bubble_type);
36 ~FullscreenExitBubbleViews() override;
37
38 void UpdateContent(const GURL& url, FullscreenExitBubbleType bubble_type);
39
40 // Repositions |popup_| if it is visible.
41 void RepositionIfVisible();
42
43 private:
44 class FullscreenExitView;
45
46 enum AnimatedAttribute {
47 ANIMATED_ATTRIBUTE_BOUNDS,
48 ANIMATED_ATTRIBUTE_OPACITY
49 };
50
51 // Starts or stops polling the mouse location based on |popup_| and
52 // |bubble_type_|.
53 void UpdateMouseWatcher();
54
55 // Updates any state which depends on whether the user is in immersive
56 // fullscreen.
57 void UpdateForImmersiveState();
58
59 // Updates |popup|'s bounds given |animation_| and |animated_attribute_|.
60 void UpdateBounds();
61
62 // Returns the root view containing |browser_view_|.
63 views::View* GetBrowserRootView() const;
64
65 // FullScreenExitBubble overrides:
66 void AnimationProgressed(const gfx::Animation* animation) override;
67 void AnimationEnded(const gfx::Animation* animation) override;
68 gfx::Rect GetPopupRect(bool ignore_animation_state) const override;
69 gfx::Point GetCursorScreenPoint() override;
70 bool WindowContainsPoint(gfx::Point pos) override;
71 bool IsWindowActive() override;
72 void Hide() override;
73 void Show() override;
74 bool IsAnimating() override;
75 bool CanMouseTriggerSlideIn() const override;
76
77 // content::NotificationObserver override:
78 void Observe(int type,
79 const content::NotificationSource& source,
80 const content::NotificationDetails& details) override;
81
82 // views::WidgetObserver override:
83 void OnWidgetVisibilityChanged(views::Widget* widget, bool visible) override;
84
85 BrowserView* browser_view_;
86
87 views::Widget* popup_;
88
89 // Animation controlling showing/hiding of the exit bubble.
90 scoped_ptr<gfx::SlideAnimation> animation_;
91
92 // Attribute animated by |animation_|.
93 AnimatedAttribute animated_attribute_;
94
95 // The contents of the popup.
96 FullscreenExitView* view_;
97
98 content::NotificationRegistrar registrar_;
99
100 DISALLOW_COPY_AND_ASSIGN(FullscreenExitBubbleViews);
101 };
102
103 #endif // CHROME_BROWSER_UI_VIEWS_FULLSCREEN_EXIT_BUBBLE_VIEWS_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view_layout_unittest.cc ('k') | chrome/browser/ui/views/fullscreen_exit_bubble_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698