Je programme un clone de power-point, prezzi en mode 3D.
Il y aura un editeur en mode fenetré et un viewer en mode plein ecran en 3D.
Pour cela, j'ai testé le mode fenetré que je n'utilisais jamais.
J'avais besoin de pouvoir passer de l'éditeur au viewer rapidement.
Pour cela, j'ai créé un screen dans un fenetre qui apparait avec "Espace" et qui se masque avec "Esc".
La procédure Player() ne s'active que lorsque le viewer en mode plein ecran est activé...
Code : Tout sélectionner
; Base pour une application avec un mode normal et un mode plein écran
; et facilité de passer de l'un à l'autre avec les touches "Space" et "Esc"
; Cool Dji, janvier 2017
WD=ExamineDesktops()
Global WHeight=DesktopHeight(0)
Global WWidth=DesktopWidth(0)
Global Sortie,mode,vix
InitKeyboard()
InitSprite()
Declare PlayScreen()
Declare InitScreen()
; Ouvre la fenetre principale
OpenWindow(0, 0, 0,WWidth,WHeight, "Présentation",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget |#PB_Window_SizeGadget | #PB_Window_ScreenCentered)
; Ouvre une fenetre secondaire, dépendante de la principale
OpenWindow(1, 10, 10,WWidth/2,WHeight/2, "Slide",#PB_Window_Tool ,WindowID(0))
StickyWindow(1,1) ; cette seconde fenetre est toujours devant
; Ouvre une autre fenetre secondaire, dépendante de la principale qui sera en plein écran avec un windowedScreen
OpenWindow(2, 0, 0,WWidth,WHeight, "Projet", #PB_Window_BorderLess ,WindowID(0))
OpenWindowedScreen(WindowID(2), 0, 0, WWidth,WHeight,#False, 0, 0)
InitScreen()
StickyWindow(2,1)
HideWindow(2,#True) ; Masque la fenetre plein ecran
;Raccourcis clavier
AddKeyboardShortcut(0, #PB_Shortcut_Space, 1)
;Menu
If CreateMenu(0, WindowID(0))
MenuTitle("Projet")
MenuItem(1, "Projection"+Chr(9)+"Space")
EndIf
;--- MAIN LOOP
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case 1 :
If Mode=0
Mode=1
HideWindow(2,#False)
Else
Mode=0
HideWindow(2,#True)
EndIf
EndSelect
EndSelect
; quand on est en mode plein ecran
If mode=1:PlayScreen():EndIf
Until Event = #PB_Event_CloseWindow Or Sortie=1
End
Procedure PlayScreen()
ExamineKeyboard()
ClearScreen(RGB(140,173,196))
DisplaySprite(0,vix,5)
FlipBuffers()
vix+5
If vix>WWidth:vix=-31:EndIf
If KeyboardPushed(#PB_Key_Escape) :;quitte le mode plein ecran
Mode=0
HideWindow(2,#True)
EndIf
EndProcedure
Procedure InitScreen()
CreateSprite(0,32,32)
EndProcedure