15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 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)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/host_desktop.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/views/chrome_views_export.h"
12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ui {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Accelerator;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This contains the list of accelerators for the Aura implementation.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct AcceleratorMapping {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ui::KeyboardCode keycode;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int modifiers;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int command_id;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Returns a list of accelerator mapping information for accelerators
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// handled by Chrome but excluding accelerators handled by Ash.
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CHROME_VIEWS_EXPORT std::vector<AcceleratorMapping> GetAcceleratorList();
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Returns true if the desktop host type indicates Ash and if the
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// command id has an associated accelerator which is handled by
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Ash. If the return is true the accelerator is returned via the
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// second argument.
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CHROME_VIEWS_EXPORT bool GetAshAcceleratorForCommandId(
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int command_id,
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    HostDesktopType host_desktop_type,
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ui::Accelerator* accelerator);
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Returns true if the command id has an associated standard
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// accelerator like cut, copy and paste. If the return is true the
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// accelerator is returned via the second argument.
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CHROME_VIEWS_EXPORT bool GetStandardAcceleratorForCommandId(
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int command_id,
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ui::Accelerator* accelerator);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
50