[Win] Add flag to build window menu.
This commit is contained in:
parent
6193a889ff
commit
738a929f8c
2 changed files with 10 additions and 2 deletions
|
@ -404,7 +404,8 @@ NativeMenuWin::NativeMenuWin(ui::MenuModel* model, HWND system_menu_for)
|
|||
position_to_select_(-1),
|
||||
menu_to_select_factory_(this),
|
||||
parent_(NULL),
|
||||
destroyed_flag_(NULL) {
|
||||
destroyed_flag_(NULL),
|
||||
create_as_window_menu_(false) {
|
||||
}
|
||||
|
||||
NativeMenuWin::~NativeMenuWin() {
|
||||
|
@ -736,7 +737,7 @@ void NativeMenuWin::ResetNativeMenu() {
|
|||
} else {
|
||||
if (menu_)
|
||||
DestroyMenu(menu_);
|
||||
menu_ = CreatePopupMenu();
|
||||
menu_ = create_as_window_menu_ ? CreateMenu() : CreatePopupMenu();
|
||||
// Rather than relying on the return value of TrackPopupMenuEx, which is
|
||||
// always a command identifier, instead we tell the menu to notify us via
|
||||
// our host window and the WM_MENUCOMMAND message.
|
||||
|
|
|
@ -43,6 +43,10 @@ class NativeMenuWin : public MenuWrapper {
|
|||
virtual void RemoveMenuListener(views::MenuListener* listener) OVERRIDE;
|
||||
virtual void SetMinimumWidth(int width) OVERRIDE;
|
||||
|
||||
// Flag to create a window menu instead of popup menu.
|
||||
void set_create_as_window_menu(bool flag) { create_as_window_menu_ = flag; }
|
||||
bool create_as_window_menu() const { return create_as_window_menu_; }
|
||||
|
||||
private:
|
||||
// IMPORTANT: Note about indices.
|
||||
// Functions in this class deal in two index spaces:
|
||||
|
@ -161,6 +165,9 @@ class NativeMenuWin : public MenuWrapper {
|
|||
// events doesn't have a mechanism to get a user data pointer.
|
||||
static NativeMenuWin* open_native_menu_win_;
|
||||
|
||||
// Create as window menu.
|
||||
bool create_as_window_menu_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(NativeMenuWin);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue