estoy creando un api de botonera, entonces me he creado una clase boton y luego una clase menu.
primero creo una instancia de la clase boton: (constructor):
- Código: Seleccionar todo
- JFSboton::JFSboton() {
 alpha = NULL;
 _x = 0;
 _y = 0;
 _h = 0;
 _w = 0;
 }
 JFSboton boton1;
en la clase menu, hay una variable que es un array dinamico de punteros a botones
- Código: Seleccionar todo
- static const int numMaxElementos = 20;
 JFSboton *elementos;
en el constructor hago esto
- Código: Seleccionar todo
- elementos = (JFSboton *) malloc (numMaxElementos*sizeof(JFSboton));
despues, una funcion de añadir botones al menu:
- Código: Seleccionar todo
- void JFSmenu::adjuntarBoton(JFSboton *botonAdd) {
 ordenado = false;
 this->numItems++;
 botonAdd->setID(numItems);
 printf("\nbotonAdd id: %i", botonAdd->getID());
 elementos[numItems-1] = *botonAdd;
 printf("\nañadido a la lista");
 
 }
para despues colocar todos los elementos donde deben estar:
- Código: Seleccionar todo
- void JFSmenu::distribuirMenu(presentacion tipoPresentacion, int separacion) {
 for (int i = 0; i < numItems; ++i) {
 //presentacion vertical de la botonera
 if (tipoPresentacion == 0) {
 elementos[i]._x = this->_x + this->_w/2 - elementos[i]._w/2;
 if (i == 0) {
 elementos[i]._y = this->_y + separacion;
 } else {
 elementos[i]._y = elementos[i-1]._y + elementos[i-1]._h + separacion;
 }
 //presentacion horizontal de la botonera
 } else {
 elementos[i]._y = this->_y + this->_h/2 - elementos[i]._h/2;
 if (i == 0) {
 elementos[i]._x = this->_x + separacion;
 } else {
 elementos[i]._x = elementos[i-1]._x + elementos[i-1]._w + separacion;
 }
 }
 }
 ordenado = true;
 }
una vez hecho esto, me ha colocado correctamente los 'n' botones dentro del area de menu, etc., etc. pero si luego le pregunto a un boton por su componente X me dice que es 0, tal y como se lo especifique en el constructor, o sea que no ha cambiado su valor aunque esten correctamente colocados. esto me causa conflictos a la hora de hacer funciones onRollOver u onClick y cosas asi y no encuentro el fallo.
por supuesto, estos codigos los he extraido de mis archivos .h y .cpp y por si solos no compilan. si no veis el error, puedo subir los archivos de codigo fuente a un servidor temporal para que os los descargueis y lo probeis. las librerias que uso son la SDL estandar y la SDL_image.
espero haberme expresado suficientemente bien.
muchas gracias a tod@s
atentamente
maije



 . he leido varias veces tu articulo para instalar el programa y luego añadirle las blibliotecas y los includes y me parece que esta perfectamente explicado y que todo funciona como deberia si se siguen los pasos tal cual estan escritos, felicidades.
. he leido varias veces tu articulo para instalar el programa y luego añadirle las blibliotecas y los includes y me parece que esta perfectamente explicado y que todo funciona como deberia si se siguen los pasos tal cual estan escritos, felicidades. 
 , y todas las librerias necesarias (SDL y SDL_image). a parte tambien incluyo los stderr.txt y stdout.txt.
, y todas las librerias necesarias (SDL y SDL_image). a parte tambien incluyo los stderr.txt y stdout.txt.