This file is indexed.

/usr/include/xview_private/item_impl.h is in xviewg-dev 3.2p1.4-28.1.

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
324
325
326
327
328
329
/*	@(#)item_impl.h 20.53 92/06/01 SMI	*/

/*
 *	(c) Copyright 1989 Sun Microsystems, Inc. Sun design patents 
 *	pending in the U.S. and foreign countries. See LEGAL NOTICE 
 *	file for terms of the license.
 */

#ifndef _xview_private_item_impl_already_included
#define _xview_private_item_impl_already_included

/* panels and panel_items are both of type Xv_panel_or_item so that we
 * can pass them to common routines.
 */
#define ITEM_PRIVATE(i)		XV_PRIVATE(Item_info, Xv_item, i)
#define ITEM_PUBLIC(item)	XV_PUBLIC(item)

/*                    Item status flags.  (Used in ip->flags.)
 *
 *  N.B.: Definitions marked with a "!P!" are ALSO used in the flags variable
 * 	  in the Panel_info structure (i.e., panel->flags).
 */

#define IS_PANEL	0x00000001  /* object is a panel !P! */
#define IS_ITEM		0x00000002  /* object is an item */
#define HIDDEN		0x00000004  /* item is not currently displayed */
#define ITEM_X_FIXED	0x00000008  /* item's x coord fixed by user */
#define ITEM_Y_FIXED	0x00000010  /* item's y coord fixed by user */
#define LABEL_X_FIXED	0x00000020  /* label x coord fixed by user */
#define LABEL_Y_FIXED	0x00000040  /* label y coord fixed by user */
#define VALUE_X_FIXED	0x00000080  /* value x coord fixed by user */
#define VALUE_Y_FIXED	0x00000100  /* value y coord fixed by user */
#define CREATED		0x00000200  /* XV_END_CREATE received */
#define WANTS_KEY	0x00000400  /* item wants keystroke events !P! */
#define WANTS_ADJUST	0x00000800  /* item wants ACTION_ADJUST events */
#define BUSY_MODIFIED	0x00001000  /* the BUSY flag was modified via xv_set */
#define DEAF		0x00002000  /* item doesn't want any events */
#define INVOKED		0x00004000
#define LABEL_INVERTED	0x00020000  /* invert the label !P! */
#define PREVIEWING	0x00080000
#define BUSY		0x00100000
#define INACTIVE	0x00200000
#define IS_MENU_ITEM	0x00400000  /* paint item like a menu item */
#define WANTS_ISO	0x00800000  /* item wants all ISO characters */
#define UPDATE_SCROLL   0x01000000  /* need to update scroll size */
#define POST_EVENTS	0x02000000  /* send events through the notifier */
#ifdef OW_I18N
#define WCHAR_NOTIFY	0x04000000  /* wide char version of notify proc */
#define IC_ACTIVE	0x08000000  /* indicate if item should ignore IM */
#endif /* OW_I18N */

