From owner-freebsd-hackers Tue Oct 1 19:34:35 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA23227 for hackers-outgoing; Tue, 1 Oct 1996 19:34:35 -0700 (PDT) Received: from paris.CS.Berkeley.EDU (paris.CS.Berkeley.EDU [128.32.34.47]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id TAA23220 for ; Tue, 1 Oct 1996 19:34:32 -0700 (PDT) Received: (from jmacd@localhost) by paris.CS.Berkeley.EDU (8.6.11/8.6.9) id TAA01872 for freebsd-hackers@freebsd.org; Tue, 1 Oct 1996 19:34:25 -0700 Date: Tue, 1 Oct 1996 19:34:25 -0700 From: Josh MacDonald Message-Id: <199610020234.TAA01872@paris.CS.Berkeley.EDU> To: freebsd-hackers@freebsd.org Subject: XDrawString Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I forgot to insert the source: #include #include #include #include #include #ifndef MIN #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #define STRING "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR" int main (int argc, char *argv[]) { Display *display; Window window; GC gc; XGCValues xgcv; XSetWindowAttributes attributes; XEvent event; long attributes_mask; char *display_name; int done; int i; int len = 650; display_name = NULL; if (argc == 3) if (strcmp (argv[1], "-display") == 0) display_name = argv[2]; display_name = XDisplayName (display_name); display = XOpenDisplay (display_name); if (!display) { fprintf (stderr, "could not open display: \"%s\"\n", display_name); exit (1); } fprintf (stdout, "successfully opened display: \"%s\"\n", display_name); XSynchronize (display, 1); fprintf (stdout, "turning on X synchronization\n"); attributes.event_mask = (KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask | KeymapStateMask | ExposureMask | VisibilityChangeMask | StructureNotifyMask | FocusChangeMask | PropertyChangeMask | ColormapChangeMask | OwnerGrabButtonMask); attributes.background_pixel = BlackPixel (display, DefaultScreen (display)); attributes.border_pixel = BlackPixel (display, DefaultScreen (display)); attributes_mask = CWBackPixel | CWBorderPixel | CWEventMask; window = XCreateWindow (display, DefaultRootWindow (display), 0, 0, 300, 300, 0, DefaultDepth (display, DefaultScreen (display)), InputOutput, DefaultVisual (display, DefaultScreen (display)), attributes_mask, &attributes); fprintf (stdout, "successfully created window\n"); XMapWindow (display, window); fprintf (stdout, "successfully mapped windows\n"); fprintf (stdout, "attempting graphics context creation\n"); xgcv.foreground = 0x00FFFFFF; xgcv.background = 0x00000000; gc = XCreateGC (display, window, (GCForeground | GCBackground), &xgcv); fprintf (stdout, "successfully created graphics context\n"); done = 0; while (!done) { XNextEvent (display, &event); switch (event.type) { case KeyPress: case KeyRelease: done = 1; break; case ButtonRelease: break; case ButtonPress: XClearWindow (display, window); printf ("drawing string of length %d\n", len); XDrawString (display, window, gc, 10, 100, STRING, MIN (strlen(STRING), len)); len += 10; len = MIN (strlen (STRING), len); break; } } XCloseDisplay (display); return 0; }