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

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

Issue 2247563002: Change status bubble rendering at hidpi and when there is no client edge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_
6 #define CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_ 6 #define CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
13 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
14 #include "chrome/browser/ui/status_bubble.h" 14 #include "chrome/browser/ui/status_bubble.h"
15 #include "chrome/browser/ui/views/frame/browser_view.h"
15 #include "ui/gfx/geometry/rect.h" 16 #include "ui/gfx/geometry/rect.h"
16 #include "url/gurl.h" 17 #include "url/gurl.h"
17 18
18 namespace gfx { 19 namespace gfx {
19 class Point; 20 class Point;
20 } 21 }
21 namespace views { 22 namespace views {
22 class View; 23 class View;
23 class Widget; 24 class Widget;
24 } 25 }
25 26
26 // StatusBubble displays a bubble of text that fades in, hovers over the 27 // StatusBubble displays a bubble of text that fades in, hovers over the
27 // browser chrome and fades away when not needed. It is primarily designed 28 // browser chrome and fades away when not needed. It is primarily designed
28 // to allow users to see where hovered links point to. 29 // to allow users to see where hovered links point to.
29 class StatusBubbleViews : public StatusBubble { 30 class StatusBubbleViews : public StatusBubble {
30 public: 31 public:
31 // How wide the bubble's shadow is. 32 // How wide the bubble's shadow is.
32 static const int kShadowThickness; 33 static const int kShadowThickness;
33 34
34 // The combined vertical padding above and below the text. 35 // The combined vertical padding above and below the text.
35 static const int kTotalVerticalPadding = 7; 36 static const int kTotalVerticalPadding = 7;
36 37
37 // |base_view| is the view that this bubble is positioned relative to. 38 // |browser_view| created this object. |base_view| is the view that this
38 explicit StatusBubbleViews(views::View* base_view); 39 // bubble is positioned relative to.
40 StatusBubbleViews(const BrowserView* browser_view, views::View* base_view);
39 ~StatusBubbleViews() override; 41 ~StatusBubbleViews() override;
40 42
41 views::View* base_view() { return base_view_; } 43 views::View* base_view() { return base_view_; }
42 44
43 // Reposition the bubble's popup - as we are using a WS_POPUP for the bubble, 45 // Reposition the bubble's popup - as we are using a WS_POPUP for the bubble,
44 // we have to manually position it when the browser window moves. 46 // we have to manually position it when the browser window moves.
45 void RepositionPopup(); 47 void RepositionPopup();
46 48
47 // The bubble only has a preferred height: the sum of the height of 49 // The bubble only has a preferred height: the sum of the height of
48 // the font and kTotalVerticalPadding. 50 // the font and kTotalVerticalPadding.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 // Whether the view contains the mouse. 121 // Whether the view contains the mouse.
120 bool contains_mouse_; 122 bool contains_mouse_;
121 123
122 // How vertically offset the bubble is from its root position_. 124 // How vertically offset the bubble is from its root position_.
123 int offset_; 125 int offset_;
124 126
125 // We use a HWND for the popup so that it may float above any HWNDs in our 127 // We use a HWND for the popup so that it may float above any HWNDs in our
126 // UI (the location bar, for example). 128 // UI (the location bar, for example).
127 std::unique_ptr<views::Widget> popup_; 129 std::unique_ptr<views::Widget> popup_;
128 130
131 const BrowserView* browser_view_;
129 views::View* base_view_; 132 views::View* base_view_;
130 StatusView* view_; 133 StatusView* view_;
131 134
132 // Manages the expansion of a status bubble to fit a long URL. 135 // Manages the expansion of a status bubble to fit a long URL.
133 std::unique_ptr<StatusViewExpander> expand_view_; 136 std::unique_ptr<StatusViewExpander> expand_view_;
134 137
135 // If the download shelf is visible, do not obscure it. 138 // If the download shelf is visible, do not obscure it.
136 bool download_shelf_is_visible_; 139 bool download_shelf_is_visible_;
137 140
138 // If the bubble has already been expanded, and encounters a new URL, 141 // If the bubble has already been expanded, and encounters a new URL,
139 // change size immediately, with no hover. 142 // change size immediately, with no hover.
140 bool is_expanded_; 143 bool is_expanded_;
141 144
142 // Times expansion of status bubble when URL is too long for standard width. 145 // Times expansion of status bubble when URL is too long for standard width.
143 base::WeakPtrFactory<StatusBubbleViews> expand_timer_factory_; 146 base::WeakPtrFactory<StatusBubbleViews> expand_timer_factory_;
144 147
145 DISALLOW_COPY_AND_ASSIGN(StatusBubbleViews); 148 DISALLOW_COPY_AND_ASSIGN(StatusBubbleViews);
146 }; 149 };
147 150
148 #endif // CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_ 151 #endif // CHROME_BROWSER_UI_VIEWS_STATUS_BUBBLE_VIEWS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698