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