linux_font_delegate.h revision 116680a4aac90f2aa7413d9095a592090648e557
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_GFX_LINUX_FONT_DELEGATE_H_
6#define UI_GFX_LINUX_FONT_DELEGATE_H_
7
8#include <string>
9
10#include "ui/gfx/font_render_params.h"
11#include "ui/gfx/gfx_export.h"
12
13namespace gfx {
14
15// Allows a Linux platform specific overriding of font preferences.
16class GFX_EXPORT LinuxFontDelegate {
17 public:
18  virtual ~LinuxFontDelegate() {}
19
20  // Sets the dynamically loaded singleton that provides font preferences.
21  // This pointer is not owned, and if this method is called a second time,
22  // the first instance is not deleted.
23  static void SetInstance(LinuxFontDelegate* instance);
24
25  // Returns a LinuxFontDelegate instance for the toolkit used in
26  // the user's desktop environment.
27  //
28  // Can return NULL, in case no toolkit has been set. (For example, if we're
29  // running with the "--ash" flag.)
30  static const LinuxFontDelegate* instance();
31
32  // Whether we should antialias our text.
33  virtual bool UseAntialiasing() const = 0;
34
35  // What sort of text hinting should we apply?
36  virtual FontRenderParams::Hinting GetHintingStyle() const = 0;
37
38  // What sort of subpixel rendering should we perform.
39  virtual FontRenderParams::SubpixelRendering
40      GetSubpixelRenderingStyle() const = 0;
41
42  // Returns the Pango description for the default UI font. The format matches
43  // that returned by pango_font_description_to_string().
44  virtual std::string GetDefaultFontDescription() const = 0;
45};
46
47}  // namespace gfx
48
49#endif  // UI_GFX_LINUX_FONT_DELEGATE_H_
50