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

Unified Diff: ui/app_list/app_list_view.cc

Issue 10388032: Move app list from ash to ui. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: fix win_aura bot and comments in #5 Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/app_list/app_list_view.h ('k') | ui/app_list/app_list_view_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/app_list/app_list_view.cc
===================================================================
--- ui/app_list/app_list_view.cc (revision 0)
+++ ui/app_list/app_list_view.cc (working copy)
@@ -2,21 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/app_list/app_list_view.h"
+#include "ui/app_list/app_list_view.h"
-#include "ash/app_list/app_list.h"
-#include "ash/app_list/app_list_bubble_border.h"
-#include "ash/app_list/app_list_item_view.h"
-#include "ash/app_list/app_list_model.h"
-#include "ash/app_list/app_list_model_view.h"
-#include "ash/app_list/app_list_view_delegate.h"
-#include "ash/app_list/page_switcher.h"
-#include "ash/app_list/pagination_model.h"
-#include "ash/launcher/launcher.h"
-#include "ash/screen_ash.h"
-#include "ash/shell.h"
-#include "ash/shell_window_ids.h"
-#include "ash/wm/shelf_layout_manager.h"
+#include <string>
+
+#include "ui/app_list/app_list_bubble_border.h"
+#include "ui/app_list/app_list_item_view.h"
+#include "ui/app_list/app_list_model.h"
+#include "ui/app_list/app_list_model_view.h"
+#include "ui/app_list/app_list_view_delegate.h"
+#include "ui/app_list/page_switcher.h"
+#include "ui/app_list/pagination_model.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/scoped_layer_animation_settings.h"
#include "ui/gfx/screen.h"
@@ -26,7 +22,7 @@
#include "ui/views/layout/box_layout.h"
#include "ui/views/widget/widget.h"
-namespace ash {
+namespace app_list {
namespace {
@@ -47,13 +43,6 @@
return ui::GetScaleTransform(center, kModelViewAnimationScaleFactor);
}
-// Bounds returned is used for full screen mode. Use full monitor rect so that
-// the app list shade goes behind the launcher.
-gfx::Rect GetFullScreenBounds() {
- gfx::Point cursor = gfx::Screen::GetCursorScreenPoint();
- return gfx::Screen::GetMonitorNearestPoint(cursor).bounds();
-}
-
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -65,10 +54,6 @@
bubble_style_(false),
bubble_border_(NULL),
model_view_(NULL) {
- if (internal::AppList::UseAppListV2())
- InitAsBubble();
- else
- InitAsFullscreenWidget();
}
AppListView::~AppListView() {
@@ -77,46 +62,13 @@
model_view_->SetModel(NULL);
}
-void AppListView::AnimateShow(int duration_ms) {
- if (bubble_style_)
- return;
-
- ui::Layer* layer = model_view_->layer();
- ui::ScopedLayerAnimationSettings animation(layer->GetAnimator());
- animation.SetTransitionDuration(
- base::TimeDelta::FromMilliseconds(duration_ms));
- animation.SetTweenType(ui::Tween::EASE_OUT);
- model_view_->SetTransform(ui::Transform());
-}
-
-void AppListView::AnimateHide(int duration_ms) {
- if (bubble_style_)
- return;
-
- ui::Layer* layer = model_view_->layer();
- ui::ScopedLayerAnimationSettings animation(layer->GetAnimator());
- animation.SetTransitionDuration(
- base::TimeDelta::FromMilliseconds(duration_ms));
- animation.SetTweenType(ui::Tween::EASE_IN);
- model_view_->SetTransform(GetScaleTransform(model_view_));
-}
-
-void AppListView::Close() {
- if (GetWidget()->IsVisible())
- Shell::GetInstance()->ToggleAppList();
-}
-
-void AppListView::UpdateBounds() {
- if (bubble_style_)
- SizeToContents();
- else
- GetWidget()->SetBounds(GetFullScreenBounds());
-}
-
-void AppListView::InitAsFullscreenWidget() {
+void AppListView::InitAsFullscreenWidget(gfx::NativeView parent,
+ const gfx::Rect& screen_bounds,
+ const gfx::Rect& work_area) {
bubble_style_ = false;
set_background(views::Background::CreateSolidBackground(
kWidgetBackgroundColor));
+ work_area_ = work_area;
model_view_ = new AppListModelView(this, pagination_model_.get());
model_view_->SetPaintToLayer(true);
@@ -127,15 +79,13 @@
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
widget_params.delegate = this;
widget_params.transparent = true;
- widget_params.parent = Shell::GetInstance()->GetContainer(
- internal::kShellWindowId_AppListContainer);
+ widget_params.parent = parent;
views::Widget* widget = new views::Widget;
widget->Init(widget_params);
widget->SetContentsView(this);
+ widget->SetBounds(screen_bounds);
- widget->SetBounds(GetFullScreenBounds());
-
// Turns off default animation.
widget->SetVisibilityChangedAnimationsEnabled(false);
@@ -144,7 +94,7 @@
UpdateModel();
}
-void AppListView::InitAsBubble() {
+void AppListView::InitAsBubble(gfx::NativeView parent, views::View* anchor) {
bubble_style_ = true;
set_background(NULL);
@@ -160,9 +110,8 @@
PageSwitcher* page_switcher = new PageSwitcher(pagination_model_.get());
AddChildView(page_switcher);
- set_anchor_view(Shell::GetInstance()->launcher()->GetAppListButtonView());
- set_parent_window(Shell::GetInstance()->GetContainer(
- internal::kShellWindowId_AppListContainer));
+ set_anchor_view(anchor);
+ set_parent_window(parent);
set_close_on_deactivate(false);
views::BubbleDelegateView::CreateBubble(this);
@@ -177,6 +126,47 @@
UpdateModel();
}
+void AppListView::AnimateShow(int duration_ms) {
+ if (bubble_style_)
+ return;
+
+ ui::Layer* layer = model_view_->layer();
+ ui::ScopedLayerAnimationSettings animation(layer->GetAnimator());
+ animation.SetTransitionDuration(
+ base::TimeDelta::FromMilliseconds(duration_ms));
+ animation.SetTweenType(ui::Tween::EASE_OUT);
+ model_view_->SetTransform(ui::Transform());
+}
+
+void AppListView::AnimateHide(int duration_ms) {
+ if (bubble_style_)
+ return;
+
+ ui::Layer* layer = model_view_->layer();
+ ui::ScopedLayerAnimationSettings animation(layer->GetAnimator());
+ animation.SetTransitionDuration(
+ base::TimeDelta::FromMilliseconds(duration_ms));
+ animation.SetTweenType(ui::Tween::EASE_IN);
+ model_view_->SetTransform(GetScaleTransform(model_view_));
+}
+
+void AppListView::Close() {
+ if (delegate_.get())
+ delegate_->Close();
+ else
+ GetWidget()->Close();
+}
+
+void AppListView::UpdateBounds(const gfx::Rect& screen_bounds,
+ const gfx::Rect& work_area) {
+ if (bubble_style_) {
+ SizeToContents();
+ } else {
+ work_area_ = work_area;
+ GetWidget()->SetBounds(screen_bounds);
+ }
+}
+
void AppListView::UpdateModel() {
if (delegate_.get()) {
scoped_ptr<AppListModel> new_model(new AppListModel);
@@ -200,10 +190,7 @@
views::View::Layout();
} else {
// Gets work area rect, which is in screen coordinates.
- gfx::Rect workarea = Shell::GetInstance()->shelf()->IsVisible() ?
- ScreenAsh::GetUnmaximizedWorkAreaBounds(GetWidget()->GetNativeView()) :
- gfx::Screen::GetMonitorNearestWindow(
- GetWidget()->GetNativeView()).work_area();
+ gfx::Rect workarea(work_area_);
// Converts |workarea| into view's coordinates.
gfx::Point origin(workarea.origin());
@@ -285,4 +272,4 @@
return bubble_rect;
}
-} // namespace ash
+} // namespace app_list
« no previous file with comments | « ui/app_list/app_list_view.h ('k') | ui/app_list/app_list_view_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698