next up previous
Next: Creación del programa Up: Construcción de un programa Previous: Construcción de un programa

Variables necesarias

En los programas con un interfaz gráfico debemos pensar en primer lugar las estructuras de datos necesarias para guardar el estado actual de los datos del programa. En este caso los únicos datos que necesitamos guardar son los que representan el círculo (posición y radio actual). Cuando la estructura de datos es más o menos compleja, conviene separar el código que controla esta estructura en un fichero fuente aparte o clase si programamos en C++. En este caso la estructura de datos para almacenar el estado del círculo es muy simple y no la pondremos en un fichero fuente distinto: necesitamos tres números enteros, dos enteros para la posición del centro y otro para el radio. Podemos declarar estas variables de la siguiente forma dentro de la función main:

int currentX=0,currentY=0,currentR=10;

Mientras se arrastra el ratón con un botón pulsado necesitamos saber si debemos cambiar la posición del centro del círculo, o bien cambiar su radio. Para ello usaremos una variable mode que nos indicará el modo en que estamos (CHANGERADIO, CHANGECENTER o NOCHANGE). Incluimos en nuestro fichero fuente las tres constantes simbólicas siguientes:

#define CHANGECENTER 0
#define CHANGERADIO 1
#define NOCHANGE 2

y la variable mode la incluimos dentro del main, que inicializamos con NOCHANGE.

int mode=NOCHANGE;

El programa también necesitará una serie de variables relacionadas directamente con el interfaz gráfico que pasamos a describir en los siguientes párrafos.

En las funciones de Xlib se necesita siempre usar los parámetros Display y número de screen. Declararemos para ello dos variables globales en nuestro programa:

Display *display;
int screen_num;

Otras variables locales que declararemos dentro de la función main son las siguientes:

Window win; 
unsigned int width, height, x, y; /* anchura de ventana y posición */
unsigned int borderwidth = 4;	    /* 4 pixels */
unsigned int display_width, display_height;
unsigned long foreground_pixel, 
              background_pixel; /* valores de pixel (color) */
XEvent report;
GC gc;
XGCValues values;

El significado de estas variables es el siguiente:


next up previous
Next: Creación del programa Up: Construcción de un programa Previous: Construcción de un programa
Andrés Cano Utrera 2010-10-19