/****** w5.C ******/ #include #include #include #include #include #include int main() { Display *disp; int ScrNum; GC prGC; XEvent Evnt; Window win; int i=0,n_call=0; char str[100]="Hello world!";//,s[100]="*"; /* const char *font_dirs[]={ "/usr/lib/X11/fonts/", // "/usr/lib/X11/fonts/JP/", "/usr/lib/X11/fonts/75dpi/", // "/prj/project1/walter/rus_fonts/", "/usr/lib/X11/fonts/", // "/usr/lib/X11/fonts/rus/", NULL };*/ Font font; if ( (disp = XOpenDisplay (NULL)) == NULL) { printf("\n====1"); exit(1); } // XSetFontPath(disp, font_dirs, 3); ScrNum = DefaultScreen( disp ); win = XCreateSimpleWindow( disp, RootWindow( disp, ScrNum), 0, 0, 100, 100, 2, BlackPixel( disp, ScrNum), WhitePixel( disp, ScrNum) ); XSelectInput( disp, win, ExposureMask | KeyPressMask | ButtonPressMask); XMapWindow (disp,win); //font = XLoadFont(disp, "-adobe-courier-medium-r-normal--14-100-100-100-m-90-iso8859-1"); // font = XLoadFont(disp, "cy9x15"); //font = XLoadFont(disp, "-Bitstream-WCharter-Bold-I-Normal--17-120-100-100-P-105-ISO8859-1"); font=XLoadFont(disp,"lucidasanstypewriter-24"); if(font==0){printf("Can't load font\n"); goto fin;} printf("\nFont loaded\n"); while( 1 ) { XNextEvent( disp, &Evnt); switch (Evnt.type) { case ButtonPress: prGC = XCreateGC( disp, win, 0, NULL ); XSetForeground( disp, prGC, BlackPixel(disp, 0) ); XDrawLine(disp, win, prGC, i*10,i*i, (i+1)*10,(i+1)*(i+1) ); XFreeGC( disp, prGC ); i++; break; case Expose: if ( Evnt.xexpose.count!=0 ) break; prGC = XCreateGC( disp, win, 0, NULL ); XSetFont(disp, prGC, font); XSetForeground( disp, prGC, BlackPixel(disp, 0) ); XDrawString( disp, win, prGC, 10,50, str, strlen(str) ); XFreeGC( disp, prGC ); n_call++; sprintf(str,"Hello... %d",n_call); break; case KeyPress: goto fin; } } fin: XCloseDisplay( disp ); return 0; } //lucidasanstypewriter-24