| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/controls/menu/menu_controller.h" | 5 #include "ui/views/controls/menu/menu_controller.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "ui/aura/scoped_window_targeter.h" | 10 #include "ui/aura/scoped_window_targeter.h" |
| 11 #include "ui/aura/window.h" | 11 #include "ui/aura/window.h" |
| 12 #include "ui/events/event.h" | 12 #include "ui/events/event.h" |
| 13 #include "ui/events/event_constants.h" | 13 #include "ui/events/event_constants.h" |
| 14 #include "ui/events/event_handler.h" | 14 #include "ui/events/event_handler.h" |
| 15 #include "ui/events/event_utils.h" | 15 #include "ui/events/event_utils.h" |
| 16 #include "ui/events/null_event_targeter.h" | 16 #include "ui/events/null_event_targeter.h" |
| 17 #include "ui/events/test/event_generator.h" | 17 #include "ui/events/test/event_generator.h" |
| 18 #include "ui/gfx/geometry/point.h" | 18 #include "ui/gfx/geometry/point.h" |
| 19 #include "ui/gfx/geometry/rect.h" | 19 #include "ui/gfx/geometry/rect.h" |
| 20 #include "ui/views/controls/menu/menu_controller_delegate.h" | 20 #include "ui/views/controls/menu/menu_controller_delegate.h" |
| 21 #include "ui/views/controls/menu/menu_delegate.h" | 21 #include "ui/views/controls/menu/menu_delegate.h" |
| 22 #include "ui/views/controls/menu/menu_item_view.h" | 22 #include "ui/views/controls/menu/menu_item_view.h" |
| 23 #include "ui/views/controls/menu/menu_message_loop.h" | 23 #include "ui/views/controls/menu/menu_message_loop.h" |
| 24 #include "ui/views/controls/menu/submenu_view.h" | 24 #include "ui/views/controls/menu/submenu_view.h" |
| 25 #include "ui/views/test/views_test_base.h" | 25 #include "ui/views/test/views_test_base.h" |
| 26 | 26 |
| 27 #if defined(OS_WIN) | |
| 28 #include "ui/views/widget/desktop_aura/desktop_dispatcher_client.h" | |
| 29 #endif | |
| 30 | |
| 31 #if defined(USE_AURA) | 27 #if defined(USE_AURA) |
| 32 #include "ui/aura/scoped_window_targeter.h" | 28 #include "ui/aura/scoped_window_targeter.h" |
| 33 #include "ui/aura/window.h" | 29 #include "ui/aura/window.h" |
| 34 #endif | 30 #endif |
| 35 | 31 |
| 36 #if defined(USE_X11) | 32 #if defined(USE_X11) |
| 37 #include <X11/Xlib.h> | 33 #include <X11/Xlib.h> |
| 38 #undef Bool | 34 #undef Bool |
| 39 #undef None | 35 #undef None |
| 40 #include "ui/events/test/events_test_utils_x11.h" | 36 #include "ui/events/test/events_test_utils_x11.h" |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 private: | 425 private: |
| 430 void Init() { | 426 void Init() { |
| 431 owner_.reset(new Widget); | 427 owner_.reset(new Widget); |
| 432 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 428 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 433 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 429 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 434 owner_->Init(params); | 430 owner_->Init(params); |
| 435 event_generator_.reset( | 431 event_generator_.reset( |
| 436 new ui::test::EventGenerator(GetContext(), owner_->GetNativeWindow())); | 432 new ui::test::EventGenerator(GetContext(), owner_->GetNativeWindow())); |
| 437 owner_->Show(); | 433 owner_->Show(); |
| 438 | 434 |
| 439 #if defined(OS_WIN) | |
| 440 dispatcher_client_.reset(new DesktopDispatcherClient); | |
| 441 aura::client::SetDispatcherClient(owner_->GetNativeView()->GetRootWindow(), | |
| 442 dispatcher_client_.get()); | |
| 443 #endif | |
| 444 | |
| 445 SetupMenuItem(); | 435 SetupMenuItem(); |
| 446 | |
| 447 SetupMenuController(); | 436 SetupMenuController(); |
| 448 } | 437 } |
| 449 | 438 |
| 450 void SetupMenuItem() { | 439 void SetupMenuItem() { |
| 451 menu_delegate_.reset(new TestMenuDelegate); | 440 menu_delegate_.reset(new TestMenuDelegate); |
| 452 menu_item_.reset(new TestMenuItemViewShown(menu_delegate_.get())); | 441 menu_item_.reset(new TestMenuItemViewShown(menu_delegate_.get())); |
| 453 menu_item_->AppendMenuItemWithLabel(1, base::ASCIIToUTF16("One")); | 442 menu_item_->AppendMenuItemWithLabel(1, base::ASCIIToUTF16("One")); |
| 454 menu_item_->AppendMenuItemWithLabel(2, base::ASCIIToUTF16("Two")); | 443 menu_item_->AppendMenuItemWithLabel(2, base::ASCIIToUTF16("Two")); |
| 455 menu_item_->AppendMenuItemWithLabel(3, base::ASCIIToUTF16("Three")); | 444 menu_item_->AppendMenuItemWithLabel(3, base::ASCIIToUTF16("Three")); |
| 456 menu_item_->AppendMenuItemWithLabel(4, base::ASCIIToUTF16("Four")); | 445 menu_item_->AppendMenuItemWithLabel(4, base::ASCIIToUTF16("Four")); |
| 457 } | 446 } |
| 458 | 447 |
| 459 void SetupMenuController() { | 448 void SetupMenuController() { |
| 460 menu_controller_delegate_.reset(new TestMenuControllerDelegate); | 449 menu_controller_delegate_.reset(new TestMenuControllerDelegate); |
| 461 menu_controller_ = | 450 menu_controller_ = |
| 462 new MenuController(true, menu_controller_delegate_.get()); | 451 new MenuController(true, menu_controller_delegate_.get()); |
| 463 menu_controller_->owner_ = owner_.get(); | 452 menu_controller_->owner_ = owner_.get(); |
| 464 menu_controller_->showing_ = true; | 453 menu_controller_->showing_ = true; |
| 465 menu_controller_->SetSelection( | 454 menu_controller_->SetSelection( |
| 466 menu_item_.get(), MenuController::SELECTION_UPDATE_IMMEDIATELY); | 455 menu_item_.get(), MenuController::SELECTION_UPDATE_IMMEDIATELY); |
| 467 menu_item_->SetController(menu_controller_); | 456 menu_item_->SetController(menu_controller_); |
| 468 } | 457 } |
| 469 | 458 |
| 470 #if defined(OS_WIN) | |
| 471 scoped_ptr<aura::client::DispatcherClient> dispatcher_client_; | |
| 472 #endif | |
| 473 | |
| 474 scoped_ptr<Widget> owner_; | 459 scoped_ptr<Widget> owner_; |
| 475 scoped_ptr<ui::test::EventGenerator> event_generator_; | 460 scoped_ptr<ui::test::EventGenerator> event_generator_; |
| 476 scoped_ptr<TestMenuItemViewShown> menu_item_; | 461 scoped_ptr<TestMenuItemViewShown> menu_item_; |
| 477 scoped_ptr<TestMenuControllerDelegate> menu_controller_delegate_; | 462 scoped_ptr<TestMenuControllerDelegate> menu_controller_delegate_; |
| 478 scoped_ptr<MenuDelegate> menu_delegate_; | 463 scoped_ptr<MenuDelegate> menu_delegate_; |
| 479 MenuController* menu_controller_; | 464 MenuController* menu_controller_; |
| 480 TestMenuMessageLoop* test_message_loop_; | 465 TestMenuMessageLoop* test_message_loop_; |
| 481 | 466 |
| 482 DISALLOW_COPY_AND_ASSIGN(MenuControllerTest); | 467 DISALLOW_COPY_AND_ASSIGN(MenuControllerTest); |
| 483 }; | 468 }; |
| (...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 931 base::MessageLoopForUI::current()->PostTask( | 916 base::MessageLoopForUI::current()->PostTask( |
| 932 FROM_HERE, | 917 FROM_HERE, |
| 933 base::Bind(&MenuControllerTest::TestAsynchronousNestedExitOutermost, | 918 base::Bind(&MenuControllerTest::TestAsynchronousNestedExitOutermost, |
| 934 base::Unretained(this))); | 919 base::Unretained(this))); |
| 935 | 920 |
| 936 RunMenu(); | 921 RunMenu(); |
| 937 } | 922 } |
| 938 | 923 |
| 939 } // namespace test | 924 } // namespace test |
| 940 } // namespace views | 925 } // namespace views |
| OLD | NEW |