Index: views/controls/menu/menu_item_view.h |
diff --git a/views/controls/menu/menu_item_view.h b/views/controls/menu/menu_item_view.h |
index 980f2d6af353fe11dbf13d0429321731e51b1bf5..45fb60b03803ec3a11d6d4aa8cd40063f66ae3dd 100644 |
--- a/views/controls/menu/menu_item_view.h |
+++ b/views/controls/menu/menu_item_view.h |
@@ -7,6 +7,7 @@ |
#pragma once |
#include <string> |
+#include <vector> |
#if defined(OS_WIN) |
#include <windows.h> |
@@ -127,7 +128,19 @@ class MenuItemView : public View { |
// Hides and cancels the menu. This does nothing if the menu is not open. |
void Cancel(); |
- // Adds an item to this menu. |
+ // Add an item to the menu at a specified index. |
+ MenuItemView* AddMenuItemAt(int index, |
+ int item_id, |
+ const std::wstring& label, |
+ const SkBitmap& icon, |
+ Type type); |
+ |
+ // Remove an item from the menu at a specified index. Either |
+ // ChildrenChanged() or DeleteRemovedItems() should be called after |
sky
2011/05/06 16:17:00
DeleteRemovedItems isn't public, so folks have to
|
+ // removing menu items. |
+ void RemoveMenuItemAt(int index); |
+ |
+ // Appends an item to this menu. |
// item_id The id of the item, used to identify it in delegate callbacks |
// or (if delegate is NULL) to identify the command associated |
// with this item with the controller specified in the ctor. Note |
@@ -361,6 +374,9 @@ class MenuItemView : public View { |
// Calculates the preferred size. |
gfx::Size CalculatePreferredSize(); |
+ // Delete orphaned items removed from the menu. |
+ void DeleteRemovedItems(); |
+ |
// The delegate. This is only valid for the root menu item. You shouldn't |
// use this directly, instead use GetDelegate() which walks the tree as |
// as necessary. |
@@ -423,6 +439,9 @@ class MenuItemView : public View { |
// GetPreferredSize. |
gfx::Size pref_size_; |
+ // Removed items to be deleted in ChildrenChanged(). |
+ std::vector<View*> removed_items_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MenuItemView); |
}; |