B4A=true Group=Default Group ModulesStructureVersion=1 Type=StaticCode Version=11 @EndOfDesignText@ 'Code module Sub Process_Globals End Sub Public Sub PrepareTransition_RadiusOut (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim frontBmp As B4XBitmap = CurrentPageRoot.Snapshot Dim backBmp As B4XBitmap = NewPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 20 Dim stepWidth As Float = RootWidth/frames For i = 0 To frames-1 cnv.DrawBitmap(frontBmp,getRect(0,0,RootWidth,RootHeight)) Dim path As B4XPath path.InitializeOval(getRect((RootWidth/2)-(stepWidth*i),(RootHeight/2)-(stepWidth*i),(stepWidth*2)*i,(stepWidth*2)*i)) cnv.ClipPath(path) cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) cnv.RemoveClip cnv.Invalidate Sleep(16) Next pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_RadiusIn (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim frontBmp As B4XBitmap = CurrentPageRoot.Snapshot Dim backBmp As B4XBitmap = NewPageRoot.Snapshot Dim startingSize As Float = IIf(RootHeight>RootWidth,RootHeight,RootWidth) cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 22 Dim stepSize As Float = startingSize/frames For i = 0 To frames-1 cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) Dim path As B4XPath path.InitializeOval(getRect((RootWidth/2)-(startingSize)+(stepSize*i),(RootHeight/2)-(startingSize)+(stepSize*i),(startingSize*2)-((stepSize*2)*i) , (startingSize*2)-((stepSize*2)*i))) cnv.ClipPath(path) cnv.DrawBitmap(frontBmp,getRect(0,0,RootWidth,RootHeight)) cnv.RemoveClip cnv.Invalidate Sleep(16) Next pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_OpenDoor (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim leftDoor As B4XBitmap = CurrentPageRoot.Snapshot.Crop(0,0,RootWidth/2, RootHeight) Dim rightDoor As B4XBitmap = CurrentPageRoot.Snapshot.Crop(RootWidth/2,0,RootWidth/2, RootHeight) Dim backBmp As B4XBitmap = NewPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 14 Dim stepWidth As Float = (RootWidth/2)/frames For i = 0 To frames-1 cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) cnv.DrawBitmap(leftDoor,getRect(-(i*stepWidth),0,RootWidth/2,RootHeight)) cnv.DrawBitmap(rightDoor,getRect((RootWidth/2)+(i*stepWidth),0,RootWidth/2,RootHeight)) cnv.Invalidate Sleep(16) Next pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_CloseDoor (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim leftDoor As B4XBitmap = NewPageRoot.Snapshot.Crop(0,0,RootWidth/2, RootHeight) Dim rightDoor As B4XBitmap = NewPageRoot.Snapshot.Crop(RootWidth/2,0,RootWidth/2, RootHeight) Dim backBmp As B4XBitmap = CurrentPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 14 Dim stepWidth As Float = (RootWidth/2)/frames For i = 0 To frames-1 cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) cnv.DrawBitmap(leftDoor,getRect(-(RootWidth/2)+(i*stepWidth),0,RootWidth/2,RootHeight)) cnv.DrawBitmap(rightDoor,getRect(RootWidth-(i*stepWidth),0,RootWidth/2,RootHeight)) cnv.Invalidate Sleep(16) Next pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_FadeOut (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim backBmp As B4XBitmap = CurrentPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) cnv.Invalidate pnl.Visible = True pnl.SetVisibleAnimated(600,False) Sleep(600) pnl.RemoveViewFromParent Return True End Sub 'Direction, choose between "LEFT" "TOP" "RIGHT" "BOTTOM" Public Sub PrepareTransition_SlideOut (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView, Direction As String) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim backBmp As B4XBitmap = CurrentPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) cnv.Invalidate Select Direction.ToUpperCase Case "LEFT" pnl.SetLayoutAnimated(400,-pnl.Width,pnl.Top,pnl.Width,pnl.Height) Case "TOP" pnl.SetLayoutAnimated(400,pnl.left,-pnl.Height,pnl.Width,pnl.Height) Case "BOTTOM" pnl.SetLayoutAnimated(400,pnl.left,pnl.Height,pnl.Width,pnl.Height) Case "RIGHT" pnl.SetLayoutAnimated(400,pnl.Width,pnl.Top,pnl.Width,pnl.Height) Case Else pnl.SetLayoutAnimated(400,-pnl.Width,pnl.Top,pnl.Width,pnl.Height) End Select Sleep(400) pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_SpiralOut (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim frontBmp As B4XBitmap = CurrentPageRoot.Snapshot Dim backBmp As B4XBitmap = NewPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 35 Dim stepSizeY As Float = RootHeight/frames Dim stepSizeX As Float = RootWidth/frames Dim deg As Int = 0 For i = 0 To frames-1 cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) deg = deg + 30 cnv.DrawBitmapRotated(frontBmp,getRect((RootWidth/2)-(RootWidth/2)+(stepSizeX*i),(RootHeight/2)-(RootHeight/2)+(stepSizeY*i),(RootWidth)-((stepSizeX*2)*i) , (RootHeight)-((stepSizeY*2)*i)),deg) cnv.Invalidate Sleep(16) Next pnl.RemoveViewFromParent Return True End Sub Public Sub PrepareTransition_BurnOut (Xui As XUI, RootWidth As Float, RootHeight As Float, CurrentPageRoot As B4XView, NewPageRoot As B4XView) As ResumableSub Dim pnl As B4XView = Xui.CreatePanel("") NewPageRoot.AddView(pnl, 0, 0, RootWidth, RootHeight) pnl.As(Panel).Elevation = 10dip Dim spritelist As List spritelist.Initialize Dim fireSprite As B4XBitmap = Xui.LoadBitmap(File.DirAssets,"fire2.png") Dim spWidth, spHeight As Float spWidth = fireSprite.Width/4 spHeight = fireSprite.Height/4 For y = 0 To 3 For x = 0 To 3 spritelist.Add(fireSprite.Crop(x*spWidth,y*spHeight,spWidth,spHeight)) Next Next Dim cnv As B4XCanvas cnv.Initialize(pnl) Dim frontBmp As B4XBitmap = CurrentPageRoot.Snapshot Dim backBmp As B4XBitmap = NewPageRoot.Snapshot cnv.ClearRect(cnv.TargetRect) Dim frames As Int = 36 Dim stepSize As Float = RootHeight/frames Dim flameframe As Int = 0 For i = 0 To frames-1 cnv.DrawBitmap(backBmp,getRect(0,0,RootWidth,RootHeight)) Dim path As B4XPath path.InitializeRoundedRect(getRect(0,0,RootWidth,RootHeight-(i*stepSize)),0) cnv.ClipPath(path) cnv.DrawBitmap(frontBmp,getRect(0,0,RootWidth,RootHeight)) cnv.RemoveClip Dim flame As B4XBitmap = spritelist.Get(flameframe) cnv.DrawBitmap(flame,getRect(-(pnl.Width*0.2),RootHeight-(pnl.Height*0.35)-(i*stepSize),pnl.Width*1.4,pnl.Height*0.45)) cnv.Invalidate Sleep(16) If i Mod 2 = 0 Then _ flameframe = (flameframe+1) Mod spritelist.Size Next pnl.RemoveViewFromParent Return True End Sub Private Sub getRect(x As Float, y As Float, w As Float, h As Float) As B4XRect Dim r As B4XRect r.Initialize(x,y,x+w,y+h) Return r End Sub