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

Side by Side Diff: chrome/browser/ui/views/exclusive_access_bubble_views.cc

Issue 1428673002: Minor refactor of ExclusiveAccessView (fullscreen info bubble). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@exclusiveaccess-opacity
Patch Set: Created 5 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/ui/views/exclusive_access_bubble_views.h" 5 #include "chrome/browser/ui/views/exclusive_access_bubble_views.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/app/chrome_command_ids.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 void ButtonPressed(views::Button* sender, const ui::Event& event) override; 106 void ButtonPressed(views::Button* sender, const ui::Event& event) override;
107 107
108 // views::LinkListener 108 // views::LinkListener
109 void LinkClicked(views::Link* source, int event_flags) override; 109 void LinkClicked(views::Link* source, int event_flags) override;
110 110
111 void UpdateContent(const GURL& url, ExclusiveAccessBubbleType bubble_type); 111 void UpdateContent(const GURL& url, ExclusiveAccessBubbleType bubble_type);
112 112
113 private: 113 private:
114 ExclusiveAccessBubbleViews* bubble_; 114 ExclusiveAccessBubbleViews* bubble_;
115 115
116 // Clickable hint text for exiting fullscreen mode. 116 // Clickable hint text for exiting fullscreen mode. (Non-simplified mode
117 // only.)
117 views::Link* link_; 118 views::Link* link_;
118 // Instruction for exiting mouse lock. 119 // Informational label: 'www.foo.com has gone fullscreen'. (Non-simplified
119 views::Label* mouse_lock_exit_instruction_; 120 // mode only.)
120 // Informational label: 'www.foo.com has gone fullscreen'.
121 views::Label* message_label_; 121 views::Label* message_label_;
122 // Clickable buttons to exit fullscreen. (Non-simplified mode only.)
122 ButtonView* button_view_; 123 ButtonView* button_view_;
124 // Instruction for exiting fullscreen / mouse lock. Only present if there is
125 // no link or button (always present in simplified mode).
126 views::Label* exit_instruction_;
123 const base::string16 browser_fullscreen_exit_accelerator_; 127 const base::string16 browser_fullscreen_exit_accelerator_;
124 128
125 DISALLOW_COPY_AND_ASSIGN(ExclusiveAccessView); 129 DISALLOW_COPY_AND_ASSIGN(ExclusiveAccessView);
126 }; 130 };
127 131
128 ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView( 132 ExclusiveAccessBubbleViews::ExclusiveAccessView::ExclusiveAccessView(
129 ExclusiveAccessBubbleViews* bubble, 133 ExclusiveAccessBubbleViews* bubble,
130 const base::string16& accelerator, 134 const base::string16& accelerator,
131 const GURL& url, 135 const GURL& url,
132 ExclusiveAccessBubbleType bubble_type) 136 ExclusiveAccessBubbleType bubble_type)
133 : bubble_(bubble), 137 : bubble_(bubble),
134 link_(nullptr), 138 link_(nullptr),
135 mouse_lock_exit_instruction_(nullptr),
136 message_label_(nullptr), 139 message_label_(nullptr),
137 button_view_(nullptr), 140 button_view_(nullptr),
141 exit_instruction_(nullptr),
138 browser_fullscreen_exit_accelerator_(accelerator) { 142 browser_fullscreen_exit_accelerator_(accelerator) {
139 views::BubbleBorder::Shadow shadow_type = views::BubbleBorder::BIG_SHADOW; 143 views::BubbleBorder::Shadow shadow_type = views::BubbleBorder::BIG_SHADOW;
140 #if defined(OS_LINUX) 144 #if defined(OS_LINUX)
141 // Use a smaller shadow on Linux (including ChromeOS) as the shadow assets can 145 // Use a smaller shadow on Linux (including ChromeOS) as the shadow assets can
142 // overlap each other in a fullscreen notification bubble. 146 // overlap each other in a fullscreen notification bubble.
143 // See http://crbug.com/462983. 147 // See http://crbug.com/462983.
144 shadow_type = views::BubbleBorder::SMALL_SHADOW; 148 shadow_type = views::BubbleBorder::SMALL_SHADOW;
145 #endif 149 #endif
146 if (ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) 150 if (ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled())
147 shadow_type = views::BubbleBorder::NO_ASSETS; 151 shadow_type = views::BubbleBorder::NO_ASSETS;
(...skipping 17 matching lines...) Expand all
165 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 169 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
166 const gfx::FontList& medium_font_list = 170 const gfx::FontList& medium_font_list =
167 rb.GetFontList(ui::ResourceBundle::MediumFont); 171 rb.GetFontList(ui::ResourceBundle::MediumFont);
168 172
169 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { 173 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) {
170 message_label_ = new views::Label(base::string16(), medium_font_list); 174 message_label_ = new views::Label(base::string16(), medium_font_list);
171 message_label_->SetEnabledColor(foreground_color); 175 message_label_->SetEnabledColor(foreground_color);
172 message_label_->SetBackgroundColor(background_color); 176 message_label_->SetBackgroundColor(background_color);
173 } 177 }
174 178
175 mouse_lock_exit_instruction_ = 179 exit_instruction_ =
176 new views::Label(bubble_->GetInstructionText(), medium_font_list); 180 new views::Label(bubble_->GetInstructionText(), medium_font_list);
177 mouse_lock_exit_instruction_->set_collapse_when_hidden(true); 181 exit_instruction_->set_collapse_when_hidden(true);
178 182
179 mouse_lock_exit_instruction_->SetEnabledColor(foreground_color); 183 exit_instruction_->SetEnabledColor(foreground_color);
180 mouse_lock_exit_instruction_->SetBackgroundColor(background_color); 184 exit_instruction_->SetBackgroundColor(background_color);
181 185
182 link_ = new views::Link(); 186 link_ = new views::Link();
183 link_->set_collapse_when_hidden(true); 187 link_->set_collapse_when_hidden(true);
184 link_->SetFocusable(false); 188 link_->SetFocusable(false);
185 #if defined(OS_CHROMEOS) 189 #if defined(OS_CHROMEOS)
186 // On CrOS, the link text doesn't change, since it doesn't show the shortcut. 190 // On CrOS, the link text doesn't change, since it doesn't show the shortcut.
187 link_->SetText(l10n_util::GetStringUTF16(IDS_EXIT_FULLSCREEN_MODE)); 191 link_->SetText(l10n_util::GetStringUTF16(IDS_EXIT_FULLSCREEN_MODE));
188 #endif 192 #endif
189 link_->set_listener(this); 193 link_->set_listener(this);
190 link_->SetFontList(medium_font_list); 194 link_->SetFontList(medium_font_list);
(...skipping 19 matching lines...) Expand all
210 views::GridLayout::USE_PREF, 0, 0); 214 views::GridLayout::USE_PREF, 0, 0);
211 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, 215 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0,
212 views::GridLayout::USE_PREF, 0, 0); 216 views::GridLayout::USE_PREF, 0, 0);
213 217
214 layout->StartRow(0, 0); 218 layout->StartRow(0, 0);
215 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { 219 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) {
216 DCHECK(message_label_); 220 DCHECK(message_label_);
217 layout->AddView(message_label_); 221 layout->AddView(message_label_);
218 } 222 }
219 layout->AddView(button_view_); 223 layout->AddView(button_view_);
220 layout->AddView(mouse_lock_exit_instruction_); 224 layout->AddView(exit_instruction_);
221 layout->AddView(link_); 225 layout->AddView(link_);
222 226
223 gfx::Insets padding(kPaddingPx, kPaddingPx, kPaddingPx, kPaddingPx); 227 gfx::Insets padding(kPaddingPx, kPaddingPx, kPaddingPx, kPaddingPx);
224 padding += GetInsets(); 228 padding += GetInsets();
225 layout->SetInsets(padding); 229 layout->SetInsets(padding);
226 SetLayoutManager(layout); 230 SetLayoutManager(layout);
227 231
228 UpdateContent(url, bubble_type); 232 UpdateContent(url, bubble_type);
229 } 233 }
230 234
(...skipping 20 matching lines...) Expand all
251 ExclusiveAccessBubbleType bubble_type) { 255 ExclusiveAccessBubbleType bubble_type) {
252 DCHECK_NE(EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE, bubble_type); 256 DCHECK_NE(EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE, bubble_type);
253 257
254 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { 258 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) {
255 DCHECK(message_label_); 259 DCHECK(message_label_);
256 message_label_->SetText(bubble_->GetCurrentMessageText()); 260 message_label_->SetText(bubble_->GetCurrentMessageText());
257 } 261 }
258 262
259 if (exclusive_access_bubble::ShowButtonsForType(bubble_type)) { 263 if (exclusive_access_bubble::ShowButtonsForType(bubble_type)) {
260 link_->SetVisible(false); 264 link_->SetVisible(false);
261 mouse_lock_exit_instruction_->SetVisible(false); 265 exit_instruction_->SetVisible(false);
262 button_view_->SetVisible(true); 266 button_view_->SetVisible(true);
263 button_view_->deny_button()->SetText(bubble_->GetCurrentDenyButtonText()); 267 button_view_->deny_button()->SetText(bubble_->GetCurrentDenyButtonText());
264 button_view_->deny_button()->SetMinSize(gfx::Size()); 268 button_view_->deny_button()->SetMinSize(gfx::Size());
265 button_view_->accept_button()->SetText( 269 button_view_->accept_button()->SetText(
266 bubble_->GetCurrentAllowButtonText()); 270 bubble_->GetCurrentAllowButtonText());
267 button_view_->accept_button()->SetMinSize(gfx::Size()); 271 button_view_->accept_button()->SetMinSize(gfx::Size());
268 } else { 272 } else {
269 bool link_visible = 273 bool link_visible =
270 !ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled(); 274 !ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled();
271 base::string16 accelerator; 275 base::string16 accelerator;
(...skipping 10 matching lines...) Expand all
282 } 286 }
283 #if !defined(OS_CHROMEOS) 287 #if !defined(OS_CHROMEOS)
284 if (link_visible) { 288 if (link_visible) {
285 link_->SetText(l10n_util::GetStringUTF16(IDS_EXIT_FULLSCREEN_MODE) + 289 link_->SetText(l10n_util::GetStringUTF16(IDS_EXIT_FULLSCREEN_MODE) +
286 base::UTF8ToUTF16(" ") + 290 base::UTF8ToUTF16(" ") +
287 l10n_util::GetStringFUTF16( 291 l10n_util::GetStringFUTF16(
288 IDS_EXIT_FULLSCREEN_MODE_ACCELERATOR, accelerator)); 292 IDS_EXIT_FULLSCREEN_MODE_ACCELERATOR, accelerator));
289 } 293 }
290 #endif 294 #endif
291 link_->SetVisible(link_visible); 295 link_->SetVisible(link_visible);
292 mouse_lock_exit_instruction_->SetVisible(!link_visible); 296 exit_instruction_->SetVisible(!link_visible);
293 button_view_->SetVisible(false); 297 button_view_->SetVisible(false);
294 } 298 }
295 } 299 }
296 300
297 // ExclusiveAccessBubbleViews -------------------------------------------------- 301 // ExclusiveAccessBubbleViews --------------------------------------------------
298 302
299 ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews( 303 ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews(
300 ExclusiveAccessBubbleViewsContext* context, 304 ExclusiveAccessBubbleViewsContext* context,
301 const GURL& url, 305 const GURL& url,
302 ExclusiveAccessBubbleType bubble_type) 306 ExclusiveAccessBubbleType bubble_type)
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 const content::NotificationDetails& details) { 575 const content::NotificationDetails& details) {
572 DCHECK_EQ(chrome::NOTIFICATION_FULLSCREEN_CHANGED, type); 576 DCHECK_EQ(chrome::NOTIFICATION_FULLSCREEN_CHANGED, type);
573 UpdateForImmersiveState(); 577 UpdateForImmersiveState();
574 } 578 }
575 579
576 void ExclusiveAccessBubbleViews::OnWidgetVisibilityChanged( 580 void ExclusiveAccessBubbleViews::OnWidgetVisibilityChanged(
577 views::Widget* widget, 581 views::Widget* widget,
578 bool visible) { 582 bool visible) {
579 UpdateMouseWatcher(); 583 UpdateMouseWatcher();
580 } 584 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698