#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/views/controls/menu/menu_model_adapter.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/submenu_view.h"
#include "ui/views/layout/grid_layout.h"
class AccessibilityViewsDelegate : public views::TestViewsDelegate {
public:
AccessibilityViewsDelegate() {}
- virtual ~AccessibilityViewsDelegate() {}
+ ~AccessibilityViewsDelegate() override {}
// Overridden from views::TestViewsDelegate:
- virtual void NotifyAccessibilityEvent(
- views::View* view, ui::AXEvent event_type) OVERRIDE {
+ void NotifyAccessibilityEvent(views::View* view,
+ ui::AXEvent event_type) override {
AccessibilityEventRouterViews::GetInstance()->HandleAccessibilityEvent(
view, event_type);
}
+ private:
DISALLOW_COPY_AND_ASSIGN(AccessibilityViewsDelegate);
};
: contents_(contents) { }
// Overridden from views::WidgetDelegate:
- virtual void DeleteDelegate() OVERRIDE { delete this; }
- virtual views::View* GetContentsView() OVERRIDE { return contents_; }
- virtual const views::Widget* GetWidget() const OVERRIDE {
+ void DeleteDelegate() override { delete this; }
+ views::View* GetContentsView() override { return contents_; }
+ const views::Widget* GetWidget() const override {
return contents_->GetWidget();
}
- virtual views::Widget* GetWidget() OVERRIDE { return contents_->GetWidget(); }
+ views::Widget* GetWidget() override { return contents_->GetWidget(); }
private:
views::View* contents_;
role_(role) {
}
- virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE {
+ void GetAccessibleState(ui::AXViewState* state) override {
views::View::GetAccessibleState(state);
state->name = name_;
state->role = role_;
AccessibilityEventRouterViewsTest() : control_event_count_(0) {
}
- virtual void SetUp() {
+ void SetUp() override {
#if defined(OS_WIN)
ole_initializer_.reset(new ui::ScopedOleInitializer());
#endif
#if defined(USE_AURA)
// The ContextFactory must exist before any Compositors are created.
bool enable_pixel_output = false;
- ui::InitializeContextFactoryForTests(enable_pixel_output);
+ ui::ContextFactory* context_factory =
+ ui::InitializeContextFactoryForTests(enable_pixel_output);
aura_test_helper_.reset(new aura::test::AuraTestHelper(&message_loop_));
- aura_test_helper_->SetUp();
+ aura_test_helper_->SetUp(context_factory);
new wm::DefaultActivationClient(aura_test_helper_->root_window());
#endif // USE_AURA
EnableAccessibilityAndListenToFocusNotifications();
}
- virtual void TearDown() {
+ void TearDown() override {
ClearCallback();
#if defined(USE_AURA)
aura_test_helper_->TearDown();
ui::TerminateContextFactoryForTests();
#endif
delete views::ViewsDelegate::views_delegate;
- views::ViewsDelegate::views_delegate = NULL;
// The Widget's FocusManager is deleted using DeleteSoon - this
// forces it to be deleted now, so we don't have any memory leaks
}
views::Widget* CreateWindowWithContents(views::View* contents) {
- gfx::NativeView context = NULL;
+ gfx::NativeWindow context = NULL;
#if defined(USE_AURA)
context = aura_test_helper_->root_window();
#endif
window->CloseNow();
}
+TEST_F(AccessibilityEventRouterViewsTest, AccessibilityFocusableView) {
+ // Create a view with a child view.
+ views::View* parent = new views::View();
+ views::View* child = new views::View();
+ parent->AddChildView(child);
+
+ // Put the view in a window.
+ views::Widget* window = CreateWindowWithContents(parent);
+
+ // Since the child view has no accessibility focusable ancestors, this
+ // should still be the child view.
+ views::View* accessible_view =
+ AccessibilityEventRouterViews::FindFirstAccessibleAncestor(child);
+ EXPECT_EQ(accessible_view, child);
+
+ // Now make the parent view accessibility focusable. Calling
+ // FindFirstAccessibleAncestor() again on child should return the parent
+ // view.
+ parent->SetAccessibilityFocusable(true);
+ accessible_view =
+ AccessibilityEventRouterViews::FindFirstAccessibleAncestor(child);
+ EXPECT_EQ(accessible_view, parent);
+
+ window->CloseNow();
+}
+
namespace {
class SimpleMenuDelegate : public ui::SimpleMenuModel::Delegate {
};
SimpleMenuDelegate() {}
- virtual ~SimpleMenuDelegate() {}
+ ~SimpleMenuDelegate() override {}
views::MenuItemView* BuildMenu() {
menu_model_.reset(new ui::SimpleMenuModel(this));
menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
menu_model_->AddItem(IDC_MENU_ITEM_3, ASCIIToUTF16("Item 3"));
- menu_runner_.reset(new views::MenuRunner(menu_model_.get()));
- return menu_runner_->GetMenu();
+ menu_adapter_.reset(new views::MenuModelAdapter(menu_model_.get()));
+ views::MenuItemView* menu_view = menu_adapter_->CreateMenu();
+ menu_runner_.reset(new views::MenuRunner(menu_view, 0));
+ return menu_view;
}
- virtual bool IsCommandIdChecked(int command_id) const OVERRIDE {
- return false;
- }
+ bool IsCommandIdChecked(int command_id) const override { return false; }
- virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE {
- return true;
- }
+ bool IsCommandIdEnabled(int command_id) const override { return true; }
- virtual bool IsCommandIdVisible(int command_id) const OVERRIDE {
+ bool IsCommandIdVisible(int command_id) const override {
return command_id != IDC_MENU_INVISIBLE;
}
- virtual bool GetAcceleratorForCommandId(
- int command_id,
- ui::Accelerator* accelerator) OVERRIDE {
+ bool GetAcceleratorForCommandId(int command_id,
+ ui::Accelerator* accelerator) override {
return false;
}
- virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE {
- }
+ void ExecuteCommand(int command_id, int event_flags) override {}
private:
scoped_ptr<ui::SimpleMenuModel> menu_model_;
+ scoped_ptr<views::MenuModelAdapter> menu_adapter_;
scoped_ptr<views::MenuRunner> menu_runner_;
DISALLOW_COPY_AND_ASSIGN(SimpleMenuDelegate);
{ SimpleMenuDelegate::IDC_MENU_ITEM_3, 2, 3 },
};
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) {
+ for (size_t i = 0; i < arraysize(kTestCases); ++i) {
int index = 0;
int count = 0;