private void MoveFront() { if (this.Mode != ListViewSelectionMode.Single) { return; } // History LayeragesArrangeHistory history = new LayeragesArrangeHistory(HistoryType.LayeragesArrange_LayersArrange); this.ViewModel.HistoryPush(history); Layerage destination = this.SelectionViewModel.SelectionLayerage; Layerage parents = LayerManager.GetParentsChildren(destination); if (parents.Children.Count < 2) { return; } parents.Children.Remove(destination); parents.Children.Insert(0, destination); LayerManager.ArrangeLayers(); this.ViewModel.Invalidate(); // Invalidate }
////////////////////////// private async void ShowGalleryDialog() { Photo photo = await this.ShowGalleryDialogTask(); if (photo is null) { return; } // History LayeragesArrangeHistory history = new LayeragesArrangeHistory(HistoryType.LayeragesArrange_AddLayer); this.ViewModel.HistoryPush(history); // Layer Layerage imageLayerage = Layerage.CreateByGuid(); ImageLayer imageLayer = new ImageLayer(photo) { Id = imageLayerage.Id, IsSelected = true, }; LayerBase.Instances.Add(imageLayerage.Id, imageLayer); // Mezzanine LayerManager.Mezzanine(imageLayerage); this.SelectionViewModel.SetMode(); // Selection LayerManager.ArrangeLayers(); LayerManager.ArrangeLayersBackground(); this.ViewModel.Invalidate(); // Invalidate }
private void CreateLayer(Vector2 canvasStartingPoint, Vector2 canvasPoint) { //History LayeragesArrangeHistory history = new LayeragesArrangeHistory("Add layer", this.ViewModel.LayerageCollection); this.ViewModel.HistoryPush(history); //Transformer Transformer transformer = new Transformer(canvasPoint, canvasStartingPoint); //Layer CurveLayer curveLayer = new CurveLayer(this.ViewModel.CanvasDevice, canvasStartingPoint, canvasPoint) { IsSelected = true, Transform = new Transform(transformer), Style = this.SelectionViewModel.StandCurveStyle, }; Layerage curveLayerage = curveLayer.ToLayerage(); LayerBase.Instances.Add(curveLayer); //Mezzanine LayerageCollection.Mezzanine(this.ViewModel.LayerageCollection, curveLayerage); this.SelectionViewModel.SetModeSingle(curveLayerage);//Selection LayerageCollection.ArrangeLayers(this.ViewModel.LayerageCollection); LayerageCollection.ArrangeLayersBackground(this.ViewModel.LayerageCollection); this.ViewModel.Invalidate(InvalidateMode.HD);//Invalidate }
//@Construct /// <summary> /// Initializes a LayersControl. /// </summary> public LayersControl() { this.InitializeComponent(); //LayerageCollection this.ConstructLayerageCollection(); this.ItemsControl.ItemsSource = this.ViewModel.LayerageCollection.RootControls; this.Tapped += (s, e) => this.MethodViewModel.MethodSelectedNone();//Method this.RightTapped += (s, e) => this.ShowLayerMenu(); this.Holding += (s, e) => this.ShowLayerMenu(); Retouch_Photo2.PhotosPage.AddImageCallBack += (photo) => { if (photo == null) { return; } //History LayeragesArrangeHistory history = new LayeragesArrangeHistory("Add layer", this.ViewModel.LayerageCollection); this.ViewModel.HistoryPush(history); //Transformer Transformer transformerSource = new Transformer(photo.Width, photo.Height, Vector2.Zero); //Layer Photocopier photocopier = photo.ToPhotocopier(); ImageLayer imageLayer = new ImageLayer(this.ViewModel.CanvasDevice) { Photocopier = photocopier, IsSelected = true, Transform = new Transform(transformerSource) }; Layerage imageLayerage = imageLayer.ToLayerage(); LayerBase.Instances.Add(imageLayer); //Selection this.SelectionViewModel.SetValue((layerage) => { ILayer layer = layerage.Self; layer.IsSelected = false; }); //Mezzanine LayerageCollection.Mezzanine(this.ViewModel.LayerageCollection, imageLayerage); this.SelectionViewModel.SetMode(this.ViewModel.LayerageCollection);//Selection LayerageCollection.ArrangeLayers(this.ViewModel.LayerageCollection); LayerageCollection.ArrangeLayersBackground(this.ViewModel.LayerageCollection); this.ViewModel.Invalidate();//Invalidate }; }
//@Construct /// <summary> /// Initializes a ConvertToCurvesButton. /// </summary> public ConvertToCurvesButton() { this.InitializeComponent(); this.Button.Click += (s, e) => { if (this.SelectionViewModel.SelectionMode == ListViewSelectionMode.None) { return; } //History LayeragesArrangeHistory history = new LayeragesArrangeHistory("Convert to curves", this.ViewModel.LayerageCollection); this.ViewModel.HistoryPush(history); this.SelectionViewModel.SetValue((layerage) => { ILayer layer = layerage.Self; //Turn to curve layer ILayer curveLayer = this.CreateCurveLayer(layerage); if (curveLayer != null) { Layerage curveLayerage = curveLayer.ToLayerage(); LayerBase.Instances.Add(curveLayer); //set image brush if (layer.Type == LayerType.Image) { ImageLayer imageLayer = (ImageLayer)layer; curveLayer.Style.Fill = imageLayer.ToBrush(); } this.ReplaceLayerage(curveLayerage, layerage); } }); LayerageCollection.ArrangeLayers(this.ViewModel.LayerageCollection); LayerageCollection.ArrangeLayersBackground(this.ViewModel.LayerageCollection); this.SelectionViewModel.SetMode(this.ViewModel.LayerageCollection);//Selection //Change tools group value. { ITool tool = this.TipViewModel.Tools.First(t => t != null && t.Type == ToolType.Node); ToolBase.Instance = tool; this.SelectionViewModel.ToolType = ToolType.Node; this.ViewModel.TipTextBegin(tool.Button.Title); this.ViewModel.Invalidate();//Invalidate } }; }
private async Task CopyMultipleImageFilesAndCreateImageLayersAsync(IReadOnlyList <IStorageItem> items) { if (items is null) { return; } // History LayeragesArrangeHistory history = new LayeragesArrangeHistory(HistoryType.LayeragesArrange_AddLayer); this.ViewModel.HistoryPush(history); IList <Layerage> imageLayerages = new List <Layerage>(); foreach (IStorageItem item in items) { // Photo StorageFile copyFile = await FileUtil.CopySingleImageFileAsync(item); if (copyFile is null) { continue; } Photo photo = await Photo.CreatePhotoFromCopyFileAsync(LayerManager.CanvasDevice, copyFile); Photo.DuplicateChecking(photo); if (photo is null) { continue; } // Layer Layerage imageLayerage = Layerage.CreateByGuid(); ImageLayer imageLayer = new ImageLayer(photo) { Id = imageLayerage.Id, IsSelected = true, }; LayerBase.Instances.Add(imageLayerage.Id, imageLayer); imageLayerages.Add(imageLayerage); } // Mezzanine LayerManager.MezzanineRange(imageLayerages); this.SelectionViewModel.SetMode(); // Selection LayerManager.ArrangeLayers(); LayerManager.ArrangeLayersBackground(); this.ViewModel.Invalidate(); // Invalidate }
public void Started(Vector2 startingPoint, Vector2 point) { Photocopier photocopier = this.SelectionViewModel.Photocopier; if (photocopier.FolderRelativeId == null) { this.ImagePage.TipSelect(); return; } Photo photo = Photo.FindFirstPhoto(photocopier); if (photo == null) { this.ImagePage.TipSelect(); return; } //History LayeragesArrangeHistory history = new LayeragesArrangeHistory("Add layer", this.ViewModel.LayerageCollection); this.ViewModel.HistoryPush(history); //Transformer this._sizeWidth = photo.Width; this._sizeHeight = photo.Height; Transformer transformerSource = new Transformer(photo.Width, photo.Height, Vector2.Zero); Transformer transformerDestination = this.CreateTransformer(startingPoint, point, photo.Width, photo.Height); //Mezzanine ImageLayer imageLayer = new ImageLayer(this.ViewModel.CanvasDevice) { Photocopier = photocopier, IsSelected = true, Transform = new Transform(transformerSource, transformerDestination), Style = this.SelectionViewModel.StandGeometryStyle }; Layerage imageLayerage = imageLayer.ToLayerage(); LayerBase.Instances.Add(imageLayer); this.MezzanineLayerage = imageLayerage; LayerageCollection.Mezzanine(this.ViewModel.LayerageCollection, this.MezzanineLayerage); this.SelectionViewModel.Transformer = transformerDestination; //Selection this.ViewModel.Invalidate(InvalidateMode.Thumbnail); //Invalidate }
private void LayerDragItemsCompleted() { // History LayeragesArrangeHistory history = new LayeragesArrangeHistory(HistoryType.LayeragesArrange_LayersArrange); this.ViewModel.HistoryPush(history); LayerManager.DragComplete(this.DragDestinationLayerage, this.DragSourceLayerage, this.DragLayerOverlayMode, this.DragLayerIsSelected); this.SelectionViewModel.SetMode(); // Selection LayerManager.ArrangeLayers(); LayerManager.ArrangeLayersBackground(); this.ViewModel.Invalidate(); // Invalidate this.DragSourceLayerage = null; this.DragDestinationLayerage = null; this.DragLayerIsSelected = false; this.DragLayerOverlayMode = OverlayMode.None; }
private void ForwardOne() { if (this.Mode != ListViewSelectionMode.Single) { return; } // History LayeragesArrangeHistory history = new LayeragesArrangeHistory(HistoryType.LayeragesArrange_LayersArrange); this.ViewModel.HistoryPush(history); Layerage destination = this.SelectionViewModel.SelectionLayerage; Layerage parents = LayerManager.GetParentsChildren(destination); if (parents.Children.Count < 2) { return; } int index = parents.Children.IndexOf(destination); index--; if (index < 0) { index = 0; } if (index > parents.Children.Count - 1) { index = parents.Children.Count - 1; } parents.Children.Remove(destination); parents.Children.Insert(index, destination); LayerManager.ArrangeLayers(); this.ViewModel.Invalidate(); // Invalidate }
private void ConstructLayerageCollection() { if (LayerageCollection.ItemClick == null) { LayerageCollection.ItemClick += (layer) => { Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); this.ItemClick(layerage); }; } if (LayerageCollection.RightTapped == null) { LayerageCollection.RightTapped += (layer) => { Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); this.ShowLayerMenu(layerage); }; } if (LayerageCollection.VisibilityChanged == null) { LayerageCollection.VisibilityChanged += (layer2) => { Visibility visibility = (layer2.Visibility == Visibility.Visible) ? Visibility.Collapsed : Visibility.Visible; if (layer2.IsSelected) { this.SelectionViewModel.Visibility = visibility; this.MethodViewModel.ILayerChanged <Visibility> ( set: (layer) => layer.Visibility = visibility, historyTitle: "Set visibility", getHistory: (layer) => layer.Visibility, setHistory: (layer, previous) => layer.Visibility = previous ); } else { //History LayersPropertyHistory history = new LayersPropertyHistory("Set visibility"); //Selection ILayer layer = layer2; var previous = layer.Visibility; history.UndoAction += () => { //Refactoring layer.IsRefactoringRender = true; layer.IsRefactoringIconRender = true; layer.Visibility = previous; }; //Refactoring layer.IsRefactoringRender = true; layer.IsRefactoringIconRender = true; //layerage.RefactoringParentsRender(); //layerage.RefactoringParentsIconRender(); layer.Visibility = visibility; //History this.ViewModel.HistoryPush(history); this.ViewModel.Invalidate();//Invalidate } }; } if (LayerageCollection.IsExpandChanged == null) { LayerageCollection.IsExpandChanged += (layer) => { layer.IsExpand = !layer.IsExpand; Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); LayerageCollection.ArrangeLayersVisibility(layerage); }; } if (LayerageCollection.IsSelectedChanged == null) { LayerageCollection.IsSelectedChanged += (layer) => { Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); this.MethodViewModel.MethodSelectedNot(layerage);//Method }; } if (LayerageCollection.DragItemsStarted == null) { LayerageCollection.DragItemsStarted += (layer, manipulationMode) => { Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); this.DragSourceLayerage = layerage; if (manipulationMode == ManipulationModes.TranslateY) { this.DragLayerIsSelected = true; } else if (manipulationMode == ManipulationModes.System) { this.DragLayerIsSelected = false; } }; } if (LayerageCollection.DragItemsDelta == null) { LayerageCollection.DragItemsDelta += (layer, overlayMode) => { Layerage layerage = this.ViewModel.LayerageCollection.FindFirstLayerage(layer); this.DragDestinationLayerage = layerage; this.DragLayerOverlayMode = overlayMode; }; } if (LayerageCollection.DragItemsCompleted == null) { LayerageCollection.DragItemsCompleted += () => { //History LayeragesArrangeHistory history = new LayeragesArrangeHistory("Layers arrange", this.ViewModel.LayerageCollection); this.ViewModel.HistoryPush(history); LayerageCollection.DragComplete(this.ViewModel.LayerageCollection, this.DragDestinationLayerage, this.DragSourceLayerage, this.DragLayerOverlayMode, this.DragLayerIsSelected); this.SelectionViewModel.SetMode(this.ViewModel.LayerageCollection);//Selection LayerageCollection.ArrangeLayers(this.ViewModel.LayerageCollection); LayerageCollection.ArrangeLayersBackground(this.ViewModel.LayerageCollection); this.ViewModel.Invalidate();//Invalidate this.DragSourceLayerage = null; this.DragDestinationLayerage = null; this.DragLayerIsSelected = false; this.DragLayerOverlayMode = OverlayMode.None; }; } }