public ToolboxViewModel(IEventAggregator eventAggregator, IAmeSession session) { this.eventAggregator = eventAggregator ?? throw new ArgumentNullException("eventAggregator"); this.session = session ?? throw new ArgumentNullException("session"); this.Title.Value = "Tool"; this.DrawingTool.PropertyChanged += DrawingToolChanged; this.IsEraser.PropertyChanged += IsEraserChanged; this.BrushColumns.PropertyChanged += BrushColumnsChanged; this.BrushRows.PropertyChanged += BrushRowsChanged; this.BrushTileWidth.PropertyChanged += BrushTileWidthChanged; this.BrushTileHeight.PropertyChanged += BrushTileHeightChanged; this.BrushTileOffsetX.PropertyChanged += BrushTileOffsetXChanged; this.BrushTileOffsetY.PropertyChanged += BrushTileOffsetYChanged; this.BrushModel.PropertyChanged += BrushModelChanged; this.ToolButtonCommand = new DelegateCommand <Type>((brush) => { this.DrawingTool.Value = Activator.CreateInstance(brush) as IDrawingTool; }); this.eventAggregator.GetEvent <NewPaddedBrushEvent>().Subscribe((brushModel) => { this.BrushModel.Value = brushModel; }, ThreadOption.PublisherThread); }
public LayerListGroupViewModel(IEventAggregator eventAggregator, IAmeSession session, IActionHandler handler, LayerGroup layer) { this.eventAggregator = eventAggregator ?? throw new ArgumentNullException("eventAggregator"); this.session = session ?? throw new ArgumentNullException("session is null"); this.layer = layer ?? throw new ArgumentNullException("layer"); this.actionHandler = handler ?? throw new ArgumentNullException("handler is null"); this.LayerNodes = new ObservableCollection <ILayerListNodeViewModel>(); this.isDragging = false; DrawingGroup drawingGroup = new DrawingGroup(); DrawingGroup filled = new DrawingGroup(); using (DrawingContext context = filled.Open()) { Rect drawingRect = new Rect(0, 0, layer.GetPixelWidth(), layer.GetPixelHeight()); context.DrawRectangle(Brushes.Transparent, new Pen(Brushes.Transparent, 0), drawingRect); } drawingGroup.Children.Add(filled); drawingGroup.Children.Add(layer.Group); this.layerPreview = new DrawingImage(drawingGroup); this.layer.Layers.CollectionChanged += LayersChanged; this.EditTextboxCommand = new DelegateCommand(() => EditTextbox()); this.StopEditingTextboxCommand = new DelegateCommand(() => StopEditingTextbox()); this.MouseLeftButtonDownCommand = new DelegateCommand <object>((point) => HandleLeftClickDown((MouseEventArgs)point)); this.MouseMoveCommand = new DelegateCommand <object>((point) => HandleMouseMove((MouseEventArgs)point)); this.DropCommand = new DelegateCommand <object>((point) => HandleDropCommand((DragEventArgs)point)); this.DragOverCommand = new DelegateCommand <object>((args) => HandleDragOverCommand((DragEventArgs)args)); this.DragEnterCommand = new DelegateCommand <object>((args) => HandleDragEnterCommand((DragEventArgs)args)); this.DragLeaveCommand = new DelegateCommand <object>((args) => HandleDragLeaveCommand((DragEventArgs)args)); }
public LayerListNodeViewModel(IEventAggregator eventAggregator, IAmeSession session, IActionHandler actionHandler, Layer layer) { this.eventAggregator = eventAggregator ?? throw new ArgumentNullException("eventAggregator"); this.session = session ?? throw new ArgumentNullException("session is null"); this.Layer = layer ?? throw new ArgumentNullException("layer"); this.actionHandler = actionHandler ?? throw new ArgumentNullException("handler is null"); this.drawingGroup = new DrawingGroup(); this.filled = new DrawingGroup(); this.drawingGroup.Children.Add(filled); this.drawingGroup.Children.Add(layer.Group); this.layerPreview = new DrawingImage(drawingGroup); this.isDragging = false; RefreshPreview(); layer.PixelHeight.PropertyChanged += LayerSizeChanged; layer.PixelWidth.PropertyChanged += LayerSizeChanged; this.EditPropertiesCommand = new DelegateCommand(() => EditProperties()); this.EditCollisionsCommand = new DelegateCommand(() => this.actionHandler.EditCollisions()); this.MoveLayerDownCommand = new DelegateCommand(() => this.actionHandler.MoveLayerDown(this.Layer)); this.MoveLayerUpCommand = new DelegateCommand(() => this.actionHandler.MoveLayerUp(this.Layer)); this.LayerToMapSizeCommand = new DelegateCommand(() => this.actionHandler.LayerToMapSize()); this.DuplicateLayerCommand = new DelegateCommand(() => this.actionHandler.DuplicateLayer(this.Layer)); this.RemoveLayerCommand = new DelegateCommand(() => this.actionHandler.DeleteLayer(this.Layer)); this.EditTextboxCommand = new DelegateCommand(() => EditTextbox()); this.StopEditingTextboxCommand = new DelegateCommand(() => StopEditingTextbox()); this.MouseLeftButtonDownCommand = new DelegateCommand <object>((args) => HandleLeftClickDown((MouseEventArgs)args)); this.MouseMoveCommand = new DelegateCommand <object>((args) => HandleMouseMove((MouseEventArgs)args)); this.DropCommand = new DelegateCommand <object>((args) => HandleDropCommand((DragEventArgs)args)); this.DragOverCommand = new DelegateCommand <object>((args) => HandleDragOverCommand((DragEventArgs)args)); this.DragEnterCommand = new DelegateCommand <object>((args) => HandleDragEnterCommand((DragEventArgs)args)); this.DragLeaveCommand = new DelegateCommand <object>((args) => HandleDragLeaveCommand((DragEventArgs)args)); }
public void UpdateMissingContent(IAmeSession session) { this.session = session; this.Map = this.Map ?? session.CurrentMap.Value; this.Title = "New Layer"; string newLayerName = string.Format("Layer #{0}", this.Map.GetLayerCount()); this.layer = new Layer(this.Map, newLayerName, this.Map.TileWidth.Value, this.Map.TileHeight.Value, this.Map.Rows.Value, this.Map.Columns.Value); this.Callback = this.Callback ?? OnNewLayerWindowClosed; }
public SessionViewerViewModel(IEventAggregator eventAggregator, IAmeSession session) { this.eventAggregator = eventAggregator ?? throw new ArgumentNullException("eventAggregator is null"); this.session = session ?? throw new ArgumentNullException("session is null"); this.Title.Value = "Session Viewer"; this.Nodes = new ObservableCollection <NodeViewBuilder>(); this.Nodes.Add(new NodeViewBuilder("Ame Session", this.session)); this.RefreshTreeCommand = new DelegateCommand(() => RefreshTree()); }
public MinimapViewModel(IEventAggregator eventAggregator, IAmeSession session, IScrollModel scrollModel) { this.eventAggregator = eventAggregator ?? throw new ArgumentNullException("eventAggregator"); this.session = session ?? throw new ArgumentNullException("session"); this.ScrollModel = scrollModel ?? throw new ArgumentNullException("scrollModel"); this.Title.Value = "Minimap"; this.Scale.Value = ScaleType.Tile; this.PositionText.Value = "0, 0"; // TODO ensure this works for non-square maps this.minimapLayers = new DrawingGroup(); if (this.session.CurrentMap != null) { Map currentMap = this.session.CurrentMap.Value; DrawingGroup filled = new DrawingGroup(); using (DrawingContext context = filled.Open()) { Rect drawingRect = new Rect(0, 0, currentMap.PixelWidth.Value, currentMap.PixelHeight.Value); context.DrawRectangle(Brushes.Transparent, new Pen(Brushes.Transparent, 0), drawingRect); } this.minimapLayers.Children.Add(filled); foreach (ILayer layer in this.session.CurrentLayers.Value) { this.minimapLayers.Children.Add(layer.Group); } } this.minimapPreview = new DrawingImage(this.minimapLayers); this.session.CurrentMap.PropertyChanged += CurrentMapChanged; this.FitMinimapCommand = new DelegateCommand(() => FitMinimap()); this.ToggleGridCommand = new DelegateCommand(() => ToggleGrid()); this.ToggleCollisionsCommand = new DelegateCommand(() => ToggleCollisions()); this.CenterOnPointCommand = new DelegateCommand(() => CenterOnPoint()); this.ZoomInCommand = new DelegateCommand(() => this.ScrollModel.ZoomIn()); this.ZoomOutCommand = new DelegateCommand(() => this.ScrollModel.ZoomOut()); this.SetZoomCommand = new DelegateCommand <ZoomLevel>((zoomLevel) => this.ScrollModel.SetZoom(zoomLevel)); this.UpdatePositionCommand = new DelegateCommand <object>((point) => UpdatePosition((Point)point)); this.SetRatioCommand = new DelegateCommand <object>((ratio) => UpdateRatio(Convert.ToDouble(ratio))); }