This file is indexed.

/usr/include/xview/window.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
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
/*      @(#)window.h 20.99 93/06/28 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_window_DEFINED
#define xview_window_DEFINED

/*
 ***********************************************************************
 *			Include Files
 ***********************************************************************
 */

#include <xview/generic.h>
#include <xview/server.h>
#include <xview/screen.h>
#include <xview/drawable.h>
#include <xview/win_input.h>
#include <xview/rect.h>
#include <X11/Xlib.h>

/*
 ***********************************************************************
 *			Definitions and Macros
 ***********************************************************************
 */

/*
 * PUBLIC #defines 
 */

#define	WINDOW				&xv_window_pkg

#define WIN_EXTEND_TO_EDGE 		-1
#define WIN_DEFAULT_BORDER_WIDTH	1
#define WIN_MESSAGE_DATA_SIZE	        20

#define window_main_loop	xv_main_loop

typedef enum {                  /* values for WIN_SCALE_STATE */
	WIN_SCALE_SMALL,
	WIN_SCALE_MEDIUM,
	WIN_SCALE_LARGE,
	WIN_SCALE_EXTRALARGE
} Window_rescale_state;

#ifndef ForgetGravity
/* Bit Gravity */
 
#define ForgetGravity           0
#define NorthWestGravity        1
#define NorthGravity            2
#define NorthEastGravity        3
#define WestGravity             4
#define CenterGravity           5
#define EastGravity             6
#define SouthWestGravity        7
#define SouthGravity            8
#define SouthEastGravity        9
#define StaticGravity           10

 /* Window gravity + bit gravity above */

#define UnmapGravity            0
#endif


/*
 * Useful conversion macros
 */
#define XV_SCREEN_FROM_WINDOW(window) \
	(Xv_Screen) xv_get(window, XV_SCREEN)

#define XV_SERVER_FROM_WINDOW(window) \
	(Xv_Server) xv_get(xv_get(window, XV_SCREEN), SCREEN_SERVER)

#define XV_DISPLAY_FROM_WINDOW(window) \
	(Display *) xv_get(xv_get(xv_get(window, XV_SCREEN), \
		SCREEN_SERVER), XV_DISPLAY)

/*
 * Window-fitting macros 
 */
#define window_fit(win) \
   (void)window_set(win, WIN_FIT_HEIGHT, 0, WIN_FIT_WIDTH, 0, 0)

#define window_fit_height(win) \
   (void)window_set(win, WIN_FIT_HEIGHT, 0, 0)

#define window_fit_width(win) \
   (void)window_set(win, WIN_FIT_WIDTH, 0, 0)

/*
 * PRIVATE #defines
 */

/*
 * Attribute macros 
 */
#define	WIN_ATTR(type, ordinal)		ATTR(ATTR_PKG_WIN, type, ordinal)
#define WIN_ATTR_LIST(ltype, type, ordinal) \
		WIN_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal))
/*
 * Fake types -- This should be resolved someday 
 */
#define ATTR_IMASK			ATTR_OPAQUE

/*
 * WIN_RECT_INFO flags for package implementors 
 */
#define	WIN_X_SET			0x1
#define	WIN_Y_SET			0x2
#define	WIN_WIDTH_SET			0x4
#define	WIN_HEIGHT_SET			0x8

/*
 * PUBLIC #defines
 * For SunView 1 Compatibility Only 
 */

#define WIN_X				XV_X
#define WIN_Y				XV_Y
#define WIN_WIDTH			XV_WIDTH
#define WIN_HEIGHT			XV_HEIGHT
#define WIN_FONT			XV_FONT
#define WIN_DEVICE_NAME			XV_XNAME
#define WIN_DEVICE_NUMBER		XV_DEVICE_NUMBER
#define WIN_TOP_MARGIN			XV_TOP_MARGIN
#define WIN_BOTTOM_MARGIN		XV_BOTTOM_MARGIN
#define WIN_LEFT_MARGIN			XV_LEFT_MARGIN
#define WIN_RIGHT_MARGIN		XV_RIGHT_MARGIN
#define WIN_NAME			XV_NAME
#define WIN_OWNER			XV_OWNER
#define WIN_FD				XV_SELF
#define WIN_PIXWIN			XV_SELF
#define WIN_RECT			XV_RECT

#define WINDOW_TYPE			ATTR_PKG_WIN

