X11[unix]modification de code
fredo10
Messages postés
32
Statut
Membre
-
philtrain Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
philtrain Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
salt a tous, j'ai un petit petard et si vous pouviez m'aider, je vs serrez bcp reconnaissant.voila je ve modifier un code en X11 pour que le trait qu'il me permet de tracer en noir dans ma fenetre a fond blanc qu'il ouvre lorsqu'on l'execute.voici le code :
#include <stdio.h>
#include <X11/Xlib.h>
int main()
{
Display *dpy;
Window win;
int oldx;
int oldy;
if ((dpy = XOpenDisplay(0)) == NULL)
{
fprintf(stderr, "Can't open display");
exit(1);
}
win = XCreateSimpleWindow(dpy,
DefaultRootWindow(dpy),
0, 0, 200, 200, 1,
BlackPixel(dpy, DefaultScreen(dpy)),
WhitePixel(dpy, DefaultScreen(dpy)));
XSelectInput(dpy, win,
ExposureMask|ButtonMotionMask|ButtonReleaseMask);
XMapWindow(dpy, win);
oldx = oldy = -1;
while (1)
{
XEvent xev;
XNextEvent(dpy, &xev);
if (xev.type == Expose)
;
else
if (xev.type == MotionNotify)
{
if (oldx == -1)
XDrawPoint(dpy, win, DefaultGC(dpy, DefaultScreen(dpy)),
xev.xbutton.x, xev.xbutton.y);
else
XDrawLine(dpy, win, DefaultGC(dpy, DefaultScreen(dpy)),
oldx, oldy, xev.xbutton.x, xev.xbutton.y);
oldx = xev.xbutton.x;
oldy = xev.xbutton.y;
}
else
if (xev.type == ButtonRelease)
oldx = oldy = -1;
else
printf("unknown event %d\n", xev.type);
}
}
merci dem'aider a lemodifier pour que le trait qu'ilme permet de tracer soit en couleurs.
#include <stdio.h>
#include <X11/Xlib.h>
int main()
{
Display *dpy;
Window win;
int oldx;
int oldy;
if ((dpy = XOpenDisplay(0)) == NULL)
{
fprintf(stderr, "Can't open display");
exit(1);
}
win = XCreateSimpleWindow(dpy,
DefaultRootWindow(dpy),
0, 0, 200, 200, 1,
BlackPixel(dpy, DefaultScreen(dpy)),
WhitePixel(dpy, DefaultScreen(dpy)));
XSelectInput(dpy, win,
ExposureMask|ButtonMotionMask|ButtonReleaseMask);
XMapWindow(dpy, win);
oldx = oldy = -1;
while (1)
{
XEvent xev;
XNextEvent(dpy, &xev);
if (xev.type == Expose)
;
else
if (xev.type == MotionNotify)
{
if (oldx == -1)
XDrawPoint(dpy, win, DefaultGC(dpy, DefaultScreen(dpy)),
xev.xbutton.x, xev.xbutton.y);
else
XDrawLine(dpy, win, DefaultGC(dpy, DefaultScreen(dpy)),
oldx, oldy, xev.xbutton.x, xev.xbutton.y);
oldx = xev.xbutton.x;
oldy = xev.xbutton.y;
}
else
if (xev.type == ButtonRelease)
oldx = oldy = -1;
else
printf("unknown event %d\n", xev.type);
}
}
merci dem'aider a lemodifier pour que le trait qu'ilme permet de tracer soit en couleurs.
1 réponse
-
Bonjour,
La gestion des couleurs est un peu compliquée avec Xlib. Voici un cours qui pourra t'intéresser:
http://www.essi.fr/~buffa/cours/X11_Motif/cours/XlibColor.html
Philippe