コード例 #1
0
        private void FormQueryFormula_Load(object sender, EventArgs e)
        {
            if (FormulaText != null)
            {
                int nAsPos = FormulaText.IndexOf(" as ");
                if (nAsPos > 0)
                {
                    this.textBoxFormula.Text = FormulaText.Substring(0, nAsPos);
                    this.textBoxAlias.Text   = FormulaText.Substring(nAsPos + 4, FormulaText.Length - (nAsPos + 4));
                }
                else
                {
                    this.textBoxFormula.Text = FormulaText;
                }
            }
            comboBox2.Items.Clear();
            foreach (PmsField pf in _pmsFieldList)
            {
                comboBox2.Items.Add(pf.fieldName);
            }
            if (comboBox2.Items.Count > 0)
            {
                comboBox2.SelectedIndex = 0;
            }

            if (OperaterType != 1)
            {
                buttonApp.Enabled = false;
            }
        }
コード例 #2
0
    public void Build(StageData stageData, bool fieldOnly = false, bool curtain = true, bool withSnapShot = true, bool dropAnimation = true)
    {
        this.stageData = stageData;
        var canvas = GameObject.Find(ResourceNames.canvas);
        var innerFramePaddingBottom = 5f;

        if (gameDirector == null)
        {
            gameDirector = GameObject.Find(ResourceNames.gameDirector).GetComponent <GameDirector>();
        }
        if (!fieldOnly)
        {
            var screenComponents        = ScreenComponentsFactory.Make();
            var fieldMarginBottom       = screenComponents.fieldMarginBottom;
            var fieldWidth              = screenComponents.fieldWidth;
            var fieldHeight             = screenComponents.fieldHeight;
            var headerHeight            = screenComponents.headerHeight;
            var headerToolsWidth        = screenComponents.headerToolsWidth;
            var headerMarginTop         = screenComponents.headerMarginTop;
            var headerMarginBottom      = screenComponents.headerMarginBottom;
            var headerToolsMargin       = screenComponents.headerToolsMargin;
            var decorationCirclesWidth  = screenComponents.decorationCirclesWidth;
            var decorationCirclesHeight = screenComponents.decorationCirclesHeight;

            var menuButtonWidth    = headerToolsWidth * 0.1f;
            var formulaImageWidth  = headerToolsWidth - menuButtonWidth - decorationCirclesWidth;
            var formulaImageHeight = formulaImageWidth / 10f;
            var menuButtonHeight   = menuButtonWidth;

            var menuButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.menuButton));
            menuButtonObject.transform.SetParent(canvas.transform, false);
            var menuButtonRectTransform = menuButtonObject.GetComponent <RectTransform>();
            menuButtonRectTransform.anchoredPosition = new Vector2(
                (Screen.width - fieldWidth) / 2,
                -headerMarginTop - (menuButtonHeight / 2f) - ((headerHeight - menuButtonHeight) / 2f)
                );
            menuButtonRectTransform.sizeDelta = new Vector2(menuButtonWidth, menuButtonHeight);
            var menuButton = menuButtonObject.GetComponent <Button>();
            menuButton.onClick.AddListener(() =>
            {
                if (isAnimation || IsEmpty)
                {
                    SoundWareHouse.Instance.seButtonError.Play();
                    return;
                }
                SoundWareHouse.Instance.seSpecialButton.Play();
                gameDirector.ShowMenu();
            });
            var formulaImageObject = Instantiate(Resources.Load <GameObject>(ResourceNames.formulaImage));
            formulaImageObject.transform.SetParent(canvas.transform, false);
            var formulaImageRectTransform = formulaImageObject.GetComponent <RectTransform>();
            formulaImageRectTransform.anchoredPosition = new Vector2(
                menuButtonRectTransform.anchoredPosition.x + menuButtonRectTransform.sizeDelta.x + headerToolsMargin,
                -headerMarginTop - (formulaImageHeight / 2f) - ((headerHeight - formulaImageHeight) / 2f)
                );
            formulaImageRectTransform.sizeDelta = new Vector2(
                formulaImageWidth,
                formulaImageHeight
                );
            formulaText = formulaImageObject.GetComponentInChildren <FormulaText>();
            var formulaTextRectTransform = formulaText.GetComponent <RectTransform>();
            formulaTextRectTransform.anchoredPosition = new Vector2(
                formulaImageWidth * 0.01f,
                0f
                );
            formulaTextRectTransform.sizeDelta = formulaImageRectTransform.sizeDelta;
            formulaText.text = "";
            var decorationCirclesObject = Instantiate(Resources.Load <GameObject>(ResourceNames.decorationCirclesImage));
            decorationCirclesObject.transform.SetParent(canvas.transform, false);
            var decorationCirclesRectTransform = decorationCirclesObject.GetComponent <RectTransform>();
            decorationCirclesRectTransform.anchoredPosition = new Vector2(
                formulaImageRectTransform.anchoredPosition.x + formulaImageRectTransform.sizeDelta.x + headerToolsMargin,
                -headerMarginTop - (decorationCirclesHeight / 2f) - ((headerHeight - decorationCirclesHeight) / 2f)
                );
            decorationCirclesRectTransform.sizeDelta = new Vector2(
                decorationCirclesWidth,
                decorationCirclesHeight
                );

            var outerFrameObject = Instantiate(Resources.Load <GameObject>(ResourceNames.gameFieldOuterFrameImage));
            outerFrameObject.transform.SetParent(canvas.transform, false);
            var outerFrameRectTransform = outerFrameObject.GetComponent <RectTransform>();
            outerFrameRectTransform.sizeDelta        = new Vector2(fieldWidth, fieldHeight);
            outerFrameRectTransform.anchoredPosition = new Vector2(0f, fieldMarginBottom);
            innerFrameObject = Instantiate(Resources.Load <GameObject>(ResourceNames.gameFieldInnerFrameImage));
            innerFrameObject.transform.SetParent(outerFrameObject.transform, false);
            var innerFrameRectTransform = innerFrameObject.GetComponent <RectTransform>();
            innerFrameSize = new Vector2(fieldWidth - 30f, fieldHeight - 30f);
            innerFrameRectTransform.sizeDelta = innerFrameSize;

            //innerFrameRectTransform.sizeDelta = outerFrameRectTransform.sizeDelta * 0.97f;
            var numberOfButtonsInColumn = 5;
            buttonSize = (innerFrameRectTransform.sizeDelta.y - innerFramePaddingBottom - (padding * (numberOfButtonsInColumn - 1))) / numberOfButtonsInColumn;
            var maxToolCount   = 4;
            var toolMargin     = innerFrameSize.y * 0.05f;
            var maxButtonCount = 7;
            var rightSpace     = (innerFrameSize.x - (buttonSize * maxButtonCount) - (padding * (maxButtonCount - 1))) / 2f;
            var toolSize       = (innerFrameSize.y - (toolMargin * (maxToolCount + 2))) / maxToolCount;
            //Debug.Log(toolSize);
            var toolPositionX    = (innerFrameSize.x / 2f) - ((rightSpace - toolSize) / 2f) - (toolSize / 2f);
            var helpButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.helpButton));
            helpButtonObject.transform.SetParent(innerFrameObject.transform, false);
            var helpButtonRectTransform = helpButtonObject.GetComponent <RectTransform>();
            helpButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize / 2f) + toolMargin);
            helpButtonRectTransform.sizeDelta        = new Vector2(toolSize, toolSize);
            var helpButton = helpButtonObject.GetComponent <Button>();
            helpButton.onClick.AddListener(() => {
                if (isAnimation || IsEmpty)
                {
                    SoundWareHouse.Instance.seButtonError.Play();
                    return;
                }
                SoundWareHouse.Instance.seSpecialButton.Play();
                gameDirector.ShowClearConditionAlert();
            });
            var backButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.backButton));
            backButtonObject.transform.SetParent(innerFrameObject.transform, false);
            var backButtonRectTransform = backButtonObject.GetComponent <RectTransform>();
            backButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 1.5f) + (toolMargin * 2f));
            backButtonRectTransform.sizeDelta        = new Vector2(toolSize, toolSize);
            var backButton = backButtonObject.GetComponent <Button>();
            backButton.onClick.AddListener(() => {
                if (GoBackTurn())
                {
                    SoundWareHouse.Instance.seControlButton.GetComponent <AudioSource>().Play();
                }
                else
                {
                    SoundWareHouse.Instance.seButtonError.GetComponent <AudioSource>().Play();
                }
            });
            var forwardButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.forwardButton));
            forwardButtonObject.transform.SetParent(innerFrameObject.transform, false);
            var forwardButtonRectTransform = forwardButtonObject.GetComponent <RectTransform>();
            forwardButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 2.5f) + (toolMargin * 3f));
            forwardButtonRectTransform.sizeDelta        = new Vector2(toolSize, toolSize);
            var forwardButton = forwardButtonObject.GetComponent <Button>();
            forwardButton.onClick.AddListener(() => {
                if (GoForwardTurn())
                {
                    SoundWareHouse.Instance.seControlButton.GetComponent <AudioSource>().Play();
                }
                else
                {
                    SoundWareHouse.Instance.seButtonError.GetComponent <AudioSource>().Play();
                }
            });
            var movesTextObject = Instantiate(Resources.Load <GameObject>(ResourceNames.movesText));
            movesTextObject.transform.SetParent(innerFrameObject.transform, false);
            var movesTextRectTransform = movesTextObject.GetComponent <RectTransform>();
            movesTextRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 3.5f) + (toolMargin * 5f));
            movesTextRectTransform.sizeDelta        = new Vector2(toolSize, toolSize);
            movesText      = movesTextObject.GetComponent <Text>();
            movesText.text = "0/" + stageData.moves.ToString() + "手";
        }

        void MakeButtons()
        {
            var termButtons = new List <TermButton>();
            var maxX        = 0;

            foreach (var operand in stageData.operands)
            {
                maxX = Math.Max(maxX, operand.position.x);
                var operandButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.operandButton));
                var operandButton       = operandButtonObject.GetComponent <OperandButton>();
                operandButton.Operand = operand;
                operandButton.onClick.AddListener(() =>
                {
                    HandleOperandButton(operandButton);
                });
                termButtons.Add(operandButton);
            }
            foreach (var oper in stageData.operators)
            {
                maxX = Math.Max(maxX, oper.position.x);
                var operatorButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.operatorButton));
                var operatorButton       = operatorButtonObject.GetComponent <OperatorButton>();
                operatorButton.Operator = oper;
                operatorButton.onClick.AddListener(() =>
                {
                    HandleOperatorButton(operatorButton);
                });
                termButtons.Add(operatorButton);
            }
            foreach (var equal in stageData.equals)
            {
                maxX = Math.Max(maxX, equal.position.x);
                var equalButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.equalButton));
                var equalButton       = equalButtonObject.GetComponent <EqualButton>();
                equalButton.equal = equal;
                equalButton.onClick.AddListener(() =>
                {
                    HandleEqualButton(equalButton);
                });
                termButtons.Add(equalButton);
            }
            termButtons.Sort((a, b) =>
            {
                var pa = a.GetPosition();
                var pb = b.GetPosition();
                if (pa.y != pb.y)
                {
                    return(pa.y - pb.y);
                }
                return(pa.x - pb.x);
            });
            var index = 0;
            var paddingBetweenTermButtons = Screen.height * 0.05f;
            var notificationCount         = 0;
            var buttonCount = termButtons.Count;

            if (this.maxX == int.MaxValue)
            {
                this.maxX = maxX;
            }
            else
            {
                maxX = this.maxX;
            }
            foreach (var termButton in termButtons)
            {
                termButton.transform.SetParent(innerFrameObject.transform, false);
                var rect = termButton.GetComponent <RectTransform>();
                rect.sizeDelta = new Vector2(buttonSize, buttonSize);
                var buttonPosition = termButton.GetPosition();
                var offsetX        = innerFrameSize.x / 2f - ((float)(maxX + 1) / 2 * buttonSize) - ((float)maxX / 2 * padding);
                var x = buttonSize * buttonPosition.x + padding * buttonPosition.x + offsetX;
                var y = buttonSize * buttonPosition.y + padding * buttonPosition.y + innerFramePaddingBottom;
                if (dropAnimation)
                {
                    rect.anchoredPosition = new Vector2(
                        x,
                        y + Screen.height + (paddingBetweenTermButtons * buttonPosition.y) + (paddingBetweenTermButtons / (maxX - buttonPosition.x + 1))
                        );
                    var delay             = 0.1f;
                    var animationDuration = 0.5f + (delay * index);
                    termButton.GetComponent <UIAnimator>().Animate(UIAnimator.AnimationKey.PositionY, animationDuration, y, (animator) =>
                    {
                        ++notificationCount;
                        if (notificationCount == buttonCount)
                        {
                            gameDirector.ShowClearConditionAlert();
                        }
                        SoundWareHouse.Instance.seButtonDropped.GetComponent <AudioSource>().Play();
                        return(true);
                    });
                }
                else
                {
                    rect.anchoredPosition = new Vector2(
                        x,
                        y
                        );
                }

                ++index;
            }
            TermButtons = termButtons;
            if (withSnapShot)
            {
                SaveSnapShot();
            }
        }

        if (curtain)
        {
            curtainObject.transform.SetAsLastSibling();
            curtainObject.GetComponent <CurtainManager>().Open(() =>
            {
                curtainObject.transform.SetAsFirstSibling();
                MakeButtons();
                return(true);
            });
        }
        else
        {
            MakeButtons();
        }
    }
