15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2013 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 UI_GFX_LINUX_FONT_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UI_GFX_LINUX_FONT_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/font_render_params.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/gfx_export.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace gfx { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ScopedPangoFontDescription; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Allows a Linux platform-specific overriding of font preferences. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GFX_EXPORT LinuxFontDelegate { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~LinuxFontDelegate() {} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets the dynamically loaded singleton that provides font preferences. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This pointer is not owned, and if this method is called a second time, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the first instance is not deleted. 26868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) static void SetInstance(LinuxFontDelegate* instance); 27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns a LinuxFontDelegate instance for the toolkit used in 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // the user's desktop environment. 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Can return NULL, in case no toolkit has been set. (For example, if we're 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // running with the "--ash" flag.) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static const LinuxFontDelegate* instance(); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the default font rendering settings. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual FontRenderParams GetDefaultFontRenderParams() const = 0; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the Pango description for the default UI font. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual scoped_ptr<ScopedPangoFontDescription> 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetDefaultPangoFontDescription() const = 0; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the resolution (as pixels-per-inch) that should be used to convert 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // font sizes between points and pixels. -1 is returned if the DPI is unset. 44868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual double GetFontDPI() const = 0; 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace gfx 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // UI_GFX_LINUX_FONT_DELEGATE_H_ 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)