ui::SimpleMenuModel inherits from ui::MenuModel.
ui::MenuModel declares `virtual void MenuWillShow()`
ui::SimpleMenuModel::Delegate declares `virtual void MenuWillShow(ui::SimpleMenuModel*)`
Because of this, a class that inherits both ui::SimpleMenuModel and ui::SimpleMenuModel::Delegate cannot override MenuWillShow(), since overriding either will hide the other. However, deriving both ui::SimpleMenuModel and ui::SimpleMenuModel::Delegate is reasonably common practice (even being done in the example [1]).
As a simple workaround, I say we just rename one of the methods.
[1] https://chromium.googlesource.com/chromium/src/+/73b31c297c48b99f2d352625b74f159ef33e0f91/ui/views/examples/menu_example.cc#26
Comment 1 by rdevlin....@chromium.org
, Sep 18