public void OnLoad(bool resetTalkWindowPosition = true) { PositionSizeController.OnLoad(); TextController.OnLoad(); PositionSizeController.ScaleForm(); Windows.SetWindowPosition(ScannerForm, Context.AppWindowPosition); if (Context.ShowTalkWindowOnStartup) { Context.AppTalkWindowManager.ToggleTalkWindow(); Context.ShowTalkWindowOnStartup = false; } if (resetTalkWindowPosition) { Context.AppTalkWindowManager.SetTalkWindowPosition(ScannerForm); } StatusBarController.UpdateStatusBar(); subscribeToEvents(); SetWidgetEnabledStates(WindowActivityMonitor.GetForegroundWindowInfo()); }
/// <summary> /// Performs initialization. Reads the config file for the form, creates /// the animation manager, widget manager, loads in all the widgets, /// subscribes to events /// Call this function in the Initialize() function in the scanner. /// </summary> /// <param name="startupArg"></param> /// <returns></returns> public bool Initialize(StartupArg startupArg) { Log.Debug("Entered from Initialize"); Glass.Enable = CoreGlobals.AppPreferences.EnableGlass; Glass.EvtShowGlass += Glass_EvtShowGlass; StartupArg = startupArg; ScannerForm.AutoScaleMode = AutoScaleMode.None; ScannerForm.TopMost = true; Windows.ShowWindowBorder(ScannerForm, CoreGlobals.AppPreferences.ScannerShowBorder, CoreGlobals.AppPreferences.ScannerShowTitleBar ? ScannerForm.Text : String.Empty); Windows.EvtWindowPositionChanged += Windows_EvtWindowPositionChanged; ScannerForm.SizeChanged += ScannerForm_SizeChanged; subscribeTalkWindowManager(); ScannerForm.Shown += form_Shown; ScannerForm.VisibleChanged += form_VisibleChanged; _dialogMode = startupArg.DialogMode; var configFile = startupArg.ConfigFileName; if (String.IsNullOrEmpty(configFile)) { configFile = PanelConfigMap.GetConfigFileForScreen(ScannerForm.GetType()); } bool retVal = initWidgetManager(configFile); if (retVal) { retVal = initAnimationManager(configFile); } if (retVal) { createIdleTimer(); } PositionSizeController.Initialize(); PositionSizeController.AutoSetPosition(); _windowOverlapWatchdog = new WindowOverlapWatchdog(ScannerForm); WindowActivityMonitor.EvtWindowMonitorHeartbeat += WindowActivityMonitor_EvtWindowMonitorHeartbeat; Log.Debug("Returning from Initialize"); return(retVal); }
/// <summary> /// Call this in the OnFormClosing override in the form. Stops animation, /// unsubscribes from events /// </summary> /// <param name="e">args</param> public void OnFormClosing(FormClosingEventArgs e) { var buttonList = new List <Widget>(); _rootWidget.Finder.FindAllChildren(buttonList); foreach (var widget in buttonList) { if (widget is IButtonWidget) { widget.EvtActuated -= widget_EvtActuated; } } if (_animationManager != null) { _animationManager.EvtPlayerStateChanged -= animationManager_EvtPlayerStateChanged; } Glass.EvtShowGlass -= Glass_EvtShowGlass; Log.Debug(ScannerForm.Name + ", _syncObj.Status: " + _syncLock.Status + ", hashcode: " + _syncLock.GetHashCode()); if (_syncLock.Status != SyncLock.StatusValues.None) { Log.Debug(ScannerForm.Name + ", _syncObj.Status: " + _syncLock.Status + ", form already closed. returning"); return; } Log.Debug(ScannerForm.Name + ", _syncObj.Status: " + _syncLock.Status + ", Will continue closing"); Log.Debug("Setting _syncLock.Status to CLOSING " + ScannerForm.Name); _syncLock.Status = SyncLock.StatusValues.Closing; Log.Debug("Before animationmangoer.stop"); _animationManager.Stop(); Log.Debug("After animationmangoer.stop"); Log.Debug("Unsubscribe to EvtHeartbeat for " + ScannerForm.Name); WindowActivityMonitor.EvtWindowMonitorHeartbeat -= WindowActivityMonitor_EvtWindowMonitorHeartbeat; Log.Debug("Unsubscribe to EvtHeartbeat DONE for " + ScannerForm.Name); PositionSizeController.OnClosing(); TextController.OnClosing(); unsubscribeEvents(); unsubscribeTalkWindowManager(); Log.Debug("Exiting FormClosing for " + ScannerForm.Name); }
/// <summary> /// Call this in the OnResume event handler in the form /// </summary> public void OnResume() { if (!_isPaused) { return; } _isPaused = false; try { StatusBarController.UpdateStatusBar(); PositionSizeController.ScaleForm(); if (!DialogMode) { if (!KeepTalkWindowActive) { Log.Debug(ScannerForm.Name + ", _talkWindowPaused : " + _talkWindowPaused); if (_talkWindowPaused) { Log.Debug(ScannerForm.Name + ", Resuming talk window: " + _talkWindowPaused); Context.AppTalkWindowManager.Resume(); _talkWindowPaused = false; } } PositionSizeController.AutoSetPositionAndNotify(); } } catch (Exception ex) { Log.Debug(ex.ToString()); } }
/// <summary> /// Event handler for form Shown event. The scanner form /// was displayed. Position it in its place /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void form_Shown(object sender, EventArgs e) { Log.Debug("Shown " + ScannerForm.Name); Windows.SetTopMost(ScannerForm); PositionSizeController.AutoSetPositionAndNotify(); }