/// <summary> /// Constructor. /// </summary> public MainForm() { MainForm.Current = this; InitializeComponent(); Load += MainForm_Load; Shown += (s, a) => Visible = false; // The main form should always be hidden // Ensure that temporary files are written to the users temporary folder because // there's a decent chance that this folder will be encrypted at rest. TempFile.Root = KubeHelper.TempFolder; TempFolder.Root = KubeHelper.TempFolder; // Preload the notification icons and animations for better performance. appIcon = new Icon(@"Images\app.ico"); connectedIcon = new Icon(@"Images\connected.ico"); disconnectedIcon = new Icon(@"Images\disconnected.ico"); errorIcon = new Icon(@"Images\error.ico"); connectingAnimation = AnimatedIcon.Load("Images", "connecting", animationFrameRate); workingAnimation = AnimatedIcon.Load("Images", "working", animationFrameRate); errorAnimation = AnimatedIcon.Load("Images", "error", animationFrameRate); notifyStack = new Stack <NotifyState>(); // Initialize the cluster hosting provider components. HostingLoader.Initialize(); // Initialize the client state. proxies = new List <ReverseProxy>(); portForwards = new List <PortForward>(); Headend = new HeadendClient(); KubeHelper.LoadClientConfig(); }