1 /*
2 // display.c
3 //
4 // procedures:
5 // Display *SetUpDisplay( argc, argv, &screen )
6 // Display *OpenDisplay( display_name, &screen )
7 // CheckDisplayName( argc, argv, display_name )
8 // CloseDisplay( disp, window, gc )
9 // QuitX(display, error_message, error_file )
10 */
11 
12 #include "xbook.h"
13 
SetUpDisplay(argc,argv,screen)14 Display *SetUpDisplay( argc, argv, screen )
15 int argc;
16 char *argv[];
17 int *screen;
18 {
19 	char display_name[ 120 ];
20 	Display *display;
21 
22 	CheckDisplayName( argc, argv, display_name );
23 	display = OpenDisplay( display_name, screen );
24 	if( display == (Display *) NULL )
25 	{
26 		(void) fprintf(stderr, "Error could not open X display to %s.\n",
27 				XDisplayName( display_name ) );
28 		exit( 1 );
29 	}
30 	return ( display );
31 }
32 
OpenDisplay(display_name,screen)33 Display *OpenDisplay( display_name, screen )
34 char display_name[];
35 int *screen;
36 {
37 	Display *display;
38 
39 	display= XOpenDisplay( display_name );
40 	if( display != (Display *) NULL)
41 	{
42 		*screen = DefaultScreen( display );
43 	}
44 	return ( display );
45 }
46 
CheckDisplayName(argc,argv,display_name)47 CheckDisplayName( argc, argv, display_name )
48 int argc;
49 char *argv[];
50 char display_name[];
51 {
52 	int counter;
53 
54 	display_name[ 0 ] = '\0';
55 	counter = 1;
56 	while( counter < argc )
57 	{
58 		if( strncmp( argv[ counter ], "-display", 8 )==0 )
59 		{
60 			counter++;
61 			if( counter < argc )
62 			{
63 				(void) strcpy( display_name, argv[ counter ] );
64 			}
65 			else
66 			{
67 				(void) fprintf( stderr,
68 					"Error: usage is -display DisplayName\n" );
69 			}
70 		}
71 		counter++;
72 	}
73 }
74 
CloseDisplay(display,window,gc)75 CloseDisplay( display, window, gc )
76 Display *display;
77 Window window;
78 GC gc;
79 {
80 	XFreeGC( display, gc);
81 	XDestroySubwindows( display, window );
82 	XDestroyWindow( display, window );
83 	XFlush( display );
84 	XCloseDisplay( display );
85 }
86 
QuitX(display,error_message,error_file)87 QuitX( display, error_message, error_file )
88 Display *display;
89 char error_message[], error_file[];
90 {
91 	(void) fprintf(stderr, "ERROR: %s%s\n",
92 		error_message,
93 		error_file );
94 
95 	XCloseDisplay( display );
96 	exit(1);
97 }
98 
99