FullScreen en cocoa

coder78coder78 Membre
00:40 modifié dans API AppKit #1
Bonjour à  tous.

Je ne trouve ni dans la doc apple ni sur le net (dans les forums) un toto qui montre comment ouvrir un fullscreen en 800x600 par exemple.

A croire que ce n'est pas possible sur le mac...hors les jeux  (genre urbanterror, Call Of duty et cie) le font bien.......
La SDL aussi ceci dit mais la SDL utilise des fonctions 'deprecated'....
Et je ne veux pas utiliser la SDL.

Avez-vous une piste à  me conseiller ?

Merci d'avance.

Fred

Réponses

  • Nebuchad34Nebuchad34 Membre
    00:40 modifié #2
    Tu peux parfaitement afficher la vue d'une fenêtre en plein écran.

    Il suffit de la créer sans barre de titre et en mode "ScreenSaverWindowLevel" de manière à  ce qu'elle reste au dessus du Dock. Tu peux même faire une transition du mode fenêtré au mode plein écran.

    Voilà  comment créer une fenêtre plein écran :
    <br />NSWindow *myWindow = [[NSWindow alloc] initWithContentRect:[[NSScreen mainScreen] frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES screen:[NSScreen mainScreen]];<br />[myWindow setLevel:NSScreenSaverWindowLevel];
    
  • coder78coder78 Membre
    00:40 modifié #4
    roahh et bien MERCI à  vous !!!
    ça marche !! je comprends pas je dois pas savoir chercher sur les doc apple ou alors.....elles sont mal indéxées :(

    En tout cas tout marche bien encoremerci!
    Fred
  • 00:40 modifié #5
    Me semble qu'on peut aussi faire
    <br />NSView* contentView = [[self window]&nbsp;contentView];<br />[contentView enterFullScreenMode:[NSScreen mainScreen] withOptions:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey: NSFullScreenModeAllScreens]];<br />
    
  • coder78coder78 Membre
    00:40 modifié #6
    Merci je vais tester aussi par pure curiosité ;) vu que l'autre métode fonctionne nickel...

    Fred
  • Nebuchad34Nebuchad34 Membre
    00:40 modifié #7
    Tiens, merci Eaglelook. Je ne connaissais pas cette méthode. Je me souviens avoir bien galéré pour gérer mon plein écran. Et encore ma solution n'est pas idéal. J'ai des problèmes pour intercepter des commandes claviers notamment.
  • schlumschlum Membre
    00:40 modifié #8
    Pour faire du vrai plein écran, il faut capturer l'écran pour soi avec "CGCaptureAllDisplays" afin d'éviter les perturbations Exposé et co.
  • 00:40 modifié #9
    dans 1249394777:

    Pour faire du vrai plein écran, il faut capturer l'écran pour soi avec "CGCaptureAllDisplays" afin d'éviter les perturbations Exposé et co.

    Bha c'est bizarre.. moi j'ai réussi pourtant à  esquiver exposé et compagnie :
    <br />[[self window] setLevel: CGShieldingWindowLevel()];<br />SetSystemUIMode(kUIModeAllHidden, kUIOptionDisableAppleMenu);<br />
    


    Bon tu me diras.. C'est du Carbon pour SetSystemUIMode, mais ça desactive exposé et cie
  • schlumschlum Membre
    00:40 modifié #10
    Pas de problème de barre de menu apparente avec CGShieldingWindowLevel ?
  • 00:40 modifié #11
    Non.. sûrement grace au setSystemUIMode encore une fois. ce code remonte à  y'a 1 an quand même.. et autant que je me souvienne, le kUIModeAllHidden inclus la barre de menu.
  • bombsebbombseb Membre
    00:40 modifié #12
    pitite questionne :

    Lorsqu'on ressort du fullscreen mode pour revenir au finder, mes fenêtres sont  redimensionnées différemment et ne sont plus à  la même place... vous avez pas une astuce pour éviter ca svp ?
  • bombsebbombseb Membre
    00:40 modifié #13
    Je crois que j'ai trouvé...
    il fallait utiliser CGDisplayCapture apparement
Connectez-vous ou Inscrivez-vous pour répondre.