1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#ifndef UI_TEST_BASE_UI_CONTROLS_AURA_H_ 6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define UI_TEST_BASE_UI_CONTROLS_AURA_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback_forward.h" 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "ui/base/test/ui_controls.h" 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/native_widget_types.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui_controls { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An interface to provide Aura implementation of UI control. 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class UIControlsAura { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UIControlsAura(); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~UIControlsAura(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendKeyPress(gfx::NativeWindow window, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::KeyboardCode key, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool control, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool shift, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool alt, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool command) = 0; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendKeyPressNotifyWhenDone(gfx::NativeWindow window, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::KeyboardCode key, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool control, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool shift, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool alt, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool command, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& task) = 0; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Simulate a mouse move. (x,y) are absolute screen coordinates. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendMouseMove(long x, long y) = 0; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendMouseMoveNotifyWhenDone(long x, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) long y, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& task) = 0; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a mouse down and/or up message. The click will be sent to wherever 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the cursor currently is, so be sure to move the cursor before calling this 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (and be sure the cursor has arrived!). 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendMouseEvents(MouseButton type, int state) =0; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendMouseEventsNotifyWhenDone(MouseButton type, int state, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& task) = 0; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Same as SendMouseEvents with BUTTON_UP | BUTTON_DOWN. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool SendMouseClick(MouseButton type) = 0; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Runs |closure| after processing all pending ui events. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunClosureAfterAllPendingUIEvents( 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& closure) = 0; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui_controls 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif // UI_TEST_BASE_UI_CONTROLS_AURA_H_ 58