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

Side by Side Diff: ui/views/controls/menu/menu_item_view.cc

Issue 148143004: Add notification mechanism when BrowserActionButton's icon has been updated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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
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 "ui/views/controls/menu/menu_item_view.h" 5 #include "ui/views/controls/menu/menu_item_view.h"
6 6
7 #include "base/i18n/case_conversion.h" 7 #include "base/i18n/case_conversion.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "grit/ui_resources.h" 10 #include "grit/ui_resources.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 has_mnemonics_(false), 100 has_mnemonics_(false),
101 show_mnemonics_(false), 101 show_mnemonics_(false),
102 has_icons_(false), 102 has_icons_(false),
103 icon_view_(NULL), 103 icon_view_(NULL),
104 top_margin_(-1), 104 top_margin_(-1),
105 bottom_margin_(-1), 105 bottom_margin_(-1),
106 left_icon_margin_(0), 106 left_icon_margin_(0),
107 right_icon_margin_(0), 107 right_icon_margin_(0),
108 requested_menu_position_(POSITION_BEST_FIT), 108 requested_menu_position_(POSITION_BEST_FIT),
109 actual_menu_position_(requested_menu_position_), 109 actual_menu_position_(requested_menu_position_),
110 use_right_margin_(true) { 110 use_right_margin_(true),
111 lifecycle_observer_(NULL) {
111 // NOTE: don't check the delegate for NULL, UpdateMenuPartSizes() supplies a 112 // NOTE: don't check the delegate for NULL, UpdateMenuPartSizes() supplies a
112 // NULL delegate. 113 // NULL delegate.
113 Init(NULL, 0, SUBMENU, delegate); 114 Init(NULL, 0, SUBMENU, delegate);
114 } 115 }
115 116
116 void MenuItemView::ChildPreferredSizeChanged(View* child) { 117 void MenuItemView::ChildPreferredSizeChanged(View* child) {
117 invalidate_dimensions(); 118 invalidate_dimensions();
118 PreferredSizeChanged(); 119 PreferredSizeChanged();
119 } 120 }
120 121
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 invalidate_dimensions(); 553 invalidate_dimensions();
553 } 554 }
554 555
555 const MenuConfig& MenuItemView::GetMenuConfig() const { 556 const MenuConfig& MenuItemView::GetMenuConfig() const {
556 const MenuController* controller = GetMenuController(); 557 const MenuController* controller = GetMenuController();
557 if (controller) 558 if (controller)
558 return controller->menu_config_; 559 return controller->menu_config_;
559 return MenuConfig::instance(NULL); 560 return MenuConfig::instance(NULL);
560 } 561 }
561 562
562 MenuItemView::MenuItemView(MenuItemView* parent, 563 MenuItemView::MenuItemView(MenuItemView* parent,
Finnur 2014/02/12 11:19:52 Can you add a comment saying: // Note: This class
563 int command, 564 int command,
564 MenuItemView::Type type) 565 MenuItemView::Type type)
565 : delegate_(NULL), 566 : delegate_(NULL),
566 controller_(NULL), 567 controller_(NULL),
567 canceled_(false), 568 canceled_(false),
568 parent_menu_item_(parent), 569 parent_menu_item_(parent),
569 type_(type), 570 type_(type),
570 selected_(false), 571 selected_(false),
571 command_(command), 572 command_(command),
572 submenu_(NULL), 573 submenu_(NULL),
573 has_mnemonics_(false), 574 has_mnemonics_(false),
574 show_mnemonics_(false), 575 show_mnemonics_(false),
575 has_icons_(false), 576 has_icons_(false),
576 icon_view_(NULL), 577 icon_view_(NULL),
577 top_margin_(-1), 578 top_margin_(-1),
578 bottom_margin_(-1), 579 bottom_margin_(-1),
579 left_icon_margin_(0), 580 left_icon_margin_(0),
580 right_icon_margin_(0), 581 right_icon_margin_(0),
581 requested_menu_position_(POSITION_BEST_FIT), 582 requested_menu_position_(POSITION_BEST_FIT),
582 actual_menu_position_(requested_menu_position_), 583 actual_menu_position_(requested_menu_position_),
583 use_right_margin_(true) { 584 use_right_margin_(true) {
584 Init(parent, command, type, NULL); 585 Init(parent, command, type, NULL);
585 } 586 }
586 587
587 MenuItemView::~MenuItemView() { 588 MenuItemView::~MenuItemView() {
588 delete submenu_; 589 delete submenu_;
589 STLDeleteElements(&removed_items_); 590 STLDeleteElements(&removed_items_);
591 if (lifecycle_observer_)
592 lifecycle_observer_->OnDeleted(this);
590 } 593 }
591 594
592 const char* MenuItemView::GetClassName() const { 595 const char* MenuItemView::GetClassName() const {
593 return kViewClassName; 596 return kViewClassName;
594 } 597 }
595 598
596 // Calculates all sizes that we can from the OS. 599 // Calculates all sizes that we can from the OS.
597 // 600 //
598 // This is invoked prior to Running a menu. 601 // This is invoked prior to Running a menu.
599 void MenuItemView::UpdateMenuPartSizes() { 602 void MenuItemView::UpdateMenuPartSizes() {
(...skipping 18 matching lines...) Expand all
618 label_start_ += padding; 621 label_start_ += padding;
619 622
620 if (config.render_gutter) 623 if (config.render_gutter)
621 label_start_ += config.gutter_width + config.gutter_to_label; 624 label_start_ += config.gutter_width + config.gutter_to_label;
622 625
623 EmptyMenuMenuItem menu_item(this); 626 EmptyMenuMenuItem menu_item(this);
624 menu_item.set_controller(GetMenuController()); 627 menu_item.set_controller(GetMenuController());
625 pref_menu_height_ = menu_item.GetPreferredSize().height(); 628 pref_menu_height_ = menu_item.GetPreferredSize().height();
626 } 629 }
627 630
628 void MenuItemView::Init(MenuItemView* parent, 631 void MenuItemView::Init(MenuItemView* parent,
Finnur 2014/02/12 11:19:52 Can you add a comment saying: // Note: This class
629 int command, 632 int command,
630 MenuItemView::Type type, 633 MenuItemView::Type type,
631 MenuDelegate* delegate) { 634 MenuDelegate* delegate) {
632 delegate_ = delegate; 635 delegate_ = delegate;
633 controller_ = NULL; 636 controller_ = NULL;
634 canceled_ = false; 637 canceled_ = false;
635 parent_menu_item_ = parent; 638 parent_menu_item_ = parent;
636 type_ = type; 639 type_ = type;
637 selected_ = false; 640 selected_ = false;
638 command_ = command; 641 command_ = command;
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 } else { 1063 } else {
1061 const Type& type = menu_item->GetType(); 1064 const Type& type = menu_item->GetType();
1062 if (type == CHECKBOX || type == RADIO) 1065 if (type == CHECKBOX || type == RADIO)
1063 return true; 1066 return true;
1064 } 1067 }
1065 } 1068 }
1066 return false; 1069 return false;
1067 } 1070 }
1068 1071
1069 } // namespace views 1072 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698