summaryrefslogtreecommitdiffstats
path: root/gfx
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 20:14:50 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 20:14:50 +0000
commit0ea548267d30b10c6d7f899573eb37b793c1b346 (patch)
treedddce09315c6010d047dda6ec9c29d6aa5befc36 /gfx
parenta0c4b343dfa64780f7395d7e3a6e8ebe853a5ec3 (diff)
downloadchromium_src-0ea548267d30b10c6d7f899573eb37b793c1b346.zip
chromium_src-0ea548267d30b10c6d7f899573eb37b793c1b346.tar.gz
chromium_src-0ea548267d30b10c6d7f899573eb37b793c1b346.tar.bz2
Moves gtk accelerator processing functions to base/gtk_util so I can
use them from views and gfx. Sorry for the new patch on this and not an update. Not sure what happened. BUG=none TEST=none Review URL: http://codereview.chromium.org/2809047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51409 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gfx')
-rw-r--r--gfx/canvas_skia_linux.cc33
1 files changed, 2 insertions, 31 deletions
diff --git a/gfx/canvas_skia_linux.cc b/gfx/canvas_skia_linux.cc
index 7c8c6c7..d63f9b4 100644
--- a/gfx/canvas_skia_linux.cc
+++ b/gfx/canvas_skia_linux.cc
@@ -10,6 +10,7 @@
#include <pango/pangocairo.h>
#include "base/logging.h"
+#include "base/gtk_util.h"
#include "base/utf_string_conversions.h"
#include "gfx/font.h"
#include "gfx/gtk_util.h"
@@ -87,36 +88,6 @@ static void UpdateCairoFontOptions() {
g_free(rgba_style);
}
-// TODO(sky): this is a copy of the one in gtk_util. It needs to be moved to a
-// common place.
-// Common implementation of ConvertAcceleratorsFromWindowsStyle() and
-// RemoveWindowsStyleAccelerators().
-// Replaces all ampersands (as used in our grd files to indicate mnemonics)
-// to |target|. Similarly any underscores get replaced with two underscores as
-// is needed by pango.
-std::string ConvertAmperstandsTo(const std::string& label,
- const std::string& target) {
- std::string ret;
- ret.reserve(label.length() * 2);
- for (size_t i = 0; i < label.length(); ++i) {
- if ('_' == label[i]) {
- ret.push_back('_');
- ret.push_back('_');
- } else if ('&' == label[i]) {
- if (i + 1 < label.length() && '&' == label[i + 1]) {
- ret.push_back('&');
- ++i;
- } else {
- ret.append(target);
- }
- } else {
- ret.push_back(label[i]);
- }
- }
-
- return ret;
-}
-
} // namespace
namespace gfx {
@@ -194,7 +165,7 @@ static void SetupPangoLayout(PangoLayout* layout,
g_free(escaped_text);
} else if (flags & gfx::Canvas::HIDE_PREFIX) {
// Remove the ampersand character.
- utf8 = ConvertAmperstandsTo(utf8, "");
+ utf8 = gtk_util::RemoveWindowsStyleAccelerators(utf8);
pango_layout_set_text(layout, utf8.data(), utf8.size());
} else {
pango_layout_set_text(layout, utf8.data(), utf8.size());