Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Zaelsius en 28 de Marzo de 2005, 03:35:39 PM

Título: Message Box En Linux
Publicado por: Zaelsius en 28 de Marzo de 2005, 03:35:39 PM
 A la hora de hacer pequeños juegos o demos, siempre es útil mostrar un diálogo que permita al usuario elegir entre pantalla completa y ventana.

Tengo código para hacerlo en Windows y Mac OS X, pero no tengo ni idea de cómo se haria en Linux, dada la ensalada de API's y librerias existentes.. ¿alguien se anima a completar este código con una entrada para Linux? A lo mejor tambien interesaria tener una entrada para C# + WindowsForms.

Si se termina se podria enviar como Código de la semana.


bool GoFullscreen()
{

#ifdef WIN32
   MessageBox( NULL, Message, "¿Quieres ejecutar el juego a pantalla completa?", MB_OK );
#endif

#if defined( __APPLE__ ) && defined( __MACH__ )

#include <Carbon/Carbon.h>

AlertStdAlertParamRec pr;
Str255 cancelText;
char ct[] = "No";

CopyCStringToPascal("No",cancelText);

pr.movable = false;
pr.helpButton = false;
pr.filterProc = NULL;
pr.cancelButton = 1;
pr.defaultText = -1;
pr.cancelText = cancelText;
pr.otherText = NULL;
pr.defaultButton =  kAlertStdAlertOKButton;
pr.cancelButton = kAlertStdAlertCancelButton;
pr.position = kWindowDefaultPosition;

   SInt16 itemHit;

   Str255 string;

   CopyCStringToPascal( "¿Quieres ejecutar el juego a pantalla completa?", string );

   // Open the alert box in OS X.

   StandardAlert( kAlertNoteAlert, string ,NULL,&pr, &itemHit );

if(itemHit == 1)
 return true;
else
 return false;

#endif

// Añadir código para Linux...

}


PD: Perdón por un código tan warrete
Título: Message Box En Linux
Publicado por: senior wapo en 28 de Marzo de 2005, 05:17:33 PM
 Bajo Linux no hay API GUI de sistema, tienes que usar código linkando con librerías externas (engordar ejecutable del juego), aunque sea xlib a pelo. Xlib estará cargado en memoria de todas formas (como mínimo lo estará usando el window manager), asi que con link dinámico el consumo de memoria no subirá casi. Asumo que hablamos de una juego que correrá bajo xwindows, no de consola.

Hablo de xlib a pelo, nada de usar los widgets. No vas a programar un GUI completo, solo un simple MessageBox (dibujar cuadro y detectar una pulsación en el area del pseudobotón).



Título: Message Box En Linux
Publicado por: Zaelsius en 28 de Marzo de 2005, 07:33:31 PM
Cita de: "senior wapo"Hablo de xlib a pelo, nada de usar los widgets. No vas a programar un GUI completo, solo un simple MessageBox (dibujar cuadro y detectar una pulsación en el area del pseudobotón).
Ouch.. que duro.. :wacko:  
Título: Message Box En Linux
Publicado por: samsaga2 en 29 de Marzo de 2005, 08:49:00 AM
 Lo mas facil es que uses las Gtk para eso, eso ya trae funciones para cuadros de mensajes. Para no tenerlas en memoria todo el rato, no inicialices la libreria (gtk_init) hasta que no vayas a mostrar el mensaje.