Exemplo n.º 1
0
        private void ProcessMemoryKey(Calculator.CalculatorButtonType buttonType)
        {
            decimal currentValue = CalculatorUtilities.ParseDecimal(DisplayText);

            _showNewNumber = true;

            switch (buttonType)
            {
            case Calculator.CalculatorButtonType.MAdd:
                Memory += currentValue;
                break;

            case Calculator.CalculatorButtonType.MC:
                Memory = decimal.Zero;
                break;

            case Calculator.CalculatorButtonType.MR:
                DisplayText    = Memory.ToString();
                _showNewNumber = false;
                break;

            case Calculator.CalculatorButtonType.MS:
                Memory = currentValue;
                break;

            case Calculator.CalculatorButtonType.MSub:
                Memory -= currentValue;
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
        public static bool IsMemory(Calculator.CalculatorButtonType buttonType)
        {
            switch (buttonType)
            {
            case Calculator.CalculatorButtonType.MAdd:
            case Calculator.CalculatorButtonType.MC:
            case Calculator.CalculatorButtonType.MR:
            case Calculator.CalculatorButtonType.MS:
            case Calculator.CalculatorButtonType.MSub:
                return(true);

            default:
                return(false);
            }
        }
Exemplo n.º 3
0
        public static bool IsDigit(Calculator.CalculatorButtonType buttonType)
        {
            switch (buttonType)
            {
            case Calculator.CalculatorButtonType.Zero:
            case Calculator.CalculatorButtonType.One:
            case Calculator.CalculatorButtonType.Two:
            case Calculator.CalculatorButtonType.Three:
            case Calculator.CalculatorButtonType.Four:
            case Calculator.CalculatorButtonType.Five:
            case Calculator.CalculatorButtonType.Six:
            case Calculator.CalculatorButtonType.Seven:
            case Calculator.CalculatorButtonType.Eight:
            case Calculator.CalculatorButtonType.Nine:
            case Calculator.CalculatorButtonType.Decimal:
                return(true);

            default:
                return(false);
            }
        }
Exemplo n.º 4
0
        public static Button FindButtonByCalculatorButtonType(DependencyObject parent,
                                                              Calculator.CalculatorButtonType type)
        {
            for (var i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
            {
                var child = VisualTreeHelper.GetChild(parent, i);

                var buttonType = child.GetValue(ButtonBase.CommandParameterProperty);

                if (buttonType is not null && (Calculator.CalculatorButtonType)buttonType == type)
                {
                    return(child as Button);
                }

                var result = FindButtonByCalculatorButtonType(child, type);

                if (result is not null)
                {
                    return(result);
                }
            }

            return(null);
        }
Exemplo n.º 5
0
        public static string GetCalculatorButtonContent(Calculator.CalculatorButtonType type)
        {
            var content = string.Empty;

            switch (type)
            {
            case Calculator.CalculatorButtonType.Add:
                content = "+";
                break;

            case Calculator.CalculatorButtonType.Back:
                content = "Back";
                break;

            case Calculator.CalculatorButtonType.Cancel:
                content = "CE";
                break;

            case Calculator.CalculatorButtonType.Clear:
                content = "C";
                break;

            case Calculator.CalculatorButtonType.Decimal:
                content = CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
                break;

            case Calculator.CalculatorButtonType.Divide:
                content = "/";
                break;

            case Calculator.CalculatorButtonType.Eight:
                content = "8";
                break;

            case Calculator.CalculatorButtonType.Equal:
                content = "=";
                break;

            case Calculator.CalculatorButtonType.Five:
                content = "5";
                break;

            case Calculator.CalculatorButtonType.Four:
                content = "4";
                break;

            case Calculator.CalculatorButtonType.Fraction:
                content = "1/x";
                break;

            case Calculator.CalculatorButtonType.MAdd:
                content = "M+";
                break;

            case Calculator.CalculatorButtonType.MC:
                content = "MC";
                break;

            case Calculator.CalculatorButtonType.MR:
                content = "MR";
                break;

            case Calculator.CalculatorButtonType.MS:
                content = "MS";
                break;

            case Calculator.CalculatorButtonType.MSub:
                content = "M-";
                break;

            case Calculator.CalculatorButtonType.Multiply:
                content = "*";
                break;

            case Calculator.CalculatorButtonType.Nine:
                content = "9";
                break;

            case Calculator.CalculatorButtonType.None:
                break;

            case Calculator.CalculatorButtonType.One:
                content = "1";
                break;

            case Calculator.CalculatorButtonType.Percent:
                content = "%";
                break;

            case Calculator.CalculatorButtonType.Seven:
                content = "7";
                break;

            case Calculator.CalculatorButtonType.Negate:
                content = "+/-";
                break;

            case Calculator.CalculatorButtonType.Six:
                content = "6";
                break;

            case Calculator.CalculatorButtonType.Sqrt:
                content = "Sqrt";
                break;

            case Calculator.CalculatorButtonType.Subtract:
                content = "-";
                break;

            case Calculator.CalculatorButtonType.Three:
                content = "3";
                break;

            case Calculator.CalculatorButtonType.Two:
                content = "2";
                break;

            case Calculator.CalculatorButtonType.Zero:
                content = "0";
                break;
            }

            return(content);
        }
Exemplo n.º 6
0
        public static Button FindButtonByCalculatorButtonType(DependencyObject parent, Calculator.CalculatorButtonType type)
        {
            if (parent == null)
            {
                return(null);
            }

            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
            {
                var child = VisualTreeHelper.GetChild(parent, i);
                if (child == null)
                {
                    continue;
                }

                object buttonType = child.GetValue(Button.CommandParameterProperty);

                if (buttonType != null && (Calculator.CalculatorButtonType)buttonType == type)
                {
                    return(child as Button);
                }
                else
                {
                    var result = FindButtonByCalculatorButtonType(child, type);

                    if (result != null)
                    {
                        return(result);
                    }
                }
            }
            return(null);
        }