#define hidden(ip)	((ip)->flags & HIDDEN ? TRUE : FALSE)
#define busy(ip)	((ip)->flags & BUSY ? TRUE : FALSE)
#define busy_modified(ip) ((ip)->flags & BUSY_MODIFIED ? TRUE : FALSE)
#define inactive(ip)	((ip)->flags & INACTIVE ? TRUE : FALSE)
#define invoked(ip)	((ip)->flags & INVOKED ? TRUE : FALSE)
#define item_fixed(ip)	((ip)->flags & (ITEM_X_FIXED | ITEM_Y_FIXED) ? TRUE : FALSE)
#define label_fixed(ip)	((ip)->flags & (LABEL_X_FIXED|LABEL_Y_FIXED) ? TRUE : FALSE)
#define value_fixed(ip)	((ip)->flags & (VALUE_X_FIXED|VALUE_Y_FIXED) ? TRUE : FALSE)
#define created(ip)	((ip)->flags & CREATED ? TRUE : FALSE)
#define is_menu_item(ip)	((ip)->flags & IS_MENU_ITEM ? TRUE : FALSE)
#define wants_iso(object)	((object)->flags & WANTS_ISO ? TRUE : FALSE)
#define wants_key(object)	((object)->flags & WANTS_KEY ? TRUE : FALSE)
#define wants_adjust(object)	((object)->flags & WANTS_ADJUST ? TRUE : FALSE)
#define label_inverted_flag(object)	((object)->flags & LABEL_INVERTED ? TRUE : FALSE)
#define deaf(object)		((object)->flags & DEAF ? TRUE : FALSE)
#define is_panel(object)	((object)->flags & IS_PANEL ? TRUE : FALSE)
#define is_item(object)		((object)->flags & IS_ITEM ? TRUE : FALSE)
#define previewing(object)	((object)->flags & PREVIEWING ? TRUE : FALSE)
#define update_scroll(object)	((object)->flags & UPDATE_SCROLL ? TRUE : FALSE)
#define post_events(object)	((object)->flags & POST_EVENTS ? TRUE : FALSE)
#ifdef OW_I18N
#define wchar_notify(object)	((object)->flags & WCHAR_NOTIFY ? TRUE : FALSE)
#define ic_active(object)	((object)->flags & IC_ACTIVE ? TRUE : FALSE)
#endif /* OW_I18N */

/* 			miscellaneous constants                          */

#define	BIG			0x7FFF
#define	KEY_NEXT		KEY_BOTTOMRIGHT
#define	ITEM_X_GAP		10	/* # of x pixels between items */
#define	ITEM_Y_GAP		13	/* # of y pixels between items rows */
#define LABEL_X_GAP   		8	/* used in panel_attr.c */
#define LABEL_Y_GAP 		4	/* used in panel_attr.c */

/* 			structures                                      */


/*********************** panel_image **************************************/

typedef enum {
    PIT_SVRIM,
    PIT_STRING
} Panel_image_type;

typedef struct panel_image {
   Panel_image_type im_type;
   unsigned int	inverted : 1;	/* true to invert the image */
   unsigned int boxed : 1;	/* true to enclose image in a box */
   union {
     struct {			
	 char           *text;
#ifdef  OW_I18N
         CHAR        *text_wc;
#endif  /* OW_I18N */
	 Xv_font	 font;
	 short 		 bold;	/* TRUE if text should be bold */
	 Graphics_info	*ginfo;
     } t;        		/* PIT_STRING arm */
     Server_image	 svrim;	/* PIT_SVRIM arm */
   } im_value;
   int color;			/* -1 => use foreground color */
} Panel_image;

#define image_type(image)  	((image)->im_type)
#define image_inverted(image)   ((image)->inverted)
#define image_boxed(image)	((image)->boxed)
#define is_string(image)	(image_type(image) == PIT_STRING)
#define is_svrim(image)		(image_type(image) == PIT_SVRIM)
#define image_string(image)  	((image)->im_value.t.text)
#ifdef  OW_I18N
#define image_string_wc(image)  ((image)->im_value.t.text_wc)
#endif  /* OW_I18N */
#define image_font(image)    	((image)->im_value.t.font)
#define image_bold(image)    	((image)->im_value.t.bold)
#define image_ginfo(image)	((image)->im_value.t.ginfo)
#define image_svrim(image) 	((image)->im_value.svrim)
#define image_color(image)	((image)->color)

#define image_set_type(image, type)	  (image_type(image)    = type)
#define image_set_string(image, string)	  (image_string(image)	= (string))
#ifdef OW_I18N
#define image_set_string_wc(image, string) (image_string_wc(image) = (string))
#endif /* OW_I18N */
#define image_set_svrim(image, svrim)     (image_svrim(image)   = (svrim))
#define image_set_bold(image, bold)  	(image_bold(image)	= (bold) != 0)
#define image_set_inverted(image, inverted) (image_inverted(image) = (inverted) != 0)
#define image_set_boxed(image, boxed)	(image_boxed(image) = (boxed) != 0)
#define image_set_color(image, color)	(image_color(image)	= color)