#define	WIN_CONSUME_KBD_EVENT		WIN_CONSUME_EVENT
#define	WIN_IGNORE_KBD_EVENT		WIN_IGNORE_EVENT
#define	WIN_CONSUME_KBD_EVENTS		WIN_CONSUME_EVENTS	
#define	WIN_IGNORE_KBD_EVENTS		WIN_IGNORE_EVENTS
#define	WIN_PICK_INPUT_MASK		WIN_INPUT_MASK
#define	WIN_CONSUME_PICK_EVENT		WIN_CONSUME_EVENT
#define	WIN_IGNORE_PICK_EVENT		WIN_IGNORE_EVENT
#define	WIN_CONSUME_PICK_EVENTS		WIN_CONSUME_EVENTS
#define	WIN_IGNORE_PICK_EVENTS		WIN_IGNORE_EVENTS

#define WIN_NOTIFY_EVENT_PROC		WIN_NOTIFY_SAFE_EVENT_PROC

#ifdef OW_I18N
#define WIN_IM_PREEDIT_START 		WIN_IC_PREEDIT_START
#define	WIN_IM_PREEDIT_DRAW  		WIN_IC_PREEDIT_DRAW
#define	WIN_IM_PREEDIT_CARET  		WIN_IC_PREEDIT_CARET
#define	WIN_IM_PREEDIT_DONE  		WIN_IC_PREEDIT_DONE
#define	WIN_IM_STATUS_START  		WIN_IC_STATUS_START
#define	WIN_IM_STATUS_DRAW   		WIN_IC_STATUS_DRAW
#define	WIN_IM_STATUS_DONE   		WIN_IC_STATUS_DONE
#define	WIN_IM_LUC_START     		WIN_IC_LUC_START
#define	WIN_IM_LUC_DRAW      		WIN_IC_LUC_DRAW
#define	WIN_IM_LUC_DONE      		WIN_IC_LUC_DONE
#define	WIN_IM_LUC_PROCESS   		WIN_IC_LUC_PROCESS
#endif /* OW_I18N */


/*
 ***********************************************************************
 *		Typedefs, Enumerations, and Structures
 ***********************************************************************
 */

typedef	Xv_opaque 		Xv_Window;
typedef	Xv_opaque 		Xv_window;
typedef	Attr_pkg	 	Window_type;

