This file is indexed.

/usr/include/Xm/HierarchyP.h is in libmotif-dev 2.3.4-13.

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
/*
 * 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 _XmHierarchyP_h
#define _XmHierarchyP_h

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

/************************************************************
*	INCLUDE FILES
*************************************************************/
#include <Xm/ManagerP.h>
#include <Xm/ExtP.h>
#include <Xm/Hierarchy.h>

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

#ifdef __cplusplus
extern "C" {
#endif

#define IS_MAPPED	(1L << 1)
#define IS_COMPRESSED   (1L << 2)
#define PARENT_GONE	(1L << 3)
#define IS_SELECTED	(1L << 4)

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

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

typedef struct _HierNodeInfo {
    /*
     * Public (Resource) data.
     */

    XmHierarchyNodeState state;	/* State of the node. */
    Widget parent;		/* parent of this child. */
    Widget insert_before;	/* Sibling to insert this node before;
				   NULL will place it at the end. */
    Pixmap open_folder, close_folder; /* Images for open/close buttons. */

    /*
     * Private data.
     */

    Widget widget;		/* Back pointer to this node's widget. */
    Widget open_close_button;	/* The open or close button. */

    struct _HierarchyConstraintRec ** children;       /* norm children. */
    Cardinal num_children;	/* number of each type of children. */
    Cardinal alloc_attrs, alloc;   /* amount of allocated space for each */

    unsigned char status;	/* 8 status bits. */
} HierNodeInfo;

typedef struct _HierarchyConstraintRec {
    XmManagerConstraintPart manager;
    HierNodeInfo hierarchy;
} HierarchyConstraintRec, XmHierarchyConstraintRec, *HierarchyConstraints;

typedef void	(*XmHierarchyNodeProc)(HierarchyConstraints);
typedef void	(*XmHierarchyExtraNodeProc)(Widget, HierarchyConstraints);
typedef void	(*XmHierarchyBuildTableProc)(Widget, 
					     HierarchyConstraints, Cardinal *);
typedef void	(*XmHierarchyResetButtonProc)(Widget, HierarchyConstraints);
    
typedef struct {
    /* Class function for changing node state. */
    XmHierarchyNodeProc		change_node_state;
    /* map or unmap a given node. */
    XmHierarchyNodeProc 	map_node;
    XmHierarchyNodeProc		unmap_node;
    /* Unmaps all the extra nodes. */
    XmHierarchyExtraNodeProc	unmap_all_extra_nodes;
    /* Builds the node table. */
    XmHierarchyBuildTableProc	build_node_table;
    /* Correctly sets the state of the open/close button. */
    XmHierarchyResetButtonProc	reset_open_close_button;
    /* Toggles state of a node. */
    XtCallbackProc 		toggle_node_state;
    /* Just in case we need it later. */
    XtPointer 			extension;	
} HierarchyClassPart;

typedef struct _XmHierarchyClassRec {
    CoreClassPart		core_class;
    CompositeClassPart		composite_class;
    ConstraintClassPart		constraint_class;
    XmManagerClassPart		manager_class;
    HierarchyClassPart          hierarchy_class;
} XmHierarchyClassRec;

externalref XmHierarchyClassRec xmHierarchyClassRec;

typedef struct _HierarchyPart {
    /* resources */

    Boolean auto_close;		/* Auto-close children when parent is closed?*/
    Boolean refigure_mode;	/* Do refigures? */

    Dimension h_margin;		/* The horizontal margin. */
    Dimension v_margin;		/* The vertical margin. */
    Pixmap open_folder, close_folder; /* Images for open/close buttons. */

    XtCallbackList node_state_callback;	/* Called when the node button is
					   clicked */
    XtCallbackList node_state_changed_callback;	/* Called when the node state
						   changes */
    XtCallbackList node_state_beg_end_callback; /* Called when beginning
						     or ending a set of node
						     state changes */

    /* private state */

    HierarchyConstraintRec ** node_table;
    HierarchyConstraints top_node; 
    Cardinal num_nodes, alloc_nodes;
    Pixmap def_open_folder, def_close_folder; /* Default folder button Images*/

    XtWorkProcId work_proc_id;  /* work proc id for the move nodes wp */
} HierarchyPart;

typedef struct _XmHierarchyRec {
    CorePart		core;
    CompositePart	composite;
    ConstraintPart	constraint;
    XmManagerPart	manager;
    HierarchyPart	hierarchy;
} XmHierarchyRec;

/*
 * These are necessary because the XmResolvePartOffset macros assume a
 * certain naming convention
 */
typedef HierarchyPart XmHierarchyPart;
typedef HierNodeInfo  XmHierarchyConstraintPart;

#define XmHierarchy_auto_close(w) (((XmHierarchyWidget)(w))->hierarchy.auto_close)
#define XmHierarchy_refigure_mode(w) (((XmHierarchyWidget)(w))->hierarchy.refigure_mode)
#define XmHierarchy_h_margin(w) (((XmHierarchyWidget)(w))->hierarchy.h_margin)
#define XmHierarchy_v_margin(w) (((XmHierarchyWidget)(w))->hierarchy.v_margin)
#define XmHierarchy_open_folder(w) (((XmHierarchyWidget)(w))->hierarchy.open_folder)
#define XmHierarchy_close_folder(w) (((XmHierarchyWidget)(w))->hierarchy.close_folder)
#define XmHierarchy_node_state_callback(w) (((XmHierarchyWidget)(w))->hierarchy.node_state_callback)
#define XmHierarchy_node_state_changed_callback(w) (((XmHierarchyWidget)(w))->hierarchy.node_state_changed_callback)
#define XmHierarchy_node_state_beg_end_callback(w) (((XmHierarchyWidget)(w))->hierarchy.node_state_beg_end_callback)
#define XmHierarchy_node_table(w) (((XmHierarchyWidget)(w))->hierarchy.node_table)
#define XmHierarchy_top_node(w) (((XmHierarchyWidget)(w))->hierarchy.top_node)
#define XmHierarchy_num_nodes(w) (((XmHierarchyWidget)(w))->hierarchy.num_nodes)
#define XmHierarchy_alloc_nodes(w) (((XmHierarchyWidget)(w))->hierarchy.alloc_nodes)
#define XmHierarchy_def_open_folder(w) (((XmHierarchyWidget)(w))->hierarchy.def_open_folder)
#define XmHierarchy_def_close_folder(w) (((XmHierarchyWidget)(w))->hierarchy.def_close_folder)
#define XmHierarchy_work_proc_id(w) (((XmHierarchyWidget)(w))->hierarchy.work_proc_id)

#define XmHierarchyC_state(constraints) ((constraints)->hierarchy.state)
#define XmHierarchyC_parent(constraints) ((constraints)->hierarchy.parent)
#define XmHierarchyC_insert_before(constraints) ((constraints)->hierarchy.insert_before)
#define XmHierarchyC_open_folder(constraints) ((constraints)->hierarchy.open_folder)
#define XmHierarchyC_close_folder(constraints) ((constraints)->hierarchy.close_folder)
#define XmHierarchyC_widget(constraints) ((constraints)->hierarchy.widget)
#define XmHierarchyC_open_close_button(constraints) ((constraints)->hierarchy.open_close_button)
#define XmHierarchyC_children(constraints) ((constraints)->hierarchy.children)
#define XmHierarchyC_num_children(constraints) ((constraints)->hierarchy.num_children)
#define XmHierarchyC_alloc_attrs(constraints) ((constraints)->hierarchy.alloc_attrs)
#define XmHierarchyC_alloc(constraints) ((constraints)->hierarchy.alloc)
#define XmHierarchyC_status(constraints) ((constraints)->hierarchy.status)

#define XtInheritChangeNodeState       ((XmHierarchyNodeProc)_XtInherit)
#define XtInheritUnmapAllExtraNodes    ((XmHierarchyExtraNodeProc)_XtInherit)
#define XtInheritUnmapNode 	       ((XmHierarchyNodeProc)_XtInherit)
#define XtInheritMapNode 	       ((XmHierarchyNodeProc)_XtInherit)
#define XtInheritBuildNodeTable        ((XmHierarchyBuildTableProc)_XtInherit)
#define XtInheritResetOpenCloseButton  ((XmHierarchyResetButtonProc)_XtInherit)
#define XtInheritToggleNodeState       ((XtCallbackProc)_XtInherit)

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


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

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

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

#endif /* _HierarchyP_h */