Exemple #1
0
		private void numEntry_EntryChanged(object sender, EventArgs e) {
			NumberEntry entry = sender as NumberEntry;

			if (this.CurrentValue != entry.CurrentValue) {
				this.CurrentValue = entry.CurrentValue;
				OnValueChanged();
			}
		}
Exemple #2
0
		protected internal override void OnSettingUp() {
			base.OnSettingUp();

			if (!string.IsNullOrEmpty(Label)) {
				_labelRect = new Rectangle(new Point(1, 1), new Point(Label.Length + 1, 1));

				_upButtonPos = new Point(Label.Length + 2, 1) + ScreenPosition;
			} else
				_upButtonPos = Point.One + ScreenPosition;

			int fieldWidth = NumberEntryTemplate.CalculateFieldWidth(MaximumValue, MinimumValue);
			Size fieldSize = new Size(fieldWidth, 1);
			_fieldRect = new Rectangle(_upButtonPos.Shift(2, 0), fieldSize);

			_downButtonPos = _fieldRect.TopRight;

			_numEntry = new NumberEntry(new NumberEntryTemplate()
			                           {
			                           		HasFrameBorder = false,
			                           		MinimumValue = this.MinimumValue,
			                           		MaximumValue = this.MaximumValue,
			                           		StartingValue = CurrentValue,
			                           		CommitOnLostFocus = true,
			                           		ReplaceOnFirstKey = true,
			                           		TopLeftPos = _fieldRect.TopLeft
			                           });

			_upButton = new EmitterButton(new EmitterButtonTemplate()
			                             {
			                             		HasFrameBorder = false,
			                             		Label = ((char) libtcod.TCODSpecialCharacter.ArrowNorthNoTail).ToString(),
			                             		TopLeftPos = _upButtonPos,
			                             		StartEmittingDelay = SpinDelay,
			                             		Speed = SpinSpeed
			                             });

			_downButton = new EmitterButton(new EmitterButtonTemplate()
			                               {
			                               		HasFrameBorder = false,
			                               		Label = ((char) libtcod.TCODSpecialCharacter.ArrowSouthNoTail).ToString(),
			                               		TopLeftPos = _downButtonPos,
			                               		StartEmittingDelay = SpinDelay,
			                               		Speed = SpinSpeed
			                               });


			_upButton.Emit += upButton_Emit;
			_downButton.Emit += downButton_Emit;
			_numEntry.EntryChanged += numEntry_EntryChanged;
		}
Exemple #3
0
        /// <summary>
        /// Creates the NumberEntry and ValueBar for this slider.
        /// </summary>
        protected internal override void OnSettingUp()
        {
            base.OnSettingUp();

            Point fieldPos;

            if (HasFrame)
            {
                if (!string.IsNullOrEmpty(Label))
                {
                    _labelRect = new Rectangle(new Point(1, 1), new Point(Label.Length + 1, 1));
                    fieldPos   = new Point(Label.Length + 2, 1);
                }
                else
                {
                    fieldPos = new Point(1, 1);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(Label))
                {
                    _labelRect = new Rectangle(new Point(0, 0), new Point(Label.Length + 1, 1));
                    fieldPos   = new Point(Label.Length + 2, 0);
                }
                else
                {
                    fieldPos = new Point(0, 0);
                }
            }


            int  fieldWidth = NumberEntryTemplate.CalculateFieldWidth(MaximumValue, MinimumValue);
            Size fieldSize  = new Size(fieldWidth, 1);

            _fieldRect = new Rectangle(fieldPos, fieldSize);

            if (BarPigment == null)
            {
                BarPigment = DetermineMainPigment();
            }

            _numEntry = new NumberEntry(new NumberEntryTemplate()
            {
                HasFrameBorder       = false,
                MinimumValue         = this.MinimumValue,
                MaximumValue         = this.MaximumValue,
                StartingValue        = CurrentValue,
                CommitOnLostFocus    = true,
                ReplaceOnFirstKey    = true,
                CanHaveKeyboardFocus = true,
                TopLeftPos           = this.LocalToScreen(_fieldRect.TopLeft)
            });

            int w = 0, h = 0;

            if (ShowLabel)
            {
                h++;
            }

            if (HasFrame)
            {
                h++;
                w++;
            }

            _valueBar = new ValueBar(new ValueBarTemplate()
            {
                TopLeftPos    = this.LocalToScreen(new Point(w, h)),
                Length        = this.Size.Width - (HasFrame ? 4 : 2),
                MaximumValue  = this.MaximumValue,
                MinimumValue  = this.MinimumValue,
                StartingValue = this.CurrentValue,
                BarPigment    = this.BarPigment
            });

            _leftButton = new EmitterButton(new EmitterButtonTemplate()
            {
                HasFrameBorder     = false,
                Label              = "-",
                TopLeftPos         = this.LocalToScreen(new Point(w, h)),
                StartEmittingDelay = SpinDelay,
                Speed              = SpinSpeed
            });
            _rightButton = new EmitterButton(new EmitterButtonTemplate()
            {
                HasFrameBorder     = false,
                Label              = "+",
                TopLeftPos         = this.LocalToScreen(new Point(w, h).Shift(Size.Width - (HasFrame ? 3 : 1), 0)),
                StartEmittingDelay = SpinDelay,
                Speed              = SpinSpeed
            });

            _numEntry.EntryChanged += numEntry_EntryChanged;

            _valueBar.MouseMoved += valueBar_MouseMoved;

            _valueBar.MouseButtonDown += valueBar_MouseButtonDown;

            _leftButton.Emit  += leftButton_Emit;
            _rightButton.Emit += rightButton_Emit;
        }