typedef enum {
	/*
	 * Public Attributes 
	 */
	WIN_ALARM		= WIN_ATTR(ATTR_NO_VALUE, 	  1),	/* --S */
	WIN_BACK		= WIN_ATTR(ATTR_NO_VALUE,	  2),   /* -S- */
	WIN_BACKGROUND_PIXMAP	= WIN_ATTR(ATTR_OPAQUE,		  3),
	WIN_BELOW		= WIN_ATTR(ATTR_OPAQUE,		  4),	/* --S */
	WIN_CLIENT_DATA		= WIN_ATTR(ATTR_OPAQUE,		  8),
	WIN_COLUMNS		= WIN_ATTR(ATTR_INT,		 12),
	WIN_COLUMN_GAP		= WIN_ATTR(ATTR_INT,		 16),
	WIN_COLUMN_WIDTH	= WIN_ATTR(ATTR_INT,		 20),
#ifdef OW_I18N
        WIN_IC_PREEDIT_START    = WIN_ATTR(ATTR_INT_PAIR,        21),   /* C-S */
        WIN_IC_PREEDIT_DRAW     = WIN_ATTR(ATTR_INT_PAIR,        22),   /* C-S */
        WIN_IC_PREEDIT_DONE     = WIN_ATTR(ATTR_INT_PAIR,        23),   /* C-S */
#endif /* OW_I18N */
	WIN_CONSUME_EVENT	= WIN_ATTR(ATTR_ENUM,		 24),	/* --S */
#ifdef OW_I18N
        WIN_IC_STATUS_START     = WIN_ATTR(ATTR_INT_PAIR,        25),   /* C-S */
        WIN_IC_STATUS_DRAW      = WIN_ATTR(ATTR_INT_PAIR,        26),   /* C-S */
        WIN_IC_STATUS_DONE      = WIN_ATTR(ATTR_INT_PAIR,        27),   /* C-S */
#endif /* OW_I18N */
	WIN_CONSUME_EVENTS	
			= WIN_ATTR_LIST(ATTR_NULL, ATTR_ENUM,	 28),	/* --S */
#ifdef OW_I18N
        WIN_IC_LUC_START        = WIN_ATTR(ATTR_INT_PAIR,        29),   /* C-S */
        WIN_IC_LUC_DRAW         = WIN_ATTR(ATTR_INT_PAIR,        30),   /* C-S */
        WIN_IC_LUC_DONE         = WIN_ATTR(ATTR_INT_PAIR,        31),   /* C-S */
#endif /* OW_I18N */
	WIN_CURSOR		= WIN_ATTR(ATTR_CURSOR_PTR,	 32),
#ifdef OW_I18N
        WIN_IC_LUC_PROCESS      = WIN_ATTR(ATTR_INT_PAIR,        33),   /* C-S */
        WIN_IC_PREEDIT_CARET    = WIN_ATTR(ATTR_INT_PAIR,        34),   /* C-S */
#endif /* OW_I18N */

	WIN_DEPTH		= WIN_ATTR(ATTR_INT,		102),	/* CG- */
	/* WIN_DEPTH_V2 is needed to keep backwards compatibility with
	 * V2.  WIN_DEPTH was mistakenly defined as and ATTR_NO_VALUE,
	 * which meant that despite the documentation you couldn't
	 * use it in the creation of a window.  Thus we created
	 * a new WIN_DEPTH that is of the correct type, and moved
	 * the old WIN_DEPTH to WIN_DEPTH_V2.  This can be removed
	 * when it has sufficiently aged.
	 */
	WIN_DEPTH_V2		= WIN_ATTR(ATTR_NO_VALUE,	 36),	/* -G- */

	WIN_DESIRED_HEIGHT	= WIN_ATTR(ATTR_INT, 		 40),
	WIN_DESIRED_WIDTH	= WIN_ATTR(ATTR_INT, 		 44),
	WIN_ERROR_MSG		= WIN_ATTR(ATTR_STRING,		 48),
#ifdef  OW_I18N
        WIN_ERROR_MSG_WCS       = WIN_ATTR(ATTR_WSTRING,          49),
#endif  /* OW_I18N */
	WIN_EVENT_PROC		= WIN_ATTR(ATTR_FUNCTION_PTR,	 52),
	WIN_FIT_HEIGHT		= WIN_ATTR(ATTR_Y,		 60),
	WIN_FIT_WIDTH		= WIN_ATTR(ATTR_X,		 64),
	WIN_FRONT		= WIN_ATTR(ATTR_NO_VALUE,	 66),   /* -S- */
	WIN_GLYPH_FONT		= WIN_ATTR(ATTR_OPAQUE,		 67),
	WIN_GRAB_ALL_INPUT	= WIN_ATTR(ATTR_BOOLEAN,	 68),	/* --S */
	WIN_HORIZONTAL_SCROLLBAR= WIN_ATTR(ATTR_OPAQUE,		 72),
#ifdef OW_I18N
#ifdef  FULL_R5
	WIN_X_IM_STYLE_MASK	= WIN_ATTR(ATTR_LONG,		 73),	/* CG- */
#endif  /* FULL_R5 */
        WIN_IC                  = WIN_ATTR(ATTR_OPAQUE,          74),   /* -GS */
        WIN_USE_IM              = WIN_ATTR(ATTR_BOOLEAN,         75),   /* CG- */
#endif /* OW_I18N */
	WIN_IGNORE_EVENT	= WIN_ATTR(ATTR_ENUM,		 76),	/* --S */
	WIN_IGNORE_EVENTS
			= WIN_ATTR_LIST(ATTR_NULL, ATTR_ENUM,	 80),	/* --S */
#ifdef OW_I18N
	WIN_IC_COMMIT_STRING	= WIN_ATTR(ATTR_STRING,		 81),  /* -G- */
	WIN_IC_COMMIT_STRING_WCS= WIN_ATTR(ATTR_WSTRING,	 82),  /* -G- */
	WIN_IC_CONVERSION	= WIN_ATTR(ATTR_BOOLEAN,	 83),  /* -GS */
#endif /* OW_I18N */
	WIN_INPUT_MASK		= WIN_ATTR(ATTR_IMASK,		 84),
#ifdef OW_I18N
	WIN_IC_RESET		= WIN_ATTR(ATTR_NO_VALUE,	 85),  /* --S */
	WIN_IC_ACTIVE		= WIN_ATTR(ATTR_BOOLEAN,	 86),  /* CGS */
#endif /* OW_I18N */
	WIN_IS_CLIENT_PANE	= WIN_ATTR(ATTR_NO_VALUE,	 88),	
	WIN_MENU		= WIN_ATTR(ATTR_OPAQUE,		 92),
	WIN_MOUSE_XY		= WIN_ATTR(ATTR_XY,		 96),	/* -GS */
	WIN_PARENT		= WIN_ATTR(ATTR_OPAQUE,		100),	/* -GS */
	WIN_PERCENT_HEIGHT	= WIN_ATTR(ATTR_INT,		104),
	WIN_PERCENT_WIDTH	= WIN_ATTR(ATTR_INT, 		108),
	WIN_RIGHT_OF		= WIN_ATTR(ATTR_OPAQUE,		116),	/* --S */
	WIN_ROWS		= WIN_ATTR(ATTR_INT,		120),
	WIN_ROW_GAP		= WIN_ATTR(ATTR_INT,		124),
	WIN_ROW_HEIGHT		= WIN_ATTR(ATTR_INT,		128),
	WIN_SCREEN_RECT		= WIN_ATTR(ATTR_NO_VALUE,	132),	/* -G- */
	WIN_SET_FOCUS		= WIN_ATTR(ATTR_NO_VALUE,	228),	/* --S */
	WIN_VERTICAL_SCROLLBAR	= WIN_ATTR(ATTR_OPAQUE,		140),
	WIN_MESSAGE_TYPE	= WIN_ATTR(ATTR_OPAQUE, 	141),
	WIN_MESSAGE_FORMAT	= WIN_ATTR(ATTR_INT, 		142),
	WIN_MESSAGE_DATA	= WIN_ATTR(ATTR_OPAQUE,		143),
	WIN_BORDER		= WIN_ATTR(ATTR_BOOLEAN, 	148),
	/*
	 * Private Attributes 
	 */
	WIN_ALARM_DATA		= WIN_ATTR(ATTR_OPAQUE, 	144),	/* -G- */
	WIN_FINDINTERSECT	= WIN_ATTR(ATTR_XY, 		152),	/* -G- */
	WIN_FRAME		= WIN_ATTR(ATTR_OPAQUE, 	156),
	WIN_INPUT_ONLY		= WIN_ATTR(ATTR_NO_VALUE,	160),
	WIN_IS_IN_FULLSCREEN_MODE = WIN_ATTR(ATTR_INT, 		164),
	WIN_IS_ROOT		= WIN_ATTR(ATTR_NO_VALUE,	168),
	WIN_KBD_FOCUS		= WIN_ATTR(ATTR_BOOLEAN, 	172),
	WIN_LAYOUT_PROC		= WIN_ATTR(ATTR_FUNCTION_PTR,	176),
	WIN_LOCKDATA		= WIN_ATTR(ATTR_NO_VALUE, 	180), 	/* --S */
	WIN_MAP			= WIN_ATTR(ATTR_BOOLEAN,	184),
	WIN_NOTIFY_SAFE_EVENT_PROC 	= WIN_ATTR(ATTR_FUNCTION_PTR,	192),
	WIN_NOTIFY_IMMEDIATE_EVENT_PROC	= WIN_ATTR(ATTR_FUNCTION_PTR,	193),
	WIN_OUTER_RECT		= WIN_ATTR(ATTR_RECT_PTR, 	200),	
	WIN_RECT_INFO		= WIN_ATTR(ATTR_INT, 		204),
	WIN_RETAINED		= WIN_ATTR(ATTR_BOOLEAN, 	208),
	WIN_SELECTION_WINDOW	= WIN_ATTR(ATTR_NO_VALUE, 	212),	/* --S */
	WIN_TOP_LEVEL		= WIN_ATTR(ATTR_BOOLEAN, 	216),
	WIN_TOP_LEVEL_NO_DECOR	= WIN_ATTR(ATTR_BOOLEAN, 	220),
	WIN_TRANSPARENT		= WIN_ATTR(ATTR_NO_VALUE,	223),	/* C-- */
	WIN_SAVE_UNDER		= WIN_ATTR(ATTR_BOOLEAN, 	226),
	WIN_REMOVE_CARET	= WIN_ATTR(ATTR_NO_VALUE,	227),   /* --S */
	WIN_X_PAINT_WINDOW	= WIN_ATTR(ATTR_BOOLEAN,        229),
	WIN_INHERIT_COLORS	= WIN_ATTR(ATTR_BOOLEAN,        230),
	WIN_CMS			= WIN_ATTR(ATTR_OPAQUE,		231),
        WIN_DYNAMIC_VISUAL      = WIN_ATTR(ATTR_BOOLEAN,        232),
	WIN_CMS_CHANGE		= WIN_ATTR(ATTR_NO_VALUE,	241),
	WIN_COLOR_INFO		= WIN_ATTR(ATTR_OPAQUE, 	242),
	WIN_CMD_LINE		= WIN_ATTR(ATTR_STRING, 	244),
	WIN_NO_CLIPPING		= WIN_ATTR(ATTR_BOOLEAN,	245),
	WIN_ADD_DROP_INTEREST   = WIN_ATTR(ATTR_OPAQUE,         246),
	WIN_DELETE_DROP_INTEREST  = WIN_ATTR(ATTR_OPAQUE,       247),
	WIN_ADD_DROP_ITEM       = WIN_ATTR(ATTR_OPAQUE,         252),
	WIN_DELETE_DROP_ITEM    = WIN_ATTR(ATTR_LONG,           253),
	WIN_UNGRAB_SELECT	= WIN_ATTR(ATTR_NO_VALUE,	255),
	WIN_COLLAPSE_MOTION_EVENTS = WIN_ATTR(ATTR_OPAQUE,	201),

	/*
         * Public Attributes
         */
	WIN_X_CLIP_RECTS	= WIN_ATTR(ATTR_OPAQUE,		233),  /* -G- */
	WIN_CMS_DATA		= WIN_ATTR(ATTR_OPAQUE,		235),
	WIN_CMS_NAME		= WIN_ATTR(ATTR_STRING,		236),
	WIN_BIT_GRAVITY         = WIN_ATTR(ATTR_INT,            237),
	WIN_WINDOW_GRAVITY      = WIN_ATTR(ATTR_INT,            238),
	WIN_FOREGROUND_COLOR	= WIN_ATTR(ATTR_INT,            239),
	WIN_BACKGROUND_COLOR	= WIN_ATTR(ATTR_INT,            240),
	WIN_X_COLOR_INDICES	= WIN_ATTR(ATTR_OPAQUE,         243),
	WIN_CONSUME_X_EVENT_MASK = WIN_ATTR(ATTR_LONG,		248),
	WIN_IGNORE_X_EVENT_MASK = WIN_ATTR(ATTR_LONG,		249),
	WIN_X_EVENT_MASK 	= WIN_ATTR(ATTR_LONG,		250),
	WIN_COLLAPSE_EXPOSURES  = WIN_ATTR(ATTR_BOOLEAN,	251),
	WIN_SOFT_FNKEY_LABELS   = WIN_ATTR(ATTR_STRING, 	203),

	/*
	 * Public Attributes 
	 * For SunView 1 Compatibility
	 */
	WIN_TYPE		= WIN_ATTR(ATTR_ENUM,		224)
} Window_attribute;
#define WIN_SHOW	XV_SHOW

