| OLD | NEW |
| 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/ui/views/bubble/bubble.h" | 5 #include "chrome/browser/ui/views/bubble/bubble.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "chrome/browser/ui/views/bubble/border_contents.h" | 9 #include "chrome/browser/ui/views/bubble/border_contents.h" |
| 10 #include "content/common/notification_service.h" | 10 #include "content/common/notification_service.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 | 62 |
| 63 #if defined(OS_CHROMEOS) | 63 #if defined(OS_CHROMEOS) |
| 64 // static | 64 // static |
| 65 Bubble* Bubble::ShowFocusless( | 65 Bubble* Bubble::ShowFocusless( |
| 66 views::Widget* parent, | 66 views::Widget* parent, |
| 67 const gfx::Rect& position_relative_to, | 67 const gfx::Rect& position_relative_to, |
| 68 BubbleBorder::ArrowLocation arrow_location, | 68 BubbleBorder::ArrowLocation arrow_location, |
| 69 views::View* contents, | 69 views::View* contents, |
| 70 BubbleDelegate* delegate, | 70 BubbleDelegate* delegate, |
| 71 bool show_while_screen_is_locked) { | 71 bool show_while_screen_is_locked) { |
| 72 Bubble* bubble = new Bubble(views::WidgetGtk::TYPE_POPUP, | 72 Bubble* bubble = new Bubble(views::Widget::CreateParams::TYPE_POPUP, |
| 73 show_while_screen_is_locked); | 73 show_while_screen_is_locked); |
| 74 bubble->InitBubble(parent, position_relative_to, arrow_location, | 74 bubble->InitBubble(parent, position_relative_to, arrow_location, |
| 75 contents, delegate); | 75 contents, delegate); |
| 76 return bubble; | 76 return bubble; |
| 77 } | 77 } |
| 78 #endif | 78 #endif |
| 79 | 79 |
| 80 void Bubble::Close() { | 80 void Bubble::Close() { |
| 81 if (show_status_ != kOpen) | 81 if (show_status_ != kOpen) |
| 82 return; | 82 return; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 border_->SetOpacity(opacity); | 115 border_->SetOpacity(opacity); |
| 116 border_->border_contents()->SchedulePaint(); | 116 border_->border_contents()->SchedulePaint(); |
| 117 #else | 117 #else |
| 118 NOTIMPLEMENTED(); | 118 NOTIMPLEMENTED(); |
| 119 #endif | 119 #endif |
| 120 } | 120 } |
| 121 | 121 |
| 122 Bubble::Bubble() | 122 Bubble::Bubble() |
| 123 : | 123 : |
| 124 #if defined(OS_LINUX) | 124 #if defined(OS_LINUX) |
| 125 WidgetGtk(TYPE_WINDOW), | |
| 126 border_contents_(NULL), | 125 border_contents_(NULL), |
| 127 #elif defined(OS_WIN) | 126 #elif defined(OS_WIN) |
| 128 border_(NULL), | 127 border_(NULL), |
| 129 #endif | 128 #endif |
| 130 delegate_(NULL), | 129 delegate_(NULL), |
| 131 show_status_(kOpen), | 130 show_status_(kOpen), |
| 132 fade_away_on_close_(false), | 131 fade_away_on_close_(false), |
| 133 #if defined(OS_CHROMEOS) | 132 #if defined(OS_CHROMEOS) |
| 133 type_(views::Widget::CreateParams::TYPE_WINDOW), |
| 134 show_while_screen_is_locked_(false), | 134 show_while_screen_is_locked_(false), |
| 135 #endif | 135 #endif |
| 136 arrow_location_(BubbleBorder::NONE), | 136 arrow_location_(BubbleBorder::NONE), |
| 137 contents_(NULL) { | 137 contents_(NULL) { |
| 138 } | 138 } |
| 139 | 139 |
| 140 #if defined(OS_CHROMEOS) | 140 #if defined(OS_CHROMEOS) |
| 141 Bubble::Bubble(views::WidgetGtk::Type type, bool show_while_screen_is_locked) | 141 Bubble::Bubble(views::Widget::CreateParams::Type type, |
| 142 : WidgetGtk(type), | 142 bool show_while_screen_is_locked) |
| 143 border_contents_(NULL), | 143 : border_contents_(NULL), |
| 144 delegate_(NULL), | 144 delegate_(NULL), |
| 145 show_status_(kOpen), | 145 show_status_(kOpen), |
| 146 fade_away_on_close_(false), | 146 fade_away_on_close_(false), |
| 147 type_(type), |
| 147 show_while_screen_is_locked_(show_while_screen_is_locked), | 148 show_while_screen_is_locked_(show_while_screen_is_locked), |
| 148 arrow_location_(BubbleBorder::NONE), | 149 arrow_location_(BubbleBorder::NONE), |
| 149 contents_(NULL) { | 150 contents_(NULL) { |
| 150 } | 151 } |
| 151 #endif | 152 #endif |
| 152 | 153 |
| 153 Bubble::~Bubble() { | 154 Bubble::~Bubble() { |
| 154 } | 155 } |
| 155 | 156 |
| 156 void Bubble::InitBubble(views::Widget* parent, | 157 void Bubble::InitBubble(views::Widget* parent, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 178 set_window_ex_style(extended_style); | 179 set_window_ex_style(extended_style); |
| 179 | 180 |
| 180 DCHECK(!border_); | 181 DCHECK(!border_); |
| 181 border_ = new BorderWidgetWin(); | 182 border_ = new BorderWidgetWin(); |
| 182 | 183 |
| 183 if (fade_in) { | 184 if (fade_in) { |
| 184 border_->SetOpacity(0); | 185 border_->SetOpacity(0); |
| 185 SetOpacity(0); | 186 SetOpacity(0); |
| 186 } | 187 } |
| 187 | 188 |
| 188 border_->Init(CreateBorderContents(), parent->GetNativeView()); | 189 border_->InitBorderWidgetWin(CreateBorderContents(), parent->GetNativeView()); |
| 189 border_->border_contents()->SetBackgroundColor(kBackgroundColor); | 190 border_->border_contents()->SetBackgroundColor(kBackgroundColor); |
| 190 | 191 |
| 191 // We make the BorderWidgetWin the owner of the Bubble HWND, so that the | 192 // We make the BorderWidgetWin the owner of the Bubble HWND, so that the |
| 192 // latter is displayed on top of the former. | 193 // latter is displayed on top of the former. |
| 193 WidgetWin::Init(border_->GetNativeView(), gfx::Rect()); | 194 views::Widget::CreateParams params(views::Widget::CreateParams::TYPE_POPUP); |
| 195 params.parent = border_->GetNativeView(); |
| 196 GetWidget()->Init(params); |
| 194 | 197 |
| 195 SetWindowText(GetNativeView(), delegate_->accessible_name().c_str()); | 198 SetWindowText(GetNativeView(), delegate_->accessible_name().c_str()); |
| 196 #elif defined(OS_LINUX) | 199 #elif defined(OS_LINUX) |
| 197 MakeTransparent(); | 200 views::Widget::CreateParams params(type_); |
| 198 make_transient_to_parent(); | 201 params.transparent = true; |
| 199 WidgetGtk::InitWithWidget(parent, gfx::Rect()); | 202 params.parent_widget = parent; |
| 203 GetWidget()->Init(params); |
| 200 #if defined(OS_CHROMEOS) | 204 #if defined(OS_CHROMEOS) |
| 201 { | 205 { |
| 202 vector<int> params; | 206 vector<int> params; |
| 203 params.push_back(show_while_screen_is_locked_ ? 1 : 0); | 207 params.push_back(show_while_screen_is_locked_ ? 1 : 0); |
| 204 chromeos::WmIpc::instance()->SetWindowType( | 208 chromeos::WmIpc::instance()->SetWindowType( |
| 205 GetNativeView(), | 209 GetNativeView(), |
| 206 chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE, | 210 chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE, |
| 207 ¶ms); | 211 ¶ms); |
| 208 } | 212 } |
| 209 #endif | 213 #endif |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 animation_->Hide(); | 370 animation_->Hide(); |
| 367 } | 371 } |
| 368 | 372 |
| 369 bool Bubble::AcceleratorPressed(const views::Accelerator& accelerator) { | 373 bool Bubble::AcceleratorPressed(const views::Accelerator& accelerator) { |
| 370 if (!delegate_ || delegate_->CloseOnEscape()) { | 374 if (!delegate_ || delegate_->CloseOnEscape()) { |
| 371 DoClose(true); | 375 DoClose(true); |
| 372 return true; | 376 return true; |
| 373 } | 377 } |
| 374 return false; | 378 return false; |
| 375 } | 379 } |
| OLD | NEW |