Programar con X11

Imagen de Vinicio Steven
0 puntos

Hola ubunturos, me dirijo hacia ustedes para postearles un programa que yo escribí, me gustaría que lo analizaran y más, además de que me digan que mas le puedo hacer:

P.S: cambié las los signos de mayor o igual de los include por commilas dobles por cuestiones del html que no los acepta.

Aqui esta el programa:

/* Creates a window with a white background , with subwindows, infinite*/

// By Vinicio Flores

// e-mail:

#include "X11/Xlib.h"

#include "stdio.h"
#include "stdlib.h"

#include "unistd.h"

/*********************/

#define X 10
#define Y 10
#define HEIGHT 200
#define WIDTH 250

/*********************/

#define X2 55
#define Y2 50
#define H2 100
#define W2 125

/*********************/

#define BLUE 2000+16777215
#define PURPLE 8000+16777215
#define GREEN 166666+16777215

/*********************/

#define ERR_INTERVAL 100000
#define MIC_INTERVAL 100000

/*********************/

int main()
{

Display *d = NULL;

Window wc[1677720];
Window w;

/*********************/

int screen;

unsigned long i;

d = XOpenDisplay(NULL); // Connect with X Server

sleep(1);

/* If the X Server is not present or fails the connection */

if(d == NULL)
{
for(i = 0; i < 20; ++i )
{
printf("\033[1;31mX_ERR: Cannot connect with X Server\n\033[0m");
usleep(ERR_INTERVAL);
}
exit(0);
}

/* If done */

else
{
printf("\033[1;32mX_INFO: Connection done \n\033[0m");
}

screen = DefaultScreen( d );

/* Black and white values */

unsigned long BLACK = BlackPixel(d, screen);
unsigned long WHITE = WhitePixel(d, screen);

/* Here I made an animation by creating windows in the same position but with different attributes */

w = XCreateSimpleWindow(d, DefaultRootWindow(d) , X, Y, WIDTH, HEIGHT, 1, BLACK, WHITE); // Mother window

XMapWindow(d, w);
XFlush(d);

sleep(1);

for(i = 0; i < 1677720; i++)
{
wc[i] = XCreateSimpleWindow(d, w,X2 , Y2, W2, H2, 2, BLACK, WHITE - i);

XMapWindow(d, wc[i]);
XMapSubwindows(d, wc[i]);

XFlush(d);
usleep(MIC_INTERVAL);
printf("\033[1;34mX_INFO: Window %u\033[0m\n", i);
}

printf("\033[1;32mX_INFO: Closing connection with X Server\n\033[0m");

sleep(1);

/* Close connection with X Server */

XCloseDisplay(d);

return 0;
}