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

Unified Diff: views/controls/menu/menu_item_view.h

Issue 7520037: [cros] Network dropdown button in WebUI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move handle click Created 9 years, 5 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 side-by-side diff with in-line comments
Download patch
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 cc0a91f9890adefde878343ec38328f1ec6f594b..ddbed74d3f15438ba3eb9d6a7af3ab38b3dbef03 100644
--- a/views/controls/menu/menu_item_view.h
+++ b/views/controls/menu/menu_item_view.h
@@ -40,6 +40,50 @@ class SubmenuView;
struct MenuConfig;
+// MenuItemInterface -----------------------------------------------------------
+
+// Interface class for the menu items.
+class MenuItemInterface {
+ public:
rhashimoto 2011/07/29 17:17:13 virtual destructor?
Nikita (slow) 2011/08/05 23:40:26 Obsolete, using ui::MenuModel now.
+ // Append a sub-menu to this menu.
+ // The returned pointer is owned by this menu.
+ virtual MenuItemInterface* AppendSubMenu(int item_id,
+ const std::wstring& label) = 0;
rhashimoto 2011/07/29 17:17:13 nit: wrapped indentation needs to be adjusted in t
Nikita (slow) 2011/08/05 23:40:26 Obsolete, using ui::MenuModel now.
+
+ // Append a sub-menu with an icon to this menu.
+ // The returned pointer is owned by this menu.
+ virtual MenuItemInterface* AppendSubMenuWithIcon(int item_id,
+ const std::wstring& label,
+ const SkBitmap& icon) = 0;
+
+ // This is a convenience for standard text label menu items where the label
+ // is provided with this call.
+ virtual MenuItemInterface* AppendMenuItemWithLabel(int item_id,
+ const std::wstring& label) = 0;
+
+
+ // Appends a menu item with an icon. This is for the menu item which
+ // needs an icon. Calling this function forces the Menu class to draw
+ // the menu, instead of relying on Windows.
+ virtual MenuItemInterface* AppendMenuItemWithIcon(int item_id,
+ const std::wstring& label,
+ const SkBitmap& icon) = 0;
+
+ // Adds a separator to this menu
+ virtual void AppendSeparator() = 0;
+
+ // Clears the sub-menu.
+ virtual void ClearSubmenu() = 0;
+
+ // Called when update is done.
+ virtual void ChildrenChanged() = 0;
+
+ // Hides and cancels the menu. This does nothing if the menu is not open.
+ virtual void Cancel() = 0;
+
+ virtual void set_margins(int top_margin, int bottom_margin) = 0;
+};
+
// MenuItemView --------------------------------------------------------------
// MenuItemView represents a single menu item with a label and optional icon.
@@ -66,7 +110,7 @@ struct MenuConfig;
// and does NOT block the caller. Instead the delegate is notified when the
// menu closes via the DropMenuClosed method.
-class VIEWS_API MenuItemView : public View {
+class VIEWS_API MenuItemView : public MenuItemInterface, public View {
public:
friend class MenuController;
@@ -145,7 +189,7 @@ class VIEWS_API MenuItemView : public View {
AnchorPosition anchor);
// Hides and cancels the menu. This does nothing if the menu is not open.
- void Cancel();
+ virtual void Cancel();
rhashimoto 2011/07/29 17:17:13 group overridden methods, add OVERRIDE
Nikita (slow) 2011/08/05 23:40:26 Obsolete, using ui::MenuModel now.
// Add an item to the menu at a specified index. ChildrenChanged() should
// called after adding menu items if the menu may be active.
@@ -176,14 +220,14 @@ class VIEWS_API MenuItemView : public View {
// Append a submenu to this menu.
// The returned pointer is owned by this menu.
- MenuItemView* AppendSubMenu(int item_id,
+ virtual MenuItemInterface* AppendSubMenu(int item_id,
const std::wstring& label) {
return AppendMenuItemImpl(item_id, label, SkBitmap(), SUBMENU);
}
// Append a submenu with an icon to this menu.
// The returned pointer is owned by this menu.
- MenuItemView* AppendSubMenuWithIcon(int item_id,
+ virtual MenuItemInterface* AppendSubMenuWithIcon(int item_id,
const std::wstring& label,
const SkBitmap& icon) {
return AppendMenuItemImpl(item_id, label, icon, SUBMENU);
@@ -191,7 +235,7 @@ class VIEWS_API MenuItemView : public View {
// This is a convenience for standard text label menu items where the label
// is provided with this call.
- MenuItemView* AppendMenuItemWithLabel(int item_id,
+ virtual MenuItemInterface* AppendMenuItemWithLabel(int item_id,
const std::wstring& label) {
return AppendMenuItem(item_id, label, NORMAL);
}
@@ -203,14 +247,14 @@ class VIEWS_API MenuItemView : public View {
}
// Adds a separator to this menu
- void AppendSeparator() {
+ virtual void AppendSeparator() {
AppendMenuItemImpl(0, std::wstring(), SkBitmap(), SEPARATOR);
}
// Appends a menu item with an icon. This is for the menu item which
// needs an icon. Calling this function forces the Menu class to draw
// the menu, instead of relying on Windows.
- MenuItemView* AppendMenuItemWithIcon(int item_id,
+ virtual MenuItemInterface* AppendMenuItemWithIcon(int item_id,
const std::wstring& label,
const SkBitmap& icon) {
return AppendMenuItemImpl(item_id, label, icon, NORMAL);
@@ -236,6 +280,8 @@ class VIEWS_API MenuItemView : public View {
// Returns true if this menu item has a submenu.
virtual bool HasSubmenu() const;
+ virtual void ClearSubmenu();
+
// Returns the view containing child menu items.
virtual SubmenuView* GetSubmenu() const;
@@ -307,7 +353,7 @@ class VIEWS_API MenuItemView : public View {
// Invoke if you remove/add children to the menu while it's showing. This
// recalculates the bounds.
- void ChildrenChanged();
+ virtual void ChildrenChanged();
// Sizes any child views.
virtual void Layout();
@@ -322,7 +368,7 @@ class VIEWS_API MenuItemView : public View {
// Set top and bottom margins in pixels. If no margin is set or a
// negative margin is specified then MenuConfig values are used.
- void set_margins(int top_margin, int bottom_margin) {
+ virtual void set_margins(int top_margin, int bottom_margin) {
top_margin_ = top_margin;
bottom_margin_ = bottom_margin;
}

Powered by Google App Engine
This is Rietveld 408576698