예제 #1
0
        /// <summary>
        /// A method to move from the current button.
        /// </summary>
        /// <param name="direction">The direction to move.</param>
        internal void Move(char direction)
        {
            var x = CurrentButton.X;
            var y = CurrentButton.Y;

            switch (direction)
            {
            case 'U':
                y++;
                break;

            case 'D':
                y--;
                break;

            case 'L':
                x--;
                break;

            case 'R':
                x++;
                break;
            }

            CurrentButton = Buttons.Any(b => (b.X == x && b.Y == y)) ? Buttons.Where(b => (b.X == x && b.Y == y)).FirstOrDefault() : CurrentButton;
        }
        private void AlignBtnsX()
        {
            if (Background != null)
            {
                Background.PositionUpLeft = this.MenuCenter;
            }

            if (Buttons.Any())
            {
                var overallWidth = this.Margin * (this.Buttons.Count - 1);
                foreach (var btn in Buttons)
                {
                    overallWidth += btn.CollisionRectangle.Width;
                }

                var position = overallWidth / 2;
                foreach (var btn in Buttons)
                {
                    var pos = position - btn.CollisionRectangle.Width / 2;
                    btn.PositionUpLeft = new Vector2(-position + btn.CollisionRectangle.Width / 2,  //To be revised
                                                     this.MenuCenter.Y);
                    position -= (btn.CollisionRectangle.Width / 2 + this.Margin);
                }
            }
        }
        private void AlignBtnsY()
        {
            if (Background != null)
            {
                Background.PositionUpLeft = this.MenuCenter;
            }

            if (Buttons.Any())
            {
                var overallHeight = this.Margin * (this.Buttons.Count - 1);
                foreach (var btn in Buttons)
                {
                    overallHeight += btn.CollisionRectangle.Height;
                }

                var position = overallHeight / 2;
                foreach (var btn in Buttons)
                {
                    var pos = position - btn.CollisionRectangle.Height / 2;
                    btn.PositionUpLeft = new Vector2(this.MenuCenter.X,
                                                     -pos + this.MenuCenter.Y);
                    position -= (btn.CollisionRectangle.Height / 2 + this.Margin);
                }
            }
        }
예제 #4
0
        private void RecheckCancellation()
        {
            bool cancel = ((CommonButtons & TaskDialogCommonButtons.Cancel) != TaskDialogCommonButtons.None) ||
                          (Buttons != null && Buttons.Any(b => b.Result == TaskDialogResult.Cancel));

            _IsCancellable = cancel || (_IsOnlyOK == true) || AllowDialogCancellation;
            if (!_IsCancellable)
            {
                DisableCloseButton();
            }
            else
            {
                EnableCloseButton();
            }
        }
예제 #5
0
        public void ButtonPressed(object sender, EventArgs e)
        {
            if (((ASMultiSelectActionSheetButton)sender).Style == ASMultiSelectActionSheetButtonStyle.MultiSelect)
            {
                ((ASMultiSelectActionSheetButton)sender).Selected = !((ASMultiSelectActionSheetButton)sender).Selected;
                if (((ASMultiSelectActionSheetButton)sender).Selected || Buttons.Any(b => b.Selected))
                {
                    ActionButton.Enabled = true;
                }
                else
                {
                    ActionButton.Enabled = false;
                }

                return;
            }

            if (ButtonPressedAction != null)
            {
                var indexPath = NSIndexPath.FromRowSection(((ASMultiSelectActionSheetButton)sender).Row, Index);
                ButtonPressedAction.Invoke(indexPath);
            }
        }
예제 #6
0
 public void SetButtons(IEnumerable <string> buttons)
 {
     Buttons.Clear();
     Buttons.AddRange(buttons.Select((b, i) => new Indexed <string>(i, b)));
     HasButtons = Buttons.Any();
 }