OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/ui/views/wrench_menu.h" | 5 #include "chrome/browser/ui/views/wrench_menu.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 MenuDelegate::GetDragOperations(sender); | 686 MenuDelegate::GetDragOperations(sender); |
687 } | 687 } |
688 | 688 |
689 int WrenchMenu::GetMaxWidthForMenu(MenuItemView* menu) { | 689 int WrenchMenu::GetMaxWidthForMenu(MenuItemView* menu) { |
690 return is_bookmark_command(menu->GetCommand()) ? | 690 return is_bookmark_command(menu->GetCommand()) ? |
691 bookmark_menu_delegate_->GetMaxWidthForMenu(menu) : | 691 bookmark_menu_delegate_->GetMaxWidthForMenu(menu) : |
692 MenuDelegate::GetMaxWidthForMenu(menu); | 692 MenuDelegate::GetMaxWidthForMenu(menu); |
693 } | 693 } |
694 | 694 |
695 bool WrenchMenu::IsItemChecked(int id) const { | 695 bool WrenchMenu::IsItemChecked(int id) const { |
696 if (!is_bookmark_command(id)) | 696 if (is_bookmark_command(id)) |
697 return false; | 697 return false; |
698 | 698 |
699 const Entry& entry = id_to_entry_.find(id)->second; | 699 const Entry& entry = id_to_entry_.find(id)->second; |
700 return entry.first->IsItemCheckedAt(entry.second); | 700 return entry.first->IsItemCheckedAt(entry.second); |
701 } | 701 } |
702 | 702 |
703 bool WrenchMenu::IsCommandEnabled(int id) const { | 703 bool WrenchMenu::IsCommandEnabled(int id) const { |
704 if (is_bookmark_command(id)) | 704 if (is_bookmark_command(id)) |
705 return true; | 705 return true; |
706 | 706 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 menu_accelerator.modifiers()); | 755 menu_accelerator.modifiers()); |
756 return true; | 756 return true; |
757 } | 757 } |
758 | 758 |
759 void WrenchMenu::WillShowMenu(MenuItemView* menu) { | 759 void WrenchMenu::WillShowMenu(MenuItemView* menu) { |
760 if (menu == bookmark_menu_) | 760 if (menu == bookmark_menu_) |
761 CreateBookmarkMenu(); | 761 CreateBookmarkMenu(); |
762 } | 762 } |
763 | 763 |
764 void WrenchMenu::BookmarkModelChanged() { | 764 void WrenchMenu::BookmarkModelChanged() { |
765 root_->Cancel(); | 765 DCHECK(bookmark_menu_delegate_.get()); |
| 766 if (!bookmark_menu_delegate_->is_mutating_model()) |
| 767 root_->Cancel(); |
766 } | 768 } |
767 | 769 |
768 WrenchMenu::~WrenchMenu() { | 770 WrenchMenu::~WrenchMenu() { |
769 } | 771 } |
770 | 772 |
771 void WrenchMenu::PopulateMenu(MenuItemView* parent, | 773 void WrenchMenu::PopulateMenu(MenuItemView* parent, |
772 MenuModel* model, | 774 MenuModel* model, |
773 int* next_id) { | 775 int* next_id) { |
774 int index_offset = model->GetFirstItemIndex(NULL); | 776 int index_offset = model->GetFirstItemIndex(NULL); |
775 for (int i = 0, max = model->GetItemCount(); i < max; ++i) { | 777 for (int i = 0, max = model->GetItemCount(); i < max; ++i) { |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 model->AddObserver(this); | 857 model->AddObserver(this); |
856 bookmark_menu_delegate_.reset( | 858 bookmark_menu_delegate_.reset( |
857 new BookmarkMenuDelegate(browser_->profile(), | 859 new BookmarkMenuDelegate(browser_->profile(), |
858 NULL, | 860 NULL, |
859 browser_->window()->GetNativeHandle(), | 861 browser_->window()->GetNativeHandle(), |
860 first_bookmark_command_id_)); | 862 first_bookmark_command_id_)); |
861 bookmark_menu_delegate_->Init( | 863 bookmark_menu_delegate_->Init( |
862 this, bookmark_menu_, model->GetBookmarkBarNode(), 0, | 864 this, bookmark_menu_, model->GetBookmarkBarNode(), 0, |
863 BookmarkMenuDelegate::SHOW_OTHER_FOLDER); | 865 BookmarkMenuDelegate::SHOW_OTHER_FOLDER); |
864 } | 866 } |
OLD | NEW |