Hola de nuevo...
Para continuar con mi ración de "XCode-Snippets", os publico un código que soluciona el problema (detectado por Hark0 hace ya tiempo

) de la independencia de las imágenes generadas desde GLBasic y la orientación de la barra que aparece en iOS al hacer doble click sobre el botón home en el iPad. Y digo iPad porque en iPhone la barra siempre aparece en el mismo sitio XDDDDDD aunque el código también puede servir para iPhone, ¿a alguien se le ocurre alguna utilidad? ¿Nadie? Os doy una pista: Probad a usar las siguientes llamadas GLBasic ántes de utilizar las llamadas del código que publiqué para mostrar Alerts/Teclado en iOS...
De nuevo, vamos al grano:
En un archivo ".mm" que debeis colocar en vuestro proyecto XCode:
#if defined (TARGET_OS_IPHONE)
// UIINTERFACEORIENTATION
extern "C" void iOSSetOrientation(const char* cOrientation) {
// Forzar la orientación de la barra de estado de iOS a partir del parámetro pasado evitando distinguir entre mayúsculas y minúsculas
if (strncasecmp(cOrientation,"landscapeleft",strlen(cOrientation)) == 0) {
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
}
if (strncasecmp(cOrientation,"landscaperight",strlen(cOrientation)) == 0) {
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}
if (strncasecmp(cOrientation,"portrait",strlen(cOrientation)) == 0) {
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
}
if (strncasecmp(cOrientation,"portraitupsidedown",strlen(cOrientation)) == 0) {
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortraitUpsideDown];
}
}
// FIN UIINTERFACEORIENTATION
#endif
Si alguien ya tiene código en un archivo .mm puede obviar el incluir las líneas que comienzan con #
Después, desde GLBasic, podríamos hacer algo como esto, por ejemplo:
IMPORT "C" void iOSSetOrientation(const char*)
iOSSetOrientation("Portrait")
PRINT "PULSA AHORA EL BOTÓN HOME DOS VECES",100,100
SHOWSCREEN
HIBERNATE
MOUSEWAIT
iOSSetOrientation("PortraitUpsideDown")
PRINT "PULSA OTRA VEZ EL BOTÓN HOME DOS VECES",100,100
SHOWSCREEN
HIBERNATE
MOUSEWAIT
iOSSetOrientation("LandscapeLeft")
PRINT "VENGA, DALE OTRA VEZ DOS CLICKS",100,100
SHOWSCREEN
HIBERNATE
MOUSEWAIT
iOSSetOrientation("LandscapeRight")
PRINT "¡¡¡CENTRIFUGANDOOO!!!!",100,100
SHOWSCREEN
HIBERNATE
MOUSEWAIT
Con esto, lo que conseguimos es que si giramos nuestros gráficos desde GLBasic, a partir de los valores devueltos por los acelerómetros, podemos hacer coincidir nuestra orientación con la que "seteamos" o forzamos en iOS...
Como veis, además evito distinguir entre mayúsculas y minúsculas al pasar el parámetro desde GLBasic, para facilitar las cosas al programar.
Esto parece el complemento ideal para las nuevas funciones de rotación que parece que incluirá Gernot en las próximas versiones finales de GLBasic (gracias por la noticia Jordi

).
Ya me contareis que tal...