1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| #include <stdio.h>
#include <X11/Xlib.h>
#define LARGEUR 300
#define HAUTEUR 70
#define ECART 10
main(argc,argv)
int argc;
char *argv[];
{
int largsouswin, hautsouswin;
int lignebase;
Display *dpy;
Window root;
Window winprinc, souswin1, souswin2;
int screen;
unsigned long white_pixel, black_pixel;
unsigned long MasqueEvt;
XGCValues gcvalues;
GC gc;
unsigned int gcvalue_mask;
dpy=XOpenDisplay(NULL);
screen=DefaultScreen(dpy);
root=RootWindow(dpy,screen);
white_pixel=WhitePixel(dpy,screen);
black_pixel=BlackPixel(dpy,screen);
winprinc=XCreateSimpleWindow(dpy,root,0,0,LARGEUR,HAUTEUR,2,black_pixel,white_pixel);
largsouswin=(LARGEUR-4*ECART)/2;
hautsouswin=HAUTEUR-2*ECART;
souswin1=XCreateSimpleWindow(dpy,winprinc,ECART,ECART,largsouswin,hautsouswin,2,black_pixel,white_pixel);
XMapWindow(dpy,winprinc);
XMapWindow(dpy,souswin1);
XMapWindow(dpy,souswin2);
MasqueEvt=ButtonPressMask|ExposureMask;
XSelectInput(dpy,souswin1,MasqueEvt);
XSelectInput(dpy,souswin2,MasqueEvt);
gcvalues.font=XLoadFont(dpy,"-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1");
gcvalues.foreground=black_pixel;
gcvalue_mask=GCForeground|GCFont;
gc=XCreateGC(dpy,root,gcvalue_mask,&gcvalues);
for(;;)
{
XEvent ev;
XNextEvent(dpy,&ev);
switch(ev.type)
{
case ButtonPress :
if(ev.xbutton.window==souswin1) printf("coucou\n");
else if (ev.xbutton.window==souswin2)
{
printf("fin du programme\n");
XUnloadFont(dpy,gcvalues.font);
XCloseDisplay(dpy);
exit(0);
}
break;
case Expose : lignebase=hautsouswin/2;
if (ev.xexpose.window == souswin1)
XDrawString(dpy,souswin1,gc,ECART,lignebase,"coucou",strlen("coucou"));
else if (ev.xexpose.window==souswin2)
XDrawString(dpy,souswin2,gc,ECART,lignebase,"fin",strlen("fin"));
break;
}
}
} |
Partager