Beispiel #1
0
        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());
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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());
            }
        }
Beispiel #5
0
 /// <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();
 }