[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),
|
position_to_select_(-1),
|
||||||
menu_to_select_factory_(this),
|
menu_to_select_factory_(this),
|
||||||
parent_(NULL),
|
parent_(NULL),
|
||||||
destroyed_flag_(NULL) {
|
destroyed_flag_(NULL),
|
||||||
|
create_as_window_menu_(false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
NativeMenuWin::~NativeMenuWin() {
|
NativeMenuWin::~NativeMenuWin() {
|
||||||
|
@ -736,7 +737,7 @@ void NativeMenuWin::ResetNativeMenu() {
|
||||||
} else {
|
} else {
|
||||||
if (menu_)
|
if (menu_)
|
||||||
DestroyMenu(menu_);
|
DestroyMenu(menu_);
|
||||||
menu_ = CreatePopupMenu();
|
menu_ = create_as_window_menu_ ? CreateMenu() : CreatePopupMenu();
|
||||||
// Rather than relying on the return value of TrackPopupMenuEx, which is
|
// Rather than relying on the return value of TrackPopupMenuEx, which is
|
||||||
// always a command identifier, instead we tell the menu to notify us via
|
// always a command identifier, instead we tell the menu to notify us via
|
||||||
// our host window and the WM_MENUCOMMAND message.
|
// 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 RemoveMenuListener(views::MenuListener* listener) OVERRIDE;
|
||||||
virtual void SetMinimumWidth(int width) 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:
|
private:
|
||||||
// IMPORTANT: Note about indices.
|
// IMPORTANT: Note about indices.
|
||||||
// Functions in this class deal in two index spaces:
|
// 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.
|
// events doesn't have a mechanism to get a user data pointer.
|
||||||
static NativeMenuWin* open_native_menu_win_;
|
static NativeMenuWin* open_native_menu_win_;
|
||||||
|
|
||||||
|
// Create as window menu.
|
||||||
|
bool create_as_window_menu_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(NativeMenuWin);
|
DISALLOW_COPY_AND_ASSIGN(NativeMenuWin);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue