ub Process_Globals
Public App As Application
Public NavControl As NavigationController
Public TabControl As TabBarController
End Sub
Private Sub Application_Start (Nav As NavigationController)
Dim nativeobjectInstance As NativeObject
NavControl = Nav
TabControl.Initialize ("TabControl")
nativeobjectInstance = TabControl
nativeobjectInstance = nativeobjectInstance.GetField ("tabBar")
nativeobjectInstance.SetField ("tintColor", nativeobjectInstance.ColorToUIColor (0xFFFFFF00))
nativeobjectInstance.SetField ("unselectedItemTintColor", nativeobjectInstance.ColorToUIColor (0xFFFFFFFF))
nativeobjectInstance.SetField ("barTintColor", nativeobjectInstance.ColorToUIColor (0xFF000000))
TabControl.Pages = Array (CreateTabBarItem ("Chat", 0xF1D7, modulePage1), _
CreateTabBarItem ("Balance", 0xF24E, modulePage2), _
CreateTabBarItem ("Mail", 0xF003, modulePage3))
App.KeyController = TabControl
End Sub
Private Sub CreateTabBarItem (stringTitle As String, intIconCode As Int, modulePage As Object) As Page
Dim bitmapInstance As Bitmap
Dim pageInstance As Page
Dim tabBarItemInstance As TabBarItem
bitmapInstance = IconAwesome (intIconCode, Colors.Black, 30)
tabBarItemInstance.Initialize (stringTitle, bitmapInstance, bitmapInstance)
tabBarItemInstance.SetFont (Font.CreateNew (14))
pageInstance = CallSub (modulePage, "Initialize")
pageInstance.TabBarItem = tabBarItemInstance
Return pageInstance
End Sub
Private Sub IconAwesome (intCode As Int, intColor As Int, intIconSize As Int) As Bitmap
Dim bitmapInstance As Bitmap
Dim canvasInstance As Canvas
Dim floatFontSize As Float
Dim labelInvisible As Label
Dim panelInvisible As Panel
labelInvisible.Initialize ("")
labelInvisible.Text = Chr (intCode)
floatFontSize = intIconSize + 0.25
labelInvisible.Width = intIconSize + 1
Do While ((labelInvisible.Width > (intIconSize - 1)) Or (labelInvisible.Height > (intIconSize - 1)))
floatFontSize = floatFontSize - 0.25
labelInvisible.Font = Font.CreateFontAwesome (floatFontSize)
labelInvisible.SizeToFit
Loop
panelInvisible.Initialize ("")
panelInvisible.Width = intIconSize
panelInvisible.Height = intIconSize
canvasInstance.Initialize (panelInvisible)
canvasInstance.DrawText (Chr (intCode), (intIconSize - labelInvisible.Width) / 2, floatFontSize + (intIconSize - labelInvisible.Height) / 2, Font.CreateFontAwesome (floatFontSize), intColor, "")
bitmapInstance = canvasInstance.CreateBitmap
canvasInstance.Release
Return bitmapInstance
End Sub