| Index: ui/app_list/app_list_item_view.cc | 
| diff --git a/ui/app_list/app_list_item_view.cc b/ui/app_list/app_list_item_view.cc | 
| deleted file mode 100644 | 
| index 1a9fb78ee3d017df62094a4423160768a97f5595..0000000000000000000000000000000000000000 | 
| --- a/ui/app_list/app_list_item_view.cc | 
| +++ /dev/null | 
| @@ -1,344 +0,0 @@ | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#include "ui/app_list/app_list_item_view.h" | 
| - | 
| -#include <algorithm> | 
| - | 
| -#include "base/utf_string_conversions.h" | 
| -#include "ui/app_list/app_list_item_model.h" | 
| -#include "ui/app_list/apps_grid_view.h" | 
| -#include "ui/base/accessibility/accessible_view_state.h" | 
| -#include "ui/base/animation/throb_animation.h" | 
| -#include "ui/base/resource/resource_bundle.h" | 
| -#include "ui/compositor/layer.h" | 
| -#include "ui/compositor/scoped_layer_animation_settings.h" | 
| -#include "ui/gfx/canvas.h" | 
| -#include "ui/gfx/font.h" | 
| -#include "ui/gfx/image/image_skia_operations.h" | 
| -#include "ui/gfx/transform_util.h" | 
| -#include "ui/views/controls/image_view.h" | 
| -#include "ui/views/controls/label.h" | 
| -#include "ui/views/controls/menu/menu_item_view.h" | 
| -#include "ui/views/controls/menu/menu_model_adapter.h" | 
| -#include "ui/views/controls/menu/menu_runner.h" | 
| - | 
| -namespace app_list { | 
| - | 
| -namespace { | 
| - | 
| -const int kTopBottomPadding = 10; | 
| -const int kTopPadding = 20; | 
| -const int kIconTitleSpacing = 7; | 
| - | 
| -const SkColor kTitleColor = SkColorSetRGB(0x5A, 0x5A, 0x5A); | 
| -const SkColor kTitleHoverColor = SkColorSetRGB(0x3C, 0x3C, 0x3C); | 
| - | 
| -const SkColor kHoverAndPushedColor = SkColorSetARGB(0x19, 0, 0, 0); | 
| -const SkColor kSelectedColor = SkColorSetARGB(0x0D, 0, 0, 0); | 
| -const SkColor kHighlightedColor = kHoverAndPushedColor; | 
| - | 
| -const int kLeftRightPaddingChars = 1; | 
| - | 
| -// Scale to transform the icon when a drag starts. | 
| -const float kDraggingIconScale = 1.5f; | 
| - | 
| -// Delay in milliseconds of when the dragging UI should be shown for mouse drag. | 
| -const int kMouseDragUIDelayInMs = 100; | 
| - | 
| -}  // namespace | 
| - | 
| -// static | 
| -const char AppListItemView::kViewClassName[] = "ui/app_list/AppListItemView"; | 
| - | 
| -AppListItemView::AppListItemView(AppsGridView* apps_grid_view, | 
| -                                 AppListItemModel* model) | 
| -    : CustomButton(apps_grid_view), | 
| -      model_(model), | 
| -      apps_grid_view_(apps_grid_view), | 
| -      icon_(new views::ImageView), | 
| -      title_(new views::Label), | 
| -      ui_state_(UI_STATE_NORMAL), | 
| -      touch_dragging_(false) { | 
| -  icon_->set_interactive(false); | 
| - | 
| -  ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 
| -  title_->SetBackgroundColor(0); | 
| -  title_->SetAutoColorReadabilityEnabled(false); | 
| -  title_->SetEnabledColor(kTitleColor); | 
| -  title_->SetFont(rb.GetFont(ui::ResourceBundle::SmallBoldFont)); | 
| -  title_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 
| - | 
| -  const gfx::ShadowValue kIconShadows[] = { | 
| -    gfx::ShadowValue(gfx::Point(0, 2), 2, SkColorSetARGB(0x24, 0, 0, 0)), | 
| -  }; | 
| -  icon_shadows_.assign(kIconShadows, kIconShadows + arraysize(kIconShadows)); | 
| - | 
| -  AddChildView(icon_); | 
| -  AddChildView(title_); | 
| - | 
| -  ItemIconChanged(); | 
| -  ItemTitleChanged(); | 
| -  model_->AddObserver(this); | 
| - | 
| -  set_context_menu_controller(this); | 
| -  set_request_focus_on_press(false); | 
| -} | 
| - | 
| -AppListItemView::~AppListItemView() { | 
| -  model_->RemoveObserver(this); | 
| -} | 
| - | 
| -void AppListItemView::SetIconSize(const gfx::Size& size) { | 
| -  if (icon_size_ == size) | 
| -    return; | 
| - | 
| -  icon_size_ = size; | 
| -  UpdateIcon(); | 
| -} | 
| - | 
| -void AppListItemView::UpdateIcon() { | 
| -  // Skip if |icon_size_| has not been determined. | 
| -  if (icon_size_.IsEmpty()) | 
| -    return; | 
| - | 
| -  gfx::ImageSkia icon = model_->icon(); | 
| -  // Clear icon and bail out if model icon is empty. | 
| -  if (icon.isNull()) { | 
| -    icon_->SetImage(NULL); | 
| -    return; | 
| -  } | 
| - | 
| -  gfx::ImageSkia resized(gfx::ImageSkiaOperations::CreateResizedImage(icon, | 
| -      skia::ImageOperations::RESIZE_BEST, icon_size_)); | 
| -  gfx::ImageSkia shadow( | 
| -      gfx::ImageSkiaOperations::CreateImageWithDropShadow(resized, | 
| -                                                          icon_shadows_)); | 
| -  icon_->SetImage(shadow); | 
| -} | 
| - | 
| -void AppListItemView::SetUIState(UIState state) { | 
| -  if (ui_state_ == state) | 
| -    return; | 
| - | 
| -  ui_state_ = state; | 
| - | 
| -#if defined(USE_AURA) | 
| -  ui::ScopedLayerAnimationSettings settings(layer()->GetAnimator()); | 
| -  switch (ui_state_) { | 
| -    case UI_STATE_NORMAL: | 
| -      title_->SetVisible(true); | 
| -      layer()->SetTransform(gfx::Transform()); | 
| -      break; | 
| -    case UI_STATE_DRAGGING: | 
| -      title_->SetVisible(false); | 
| -      const gfx::Rect bounds(layer()->bounds().size()); | 
| -      layer()->SetTransform(gfx::GetScaleTransform( | 
| -          bounds.CenterPoint(), | 
| -          kDraggingIconScale)); | 
| -      break; | 
| -  } | 
| -#endif | 
| -} | 
| - | 
| -void AppListItemView::SetTouchDragging(bool touch_dragging) { | 
| -  if (touch_dragging_ == touch_dragging) | 
| -    return; | 
| - | 
| -  touch_dragging_ = touch_dragging; | 
| -  SetUIState(touch_dragging_ ? UI_STATE_DRAGGING : UI_STATE_NORMAL); | 
| -} | 
| - | 
| -void AppListItemView::OnMouseDragTimer() { | 
| -  DCHECK(apps_grid_view_->IsDraggedView(this)); | 
| -  SetUIState(UI_STATE_DRAGGING); | 
| -} | 
| - | 
| -void AppListItemView::ItemIconChanged() { | 
| -  UpdateIcon(); | 
| -} | 
| - | 
| -void AppListItemView::ItemTitleChanged() { | 
| -  title_->SetText(UTF8ToUTF16(model_->title())); | 
| -} | 
| - | 
| -void AppListItemView::ItemHighlightedChanged() { | 
| -  apps_grid_view_->EnsureViewVisible(this); | 
| -  SchedulePaint(); | 
| -} | 
| - | 
| -std::string AppListItemView::GetClassName() const { | 
| -  return kViewClassName; | 
| -} | 
| - | 
| -void AppListItemView::Layout() { | 
| -  gfx::Rect rect(GetContentsBounds()); | 
| - | 
| -  const int left_right_padding = kLeftRightPaddingChars * | 
| -      title_->font().GetAverageCharacterWidth(); | 
| -  rect.Inset(left_right_padding, kTopPadding, left_right_padding, 0); | 
| -  const int y = rect.y(); | 
| - | 
| -  gfx::Rect icon_bounds(rect.x(), y, rect.width(), icon_size_.height()); | 
| -  icon_bounds.Inset(gfx::ShadowValue::GetMargin(icon_shadows_)); | 
| -  icon_->SetBoundsRect(icon_bounds); | 
| - | 
| -  const gfx::Size title_size = title_->GetPreferredSize(); | 
| -  gfx::Rect title_bounds(rect.x() + (rect.width() - title_size.width()) / 2, | 
| -                         y + icon_size_.height() + kIconTitleSpacing, | 
| -                         title_size.width(), | 
| -                         title_size.height()); | 
| -  title_bounds.Intersect(rect); | 
| -  title_->SetBoundsRect(title_bounds); | 
| -} | 
| - | 
| -void AppListItemView::OnPaint(gfx::Canvas* canvas) { | 
| -  if (apps_grid_view_->IsDraggedView(this)) | 
| -    return; | 
| - | 
| -  gfx::Rect rect(GetContentsBounds()); | 
| - | 
| -  if (model_->highlighted()) { | 
| -    canvas->FillRect(rect, kHighlightedColor); | 
| -  } else if (hover_animation_->is_animating()) { | 
| -    int alpha = SkColorGetA(kHoverAndPushedColor) * | 
| -        hover_animation_->GetCurrentValue(); | 
| -    canvas->FillRect(rect, SkColorSetA(kHoverAndPushedColor, alpha)); | 
| -  } else if (state() == STATE_HOVERED || state() == STATE_PRESSED) { | 
| -    canvas->FillRect(rect, kHoverAndPushedColor); | 
| -  } else if (apps_grid_view_->IsSelectedView(this)) { | 
| -    canvas->FillRect(rect, kSelectedColor); | 
| -  } | 
| -} | 
| - | 
| -void AppListItemView::GetAccessibleState(ui::AccessibleViewState* state) { | 
| -  state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON; | 
| -  state->name = UTF8ToUTF16(model_->title()); | 
| -} | 
| - | 
| -void AppListItemView::ShowContextMenuForView(views::View* source, | 
| -                                             const gfx::Point& point) { | 
| -  ui::MenuModel* menu_model = model_->GetContextMenuModel(); | 
| -  if (!menu_model) | 
| -    return; | 
| - | 
| -  views::MenuModelAdapter menu_adapter(menu_model); | 
| -  context_menu_runner_.reset( | 
| -      new views::MenuRunner(new views::MenuItemView(&menu_adapter))); | 
| -  menu_adapter.BuildMenu(context_menu_runner_->GetMenu()); | 
| -  if (context_menu_runner_->RunMenuAt( | 
| -          GetWidget(), NULL, gfx::Rect(point, gfx::Size()), | 
| -          views::MenuItemView::TOPLEFT, views::MenuRunner::HAS_MNEMONICS) == | 
| -      views::MenuRunner::MENU_DELETED) | 
| -    return; | 
| -} | 
| - | 
| -void AppListItemView::StateChanged() { | 
| -  if (state() == STATE_HOVERED || state() == STATE_PRESSED) { | 
| -    apps_grid_view_->SetSelectedView(this); | 
| -    title_->SetEnabledColor(kTitleHoverColor); | 
| -  } else { | 
| -    apps_grid_view_->ClearSelectedView(this); | 
| -    model_->SetHighlighted(false); | 
| -    title_->SetEnabledColor(kTitleColor); | 
| -  } | 
| -} | 
| - | 
| -bool AppListItemView::ShouldEnterPushedState(const ui::Event& event) { | 
| -  // Don't enter pushed state for ET_GESTURE_TAP_DOWN so that hover gray | 
| -  // background does not show up during scroll. | 
| -  if (event.type() == ui::ET_GESTURE_TAP_DOWN) | 
| -    return false; | 
| - | 
| -  return views::CustomButton::ShouldEnterPushedState(event); | 
| -} | 
| - | 
| -bool AppListItemView::OnMousePressed(const ui::MouseEvent& event) { | 
| -  CustomButton::OnMousePressed(event); | 
| - | 
| -  if (!ShouldEnterPushedState(event)) | 
| -    return true; | 
| - | 
| -  apps_grid_view_->InitiateDrag(this, AppsGridView::MOUSE, event); | 
| - | 
| -  if (apps_grid_view_->IsDraggedView(this)) { | 
| -    mouse_drag_timer_.Start(FROM_HERE, | 
| -        base::TimeDelta::FromMilliseconds(kMouseDragUIDelayInMs), | 
| -        this, &AppListItemView::OnMouseDragTimer); | 
| -  } | 
| -  return true; | 
| -} | 
| - | 
| -void AppListItemView::OnMouseReleased(const ui::MouseEvent& event) { | 
| -  CustomButton::OnMouseReleased(event); | 
| -  apps_grid_view_->EndDrag(false); | 
| -  mouse_drag_timer_.Stop(); | 
| -  SetUIState(UI_STATE_NORMAL); | 
| -} | 
| - | 
| -void AppListItemView::OnMouseCaptureLost() { | 
| -  CustomButton::OnMouseCaptureLost(); | 
| -  apps_grid_view_->EndDrag(true); | 
| -  mouse_drag_timer_.Stop(); | 
| -  SetUIState(UI_STATE_NORMAL); | 
| -} | 
| - | 
| -bool AppListItemView::OnMouseDragged(const ui::MouseEvent& event) { | 
| -  CustomButton::OnMouseDragged(event); | 
| -  apps_grid_view_->UpdateDrag(this, AppsGridView::MOUSE, event); | 
| - | 
| -  // Shows dragging UI when it's confirmed without waiting for the timer. | 
| -  if (ui_state_ != UI_STATE_DRAGGING && | 
| -      apps_grid_view_->dragging() && | 
| -      apps_grid_view_->IsDraggedView(this)) { | 
| -    mouse_drag_timer_.Stop(); | 
| -    SetUIState(UI_STATE_DRAGGING); | 
| -  } | 
| -  return true; | 
| -} | 
| - | 
| -void AppListItemView::OnGestureEvent(ui::GestureEvent* event) { | 
| -  switch (event->type()) { | 
| -    case ui::ET_GESTURE_SCROLL_BEGIN: | 
| -      if (touch_dragging_) { | 
| -        apps_grid_view_->InitiateDrag(this, AppsGridView::TOUCH, *event); | 
| -        event->SetHandled(); | 
| -      } | 
| -      break; | 
| -    case ui::ET_GESTURE_SCROLL_UPDATE: | 
| -      if (touch_dragging_) { | 
| -        apps_grid_view_->UpdateDrag(this, AppsGridView::TOUCH, *event); | 
| -        event->SetHandled(); | 
| -      } | 
| -      break; | 
| -    case ui::ET_GESTURE_SCROLL_END: | 
| -    case ui::ET_SCROLL_FLING_START: | 
| -      if (touch_dragging_) { | 
| -        SetTouchDragging(false); | 
| -        apps_grid_view_->EndDrag(false); | 
| -        event->SetHandled(); | 
| -      } | 
| -      break; | 
| -    case ui::ET_GESTURE_LONG_PRESS: | 
| -      if (!apps_grid_view_->has_dragged_view()) | 
| -        SetTouchDragging(true); | 
| -      event->SetHandled(); | 
| -      break; | 
| -    case ui::ET_GESTURE_END: | 
| -      if (touch_dragging_) { | 
| -        SetTouchDragging(false); | 
| - | 
| -        gfx::Point location(event->location()); | 
| -        ConvertPointToScreen(this, &location); | 
| -        ShowContextMenu(location, true); | 
| -      } | 
| -      break; | 
| -    default: | 
| -      break; | 
| -  } | 
| -  if (!event->handled()) | 
| -    CustomButton::OnGestureEvent(event); | 
| -} | 
| - | 
| -}  // namespace app_list | 
|  |