Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/WinRTLiveTileManagerMainDemo/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/WinRTLiveTileManagerMainDemo/Program.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Windows.Forms

Namespace DevExpress.WinRTLiveTileManager.Demos
	Friend NotInheritable Class Program
		Private Shared moduleName As String
		Private Shared cmdArgs() As String
		Private Shared mainForm As New frmMain()
		Private Sub New()
		End Sub
		<STAThread> _
		Shared Sub Main()
			If CheckAlreadyRun() Then
				Return
			End If
			cmdArgs = Environment.GetCommandLineArgs()
			DevExpress.UserSkins.BonusSkins.Register()
			DevExpress.XtraBars.WinRTLiveTiles.WinRTLiveTileManager.InitializeNavigation()
			AddHandler DevExpress.XtraBars.WinRTLiveTiles.WinRTLiveTileManager.OnNavigated, AddressOf WinRTLiveTileManager_OnNavigated
			ModuleCreator.CreateModules()
			SendModuleName()
			Application.Run(mainForm)
		End Sub
		Private Shared Function CheckAlreadyRun() As Boolean
			Dim processes() As Process = Process.GetProcessesByName("WinRTLiveTileManagerMainDemo")
			Return If(processes.Length > 1, True, False)
		End Function

		Private Shared Sub SendModuleName()
			If cmdArgs.Length =2 AndAlso (Not String.IsNullOrEmpty(cmdArgs(1))) Then
				frmMain.startupModuleName = GetModuleName(cmdArgs(1))
			End If
		End Sub

		Private Shared Sub WinRTLiveTileManager_OnNavigated(ByVal obj As String)
			moduleName = GetModuleName(obj)
			mainForm.BeginInvoke(New MethodInvoker(Function() AnonymousMethod1()))
			mainForm.BeginInvoke(New MethodInvoker(Function() AnonymousMethod2()))
		End Sub
		
		Private Shared Function AnonymousMethod1() As Boolean
			mainForm.ResetNavbarSelectedLink()
			Return True
		End Function
		
		Private Shared Function AnonymousMethod2() As Boolean
			mainForm.ShowModule(moduleName)
			Return True
		End Function
		Private Shared Function GetModuleName(ByVal input As String) As String
			Select Case input
				Case "5108ce18-b841-4521-bf9f-59979b1ef0c2"
					Return "KPI"
				Case "dcef255d-5648-41ec-8b14-55449add314e"
					Return "Outlook Style"
				Case Else
					Return "About Live Tiles"
			End Select
		End Function

	End Class
End Namespace