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

Side by Side Diff: ash/shelf/shelf_view.cc

Issue 107163005: [ash] Add TYPE_DIALOG and its item's LauncherContextMenu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 11 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
sky 2014/01/08 14:39:14 Don't change the year here.
simonhong 2014/01/09 00:38:24 Done.
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 "ash/shelf/shelf_view.h" 5 #include "ash/shelf/shelf_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/ash_constants.h" 9 #include "ash/ash_constants.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
11 #include "ash/drag_drop/drag_image_view.h" 11 #include "ash/drag_drop/drag_image_view.h"
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 overflow_button_->SetBoundsRect(ideal_bounds.overflow_bounds); 911 overflow_button_->SetBoundsRect(ideal_bounds.overflow_bounds);
912 } 912 }
913 913
914 views::View* ShelfView::CreateViewForItem(const LauncherItem& item) { 914 views::View* ShelfView::CreateViewForItem(const LauncherItem& item) {
915 views::View* view = NULL; 915 views::View* view = NULL;
916 switch (item.type) { 916 switch (item.type) {
917 case TYPE_BROWSER_SHORTCUT: 917 case TYPE_BROWSER_SHORTCUT:
918 case TYPE_APP_SHORTCUT: 918 case TYPE_APP_SHORTCUT:
919 case TYPE_WINDOWED_APP: 919 case TYPE_WINDOWED_APP:
920 case TYPE_PLATFORM_APP: 920 case TYPE_PLATFORM_APP:
921 case TYPE_DIALOG:
921 case TYPE_APP_PANEL: { 922 case TYPE_APP_PANEL: {
922 ShelfButton* button = ShelfButton::Create(this, this, layout_manager_); 923 ShelfButton* button = ShelfButton::Create(this, this, layout_manager_);
923 button->SetImage(item.image); 924 button->SetImage(item.image);
924 ReflectItemStatus(item, button); 925 ReflectItemStatus(item, button);
925 view = button; 926 view = button;
926 break; 927 break;
927 } 928 }
928 929
929 case TYPE_APP_LIST: { 930 case TYPE_APP_LIST: {
930 if (ash::switches::UseAlternateShelfLayout()) { 931 if (ash::switches::UseAlternateShelfLayout()) {
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 bool ShelfView::SameDragType(LauncherItemType typea, 1246 bool ShelfView::SameDragType(LauncherItemType typea,
1246 LauncherItemType typeb) const { 1247 LauncherItemType typeb) const {
1247 switch (typea) { 1248 switch (typea) {
1248 case TYPE_APP_SHORTCUT: 1249 case TYPE_APP_SHORTCUT:
1249 case TYPE_BROWSER_SHORTCUT: 1250 case TYPE_BROWSER_SHORTCUT:
1250 return (typeb == TYPE_APP_SHORTCUT || typeb == TYPE_BROWSER_SHORTCUT); 1251 return (typeb == TYPE_APP_SHORTCUT || typeb == TYPE_BROWSER_SHORTCUT);
1251 case TYPE_APP_LIST: 1252 case TYPE_APP_LIST:
1252 case TYPE_PLATFORM_APP: 1253 case TYPE_PLATFORM_APP:
1253 case TYPE_WINDOWED_APP: 1254 case TYPE_WINDOWED_APP:
1254 case TYPE_APP_PANEL: 1255 case TYPE_APP_PANEL:
1256 case TYPE_DIALOG:
1255 return typeb == typea; 1257 return typeb == typea;
1256 case TYPE_UNDEFINED: 1258 case TYPE_UNDEFINED:
1257 NOTREACHED() << "LauncherItemType must be set."; 1259 NOTREACHED() << "LauncherItemType must be set.";
1258 return false; 1260 return false;
1259 } 1261 }
1260 NOTREACHED(); 1262 NOTREACHED();
1261 return false; 1263 return false;
1262 } 1264 }
1263 1265
1264 std::pair<int, int> ShelfView::GetDragRange(int index) { 1266 std::pair<int, int> ShelfView::GetDragRange(int index) {
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1607 } 1609 }
1608 1610
1609 views::View* view = view_model_->view_at(model_index); 1611 views::View* view = view_model_->view_at(model_index);
1610 switch (item.type) { 1612 switch (item.type) {
1611 case TYPE_BROWSER_SHORTCUT: 1613 case TYPE_BROWSER_SHORTCUT:
1612 // Fallthrough for the new Shelf since it needs to show the activation 1614 // Fallthrough for the new Shelf since it needs to show the activation
1613 // change as well. 1615 // change as well.
1614 case TYPE_APP_SHORTCUT: 1616 case TYPE_APP_SHORTCUT:
1615 case TYPE_WINDOWED_APP: 1617 case TYPE_WINDOWED_APP:
1616 case TYPE_PLATFORM_APP: 1618 case TYPE_PLATFORM_APP:
1619 case TYPE_DIALOG:
1617 case TYPE_APP_PANEL: { 1620 case TYPE_APP_PANEL: {
1618 ShelfButton* button = static_cast<ShelfButton*>(view); 1621 ShelfButton* button = static_cast<ShelfButton*>(view);
1619 ReflectItemStatus(item, button); 1622 ReflectItemStatus(item, button);
1620 // The browser shortcut is currently not a "real" item and as such the 1623 // The browser shortcut is currently not a "real" item and as such the
1621 // the image is bogous as well. We therefore keep the image as is for it. 1624 // the image is bogous as well. We therefore keep the image as is for it.
1622 if (item.type != TYPE_BROWSER_SHORTCUT) 1625 if (item.type != TYPE_BROWSER_SHORTCUT)
1623 button->SetImage(item.image); 1626 button->SetImage(item.image);
1624 button->SchedulePaint(); 1627 button->SchedulePaint();
1625 break; 1628 break;
1626 } 1629 }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1781 Shell::GetInstance()->metrics()->RecordUserMetricsAction( 1784 Shell::GetInstance()->metrics()->RecordUserMetricsAction(
1782 UMA_LAUNCHER_CLICK_ON_APP); 1785 UMA_LAUNCHER_CLICK_ON_APP);
1783 break; 1786 break;
1784 1787
1785 case TYPE_APP_LIST: 1788 case TYPE_APP_LIST:
1786 Shell::GetInstance()->metrics()->RecordUserMetricsAction( 1789 Shell::GetInstance()->metrics()->RecordUserMetricsAction(
1787 UMA_LAUNCHER_CLICK_ON_APPLIST_BUTTON); 1790 UMA_LAUNCHER_CLICK_ON_APPLIST_BUTTON);
1788 break; 1791 break;
1789 1792
1790 case TYPE_APP_PANEL: 1793 case TYPE_APP_PANEL:
1794 case TYPE_DIALOG:
1791 break; 1795 break;
1792 1796
1793 case TYPE_UNDEFINED: 1797 case TYPE_UNDEFINED:
1794 NOTREACHED() << "LauncherItemType must be set."; 1798 NOTREACHED() << "LauncherItemType must be set.";
1795 break; 1799 break;
1796 } 1800 }
1797 1801
1798 ShelfItemDelegate* item_delegate = 1802 ShelfItemDelegate* item_delegate =
1799 item_manager_->GetShelfItemDelegate(model_->items()[view_index].id); 1803 item_manager_->GetShelfItemDelegate(model_->items()[view_index].id);
1800 if (!item_delegate->ItemSelected(event)) 1804 if (!item_delegate->ItemSelected(event))
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2018 break; 2022 break;
2019 case ash::SHELF_ALIGNMENT_TOP: 2023 case ash::SHELF_ALIGNMENT_TOP:
2020 distance = coordinate.y() - bounds.bottom(); 2024 distance = coordinate.y() - bounds.bottom();
2021 break; 2025 break;
2022 } 2026 }
2023 return distance > 0 ? distance : 0; 2027 return distance > 0 ? distance : 0;
2024 } 2028 }
2025 2029
2026 } // namespace internal 2030 } // namespace internal
2027 } // namespace ash 2031 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698