Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Message Box En Linux

Iniciado por Zaelsius, 28 de Marzo de 2005, 03:35:39 PM

« anterior - próximo »

Zaelsius

 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

senior wapo

 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).




Zaelsius

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:  

samsaga2

 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.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.