This file is indexed.

/usr/include/wx-3.0/wx/fontutil.h is in wx3.0-headers 3.0.4+dfsg-3.

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
/////////////////////////////////////////////////////////////////////////////
// Name:        wx/fontutil.h
// Purpose:     font-related helper functions
// Author:      Vadim Zeitlin
// Modified by:
// Created:     05.11.99
// Copyright:   (c) wxWidgets team
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

// General note: this header is private to wxWidgets and is not supposed to be
// included by user code. The functions declared here are implemented in
// msw/fontutil.cpp for Windows, unix/fontutil.cpp for GTK/Motif &c.

#ifndef _WX_FONTUTIL_H_
#define _WX_FONTUTIL_H_

// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------

#include "wx/font.h"        // for wxFont and wxFontEncoding

#if defined(__WXMSW__)
    #include "wx/msw/wrapwin.h"
#endif

class WXDLLIMPEXP_FWD_BASE wxArrayString;
struct WXDLLIMPEXP_FWD_CORE wxNativeEncodingInfo;

#if defined(_WX_X_FONTLIKE)

// the symbolic names for the XLFD fields (with examples for their value)
//
// NB: we suppose that the font always starts with the empty token (font name
//     registry field) as we never use nor generate it anyhow
enum wxXLFDField
{
    wxXLFD_FOUNDRY,     // adobe
    wxXLFD_FAMILY,      // courier, times, ...
    wxXLFD_WEIGHT,      // black, bold, demibold, medium, regular, light
    wxXLFD_SLANT,       // r/i/o (roman/italique/oblique)
    wxXLFD_SETWIDTH,    // condensed, expanded, ...
    wxXLFD_ADDSTYLE,    // whatever - usually nothing
    wxXLFD_PIXELSIZE,   // size in pixels
    wxXLFD_POINTSIZE,   // size in points
    wxXLFD_RESX,        // 72, 75, 100, ...
    wxXLFD_RESY,
    wxXLFD_SPACING,     // m/p/c (monospaced/proportional/character cell)
    wxXLFD_AVGWIDTH,    // average width in 1/10 pixels
    wxXLFD_REGISTRY,    // iso8859, rawin, koi8, ...
    wxXLFD_ENCODING,    // 1, r, r, ...
    wxXLFD_MAX
};

#endif // _WX_X_FONTLIKE

// ----------------------------------------------------------------------------
// types
// ----------------------------------------------------------------------------

// wxNativeFontInfo is platform-specific font representation: this struct
// should be considered as opaque font description only used by the native
// functions, the user code can only get the objects of this type from
// somewhere and pass it somewhere else (possibly save them somewhere using
// ToString() and restore them using FromString())

class WXDLLIMPEXP_CORE wxNativeFontInfo
{
public:
#if wxUSE_PANGO
    PangoFontDescription *description;

    // Pango font description doesn't have these attributes, so we store them
    // separately and handle them ourselves in {To,From}String() methods.
    bool m_underlined;
    bool m_strikethrough;
#elif defined(_WX_X_FONTLIKE)
    // the members can't be accessed directly as we only parse the
    // xFontName on demand
private:
    // the components of the XLFD
    wxString     fontElements[wxXLFD_MAX];

    // the full XLFD
    wxString     xFontName;

    // true until SetXFontName() is called
    bool         m_isDefault;

    // return true if we have already initialized fontElements
    inline bool HasElements() const;

public:
    // init the elements from an XLFD, return true if ok
    bool FromXFontName(const wxString& xFontName);

    // return false if we were never initialized with a valid XLFD
    bool IsDefault() const { return m_isDefault; }

    // return the XLFD (using the fontElements if necessary)
    wxString GetXFontName() const;

    // get the given XFLD component
    wxString GetXFontComponent(wxXLFDField field) const;

    // change the font component
    void SetXFontComponent(wxXLFDField field, const wxString& value);

    // set the XFLD
    void SetXFontName(const wxString& xFontName);
#elif defined(__WXMSW__)
    wxNativeFontInfo(const LOGFONT& lf_) : lf(lf_) { }

    LOGFONT      lf;
#elif defined(__WXPM__)
    // OS/2 native structures that define a font
    FATTRS       fa;
    FONTMETRICS  fm;
    FACENAMEDESC fn;
#elif defined(__WXOSX__)
public:
    wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); }
    wxNativeFontInfo( int size,
                  wxFontFamily family,
                  wxFontStyle style,
                  wxFontWeight weight,
                  bool underlined,
                  const wxString& faceName,
                  wxFontEncoding encoding)
    { Init(size,family,style,weight,underlined,faceName,encoding); }

    ~wxNativeFontInfo() { Free(); }

    wxNativeFontInfo& operator=(const wxNativeFontInfo& info)
    {
        if (this != &info)
        {
            Free();
            Init(info);
        }
        return *this;
    }

    void Init(CTFontDescriptorRef descr);
    void Init(const wxNativeFontInfo& info);
    void Init(int size,
                  wxFontFamily family,
                  wxFontStyle style,
                  wxFontWeight weight,
                  bool underlined,
                  const wxString& faceName ,
                  wxFontEncoding encoding);

    void Free();
    void EnsureValid();

    static void UpdateNamesMap(const wxString& familyname, CTFontDescriptorRef descr);
    static void UpdateNamesMap(const wxString& familyname, CTFontRef font);

    bool m_descriptorValid;

