Ver Fonte

Cleanups.

Mark Sibly há 9 anos atrás
pai
commit
fc87459606
2 ficheiros alterados com 31 adições e 27 exclusões
  1. 6 20
      bananas/windowtest/windowtest.monkey2
  2. 25 7
      modules/mojo/app/window.monkey2

+ 6 - 20
bananas/windowtest/windowtest.monkey2

@@ -20,21 +20,9 @@ Class MyWindow Extends Window
 		If event.Type=EventType.KeyDown
 			Select event.Key
 			Case Key.Up
-				If Maximized
-					Fullscreen=True
-				Else If Minimized
-					Restore()
-				Else
-					Maximize()
-				Endif
+				If Minimized Restore() Else Maximize()
 			Case Key.Down
-				If Fullscreen
-					Fullscreen=False
-				Else If Maximized
-					Restore()
-				Else
-					Minimize()
-				Endif
+				If Maximized Restore() Else Minimize()
 			End
 		Endif
 	End
@@ -43,17 +31,15 @@ Class MyWindow Extends Window
 	
 		Select event.Type
 		Case EventType.WindowMaximized
-			Print "Maximized!"
+			Print "Maximized"
 		Case EventType.WindowMinimized
-			Print "Minimized!"
+			Print "Minimized"
 		Case EventType.WindowRestored
-			Print "Restored!"
+			Print "Restored"
 		Case EventType.WindowResized
-			Print "Resized!"
+			Print "Resized"
 		End
 		
-		Print Int( Maximized )+","+Int( Minimized )
-		
 		Super.OnWindowEvent( event )
 	End
 

+ 25 - 7
modules/mojo/app/window.monkey2

@@ -93,13 +93,6 @@ Class Window Extends View
 	Property Fullscreen:Bool()
 	
 		Return Cast<SDL_WindowFlags>( SDL_GetWindowFlags( _sdlWindow ) ) & SDL_WINDOW_FULLSCREEN
-	
-	Setter( fullscreen:Bool )
-	
-		If fullscreen=Fullscreen Return
-
-		SDL_SetWindowFullscreen( _sdlWindow,fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP Else 0 )
-	
 	End
 
 	#rem monkeydoc Window maximized state.
@@ -135,6 +128,31 @@ Class Window Extends View
 		
 	End
 
+	#rem monkeydoc @hidden
+	#end	
+	Method BeginFullscreen()
+		SDL_SetWindowFullscreen( _sdlWindow,SDL_WINDOW_FULLSCREEN_DESKTOP )
+	End
+	
+	#rem monkeydoc @hidden
+	#end
+	Method BeginFullscreen( width:Int,height:Int,hertz:Int )
+		Local mode:SDL_DisplayMode
+		mode.w=Width
+		mode.h=Height
+		mode.refresh_rate=hertz
+		Local closest:SDL_DisplayMode
+		SDL_GetClosestDisplayMode( 0,Varptr mode,Varptr closest )
+		SDL_SetWindowDisplayMode( _sdlWindow,Varptr closest )
+		SDL_SetWindowFullscreen( _sdlWindow,SDL_WINDOW_FULLSCREEN )
+	End
+	
+	#rem monkeydoc @hidden
+	#end
+	Method EndFullscreen()
+		SDL_SetWindowFullscreen( _sdlWindow,0 )
+	End
+
 	#rem monkeydoc Maximize the window.
 	#end	
 	Method Maximize()