Date: Tue, 1 Oct 1996 19:34:25 -0700 From: Josh MacDonald <jmacd@CS.Berkeley.EDU> To: freebsd-hackers@freebsd.org Subject: XDrawString Message-ID: <199610020234.TAA01872@paris.CS.Berkeley.EDU>
next in thread | raw e-mail | index | archive | help
I forgot to insert the source:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
#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;
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610020234.TAA01872>
