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

Side by Side Diff: ash/launcher/launcher_view.cc

Issue 10139025: Add support for a context menu on the browser shortcut icon (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Only have new api on ChromeLauncherDelegate Created 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/launcher/launcher_view.h" 5 #include "ash/launcher/launcher_view.h"
6 6
7 #include "ash/launcher/launcher_button.h" 7 #include "ash/launcher/launcher_button.h"
8 #include "ash/launcher/launcher_delegate.h" 8 #include "ash/launcher/launcher_delegate.h"
9 #include "ash/launcher/launcher_icon_observer.h" 9 #include "ash/launcher/launcher_icon_observer.h"
10 #include "ash/launcher/launcher_model.h" 10 #include "ash/launcher/launcher_model.h"
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 } 886 }
887 } 887 }
888 888
889 void LauncherView::ShowContextMenuForView(views::View* source, 889 void LauncherView::ShowContextMenuForView(views::View* source,
890 const gfx::Point& point) { 890 const gfx::Point& point) {
891 if (!delegate_) 891 if (!delegate_)
892 return; 892 return;
893 893
894 int view_index = view_model_->GetIndexOfView(source); 894 int view_index = view_model_->GetIndexOfView(source);
895 if (view_index != -1 && 895 if (view_index != -1 &&
896 (model_->items()[view_index].type == TYPE_BROWSER_SHORTCUT || 896 model_->items()[view_index].type == TYPE_APP_LIST) {
897 model_->items()[view_index].type == TYPE_APP_LIST)) {
898 view_index = -1; 897 view_index = -1;
899 } 898 }
900 #if !defined(OS_MACOSX) 899 #if !defined(OS_MACOSX)
901 scoped_ptr<ui::MenuModel> menu_model( 900 scoped_ptr<ui::MenuModel> menu_model(
902 view_index == -1 ? 901 view_index == -1 ?
903 delegate_->CreateContextMenuForLauncher() : 902 delegate_->CreateContextMenuForLauncher() :
904 delegate_->CreateContextMenu(model_->items()[view_index])); 903 delegate_->CreateContextMenu(model_->items()[view_index]));
905 if (!menu_model.get()) 904 if (!menu_model.get())
906 return; 905 return;
907 AutoReset<LauncherID> reseter( 906 AutoReset<LauncherID> reseter(
908 &context_menu_id_, 907 &context_menu_id_,
909 view_index == -1 ? 0 : model_->items()[view_index].id); 908 view_index == -1 ? 0 : model_->items()[view_index].id);
910 views::MenuModelAdapter menu_model_adapter(menu_model.get()); 909 views::MenuModelAdapter menu_model_adapter(menu_model.get());
911 launcher_menu_runner_.reset( 910 launcher_menu_runner_.reset(
912 new views::MenuRunner(menu_model_adapter.CreateMenu())); 911 new views::MenuRunner(menu_model_adapter.CreateMenu()));
913 // NOTE: if you convert to HAS_MNEMONICS be sure and update menu building 912 // NOTE: if you convert to HAS_MNEMONICS be sure and update menu building
914 // code. 913 // code.
915 if (launcher_menu_runner_->RunMenuAt( 914 if (launcher_menu_runner_->RunMenuAt(
916 source->GetWidget(), NULL, gfx::Rect(point, gfx::Size()), 915 source->GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
917 views::MenuItemView::TOPLEFT, 0) == views::MenuRunner::MENU_DELETED) 916 views::MenuItemView::TOPLEFT, 0) == views::MenuRunner::MENU_DELETED)
918 return; 917 return;
919 918
920 Shell::GetInstance()->UpdateShelfVisibility(); 919 Shell::GetInstance()->UpdateShelfVisibility();
921 #endif 920 #endif
922 } 921 }
923 922
924 } // namespace internal 923 } // namespace internal
925 } // namespace ash 924 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | chrome/app/generated_resources.grd » ('j') | chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698