コード例 #3
0
ファイル: CalcDialog.xaml.cs プロジェクト: muri61/Budget.ly
        void HandleKeyPressed(object param)
        {
            var value         = (string)param;
            var calculatorKey = (CalculatorKey)Enum.Parse(typeof(CalculatorKey), value, true);

            switch (calculatorKey)
            {
            case CalculatorKey.One:
            case CalculatorKey.Two:
            case CalculatorKey.Three:
            case CalculatorKey.Four:
            case CalculatorKey.Five:
            case CalculatorKey.Six:
            case CalculatorKey.Seven:
            case CalculatorKey.Eight:
            case CalculatorKey.Nine:
            case CalculatorKey.Zero:
                FormulaText += ((int)calculatorKey).ToString();
                OnPropertyChanged(nameof(CalculationResultText));
                break;

            case CalculatorKey.Equal:
                if (!string.IsNullOrEmpty(formulaText))
                {
                    using (var calcQuick = new CalcQuickBase())
                    {
                        CalculationResultText = calcQuick.ParseAndCompute(formulaText);
                        OnPropertyChanged(nameof(CalculationResultText));
                    }
                }
                break;

            case CalculatorKey.Point:
                FormulaText += cultureInfoPL.NumberFormat.NumberDecimalSeparator;
                break;

            case CalculatorKey.Minus:
                FormulaText += '-';
                break;

            case CalculatorKey.Multiply:
                FormulaText += '*';
                break;

            case CalculatorKey.Divide:
                FormulaText += '/';
                break;

            case CalculatorKey.Plus:
                FormulaText += '+';
                break;

            case CalculatorKey.Backspace:
                if (!string.IsNullOrEmpty(FormulaText))
                {
                    FormulaText = FormulaText.Substring(0, FormulaText.Length - 1);
                }
                break;
            }
            return;
        }