This file is indexed.

/usr/include/Xm/FontSP.h is in libmotif-dev 2.3.8-2build1.

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
/*
 * Motif
 *
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
 *
 * These libraries and programs are free software; you can
 * redistribute them and/or modify them under the terms of the GNU
 * Lesser General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * These libraries and programs are distributed in the hope that
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with these librararies and programs; if not, write
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301 USA
 * 
 */

#ifndef	_XmFontSelectorP_h
#define	_XmFontSelectorP_h

#if defined(VMS) || defined(__VMS)
#include <X11/apienvset.h>
#endif

/************************************************************
 *      INCLUDE FILES
 *************************************************************/
#include <Xm/ManagerP.h>
#include <Xm/PanedP.h>
#include <Xm/FontS.h>

#ifdef __cplusplus
extern "C" {
#endif

#define XmFontSelectorIndex (XmPanedIndex + 1)

#define XmFontS_current_font(w) (((XmFontSelectorWidget)(w))->fs.current_font)
#define XmFontS_show_font_name(w) (((XmFontSelectorWidget)(w))->fs.show_font_name)
#define XmFontS_iso_fonts_only(w) (((XmFontSelectorWidget)(w))->fs.iso_fonts_only)
#define XmFontS_use_scaling(w) (((XmFontSelectorWidget)(w))->fs.use_scaling)
#define XmFontS_text_rows(w) (((XmFontSelectorWidget)(w))->fs.text_rows)
#define XmFontS_font_changed_callback(w) (((XmFontSelectorWidget)(w))->fs.font_changed_callback)
#define XmFontS_strings(w) (((XmFontSelectorWidget)(w))->fs.strings)
#define XmFontS_xlfd_mode(w) (((XmFontSelectorWidget)(w))->fs.xlfd_mode)
#define XmFontS_font_info(w) (((XmFontSelectorWidget)(w))->fs.font_info)
#define XmFontS_text(w) (((XmFontSelectorWidget)(w))->fs.text)
#define XmFontS_name_label(w) (((XmFontSelectorWidget)(w))->fs.name_label)
#define XmFontS_middle_pane(w) (((XmFontSelectorWidget)(w))->fs.middle_pane)
#define XmFontS_family_box(w) (((XmFontSelectorWidget)(w))->fs.family_box)
#define XmFontS_size_box(w) (((XmFontSelectorWidget)(w))->fs.size_box)
#define XmFontS_bold_toggle(w) (((XmFontSelectorWidget)(w))->fs.bold_toggle)
#define XmFontS_italic_toggle(w) (((XmFontSelectorWidget)(w))->fs.italic_toggle)
#define XmFontS_xlfd_toggle(w) (((XmFontSelectorWidget)(w))->fs.xlfd_toggle)
#define XmFontS_other_toggle(w) (((XmFontSelectorWidget)(w))->fs.other_toggle)
#define XmFontS_show_font_toggle(w) (((XmFontSelectorWidget)(w))->fs.show_font_toggle)
#define XmFontS_use_scaling_toggle(w) (((XmFontSelectorWidget)(w))->fs.use_scaling_toggle)
#define XmFontS_option_menu(w) (((XmFontSelectorWidget)(w))->fs.option_menu)
#define XmFontS_encoding_menu_shell(w) (((XmFontSelectorWidget)(w))->fs.encoding_menu_shell)
#define XmFontS_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.xlfd_only)
#define XmFontS_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.xlfd_sensitive)
#define XmFontS_num_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.num_xlfd_only)
#define XmFontS_num_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.num_xlfd_sensitive)
#define XmFontS_alloc_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.alloc_xlfd_only)
#define XmFontS_alloc_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.alloc_xlfd_sensitive)
#define XmFontS_user_state(w) (((XmFontSelectorWidget)(w))->fs.user_state)
#define XmFontS_current_text(w) (((XmFontSelectorWidget)(w))->fs.current_text)
#define XmFontS_get_font(w) (((XmFontSelectorWidget)(w))->fs.get_font)
#define XmFontS_encoding(w) (((XmFontSelectorWidget)(w))->fs.encoding)
#define XmFontS_old_fontlist(w) (((XmFontSelectorWidget)(w))->fs.old_fontlist)
#define XmFontS_old_fontdata(w) (((XmFontSelectorWidget)(w))->fs.old_fontdata)
#define XmFontS_dpi75(w) (((XmFontSelectorWidget)(w))->fs.dpi75)
#define XmFontS_dpi100(w) (((XmFontSelectorWidget)(w))->fs.dpi100)
#define XmFontS_dpiAny(w) (((XmFontSelectorWidget)(w))->fs.dpiAny)
#define XmFontS_proportional(w) (((XmFontSelectorWidget)(w))->fs.proportional)
#define XmFontS_monospace(w) (((XmFontSelectorWidget)(w))->fs.monospace)
#define XmFontS_any_spacing(w) (((XmFontSelectorWidget)(w))->fs.any_spacing)


#define SAMPLE_TEXT(fsw)        (XmFontS_strings((fsw)).sample_text)
#define ANY_STRING(fsw)		(XmFontS_strings((fsw)).any)
#define LOWER_ANY_STRING(fsw) 	(XmFontS_strings((fsw)).lower_any)
#define FAMILY_STRING(fsw)	(XmFontS_strings((fsw)).family)
#define SIZE_STRING(fsw) 	(XmFontS_strings((fsw)).size)
#define BOLD_STRING(fsw)	(XmFontS_strings((fsw)).bold)
#define ITALIC_STRING(fsw)	(XmFontS_strings((fsw)).italic)

#define OPTION_STRING(fsw)	(XmFontS_strings((fsw)).option)

#define BOTH_STRING(fsw)	(XmFontS_strings((fsw)).both)
#define MONO_SPACE_STRING(fsw) 	(XmFontS_strings((fsw)).mono_space)
#define PROPORTIONAL_STRING(fsw)(XmFontS_strings((fsw)).prop_space)

#define XLFD_STRING(fsw)	(XmFontS_strings((fsw)).xlfd)
#define OTHER_FONT_STRING(fsw)	(XmFontS_strings((fsw)).other_font)

#define DPI75_STRING(fsw)	(XmFontS_strings((fsw)).dpi_75)
#define DPI100_STRING(fsw)	(XmFontS_strings((fsw)).dpi_100)

#define SCALING_STRING(fsw)	  (XmFontS_strings((fsw)).scaling)
#define SHOW_NAME_STRING(fsw)	  (XmFontS_strings((fsw)).show_name)

#define ENCODING_ONLY_STRING(fsw) (XmFontS_strings((fsw)).encoding_only)
#define ENCODING_LIST(fsw)    (XmFontS_strings((fsw)).encoding_list)

#define ENCODING_STRING(fsw)    XmFontS_encoding((fsw))

/* this structure provides the table for font selection */

#define WEIGHT_LEN    15
#define SLANT_LEN      3
#define SPACING_LEN    3

typedef unsigned char Flag;
typedef unsigned int LongFlag;

#define FIXED  		((Flag) 1 << 0)
#define BOLD   		((Flag) 1 << 1)
#define ITALIC 		((Flag) 1 << 2)
#define PROPORTIONAL 	((Flag) 1 << 3)
#define SCALED_75       ((Flag) 1 << 4)
#define SCALED_100	((Flag) 1 << 5)
#define DPI_75 		((Flag) 1 << 6)
#define DPI_100		((Flag) 1 << 7)

/*
 * This allows me to reuse flag bits in the user_state since
 * ISO is never set in the user state.
 */

#define USER_PROPORTIONAL   	PROPORTIONAL
#define USER_FIXED		FIXED

typedef struct _FontData {
    XrmQuark familyq;		/* quarkified family name. */
    XrmQuark weightq;		/* quarkified weight name. */
    char slant[SLANT_LEN + 1];
    char spacing[SPACING_LEN + 1];
    short resolution_x, resolution_y;
    short point_size;
    XrmQuark encoding;
    Flag state;
} FontData;

typedef struct FamilyInfo {
    XrmQuark nameq;		/* quarkified family name. */
    XrmQuark bold_nameq, medium_nameq;
    XrmQuark italic_nameq, upright_nameq;
    char fixed_spacing[SPACING_LEN + 1];
    LongFlag sizes_75, sizes_100;
    Flag state;
    XrmQuark *encodings;
    int encoding_alloc;
} FamilyInfo;

typedef struct FontInfo {
    FontData *current_font;
    String *others;
    FamilyInfo *family_info;
    short num_others;
    short num_families;
    short resolution;
} FontInfo;

typedef struct _XmFontSelStringInfo {
    XmString sample_text;
    XmString any, lower_any;
    XmString family, size;
    XmString bold, italic, option, both;
    XmString mono_space, prop_space;
    XmString xlfd, other_font;
    XmString dpi_75, dpi_100;
    XmString scaling, encoding_only, show_name;

    String *encoding_list;
} XmFontSelStringInfo;

/************************************************************
 *      TYPEDEFS AND DEFINES
 *************************************************************/

typedef struct _FontSelectorClassPart
{
    XtPointer extension;	/* For later use. */
} FontSelectorClassPart;

typedef struct _XmFontSelectorClassRec
{
    CoreClassPart		core_class;
    CompositeClassPart		composite_class;
    ConstraintClassPart 	constraint_class;
    XmManagerClassPart  	manager_class;
    XmPanedClassPart		paned_class;
    FontSelectorClassPart	font_selector_class;
} XmFontSelectorClassRec;

typedef struct _XmFontSelectorPart
{	
    /* Resources */
    String		current_font;   /* The currently shown font. */

    Boolean 		show_font_name;	/* show the font name window? */
    Boolean		iso_fonts_only;	/* show only iso fonts? */
    Boolean		use_scaling;    /* use font scaling? */
    
    Dimension		text_rows; 	/* The number of text rows to display*/

    XtCallbackList	font_changed_callback; /* when font changes. */

    XmFontSelStringInfo strings; /* The font selectors external strings. */

    /* Private Data */

    Boolean xlfd_mode;		/* True if we are int xlfd mode. */

    FontInfo 		*font_info;		/* The font information. */
    Widget text, name_label;	/* Text and label widget below top area. */
    Widget middle_pane;		/* The option info middle pane. */
    Widget family_box;		/* The family choices combo box. */
    Widget size_box;		/* The family choices combo box. */
    Widget bold_toggle, italic_toggle; /* The bold and italic toggle buttons */
    Widget xlfd_toggle, other_toggle; /* The xlfd and other font toggles. */
    Widget show_font_toggle, use_scaling_toggle;
    Widget option_menu;		/* The option menu. */
    Widget encoding_menu_shell;	/* The menu shell associated with the */
    				/* encoding menu. */

    WidgetList xlfd_only;	/* Only visable when in xlfd mode. */
    WidgetList xlfd_sensitive;	/* Only sensitive when in xlfd mode. */

    char num_xlfd_only, num_xlfd_sensitive;
    char alloc_xlfd_only, alloc_xlfd_sensitive;

    Flag user_state;		/* The current user selections. */

    String current_text;	/* The current text in the text widget. */
    String get_font;		/* Where to store returned get values on
				   current_font. */
    String encoding;		/* The encoding, may change. */

    /* 
     * The previously set font_data, free when font changed, or widget
     * destroyed. 
     */

    XmFontList old_fontlist;	
    XFontStruct * old_fontdata;

    /*
     * These values were added 2/1/94
     */
    Widget dpi75, dpi100, dpiAny; /* DPI toggle buttons.		*/
    Widget proportional, monospace, any_spacing;
                                /* Spacing toggle buttons		*/
} XmFontSelectorPart;

typedef struct _XmFontSelectorRec
{
    CorePart		core;
    CompositePart 	composite;
    ConstraintPart 	constraint;
    XmManagerPart 	manager;
    XmPanedPart 	paned;
    XmFontSelectorPart	fs;
} XmFontSelectorRec;

typedef struct _XmFontSelectorConstraintsPart
{
    XtPointer dummy;
} XmFontSelectorConstraintsPart;

typedef struct _XmFontSelectorConstraintsRec
{
    XmManagerConstraintPart       manager;
    XmPanedConstraintsPart        paned;
    XmFontSelectorConstraintsPart fs;
} XmFontSelectorConstraintsRec, *XmFontSelectorConstraints;

/************************************************************
 *      MACROS
 *************************************************************/

/************************************************************
 *      GLOBAL DECLARATIONS
 *************************************************************/

/************************************************************
 *       EXTERNAL DECLARATIONS
 ************************************************************/

/************************************************************
 *       STATIC DECLARATIONS
 ************************************************************/

extern XmFontSelectorClassRec	xmFontSelectorClassRec;

#ifdef __cplusplus
}	/* Closes scope of 'extern "C"' declaration */
#endif

#if defined(VMS) || defined(__VMS)
#include <X11/apienvrst.h>
#endif

#endif	/* _XmFontSelectorP_h - DON'T ADD STUFF AFTER THIS #endif */