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

Side by Side Diff: chrome/browser/chromeos/setting_level_bubble.cc

Issue 7572016: System bubbles work with webui login display (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ups fix Created 9 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 | Annotate | Revision Log
« 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/chromeos/setting_level_bubble.h" 5 #include "chrome/browser/chromeos/setting_level_bubble.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 8
9 #include "base/timer.h" 9 #include "base/timer.h"
10 #include "chrome/browser/chromeos/login/background_view.h" 10 #include "chrome/browser/chromeos/login/background_view.h"
11 #include "chrome/browser/chromeos/login/login_utils.h" 11 #include "chrome/browser/chromeos/login/login_utils.h"
12 #include "chrome/browser/chromeos/login/webui_login_display.h"
12 #include "chrome/browser/chromeos/setting_level_bubble_view.h" 13 #include "chrome/browser/chromeos/setting_level_bubble_view.h"
13 #include "chrome/browser/profiles/profile_manager.h" 14 #include "chrome/browser/profiles/profile_manager.h"
14 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/browser_list.h" 16 #include "chrome/browser/ui/browser_list.h"
16 #include "chrome/browser/ui/browser_window.h" 17 #include "chrome/browser/ui/browser_window.h"
17 #include "chrome/browser/ui/views/bubble/bubble.h" 18 #include "chrome/browser/ui/views/bubble/bubble.h"
18 #include "ui/gfx/screen.h" 19 #include "ui/gfx/screen.h"
19 #include "views/widget/root_view.h" 20 #include "views/widget/root_view.h"
20 21
21 namespace { 22 namespace {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 true); // match_incognito 59 true); // match_incognito
59 if (browser) { 60 if (browser) {
60 window = GTK_WINDOW(browser->window()->GetNativeHandle()); 61 window = GTK_WINDOW(browser->window()->GetNativeHandle());
61 } else { 62 } else {
62 // Otherwise, see if there's a background window that we can use. 63 // Otherwise, see if there's a background window that we can use.
63 BackgroundView* background = LoginUtils::Get()->GetBackgroundView(); 64 BackgroundView* background = LoginUtils::Get()->GetBackgroundView();
64 if (background) 65 if (background)
65 window = GTK_WINDOW(background->GetNativeWindow()); 66 window = GTK_WINDOW(background->GetNativeWindow());
66 } 67 }
67 68
68 if (!window) 69 if (window)
69 return NULL; 70 return views::Widget::GetWidgetForNativeWindow(window);
70 71 else
71 return views::Widget::GetWidgetForNativeWindow(window); 72 return WebUILoginDisplay::GetLoginWindow();
72 } 73 }
73 74
74 SettingLevelBubble::SettingLevelBubble(SkBitmap* increase_icon, 75 SettingLevelBubble::SettingLevelBubble(SkBitmap* increase_icon,
75 SkBitmap* decrease_icon, 76 SkBitmap* decrease_icon,
76 SkBitmap* zero_icon) 77 SkBitmap* zero_icon)
77 : previous_percent_(-1), 78 : previous_percent_(-1),
78 current_percent_(-1), 79 current_percent_(-1),
79 increase_icon_(increase_icon), 80 increase_icon_(increase_icon),
80 decrease_icon_(decrease_icon), 81 decrease_icon_(decrease_icon),
81 zero_icon_(zero_icon), 82 zero_icon_(zero_icon),
(...skipping 13 matching lines...) Expand all
95 current_percent_ = percent; 96 current_percent_ = percent;
96 97
97 SkBitmap* icon = increase_icon_; 98 SkBitmap* icon = increase_icon_;
98 if (current_percent_ == 0) 99 if (current_percent_ == 0)
99 icon = zero_icon_; 100 icon = zero_icon_;
100 else if (current_percent_ < previous_percent_) 101 else if (current_percent_ < previous_percent_)
101 icon = decrease_icon_; 102 icon = decrease_icon_;
102 103
103 if (!bubble_) { 104 if (!bubble_) {
104 views::Widget* parent_widget = GetToplevelWidget(); 105 views::Widget* parent_widget = GetToplevelWidget();
105 if (parent_widget == NULL) 106 if (parent_widget == NULL) {
107 LOG(WARNING) << "Unable to locate parent widget to display a bubble";
106 return; 108 return;
109 }
107 DCHECK(view_ == NULL); 110 DCHECK(view_ == NULL);
108 view_ = new SettingLevelBubbleView; 111 view_ = new SettingLevelBubbleView;
109 view_->Init(icon, previous_percent_); 112 view_->Init(icon, previous_percent_);
110 113
111 // Calculate the position in screen coordinates that the bubble should 114 // Calculate the position in screen coordinates that the bubble should
112 // "point" at (since we use BubbleBorder::FLOAT, this position actually 115 // "point" at (since we use BubbleBorder::FLOAT, this position actually
113 // specifies the center of the bubble). 116 // specifies the center of the bubble).
114 const gfx::Rect monitor_area = 117 const gfx::Rect monitor_area =
115 gfx::Screen::GetMonitorAreaNearestWindow( 118 gfx::Screen::GetMonitorAreaNearestWindow(
116 GTK_WIDGET(parent_widget->GetNativeWindow())); 119 GTK_WIDGET(parent_widget->GetNativeWindow()));
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 void SettingLevelBubble::AnimationProgressed(const ui::Animation* animation) { 192 void SettingLevelBubble::AnimationProgressed(const ui::Animation* animation) {
190 if (view_) { 193 if (view_) {
191 view_->Update( 194 view_->Update(
192 ui::Tween::ValueBetween(animation->GetCurrentValue(), 195 ui::Tween::ValueBetween(animation->GetCurrentValue(),
193 previous_percent_, 196 previous_percent_,
194 current_percent_)); 197 current_percent_));
195 } 198 }
196 } 199 }
197 200
198 } // namespace chromeos 201 } // namespace chromeos
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