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

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

Issue 6881107: Rework the way Widget::Init works: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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
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/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
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
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
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 &params); 211 &params);
208 } 212 }
209 #endif 213 #endif
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/bubble/bubble.h ('k') | chrome/browser/ui/views/constrained_html_delegate_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698