/*************************** panel item ***********************************/
/* *** NOTE: The first three fields of the item_info struct must match those
 * of the panel_info struct, since these are used interchangably in some
 * routines.
 */
typedef struct item_info {
    /****  DO NOT CHANGE THE ORDER OR PLACEMENT OF THESE THREE FIELDS ****/
   Panel_ops		ops;		/* item type specific operations */
   unsigned int		flags;		/* boolean attributes */
   Panel_item		public_self;	/* back pointer to object */
    /**** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ****/

   Panel_item		child_kbd_focus_item;
					/* NULL: no embedded panel item that
					 * wants the keyboard focus instead
					 * of the parent item.
					 * other: Setting PANEL_CARET_ITEM to
					 * the parent item causes the embedded
					 * panel item 'child_kbd_focus_item'
					 * to receive the input focus. */
   Xv_opaque	        client_data;	/* for client use */
   int                  color_index;    /* for color panel items */
   Panel_item_type	item_type;	/* type of this item */
   Panel_image		label;		/* the label */
   Rect			label_rect;	/* enclosing label rect */
   int			label_width;	/* desired label width
					 * (0= fit to image) */
   Panel_setting	layout;	        /* HORIZONTAL, VERTICAL */
   Xv_opaque		menu;
   struct item_info    *next; 		/* next item */
   int		      (*notify)();	/* notify proc */
   int			notify_status;	/* notify proc status: XV_OK or
					 * XV_ERROR */
   Panel_item		owner;		/* NULL: created by application
					 * other: item that created this item */
   Rect			painted_rect;	/* painted area in the pw */
   struct panel_info   *panel;		/* panel subwindow for the item */
   struct item_info    *previous;	/* previous item */
   Rect			rect;		/* enclosing item rect */
   Panel_setting        repaint;	/* item's repaint behavior */
   Xv_Font		value_font;	/* = panel->std_font by default */
#ifdef OW_I18N
   XFontSet		value_fontset_id; /* = panel->std_fontset_id by 
					       default */
#else
   XID			value_font_xid; /* = panel->std_font_xid by default */
#endif /* OW_I18N */
   Graphics_info       *value_ginfo;	/* OLGX graphics information */
   Rect			value_rect;	/* enclosing value rect */
   int			x_gap;		/* horizontal space to previous item
					 * (-1 = use panel->item_x_offset) */
   int			y_gap;		/* vertical space to previous item
					 * (-1 = use panel->item_y_offset) */
#ifdef OW_I18N
   int                  (*notify_wc)(); /* wide char version of notify proc */
#endif /* OW_I18N */
} Item_info;


/************************************************************************
 * Panel Package private functions					*
 ************************************************************************/
Pkg_private	int 			item_init();
Pkg_private  	Xv_opaque		item_set_avlist();
Pkg_private  	Xv_opaque		item_get_attr();
Pkg_private	int			item_destroy();

/************************************************************************
 * Panel text item private macros, constants, and data structures	*
 ************************************************************************/

/* Macros */
#define TEXT_PRIVATE(item)      \
	XV_PRIVATE(Text_info, Xv_panel_text, item)
#define TEXT_PUBLIC(item)       XV_PUBLIC(item)
#define TEXT_FROM_ITEM(ip)      TEXT_PRIVATE(ITEM_PUBLIC(ip))

/* Constants */
#define PV_HIGHLIGHT TRUE
#define PV_NO_HIGHLIGHT FALSE
#define BOX_Y   2
#define LINE_Y   1
#define SCROLL_BTN_GAP 3        /* space between Scrolling Button and text */

/* dp->flags masks */
#define SELECTING_ITEM          0x00000001
#define TEXT_HIGHLIGHTED        0x00000002
#define UNDERLINED              0x00000004
#define PTXT_READ_ONLY          0x00000008
#define TEXT_SELECTED           0x00000010

		/* text item has a nonzero length primary seleciton */
