1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_ 6#define CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_ 7 8#include <vector> 9 10#include "chrome/browser/ui/host_desktop.h" 11#include "chrome/browser/ui/views/chrome_views_export.h" 12#include "ui/events/keycodes/keyboard_codes.h" 13 14namespace ui { 15class Accelerator; 16} 17 18// This contains the list of accelerators for the Aura implementation. 19namespace chrome { 20 21struct AcceleratorMapping { 22 ui::KeyboardCode keycode; 23 int modifiers; 24 int command_id; 25}; 26 27// Returns a list of accelerator mapping information for accelerators 28// handled by Chrome but excluding accelerators handled by Ash. 29CHROME_VIEWS_EXPORT std::vector<AcceleratorMapping> GetAcceleratorList(); 30 31// Returns true if the desktop host type indicates Ash and if the 32// command id has an associated accelerator which is handled by 33// Ash. If the return is true the accelerator is returned via the 34// second argument. 35CHROME_VIEWS_EXPORT bool GetAshAcceleratorForCommandId( 36 int command_id, 37 HostDesktopType host_desktop_type, 38 ui::Accelerator* accelerator); 39 40// Returns true if the command id has an associated standard 41// accelerator like cut, copy and paste. If the return is true the 42// accelerator is returned via the second argument. 43CHROME_VIEWS_EXPORT bool GetStandardAcceleratorForCommandId( 44 int command_id, 45 ui::Accelerator* accelerator); 46 47} // namespace chrome 48 49#endif // CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_ 50