void set_on_close_button( int (*fnc_on_close_button) () )


Descripción:

Añade una función al cerrado de botón automático de CDIV, con la cual estaremos preparados para saber cuando se pulsa el botón 'X' de la ventana, pudiendo utilizar esta función para desactivar el cerrado automático si se desea retornando 0, en la función definida y 1 si se desea que se cierre.

Esta función también se puede definir para eliminar memoria reservada por el usuario que de otra manera si se pulsase dicho botón no se eliminaría.

Nota: CDIV eliminará automáticamente la memoria reservada en sus funciones especificas (procesos, load_fpg, load_image, load_sound, etc...).


int my_on_close()
{
  textprintf(screen, font, 0, 8, 
             makecol(255, 255, 255), "¿Desea salir del programa (S/N)?");

  // Espera hasta que se puse una tecla
  char p = readkey() & 0xff;

  // Si pulsa 'S' se sale del programa
  if( (p == 's') || (p == 'S') )
   return 1; // Sale del programa
  else
   return 0; // Continua el programa
}

MAIN_PROGRAM_CDIV
BEGIN_PROGRAM 

 set_on_close_button(my_on_close);

 set_gfx(GFX_AUTODETECT_WINDOWED);

 set_mode(m320x200);

 write(0,0,0,0, "Pulse la X de la barra");

 LOOP
  FRAME;

END_PROGRAM

En el ejemplo si se pulsa la X de la ventana nos preguntará si deseamos salir del programa si se pulsa 'S' se saldrá del programa y si se pulsa 'N' continuará la ejecución.


Ver: set_key_escape() - disable_key_escape() - cdiv_exit()