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