typedef enum {
	WIN_NULL_VALUE = 0,
	WIN_NO_EVENTS,
	WIN_UP_EVENTS,
	WIN_ASCII_EVENTS,
	WIN_UP_ASCII_EVENTS,
	WIN_MOUSE_BUTTONS,
	WIN_IN_TRANSIT_EVENTS,
	WIN_LEFT_KEYS,
	WIN_TOP_KEYS,
	WIN_RIGHT_KEYS,
	WIN_META_EVENTS,
	WIN_UP_META_EVENTS,
	/*
 	 * semantic event classes 
 	 */
	WIN_SUNVIEW_FUNCTION_KEYS,
	WIN_EDIT_KEYS,
	WIN_MOTION_KEYS,
	WIN_TEXT_KEYS
} Window_input_event;

typedef enum {
	WIN_CREATE, 
	WIN_INSERT,
	WIN_REMOVE,
	WIN_DESTROY,
	WIN_GET_RIGHT_OF, 
	WIN_GET_BELOW, 
	WIN_ADJUST_RECT, 
	WIN_GET_X, 
	WIN_GET_Y, 
	WIN_GET_WIDTH, 
	WIN_GET_HEIGHT,
	WIN_GET_RECT, 
	WIN_LAYOUT,
	WIN_INSTALL
} Window_layout_op;

