コード例 #1
0
        public void SaveSetting(UzorData data)
        {
            creatingPageGrid.Children.Remove(newUzorSettingView);

            var v = new UzorEditElementView(data, this.mainGrid);

            v.IsNewUzor    = true; // only for set cropMask as standart figure
            v.PageForAlert = this.pageForAlert;
            //uzorDataList.Add(v.UzorView.ThisData);
            uzorEditElementViewList.Add(v);

            creatingPageGrid.Children.Add(v, 0, 1);

            if (newUzorSettingView.IsSquareUzorMode)
            {
                this.saveTopPanel = new UzorEditorSaveTopPanel();
                saveTopPanel.SaveButton.Clicked += v.SaveButton_Click;
                saveTopPanel.BackButton.Clicked += BackButton_Clicked;
                creatingPageGrid.Children.Add(saveTopPanel, 0, 0);
                v.cropButton.IsVisible       = false;
                v.cropButtonShadow.IsVisible = false;
                isSquareMode = true;
                //v.cropSlider.IsVisible = false;
            }
            else
            {
                this.stepsPanel           = new UzorEditorStepsTopPanel();
                this.longUzorData         = new LongUzorData();
                longUzorData.UzorElements = new UzorData[2] {
                    data, null
                };
                stepsPanel.NextButton.Clicked   += NextButton_Clicked;
                stepsPanel.BeforeButton.Clicked += BeforeButton_Clicked;
                creatingPageGrid.Children.Add(stepsPanel, 0, 0);

                this.stepsPanel.StepLabel.Text = this.stepNumber + "/" + this.maxStepValue;
            }
            // gridCreatingPage.Children.Add(new NewUzorSetting(SaveSetting));

            creatingPageGrid.RowDefinitions[0].Height = 60;

            if (Preferences.Get("TipViewShow", true))
            {
                Device.StartTimer(TimeSpan.FromSeconds(1), () => {
                    var t = new TipsViewer(this.mainGrid, !newUzorSettingView.IsSquareUzorMode);
                    this.mainGrid.Children.Add(t);
                    return(false);
                });
            }
        }
コード例 #2
0
        public UzorCreatingPage(UzorData data, MainPage p) // for editing a previously created Uzor
        {
            InitializeComponent();
            NavigationPage.SetHasNavigationBar(this, false);
            var v = new UzorEditElementView(data, this.mainGrid);

            this.pageForAlert = p;
            uzorEditElementViewList.Add(v);
            creatingPageGrid.Children.Add(v, 0, 1);

            this.saveTopPanel = new UzorEditorSaveTopPanel();
            saveTopPanel.SaveButton.Clicked  += saveChanges_Clicked;
            saveTopPanel.BackButton.Clicked  += cancelChanges_Clicked;
            saveTopPanel.BackButton.Text      = AppResource.Cancel;
            saveTopPanel.SaveButton.Text      = AppResource.Ok;
            saveTopPanel.BackButton.IsEnabled = false; // canceling does not working
            creatingPageGrid.Children.Add(saveTopPanel, 0, 0);
            creatingPageGrid.RowDefinitions[0].Height = 60;
            v.cropButton.IsVisible = true;
        }
コード例 #3
0
        private async void NextButton_Clicked(object sender, EventArgs e)
        {
            if (stepNumber < maxStepValue)
            {
                if (this.longUzorData.UzorElements[stepNumber - 1].CropMaskIsEmpty())
                {
                    uzorEditElementViewList[stepNumber - 1].sliderPanel.IsVisible       = true;
                    uzorEditElementViewList[stepNumber - 1].sliderPanelShadow.IsVisible = true;
                    uzorEditElementViewList[stepNumber - 1].cropSlider.Value            = uzorEditElementViewList[stepNumber - 1].Data.FieldSize / 2 - 1;
                    uzorEditElementViewList[stepNumber - 1].IsNewUzor          = false;
                    uzorEditElementViewList[stepNumber - 1].cropIndicator.Crop = (int)uzorEditElementViewList[stepNumber - 1].cropSlider.Value;

                    if (uzorEditElementViewList[stepNumber - 1].mirrorIndicator.IsVisible)
                    {
                        uzorEditElementViewList[stepNumber - 1].MirrorButtonClick(null, null);
                    }

                    uzorEditElementViewList[stepNumber - 1].UzorView.DrawView();

                    if (nextButtonPressed)
                    {
                        uzorEditElementViewList[stepNumber - 1].sliderPanel.ScaleTo(1.1);
                    }

                    nextButtonPressed = true;
                    return;
                }

                nextButtonPressed = false;

                if (this.longUzorData.UzorElements[stepNumber] == null)  // expand array of UzorElements and creating new View
                {
                    var current = this.longUzorData.UzorElements[0];

                    var nextUzorData = new UzorData(current.Name, current.DataOfCreation, current.GetMaskSize());

                    nextUzorData.Layers[0].FrontColor = new PixelColor(current.Layers[0].FrontColor.R,
                                                                       current.Layers[0].FrontColor.G,
                                                                       current.Layers[0].FrontColor.B,
                                                                       current.Layers[0].FrontColor.A);

                    nextUzorData.Layers[0].BackColor = new PixelColor(current.Layers[0].BackColor.R,
                                                                      current.Layers[0].BackColor.G,
                                                                      current.Layers[0].BackColor.B,
                                                                      current.Layers[0].BackColor.A);

                    this.longUzorData.UzorElements[stepNumber - 1 + 1] = nextUzorData;

                    var v = new UzorEditElementView(nextUzorData, this.mainGrid);
                    uzorEditElementViewList.Add(v);

                    uzorEditElementViewList[uzorEditElementViewList.Count - 1].UzorView.BecomeSquare();
                }

                this.creatingPageGrid.Children.Remove(uzorEditElementViewList[stepNumber - 1]);
                stepNumber++;
                this.creatingPageGrid.Children.Add(uzorEditElementViewList[stepNumber - 1], 0, 1);

                this.stepsPanel.StepLabel.Text = this.stepNumber + "/" + this.maxStepValue;


                if (stepNumber == maxStepValue)
                {
                    // TODO: replace icon
                }


                /*************** CRUTCHES ***************/

                uzorEditElementViewList[stepNumber - 1].UzorView.MinimumHeightRequest = 0;
                uzorEditElementViewList[stepNumber - 1].BatchBegin();

                /***  UzorView does not change its size ***/
            }
            else
            {
                longUzorData.SidePattern = SideUzorGenerator.GetNewSideUzor(longUzorData.UzorElements[0].FieldSize);
                longUzorData.SidePattern.Layers[0].FrontColor = longUzorData.UzorElements[0].Layers[0].FrontColor;

                longUzorData.SidePattern.Layers[0].FrontColor = new PixelColor(longUzorData.UzorElements[0].Layers[0].FrontColor.R,
                                                                               longUzorData.UzorElements[0].Layers[0].FrontColor.G,
                                                                               longUzorData.UzorElements[0].Layers[0].FrontColor.B,
                                                                               longUzorData.UzorElements[0].Layers[0].FrontColor.A);

                LongUzorEditorPage longUzorPage = new LongUzorEditorPage(longUzorData, pageForAlert, true);
                longUzorPage.Closed += longUzorEditorPage_Closed;

                if (!pushModalAsyncWorked)
                {
                    pushModalAsyncWorked = true;
                    await Navigation.PushModalAsync(new NavigationPage(longUzorPage), true);
                }
            }
        }