public Starter(IBufermanHost bufermanHost, IBufermanApplication bufermanApp, IProgramSettingsGetter settings) { this._bufermanHost = bufermanHost; this._bufermanApp = bufermanApp; this._settings = settings; }
public void Start(IBufermanApplication bufermanApplication, bool isAdmin) { this._isAdmin = isAdmin; this._bufermanApplication = bufermanApplication; Application.ThreadException += BufermanWindow._Application_ThreadException;//Must be run before Application.Run() //Note Application.EnableVisualStyles(); this._bufermanApplication.SetHost(this); this.TrayIcon = new NotifyIcon() { Text = Resource.NotifyIconStartupText, Icon = Icons.Buferman, Visible = true }; this.TrayIcon.DoubleClick += this._TrayIcon_DoubleClick; this.NotificationEmitter = new NotificationEmitter(this.TrayIcon, bufermanApplication.GetBufermanTitle()); this.NotificationEmitter.ShowInfoNotification(Resource.NotifyIconStartupText, 1500); this._InitializeForm(); this.Text = isAdmin ? bufermanApplication.GetBufermanAdminTitle() : bufermanApplication.GetBufermanTitle(); this.InnerAreaWidth = this.ClientRectangle.Width; this._pinnedBufersDivider = new Label { Text = string.Empty, BorderStyle = BorderStyle.FixedSingle, AutoSize = false, Height = 3, BackColor = Color.AliceBlue, Width = this.InnerAreaWidth }; this.Controls.Add(this._pinnedBufersDivider); this._pinnedBufersDivider.BringToFront(); bufermanApplication.Run(); Application.Idle += (object sender, EventArgs args) => { if (bufermanApplication.NeedRerender) { bufermanApplication.ClearEmptyBufers(); bufermanApplication.RerenderBufers(); bufermanApplication.NeedRerender = false; } }; Application.Run(this); }
public void Exit() { this.OnExiting?.Invoke(this, EventArgs.Empty); this.TrayIcon.Visible = false; WindowsFunctions.UnregisterHotKey(this.Handle, 0); this._bufermanApplication = null; Application.Exit(); }