public UzorItem(UzorData data, string path, MainPage p) { InitializeComponent(); this.Data = data; this.path = path; UzorPixelFieldView upv = this.preview; DemonstrateUzorEditorObject udb = new DemonstrateUzorEditorObject(); udb.Data = data; udb.GradientMode = false; //upv.ThisData = data; upv.EditorObjectssList.Add(udb); upv.DrawView(); this.itemName.Text = data.Name.Split("/".ToCharArray()).Last(); this.itemDate.Text = data.DataOfCreation.ToString(); /** WTF??? **/ /*this.mineFrame.BackgroundColor = new Xamarin.Forms.Color( data.Layers[0].BackColor.R, * data.Layers[0].BackColor.G, * data.Layers[0].BackColor.B, * data.Layers[0].BackColor.A);*/ this.mineFrame.BackgroundColor = Color.FromRgba(data.Layers[0].BackColor.R, data.Layers[0].BackColor.G, data.Layers[0].BackColor.B, data.Layers[0].BackColor.A); this.pageForAlert = p; }
public static string SaveInInternalStorage(UzorData data) // returns the save path { return(saveObjectInInternalStorage(data, data.Name, ".ubf")); /* string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); * * string fileName = data.Name + ".ubf"; * * if (File.Exists(Path.Combine(folderPath, data.Name + ".ubf"))) * for (int i = 0; i < 999; i++) * if (File.Exists(Path.Combine(folderPath, data.Name + i.ToString() + ".ubf"))) * continue; * else * { * fileName = data.Name + i.ToString() + ".ubf"; * //data.Name = data.Name + i.ToString(); * break; * } * * * var savedFilePath = folderPath + "/" + fileName; * * FileStream fs = new FileStream(savedFilePath, FileMode.OpenOrCreate); * new BinaryFormatter().Serialize(fs, data); * fs.Dispose(); * * return savedFilePath;*/ }
public static void ReSave(UzorData data, string path) { FileStream fsr = new FileStream(path, FileMode.Truncate); new BinaryFormatter().Serialize(fsr, data); fsr.Dispose(); }
public UzorItem(UzorData data) // for SelectionItemPage { InitializeComponent(); selectItemMode = true; this.Data = data; UzorPixelFieldView upv = this.preview; DemonstrateUzorEditorObject udb = new DemonstrateUzorEditorObject(); udb.Data = data; udb.GradientMode = false; //upv.ThisData = data; upv.EditorObjectssList.Add(udb); upv.DrawView(); if (data.Name == null) { data.Name = ""; } this.itemName.Text = data.Name.Split("/".ToCharArray()).Last(); this.itemDate.Text = data.DataOfCreation.ToString(); this.mineFrame.BackgroundColor = Color.FromRgba(data.Layers[0].BackColor.R, data.Layers[0].BackColor.G, data.Layers[0].BackColor.B, data.Layers[0].BackColor.A); this.deleteButton.IsVisible = false; this.shadow.IsVisible = false; }
public NameEditorView(UzorData data, Grid grid) { InitializeComponent(); this.grid = grid; grid.Children.Add(this); this.data = data; this.nameEntry.Text = data.Name == null ? "" : data.Name; }
public ColorPickerView(UzorData data) { this.data = data; InitializeComponent(); this.frontColor = data.Layers[0].FrontColor.ToNativeColor(); this.backColor = data.Layers[0].BackColor.ToNativeColor(); this.picker.SelectedIndex = 0; setColorSliderValues(); updateView(); }
public ImageBufferSaveView(UzorData data) { this.uzorData = data; this.bitmapWidth = data.FieldSize * currentPixelSize; this.bitmapHeight = bitmapWidth; InitializeComponent(); setDefaultPickerValue(); this.heightSlider.IsVisible = false; this.bitmapPreviewViewFrame.Content = new BitmapPreviewView(bitmap); updateSquareUzorBitmap(); }
public UzorItemPage(UzorData data, string path, MainPage p) { NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); this.path = path; this.data = data; this.pageForAlert = p; var upfView = new UzorPixelFieldView(); this.uzorFieldFrame.Content = upfView; buildUzorPreview(); itemNameLabel.Text = data.Name; }
public UzorEditElementView(UzorData data, Grid backGroundGrid = null) { InitializeComponent(); this.Data = data; Device.StartTimer(TimeSpan.FromMilliseconds(350), OnTimerTick); this.BackgroundGrid = backGroundGrid == null ? this.mainGrid : backGroundGrid; // //Device.StartTimer(TimeSpan.FromSeconds(1), () => { // var v = new TipsViewer(BackgroundGrid); // this.BackgroundGrid.Children.Add(v); // return false; //}); }
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); }); } }
private UzorData makeDemonstrateUzor() { var d = new UzorData("", DateTime.Now, 24); d.Clear(); var b = new bool[24, 24]; b[11, 11] = true; b[11, 12] = true; b[12, 11] = true; b[12, 12] = true; d.Layers[0].AddNextState(b); return(d); }
public CropIndicator(UzorData data) { this.Data = data; if (data.CropMaskIsEmpty()) { //this.crop = data.FieldSize / 2 - 1; this.cropFieldMask = null; } else { //this.cropFieldMask = data.CropMask; this.crop = data.GetMaskSize() / 2; } this.IsVisible = false; }
private UzorData makeRoundDemonstrateUzor() { var d = new UzorData("", DateTime.Now, 27); d.Clear(); var b = new bool[27, 27]; b[13, 13] = true; b[13, 12] = true; b[13, 14] = true; b[12, 13] = true; b[14, 13] = true; d.Layers[0].AddNextState(b); return(d); }
private void uzorCreatingPage_Closed(object sender, EventArgs e) { var p = (UzorCreatingPage)sender; if (p.Action == UzorCreatingPage.ActionStatus.Saved) { UzorProjectFileManager.ReSave(this.data, path); pageForAlert.MakeUzorItemList(); } else if (p.Action == UzorCreatingPage.ActionStatus.Canceled) { this.data = UzorProjectFileManager.LoadUzorData(path); } buildUzorPreview(); }
public static UzorData LoadUzorData(string path) { BinaryFormatter formatter = new BinaryFormatter(); FileStream fs = new FileStream(path, FileMode.Open); UzorData d = null; try { d = (UzorData)formatter.Deserialize(fs); } catch (System.Runtime.Serialization.SerializationException e) { return(new UzorData("SERIALIZATION ERROR", System.DateTime.Now, 20)); } fs.Dispose(); return(d); }
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; }
public static UzorData GetNewSideUzor(int fieldSize) { if (fieldSize % 2 == 0) { fieldSize--; } var data = new UzorData("", DateTime.Now, fieldSize < 5 ? 7 : fieldSize); bool[,] field = new bool[fieldSize, fieldSize]; fillFieldInBaseSample(ref field, fieldSize); data.Layers[0].AddNextState(field); do { BasicDrawingAlgorithm.Calculate(data.Layers[0]); } while (!edgeFilled(data.Layers[0].GetLastState())); data.CropMask = RhombAlgorithm.GetRhombMask(fieldSize / 2, fieldSize); return(data); }
public Background(UzorData data) { this.Data = data; }
public UzorDrawingObject(UzorData data) { this.Data = data; this.renderMode = Preferences.Get("RenderMode", true); }
private UzorData makeAndFillUzor() { var d = new UzorData(entryName.Text, DateTime.Now, (int)sizeSlider.Value); if (d.FieldSize % 2 == 0) { switch (new Random().Next(1, 3)) { case 1: //while (new Random().Next(1, 3) != 3) { } var b = new bool[d.FieldSize, d.FieldSize]; b[d.FieldSize / 2, d.FieldSize / 2] = true; b[d.FieldSize / 2, d.FieldSize / 2 - 1] = true; b[d.FieldSize / 2 - 1, d.FieldSize / 2 - 1] = true; b[d.FieldSize / 2 - 1, d.FieldSize / 2] = true; d.Layers[0].AddNextState(b); return(d); case 2: case 3: var b2 = new bool[d.FieldSize, d.FieldSize]; //Central b2[d.FieldSize / 2, d.FieldSize / 2] = true; b2[d.FieldSize / 2, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2] = true; b2[d.FieldSize / 2, d.FieldSize / 2 + 1] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2 + 1] = true; b2[d.FieldSize / 2, d.FieldSize / 2 + 2] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2 + 2] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2 - 2] = true; b2[d.FieldSize / 2, d.FieldSize / 2 - 2] = true; b2[d.FieldSize / 2 - 1, d.FieldSize / 2 - 3] = true; b2[d.FieldSize / 2, d.FieldSize / 2 - 3] = true; b2[d.FieldSize / 2 - 2, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 - 2, d.FieldSize / 2] = true; b2[d.FieldSize / 2 - 3, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 - 3, d.FieldSize / 2] = true; b2[d.FieldSize / 2 + 1, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 + 1, d.FieldSize / 2] = true; b2[d.FieldSize / 2 + 2, d.FieldSize / 2 - 1] = true; b2[d.FieldSize / 2 + 2, d.FieldSize / 2] = true; d.Layers[0].AddNextState(b2); return(d); } } else { switch (new Random().Next(1, 3)) { case 1: var b = new bool[d.FieldSize, d.FieldSize]; b[d.FieldSize / 2, d.FieldSize / 2] = true; b[d.FieldSize / 2, d.FieldSize / 2 - 1] = true; b[d.FieldSize / 2, d.FieldSize / 2 + 1] = true; b[d.FieldSize / 2 - 1, d.FieldSize / 2] = true; b[d.FieldSize / 2 + 1, d.FieldSize / 2] = true; d.Layers[0].AddNextState(b); return(d); case 2: case 3: // TODO: remake var b2 = new bool[d.FieldSize, d.FieldSize]; //Central var arr = new bool[5, 5] { { false, false, true, false, false }, { false, true, true, true, false }, { true, true, true, true, true }, { false, true, true, true, false }, { false, false, true, false, false }, }; for (int i = b2.GetLength(0) / 2 - 2; i <= b2.GetLength(0) / 2 + 2; i++) { for (int j = b2.GetLength(1) / 2 - 2; j <= b2.GetLength(1) / 2 + 2; j++) { b2[i, j] = arr[i - (b2.GetLength(0) / 2 - 2), j - (b2.GetLength(1) / 2 - 2)]; } } d.Layers[0].AddNextState(b2); return(d); } } return(null); }
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); } } }