#define LEFT_SCROLL_BTN_SELECTED  0x00000020
#define RIGHT_SCROLL_BTN_SELECTED 0x00000040
#define SELECTING_SCROLL_BTN    0x00000080
#define SELECTION_REQUEST_FAILED  0x00000100
#ifdef OW_I18N
#define STORED_LENGTH_WC 	  0x00000200 /* TRUE stored in wchar, FALSE mb */
#endif /* OW_I18N */

#define DRAG_MOVE_FILENAME      0x00000001
#define DRAG_MOVE_TEXT          0x00000002
#define DROP_OR_PASTE_FAILED    0x00000004

typedef enum {
    HL_NONE,
    HL_UNDERLINE,
    HL_STRIKE_THRU,
    HL_INVERT
} Highlight;
 
typedef enum {
    INVALID,    /* UNDO => do nothing on */
    INSERT,     /* UNDO => insert contents of undo_buffer into dp->value */    
    DELETE      /* UNDO => delete contents of undo_buffer from dp->value */
} Undo_direction;
 
 
typedef struct {
    Panel_item      public_self;/* back pointer to object */
    int             caret_offset;	/* caret's x offset from right margin
					 * of left arrow (which may be blank).
					 * -1 = invalid. */
    int             caret_position;	/* caret's character position */
    u_char   	    delete_pending;	/* primary selection is
					 * pending-delete */
    int             display_length;	/* in characters */
    int		    display_width;	/* in pixels */
#ifndef OW_I18N
    Selection_item  dnd_item;	/* Drag and Drop Selection Item */
#endif
    int		    dnd_sel_first; /* index of first char in dnd selection */
    int		    dnd_sel_last; /* index of last char in dnd selection */
    Drag_drop	    dnd;	/* Drag and Drop object */
    Drop_site_item  drop_site;	/* Drag and Drop Site item */
    int             ext_first;	/* first char of extended word */
    int             ext_last;	/* last char of extended word */
    int             first_char;	/* first displayed character */
    int             flags;
    int             font_home;
    int             last_char;	/* last displayed character */
    struct timeval  last_click_time;
    char            mask;
    Panel_setting   notify_level;	/* NONE, SPECIFIED, NON_PRINTABLE,
					 * ALL */
    int		    scroll_btn_height;	/* Abbrev_MenuButton_Height() */
    int		    scroll_btn_width;	/* Abbrev_MenuButton_Width() + space */
    unsigned long   sel_length_data;	/* length of selection */
    unsigned long   sel_yield_data;   /* sel yield data -old sel package*/
    int		    select_click_cnt[2]; /* nbr of select mouse clicks
					  * pending (primary, secondary) */
    int		    select_down_x;
	    /* x coordinate of SELECT-down event. Used in determining when to
	     * initiate a drag and drop operation. */
    int		    select_down_y;
	    /* y coordinate of SELECT-down event. Used in determining when to
	     * initiate a drag and drop operation. */
    int             seln_first[2];	/* index of first char selected
					 * (primary, secondary) */
    int             seln_last[2];	/* index of last char selected
					 * (primary, secondary) */
    int             stored_length;
    char           *terminators;
    Rect            text_rect;	/* rect containing text (i.e., not arrows) */
    char	   *undo_buffer;
    Undo_direction  undo_direction;	/* Insert or delete the contents
					 * of the undo_buffer to or from
					 * dp->value, or undo_buffer is
					 * invalid */
    char           *value;
    int             value_offset;	/* right margin of last displayed
					 * char (x offset from right margin
					 * of left arrow) */
#ifdef OW_I18N
    wchar_t         mask_wc;
    int             saved_caret_offset; /* caret's x offset, saved when
                                         * conv mode on and commit. */
    int             saved_caret_position; /* caret's character position */
                                          /* saved when conv mode on and commit */
    wchar_t	   *undo_buffer_wc;	  /* wide char form of undo
					     buffer */
    wchar_t        *value_wc;		  /* wide char form of panel
						value */
    wchar_t        *terminators_wc;	  /* wide char form of
					     terminating characters */
#endif /*OW_I18N*/
}               Text_info;

#endif