예제 #1
0
        // Runs on our automation thread
        // CONSIDER: We might want to do some batching of the text edits?
        void _formulaEditWatcher_StateChanged(object sender, FormulaEditWatcher.StateChangeEventArgs args)
        {
            Logger.Monitor.Verbose($"!> FormulaEdit StateChanged ({args.StateChangeType}) - Thread {Thread.CurrentThread.ManagedThreadId}");
            //Logger.Monitor.Verbose("!> " + ReadCurrentState().ToString());

            if (args.StateChangeType == FormulaEditWatcher.StateChangeType.TextChange &&
                CurrentState is UIState.FormulaEdit)
            {
                var newState = ((UIState.FormulaEdit)CurrentState).WithFormulaPrefix(_formulaEditWatcher.CurrentPrefix);
                OnStateChanged(newState);
                return;
            }

            if (args.StateChangeType == FormulaEditWatcher.StateChangeType.Move)
            {
                if (CurrentState is UIState.FunctionList)
                {
                    // We'll update stuff in the PopupList change handler
//                    var newState = ((UIState.FunctionList)CurrentState).WithBounds(_formulaEditWatcher.EditWindowBounds);
//                    OnStateChanged(newState);
                    return;
                }
                if (CurrentState is UIState.FormulaEdit)
                {
                    var newState = ((UIState.FormulaEdit)CurrentState).WithBounds(_formulaEditWatcher.EditWindowBounds);
                    OnStateChanged(newState);
                    return;
                }
            }
            OnStateChanged();
        }
        // Runs on our automation thread
        // CONSIDER: We might want to do some batching of the text edits?
        void _formulaEditWatcher_StateChanged(object sender, FormulaEditWatcher.StateChangeEventArgs args)
        {
            Logger.Monitor.Verbose(string.Format("!> FormulaEdit StateChanged ({0}) - Thread {1}", args.StateChangeType, Thread.CurrentThread.ManagedThreadId));
            //Logger.Monitor.Verbose("!> " + ReadCurrentState().ToString());

            if (args.StateChangeType == FormulaEditWatcher.StateChangeType.TextChange &&
                CurrentState is UIState.FormulaEdit)
            {
                var newState = ((UIState.FormulaEdit)CurrentState).WithFormulaPrefix(_formulaEditWatcher.CurrentPrefix);
                OnStateChanged(newState);
                return;
            }

            if (args.StateChangeType == FormulaEditWatcher.StateChangeType.Move)
            {
                if (CurrentState is UIState.FunctionList)
                {
                    var newState = ((UIState.FunctionList)CurrentState).WithBounds(_formulaEditWatcher.EditWindowBounds);
                    OnStateChanged(newState);
                    return;
                }
                if (CurrentState is UIState.FormulaEdit)
                {
                    var newState = ((UIState.FormulaEdit)CurrentState).WithBounds(_formulaEditWatcher.EditWindowBounds);
                    OnStateChanged(newState);
                    return;
                }
            }
            OnStateChanged();
        }