menu_label_accelerator_util_linux.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright 2013 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 UI_BASE_ACCELERATORS_MENU_LABEL_ACCELERATOR_UTIL_LINUX_H_
6#define UI_BASE_ACCELERATORS_MENU_LABEL_ACCELERATOR_UTIL_LINUX_H_
7
8#include <string>
9
10#include "ui/base/ui_base_export.h"
11
12namespace ui {
13
14// Change windows accelerator style to GTK style. (GTK uses _ for
15// accelerators.  Windows uses & with && as an escape for &.)
16UI_BASE_EXPORT std::string ConvertAcceleratorsFromWindowsStyle(
17    const std::string& label);
18
19// Removes the "&" accelerators from a Windows label.
20UI_BASE_EXPORT std::string RemoveWindowsStyleAccelerators(
21    const std::string& label);
22
23// Escapes "&" characters by doubling them so that later calling
24// ConvertAcceleratorsFromWindowsStyle() will return the original string (except
25// with "_" characters doubled, to escape them for GTK).
26UI_BASE_EXPORT std::string EscapeWindowsStyleAccelerators(
27    const std::string& label);
28
29}  // namespace ui
30
31#endif  // UI_BASE_ACCELERATORS_MENU_LABEL_ACCELERATOR_UTIL_LINUX_H_
32