#if wxOSX_USE_ATSU_TEXT
    bool            m_atsuFontValid;
    // the atsu font ID
    wxUint32        m_atsuFontID;
    // the qd styles that are not intrinsic to the font above
    wxInt16         m_atsuAdditionalQDStyles;
#if wxOSX_USE_CARBON
    wxInt16         m_qdFontFamily;
    wxInt16         m_qdFontStyle;
#endif
#endif

    int           m_pointSize;
    wxFontFamily  m_family;
    wxFontStyle   m_style;
    wxFontWeight  m_weight;
    bool          m_underlined;
    bool          m_strikethrough;
    wxString      m_faceName;
    wxFontEncoding m_encoding;
public :
#else // other platforms
    //
    //  This is a generic implementation that should work on all ports
    //  without specific support by the port.
    //
    #define wxNO_NATIVE_FONTINFO

    int           pointSize;
    wxFontFamily  family;
    wxFontStyle   style;
    wxFontWeight  weight;
    bool          underlined;
    bool          strikethrough;
    wxString      faceName;
    wxFontEncoding encoding;
#endif // platforms

    // default ctor (default copy ctor is ok)
    wxNativeFontInfo() { Init(); }

#if wxUSE_PANGO
private:
    void Init(const wxNativeFontInfo& info);
    void Free();

public:
    wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); }
    ~wxNativeFontInfo() { Free(); }

    wxNativeFontInfo& operator=(const wxNativeFontInfo& info)
    {
        if (this != &info)
        {
            Free();
            Init(info);
        }
        return *this;
    }
#endif // wxUSE_PANGO

    // reset to the default state
    void Init();

    // init with the parameters of the given font
    void InitFromFont(const wxFont& font)
    {
#if wxUSE_PANGO
        Init(*font.GetNativeFontInfo());
#else
        // translate all font parameters
        SetStyle((wxFontStyle)font.GetStyle());
        SetWeight((wxFontWeight)font.GetWeight());
        SetUnderlined(font.GetUnderlined());
        SetStrikethrough(font.GetStrikethrough());
#if defined(__WXMSW__)
        if ( font.IsUsingSizeInPixels() )
            SetPixelSize(font.GetPixelSize());
        else
            SetPointSize(font.GetPointSize());
#else
        SetPointSize(font.GetPointSize());
#endif

        // set the family/facename
        SetFamily((wxFontFamily)font.GetFamily());
        const wxString& facename = font.GetFaceName();
        if ( !facename.empty() )
        {
            SetFaceName(facename);
        }

        // deal with encoding now (it may override the font family and facename
        // so do it after setting them)
        SetEncoding(font.GetEncoding());
#endif // !wxUSE_PANGO
    }

    // accessors and modifiers for the font elements
    int GetPointSize() const;
    wxSize GetPixelSize() const;
    wxFontStyle GetStyle() const;
    wxFontWeight GetWeight() const;
    bool GetUnderlined() const;
    bool GetStrikethrough() const;
    wxString GetFaceName() const;
    wxFontFamily GetFamily() const;
    wxFontEncoding GetEncoding() const;

    void SetPointSize(int pointsize);
    void SetPixelSize(const wxSize& pixelSize);
    void SetStyle(wxFontStyle style);
    void SetWeight(wxFontWeight weight);
    void SetUnderlined(bool underlined);
    void SetStrikethrough(bool strikethrough);
    bool SetFaceName(const wxString& facename);
    void SetFamily(wxFontFamily family);
    void SetEncoding(wxFontEncoding encoding);

    // sets the first facename in the given array which is found
    // to be valid. If no valid facename is given, sets the
    // first valid facename returned by wxFontEnumerator::GetFacenames().
    // Does not return a bool since it cannot fail.
    void SetFaceName(const wxArrayString &facenames);


    // it is important to be able to serialize wxNativeFontInfo objects to be
    // able to store them (in config file, for example)
    bool FromString(const wxString& s);
    wxString ToString() const;

    // we also want to present the native font descriptions to the user in some
    // human-readable form (it is not platform independent neither, but can
    // hopefully be understood by the user)
    bool FromUserString(const wxString& s);
    wxString ToUserString() const;
};

// ----------------------------------------------------------------------------
// font-related functions (common)
// ----------------------------------------------------------------------------

// translate a wxFontEncoding into native encoding parameter (defined above),
// returning true if an (exact) macth could be found, false otherwise (without
// attempting any substitutions)
WXDLLIMPEXP_CORE bool wxGetNativeFontEncoding(wxFontEncoding encoding,
                                              wxNativeEncodingInfo *info);

// test for the existence of the font described by this facename/encoding,
// return true if such font(s) exist, false otherwise
WXDLLIMPEXP_CORE bool wxTestFontEncoding(const wxNativeEncodingInfo& info);

// ----------------------------------------------------------------------------
// font-related functions (X and GTK)
// ----------------------------------------------------------------------------

#ifdef _WX_X_FONTLIKE
    #include "wx/unix/fontutil.h"
#endif // X || GDK

#endif // _WX_FONTUTIL_H_