/usr/include/thunderbird/gfxPlatformGtk.h is in thunderbird-dev 1:24.4.0+build1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef GFX_PLATFORM_GTK_H
#define GFX_PLATFORM_GTK_H
#include "gfxPlatform.h"
#include "nsAutoRef.h"
#include "nsTArray.h"
#if (MOZ_WIDGET_GTK == 2)
extern "C" {
typedef struct _GdkDrawable GdkDrawable;
}
#endif
class gfxFontconfigUtils;
#ifndef MOZ_PANGO
class FontFamily;
class FontEntry;
typedef struct FT_LibraryRec_ *FT_Library;
#endif
class gfxPlatformGtk : public gfxPlatform {
public:
gfxPlatformGtk();
virtual ~gfxPlatformGtk();
static gfxPlatformGtk *GetPlatform() {
return (gfxPlatformGtk*) gfxPlatform::GetPlatform();
}
already_AddRefed<gfxASurface> CreateOffscreenSurface(const gfxIntSize& size,
gfxASurface::gfxContentType contentType);
mozilla::TemporaryRef<mozilla::gfx::ScaledFont>
GetScaledFontForFont(mozilla::gfx::DrawTarget* aTarget, gfxFont *aFont);
nsresult GetFontList(nsIAtom *aLangGroup,
const nsACString& aGenericFamily,
nsTArray<nsString>& aListOfFonts);
nsresult UpdateFontList();
nsresult ResolveFontName(const nsAString& aFontName,
FontResolverCallback aCallback,
void *aClosure, bool& aAborted);
nsresult GetStandardFamilyName(const nsAString& aFontName, nsAString& aFamilyName);
gfxFontGroup *CreateFontGroup(const nsAString &aFamilies,
const gfxFontStyle *aStyle,
gfxUserFontSet *aUserFontSet);
#ifdef MOZ_PANGO
/**
* Look up a local platform font using the full font face name (needed to
* support @font-face src local() )
*/
virtual gfxFontEntry* LookupLocalFont(const gfxProxyFontEntry *aProxyEntry,
const nsAString& aFontName);
/**
* Activate a platform font (needed to support @font-face src url() )
*
*/
virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry,
const uint8_t *aFontData,
uint32_t aLength);
/**
* Check whether format is supported on a platform or not (if unclear,
* returns true).
*/
virtual bool IsFontFormatSupported(nsIURI *aFontURI,
uint32_t aFormatFlags);
#endif
#ifndef MOZ_PANGO
FontFamily *FindFontFamily(const nsAString& aName);
FontEntry *FindFontEntry(const nsAString& aFamilyName, const gfxFontStyle& aFontStyle);
already_AddRefed<gfxFont> FindFontForChar(uint32_t aCh, gfxFont *aFont);
bool GetPrefFontEntries(const nsCString& aLangGroup, nsTArray<nsRefPtr<gfxFontEntry> > *aFontEntryList);
void SetPrefFontEntries(const nsCString& aLangGroup, nsTArray<nsRefPtr<gfxFontEntry> >& aFontEntryList);
#endif
#ifndef MOZ_PANGO
FT_Library GetFTLibrary();
#endif
#if (MOZ_WIDGET_GTK == 2)
static void SetGdkDrawable(gfxASurface *target,
GdkDrawable *drawable);
static GdkDrawable *GetGdkDrawable(gfxASurface *target);
#endif
static int32_t GetDPI();
bool UseXRender() {
#if defined(MOZ_X11) && defined(MOZ_PLATFORM_MAEMO)
// XRender is not accelerated on the Maemo at the moment, and
// X server pixman is out of our control; it's likely to be
// older than (our) cairo's. So fall back on software
// rendering for more predictable performance.
// This setting will likely not be relevant when we have
// GL-accelerated compositing. We know of other platforms
// with bad drivers where we'd like to also use client side
// rendering, but until we have the ability to featuer test
// this, we'll only disable this for maemo.
return true;
#elif defined(MOZ_X11)
if (GetContentBackend() != mozilla::gfx::BACKEND_NONE &&
GetContentBackend() != mozilla::gfx::BACKEND_CAIRO)
return false;
return sUseXRender;
#else
return false;
#endif
}
virtual gfxImageFormat GetOffscreenFormat();
virtual int GetScreenDepth() const;
protected:
static gfxFontconfigUtils *sFontconfigUtils;
private:
virtual qcms_profile *GetPlatformCMSOutputProfile();
virtual bool SupportsOffMainThreadCompositing();
#ifdef MOZ_X11
static bool sUseXRender;
#endif
};
#endif /* GFX_PLATFORM_GTK_H */
|