예제 #1
0
파일: Spinner.cs 프로젝트: rox00/WPF
        /// <summary>
        /// ValidSpinDirectionProperty property changed handler.
        /// </summary>
        /// <param name="d">ButtonSpinner that changed its ValidSpinDirection.</param>
        /// <param name="e">Event arguments.</param>
        private static void OnValidSpinDirectionPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            Spinner             source   = ( Spinner )d;
            ValidSpinDirections oldvalue = ( ValidSpinDirections )e.OldValue;
            ValidSpinDirections newvalue = ( ValidSpinDirections )e.NewValue;

            source.OnValidSpinDirectionChanged(oldvalue, newvalue);
        }
예제 #2
0
        /// <summary>
        /// Raises the OnSpin event when spinning is initiated by the end-user.
        /// </summary>
        /// <param name="pEventArgs">The event arguments.</param>
        protected virtual void NotifySpin(SpinEventArgs pEventArgs)
        {
            ValidSpinDirections lDirection = pEventArgs.Direction == SpinDirection.Increase ? ValidSpinDirections.Increase : ValidSpinDirections.Decrease;

            // Only raise the event if spin is allowed.
            if ((this.ValidSpinDirections & lDirection) == lDirection)
            {
                if (this.Spin != null)
                {
                    this.Spin(this, pEventArgs);
                }
            }
        }
예제 #3
0
파일: Spinner.cs 프로젝트: rox00/WPF
        /// <summary>
        /// Raises the OnSpin event when spinning is initiated by the end-user.
        /// </summary>
        /// <param name="e">Spin event args.</param>
        protected virtual void OnSpin(SpinEventArgs e)
        {
            ValidSpinDirections valid = e.Direction == SpinDirection.Increase ? ValidSpinDirections.Increase : ValidSpinDirections.Decrease;

            //Only raise the event if spin is allowed.
            if ((ValidSpinDirection & valid) == valid)
            {
                EventHandler <SpinEventArgs> handler = Spin;
                if (handler != null)
                {
                    handler(this, e);
                }
            }
        }
