Exemplo n.º 1
0
        // /////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Construct a NumberEntry with the specified template.
        /// </summary>
        /// <param name="template"></param>
        public NumberEntry(NumberEntryTemplate template)
            : base(template)
        {
            MaximumValue = template.MaximumValue;
            MinimumValue = template.MinimumValue;

            TrySetField(template.StartingValue.ToString());
        }
Exemplo n.º 2
0
        // /////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Construct a NumberEntry with the specified template.
        /// </summary>
        /// <param name="template"></param>
        public NumberEntry(NumberEntryTemplate template)
            : base(template)
        {
            MaximumValue = template.MaximumValue;
            MinimumValue = template.MinimumValue;

            TrySetField(template.StartingValue.ToString());
        }
Exemplo n.º 3
0
        // /////////////////////////////////////////////////////////////////////////////////

        // /////////////////////////////////////////////////////////////////////////////////
        protected override void OnSettingUp()
        {
            base.OnSettingUp();

            if (!string.IsNullOrEmpty(Label))
            {
                labelRect   = new Rect(1, 1, Label.Length + 1, 1);
                upButtonPos = new Point(Label.Length + 2, 1);
            }
            else
            {
                upButtonPos = new Point(1, 1);
            }

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

            fieldRect = new Rect(upButtonPos.Shift(2, 0), fieldSize);

            downButtonPos = fieldRect.UpperRight.Shift(1, 0);

            numEntry = new NumberEntry(new NumberEntryTemplate()
            {
                HasFrameBorder    = false,
                MinimumValue      = this.MinimumValue,
                MaximumValue      = this.MaximumValue,
                StartingValue     = CurrentValue,
                CommitOnLostFocus = true,
                ReplaceOnFirstKey = true,
                UpperLeftPos      = fieldRect.UpperLeft
            });

            upButton = new EmitterButton(new EmitterButtonTemplate()
            {
                HasFrameBorder     = false,
                Label              = ((char)libtcod.TCODSpecialCharacter.ArrowNorthNoTail).ToString(),
                UpperLeftPos       = upButtonPos,
                StartEmittingDelay = SpinDelay,
                Speed              = SpinSpeed
            });

            downButton = new EmitterButton(new EmitterButtonTemplate()
            {
                HasFrameBorder     = false,
                Label              = ((char)libtcod.TCODSpecialCharacter.ArrowSouthNoTail).ToString(),
                UpperLeftPos       = downButtonPos,
                StartEmittingDelay = SpinDelay,
                Speed              = SpinSpeed
            });

            ParentWindow.AddControls(downButton, upButton, numEntry);

            upButton.Emit         += new EventHandler(upButton_Emit);
            downButton.Emit       += new EventHandler(downButton_Emit);
            numEntry.EntryChanged += new EventHandler(numEntry_EntryChanged);
        }
Exemplo n.º 4
0
        // /////////////////////////////////////////////////////////////////////////////////

        // /////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Creates the NumberEntry and ValueBar for this slider.
        /// </summary>
        protected override void OnSettingUp()
        {
            base.OnSettingUp();

            Point fieldPos;

            if (!string.IsNullOrEmpty(Label))
            {
                labelRect = new Rect(1, 1, Label.Length + 1, 1);
                fieldPos  = new Point(Label.Length + 2, 1);
            }
            else
            {
                fieldPos = new Point(1, 1);
            }

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

            fieldRect = new Rect(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,
                UpperLeftPos      = this.LocalToScreen(fieldRect.UpperLeft)
            });

            valueBar = new ValueBar(new ValueBarTemplate()
            {
                UpperLeftPos  = this.LocalToScreen(new Point(1, 2)),
                Width         = this.Size.Width - 4,
                MaximumValue  = this.MaximumValue,
                MinimumValue  = this.MinimumValue,
                StartingValue = this.CurrentValue,
                BarPigment    = this.BarPigment
            });

            ParentWindow.AddControls(valueBar, numEntry);

            numEntry.EntryChanged += new EventHandler(numEntry_EntryChanged);

            valueBar.MouseMoved += new EventHandler <MouseEventArgs>(valueBar_MouseMoved);

            valueBar.MouseButtonDown += new EventHandler <MouseEventArgs>(valueBar_MouseButtonDown);
        }
Exemplo n.º 5
0
        public override Size CalculateSize()
        {
            int width = 2; // for frame

            if (!string.IsNullOrEmpty(Label))
            {
                width += Canvas.TextLength(Label) + 1;
            }

            width += NumberEntryTemplate.CalculateFieldWidth(MaximumValue, MinimumValue);
            width += 3; // for buttons

            return(new Size(width, 3));
        }