typedef struct {
	Xv_drawable_struct	parent_data;
	Xv_opaque		private_data;
} Xv_window_struct;

typedef struct window_rescale_rect_obj {
    Rect        old_rect;
    Rect        new_rect;
    int         width_change, height_change,x_change,y_change;
    int         adjusted;
    Xv_Window   sw;
/* relationships */
} Window_rescale_rect_obj;

/*
 ***********************************************************************
 *				Globals
 ***********************************************************************
 */

extern Xv_pkg		xv_window_pkg;

/*
 * PUBLIC functions 
 */
EXTERN_FUNCTION (int window_done, (Xv_Window window));
EXTERN_FUNCTION (void xv_main_loop, (Xv_Window window));
EXTERN_FUNCTION (int window_read_event, (Xv_Window window, Event *event));
EXTERN_FUNCTION (void window_bell, (Xv_Window window));
EXTERN_FUNCTION (Xv_public int xv_rows, (Xv_Window window, int rows));
EXTERN_FUNCTION (Xv_public int xv_row, (Xv_Window window, int row));
EXTERN_FUNCTION (Xv_public int xv_cols, (Xv_Window window, int cols));
EXTERN_FUNCTION (Xv_public int xv_col, (Xv_Window window, int col));
EXTERN_FUNCTION (Xv_public int xv_send_message, (Xv_window window, Xv_opaque addresse, char *msg_type, int format, Xv_opaque *data, int len));

