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

Unified Diff: ui/app_list/views/app_list_view.cc

Issue 770813004: Make app list search box into a Widget. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@matt_remove_dummy_search_box
Patch Set: Created 6 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/app_list/views/app_list_view.h ('k') | ui/app_list/views/app_list_view_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/app_list/views/app_list_view.cc
diff --git a/ui/app_list/views/app_list_view.cc b/ui/app_list/views/app_list_view.cc
index c10c3d2d0e45062925aa26014362060028746ddb..f066057c32c940906de9034381f12377b6ab6a71 100644
--- a/ui/app_list/views/app_list_view.cc
+++ b/ui/app_list/views/app_list_view.cc
@@ -157,8 +157,9 @@ class HideViewAnimationObserver : public ui::ImplicitAnimationObserver {
AppListView::AppListView(AppListViewDelegate* delegate)
: delegate_(delegate),
app_list_main_view_(NULL),
- search_box_view_(NULL),
speech_view_(NULL),
Matt Giuca 2014/12/02 07:55:14 nullptr all these.
calamity 2014/12/03 03:31:26 Done.
+ search_box_widget_(NULL),
+ search_box_view_(NULL),
experimental_banner_view_(NULL),
overlay_view_(NULL),
animation_observer_(new HideViewAnimationObserver()) {
@@ -219,6 +220,8 @@ void AppListView::InitAsFramelessWindow(gfx::NativeView parent,
// View::AddChildView() which is called at Widget::SetContentsView() to build
// the views hierarchy in the widget.
set_background(new AppListBackground(0, app_list_main_view_));
+
+ InitChildWidgets();
}
void AppListView::SetBubbleArrow(views::BubbleBorder::Arrow arrow) {
@@ -355,11 +358,12 @@ void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) {
app_list_main_view_->SetFillsBoundsOpaquely(false);
app_list_main_view_->layer()->SetMasksToBounds(true);
+ // This will be added to the |search_box_widget_| after the app list widget is
+ // initialized.
search_box_view_ = new SearchBoxView(app_list_main_view_, delegate_);
search_box_view_->SetPaintToLayer(true);
search_box_view_->SetFillsBoundsOpaquely(false);
search_box_view_->layer()->SetMasksToBounds(true);
- AddChildView(search_box_view_);
app_list_main_view_->Init(parent, initial_apps_page, search_box_view_);
@@ -388,6 +392,28 @@ void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) {
OnProfilesChanged();
}
+void AppListView::InitChildWidgets() {
+ DCHECK(search_box_view_);
+
+ app_list_main_view_->InitWidgets();
+
+ // Create the search box widget.
+ views::Widget::InitParams search_box_widget_params(
+ views::Widget::InitParams::TYPE_CONTROL);
+ search_box_widget_params.parent = GetWidget()->GetNativeView();
+ search_box_widget_params.opacity =
+ views::Widget::InitParams::TRANSLUCENT_WINDOW;
+
+ // Create a widget for the SearchBoxView to live in. This widget allows the
+ // SearchBoxView to receive events before the custom launcher page's
Matt Giuca 2014/12/02 07:55:14 I don't really think of it as "before / after", ra
calamity 2014/12/03 03:31:26 Done.
+ // WebContents.
+ search_box_widget_ = new views::Widget;
+ search_box_widget_->Init(search_box_widget_params);
+ search_box_widget_->SetContentsView(search_box_view_);
+
+ Layout();
+}
+
void AppListView::InitAsBubbleInternal(gfx::NativeView parent,
int initial_apps_page,
views::BubbleBorder::Arrow arrow,
@@ -425,7 +451,7 @@ void AppListView::InitAsBubbleInternal(gfx::NativeView parent,
SetBubbleArrow(arrow);
// We can now create the internal widgets.
- app_list_main_view_->InitWidgets();
+ InitChildWidgets();
#if defined(USE_AURA)
// TODO(vadimt): Remove ScopedTracker below once crbug.com/431326 is fixed.
@@ -576,7 +602,10 @@ void AppListView::Layout() {
// in STATE_START.
gfx::RectF search_box_bounds = contents_view->GetDefaultSearchBoxBounds();
ConvertRectToTarget(contents_view, this, &search_box_bounds);
- search_box_view_->SetBoundsRect(gfx::ToNearestRect(search_box_bounds));
+ if (search_box_widget_) {
Matt Giuca 2014/12/02 07:55:14 Just checking: Can this be a DCHECK or are there s
calamity 2014/12/03 03:31:26 It's null on initial layout unfortunately. This is
+ search_box_widget_->SetBounds(
+ ConvertRectToWidget(gfx::ToNearestRect(search_box_bounds)));
+ }
if (speech_view_) {
gfx::Rect speech_bounds = centered_bounds;
« no previous file with comments | « ui/app_list/views/app_list_view.h ('k') | ui/app_list/views/app_list_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698