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 |