/*
 * PRIVATE functions
 */

EXTERN_FUNCTION (void window_set_cache_rect, (Xv_Window window, Rect *rect));

/*
 * The Xv_opaque type for the rect object list is defined in a private 
 * include file windowimpl.h
 */
EXTERN_FUNCTION (Window_rescale_rect_obj *window_create_rect_obj_list, (int num_elems));
EXTERN_FUNCTION (void window_destroy_rect_obj_list, (Window_rescale_rect_obj *rect_obj_list));
EXTERN_FUNCTION (void window_add_to_rect_list, (Window_rescale_rect_obj *rect_obj_list, Xv_Window window, Rect *rect, int i));
EXTERN_FUNCTION (int window_rect_equal_ith_obj, (Window_rescale_rect_obj *rect_obj_list, Rect *rect, int i));
EXTERN_FUNCTION (void window_set_client_message, ( Xv_Window window, XClientMessageEvent *msg));
EXTERN_FUNCTION (Xv_opaque * xv_get_selected_windows, (Xv_object window));
EXTERN_FUNCTION (XID win_pointer_under, (Xv_object window, int x, int y));
EXTERN_FUNCTION (int win_translate_xy, (Xv_object src, Xv_object dst, int src_x, int src_y, int *dst_x, int *dst_y));

/*
 * PUBLIC functions 
 * For SunView 1 Compatibility
 */

EXTERN_FUNCTION (Xv_Window window_create, (Xv_Window window, Xv_pkg *pkg, DOTDOTDOT));
EXTERN_FUNCTION (Xv_opaque window_get, (Xv_Window window, Window_attribute attr, DOTDOTDOT));
EXTERN_FUNCTION (int window_set, (Xv_Window window, DOTDOTDOT));
EXTERN_FUNCTION (int window_destroy, (Xv_Window window));


/*
 * PRIVATE functions 
 * For SunView 1 Compatibility 
 */

EXTERN_FUNCTION (void window_rc_units_to_pixels, (Xv_Window win, Attr_avlist attr));

/*
 * Some wmgr stuff that needs to be here for the split libs.
 * This should be moved out as soon as all the pushpin stuff in moved
 * out of the intrinsic layer.  [csk 3/23/89]
 */

/* value for pushpin_initial_state */
#ifndef WMPushpinIsOut
#define WMPushpinIsOut  0
#endif /* WMPushpinIsOut */
#ifndef WMPushpinIsIn
#define WMPushpinIsIn   1
#endif /* WMPushpinIsIn */

#endif /* ~xview_window_DEFINED */