예제 #4
0
        /// <summary>
        /// Raises the OnSpin event when spinning is initiated by the end-user.
        /// </summary>
        /// <param name="e">Spin event args.</param>
        protected virtual void OnSpin(SpinEventArgs e)
        {
            ValidSpinDirections valid = e.Direction == SpinDirection.Increase ? ValidSpinDirections.Increase : ValidSpinDirections.Decrease;

            if ((ValidSpinDirection & valid) != valid)
            {
                // spin is not allowed.
                throw new InvalidOperationException(Properties.Resources.Spinner_SpinNotValid);
            }

            EventHandler <SpinEventArgs> handler = Spin;

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #5
0
        /// <summary>
        /// Sets the valid spin direction based on current value, minimum and maximum.
        /// </summary>
        private void SetValidSpinDirection()
        {
            ValidSpinDirections validDirections = ValidSpinDirections.None;

            if (Value < Maximum)
            {
                validDirections = validDirections | ValidSpinDirections.Increase;
            }
            if (Value > Minimum)
            {
                validDirections = validDirections | ValidSpinDirections.Decrease;
            }

            if (Spinner != null)
            {
                Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #6
0
        protected override void SetValidSpinDirection()
        {
            ValidSpinDirections validDirections = ValidSpinDirections.None;

            if (Value < Maximum || !Value.HasValue)
            {
                validDirections = validDirections | ValidSpinDirections.Increase;
            }

            if (Value > Minimum || !Value.HasValue)
            {
                validDirections = validDirections | ValidSpinDirections.Decrease;
            }

            if (Spinner != null)
            {
                Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #7
0
        protected override void SetValidSpinDirection()
        {
            ValidSpinDirections validDirections = ValidSpinDirections.None;

            if ((this.Increment != null) && !IsReadOnly)
            {
                if (IsLowerThan(Value, Maximum) || !Value.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Increase;
                }

                if (IsGreaterThan(Value, Minimum) || !Value.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Decrease;
                }
            }

            if (Spinner != null)
            {
                Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #8
0
        /// <summary>
        /// Sets the valid spin direction based on current index, minimum and maximum.
        /// </summary>
        private void SetValidSpinDirection()
        {
            int count = GetActualItems().Count();

            // decrease and increase within domainUpDown work differently from what is expected.

            ValidSpinDirections validDirections = ValidSpinDirections.None;

            if (IsCyclic || CurrentIndex < count - 1)
            {
                validDirections = validDirections | ValidSpinDirections.Decrease;
            }
            if (IsCyclic || CurrentIndex > 0)
            {
                validDirections = validDirections | ValidSpinDirections.Increase;
            }

            if (Spinner != null)
            {
                Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #9
0
        protected override void SetValidSpinDirection()
        {
            if (Loop)
            {
                if (Spinner != null)
                {
                    ValidSpinDirections validSpinDirections = ValidSpinDirections.None;

                    if (Increment.HasValue && !IsReadOnly)
                    {
                        validSpinDirections |= ValidSpinDirections.Increase;
                        validSpinDirections |= ValidSpinDirections.Decrease;
                    }

                    Spinner.ValidSpinDirection = validSpinDirections;
                }
            }
            else
            {
                base.SetValidSpinDirection();
            }
        }
        protected override void SetValidSpinDirection()
        {
            ValidSpinDirections validDirections = ValidSpinDirections.None;

            if (!this.IsReadOnly)
            {
                if (this.IsLowerThan(this.Value, this.Maximum) || !this.Value.HasValue || !this.Maximum.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Increase;
                }

                if (this.IsGreaterThan(this.Value, this.Minimum) || !this.Value.HasValue || !this.Minimum.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Decrease;
                }
            }

            if (this.Spinner != null)
            {
                this.Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #11
0
        /// <summary>
        /// The set valid spin direction.
        /// </summary>
        protected override void SetValidSpinDirection()
        {
            ValidSpinDirections validDirections = ValidSpinDirections.None;

            // Null increment always prevents spin.
            if ((this.Increment != null) && !this.IsReadOnly)
            {
                if (this.IsLowerThan(this.Value, this.Maximum) || !Value.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Increase;
                }

                if (this.IsGreaterThan(this.Value, this.Minimum) || !this.Value.HasValue)
                {
                    validDirections = validDirections | ValidSpinDirections.Decrease;
                }
            }

            if (this.Spinner != null)
            {
                this.Spinner.ValidSpinDirection = validDirections;
            }
        }
예제 #12
0
파일: Spinner.cs 프로젝트: rox00/WPF
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected virtual void OnValidSpinDirectionChanged(ValidSpinDirections oldValue, ValidSpinDirections newValue)
 {
 }
예제 #13
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected override void OnValidSpinDirectionChanged( ValidSpinDirections oldValue, ValidSpinDirections newValue )
 {
   SetButtonUsage();
 }
예제 #14
0
 protected override void OnValidSpinDirectionChanged(ValidSpinDirections oldValue, ValidSpinDirections newValue)
 {
     SetButtonUsage();
 }
예제 #15
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected virtual void OnValidSpinDirectionChanged(ValidSpinDirections oldValue, ValidSpinDirections newValue) { }
예제 #16
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected virtual void OnValidSpinDirectionChanged(ValidSpinDirections oldValue, ValidSpinDirections newValue)
 {
     UpdateVisualState(true);
 }
예제 #17
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="pOldValue">The old value.</param>
 /// <param name="pNewValue">The new value.</param>
 protected override void OnValidSpinDirectionChanged(ValidSpinDirections pOldValue, ValidSpinDirections pNewValue)
 {
     this.SetButtonUsage();
 }
예제 #18
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected virtual void OnValidSpinDirectionChanged(ValidSpinDirections oldValue, ValidSpinDirections newValue)
 {
     UpdateVisualState(true);
 }
예제 #19
0
 public static void OnValidSpinDirectionPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     ValidSpinDirections oldvalue = (ValidSpinDirections)e.OldValue;
     ValidSpinDirections newvalue = (ValidSpinDirections)e.NewValue;
 }
예제 #20
0
 /// <summary>
 /// Called when valid spin direction changed.
 /// </summary>
 /// <param name="pOldValue">The old value.</param>
 /// <param name="pNewValue">The new value.</param>
 protected override void OnValidSpinDirectionChanged(ValidSpinDirections pOldValue, ValidSpinDirections pNewValue)
 {
     this.SetButtonUsage();
 }