| OLD | NEW |
| 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 "chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h" | 5 #include "chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 G_CALLBACK(OnDragMotionThunk), this); | 619 G_CALLBACK(OnDragMotionThunk), this); |
| 620 } | 620 } |
| 621 | 621 |
| 622 void BrowserActionsToolbarGtk::CreateAllButtons() { | 622 void BrowserActionsToolbarGtk::CreateAllButtons() { |
| 623 extension_button_map_.clear(); | 623 extension_button_map_.clear(); |
| 624 | 624 |
| 625 int i = 0; | 625 int i = 0; |
| 626 const extensions::ExtensionList& toolbar_items = model_->toolbar_items(); | 626 const extensions::ExtensionList& toolbar_items = model_->toolbar_items(); |
| 627 for (extensions::ExtensionList::const_iterator iter = toolbar_items.begin(); | 627 for (extensions::ExtensionList::const_iterator iter = toolbar_items.begin(); |
| 628 iter != toolbar_items.end(); ++iter) { | 628 iter != toolbar_items.end(); ++iter) { |
| 629 CreateButtonForExtension(*iter, i++); | 629 CreateButtonForExtension(iter->get(), i++); |
| 630 } | 630 } |
| 631 } | 631 } |
| 632 | 632 |
| 633 void BrowserActionsToolbarGtk::SetContainerWidth() { | 633 void BrowserActionsToolbarGtk::SetContainerWidth() { |
| 634 int showing_actions = model_->GetVisibleIconCount(); | 634 int showing_actions = model_->GetVisibleIconCount(); |
| 635 if (showing_actions >= 0) | 635 if (showing_actions >= 0) |
| 636 SetButtonHBoxWidth(WidthForIconCount(showing_actions)); | 636 SetButtonHBoxWidth(WidthForIconCount(showing_actions)); |
| 637 } | 637 } |
| 638 | 638 |
| 639 void BrowserActionsToolbarGtk::CreateButtonForExtension( | 639 void BrowserActionsToolbarGtk::CreateButtonForExtension( |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 void BrowserActionsToolbarGtk::AnimationEnded(const ui::Animation* animation) { | 789 void BrowserActionsToolbarGtk::AnimationEnded(const ui::Animation* animation) { |
| 790 gtk_widget_set_size_request(button_hbox_.get(), desired_width_, -1); | 790 gtk_widget_set_size_request(button_hbox_.get(), desired_width_, -1); |
| 791 UpdateChevronVisibility(); | 791 UpdateChevronVisibility(); |
| 792 } | 792 } |
| 793 | 793 |
| 794 bool BrowserActionsToolbarGtk::IsCommandIdChecked(int command_id) const { | 794 bool BrowserActionsToolbarGtk::IsCommandIdChecked(int command_id) const { |
| 795 return false; | 795 return false; |
| 796 } | 796 } |
| 797 | 797 |
| 798 bool BrowserActionsToolbarGtk::IsCommandIdEnabled(int command_id) const { | 798 bool BrowserActionsToolbarGtk::IsCommandIdEnabled(int command_id) const { |
| 799 const Extension* extension = model_->toolbar_items()[command_id]; | 799 const Extension* extension = model_->toolbar_items()[command_id].get(); |
| 800 return ExtensionActionManager::Get(profile_)-> | 800 return ExtensionActionManager::Get(profile_)->GetBrowserAction(*extension) |
| 801 GetBrowserAction(*extension)->GetIsVisible(GetCurrentTabId()); | 801 ->GetIsVisible(GetCurrentTabId()); |
| 802 } | 802 } |
| 803 | 803 |
| 804 bool BrowserActionsToolbarGtk::GetAcceleratorForCommandId( | 804 bool BrowserActionsToolbarGtk::GetAcceleratorForCommandId( |
| 805 int command_id, | 805 int command_id, |
| 806 ui::Accelerator* accelerator) { | 806 ui::Accelerator* accelerator) { |
| 807 return false; | 807 return false; |
| 808 } | 808 } |
| 809 | 809 |
| 810 void BrowserActionsToolbarGtk::ExecuteCommand(int command_id, int event_flags) { | 810 void BrowserActionsToolbarGtk::ExecuteCommand(int command_id, int event_flags) { |
| 811 const Extension* extension = model_->toolbar_items()[command_id]; | 811 const Extension* extension = model_->toolbar_items()[command_id].get(); |
| 812 GURL popup_url; | 812 GURL popup_url; |
| 813 | 813 |
| 814 switch (model_->ExecuteBrowserAction(extension, browser(), &popup_url)) { | 814 switch (model_->ExecuteBrowserAction(extension, browser(), &popup_url)) { |
| 815 case ExtensionToolbarModel::ACTION_NONE: | 815 case ExtensionToolbarModel::ACTION_NONE: |
| 816 break; | 816 break; |
| 817 case ExtensionToolbarModel::ACTION_SHOW_POPUP: | 817 case ExtensionToolbarModel::ACTION_SHOW_POPUP: |
| 818 ExtensionPopupGtk::Show(popup_url, browser(), chevron(), | 818 ExtensionPopupGtk::Show(popup_url, browser(), chevron(), |
| 819 ExtensionPopupGtk::SHOW); | 819 ExtensionPopupGtk::SHOW); |
| 820 break; | 820 break; |
| 821 } | 821 } |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1033 overflow_menu_model_.reset(new SimpleMenuModel(this)); | 1033 overflow_menu_model_.reset(new SimpleMenuModel(this)); |
| 1034 | 1034 |
| 1035 int visible_icon_count = | 1035 int visible_icon_count = |
| 1036 gtk_chrome_shrinkable_hbox_get_visible_child_count( | 1036 gtk_chrome_shrinkable_hbox_get_visible_child_count( |
| 1037 GTK_CHROME_SHRINKABLE_HBOX(button_hbox_.get())); | 1037 GTK_CHROME_SHRINKABLE_HBOX(button_hbox_.get())); |
| 1038 for (int i = visible_icon_count; i < button_count(); ++i) { | 1038 for (int i = visible_icon_count; i < button_count(); ++i) { |
| 1039 int model_index = i; | 1039 int model_index = i; |
| 1040 if (profile_->IsOffTheRecord()) | 1040 if (profile_->IsOffTheRecord()) |
| 1041 model_index = model_->IncognitoIndexToOriginal(i); | 1041 model_index = model_->IncognitoIndexToOriginal(i); |
| 1042 | 1042 |
| 1043 const Extension* extension = model_->toolbar_items()[model_index]; | 1043 const Extension* extension = model_->toolbar_items()[model_index].get(); |
| 1044 BrowserActionButton* button = extension_button_map_[extension->id()].get(); | 1044 BrowserActionButton* button = extension_button_map_[extension->id()].get(); |
| 1045 | 1045 |
| 1046 overflow_menu_model_->AddItem(model_index, UTF8ToUTF16(extension->name())); | 1046 overflow_menu_model_->AddItem(model_index, UTF8ToUTF16(extension->name())); |
| 1047 overflow_menu_model_->SetIcon(overflow_menu_model_->GetItemCount() - 1, | 1047 overflow_menu_model_->SetIcon(overflow_menu_model_->GetItemCount() - 1, |
| 1048 button->GetIcon()); | 1048 button->GetIcon()); |
| 1049 | 1049 |
| 1050 // TODO(estade): set the menu item's tooltip. | 1050 // TODO(estade): set the menu item's tooltip. |
| 1051 } | 1051 } |
| 1052 | 1052 |
| 1053 overflow_menu_.reset(new MenuGtk(this, overflow_menu_model_.get())); | 1053 overflow_menu_.reset(new MenuGtk(this, overflow_menu_model_.get())); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1073 if (item_index == -1) { | 1073 if (item_index == -1) { |
| 1074 NOTREACHED(); | 1074 NOTREACHED(); |
| 1075 return FALSE; | 1075 return FALSE; |
| 1076 } | 1076 } |
| 1077 | 1077 |
| 1078 item_index += gtk_chrome_shrinkable_hbox_get_visible_child_count( | 1078 item_index += gtk_chrome_shrinkable_hbox_get_visible_child_count( |
| 1079 GTK_CHROME_SHRINKABLE_HBOX(button_hbox_.get())); | 1079 GTK_CHROME_SHRINKABLE_HBOX(button_hbox_.get())); |
| 1080 if (profile_->IsOffTheRecord()) | 1080 if (profile_->IsOffTheRecord()) |
| 1081 item_index = model_->IncognitoIndexToOriginal(item_index); | 1081 item_index = model_->IncognitoIndexToOriginal(item_index); |
| 1082 | 1082 |
| 1083 const Extension* extension = model_->toolbar_items()[item_index]; | 1083 const Extension* extension = model_->toolbar_items()[item_index].get(); |
| 1084 ExtensionButtonMap::iterator it = extension_button_map_.find( | 1084 ExtensionButtonMap::iterator it = extension_button_map_.find(extension->id()); |
| 1085 extension->id()); | |
| 1086 if (it == extension_button_map_.end()) { | 1085 if (it == extension_button_map_.end()) { |
| 1087 NOTREACHED(); | 1086 NOTREACHED(); |
| 1088 return FALSE; | 1087 return FALSE; |
| 1089 } | 1088 } |
| 1090 | 1089 |
| 1091 MenuGtk* menu = it->second.get()->GetContextMenu(); | 1090 MenuGtk* menu = it->second.get()->GetContextMenu(); |
| 1092 if (!menu) | 1091 if (!menu) |
| 1093 return FALSE; | 1092 return FALSE; |
| 1094 | 1093 |
| 1095 menu->PopupAsContext(gfx::Point(event->x_root, event->y_root), | 1094 menu->PopupAsContext(gfx::Point(event->x_root, event->y_root), |
| 1096 event->time); | 1095 event->time); |
| 1097 return TRUE; | 1096 return TRUE; |
| 1098 } | 1097 } |
| 1099 | 1098 |
| 1100 void BrowserActionsToolbarGtk::OnButtonShowOrHide(GtkWidget* sender) { | 1099 void BrowserActionsToolbarGtk::OnButtonShowOrHide(GtkWidget* sender) { |
| 1101 if (!resize_animation_.is_animating()) | 1100 if (!resize_animation_.is_animating()) |
| 1102 UpdateChevronVisibility(); | 1101 UpdateChevronVisibility(); |
| 1103 } | 1102 } |
| OLD | NEW |