public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, System.Windows.Input.MouseEventArgs e) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); var figure = new PathFigure(); var geometry = new PathGeometry(); var geometryDesignItem = createdItem.Services.Component.RegisterComponentForDesigner(geometry); var figureDesignItem = createdItem.Services.Component.RegisterComponentForDesigner(figure); createdItem.Properties[Path.DataProperty].SetValue(geometry); //geometryDesignItem.Properties[PathGeometry.FiguresProperty].CollectionElements.Add(figureDesignItem); figureDesignItem.Properties[PathFigure.StartPointProperty].SetValue(new Point(0,0)); new DrawPathMouseGesture(figure, createdItem, clickedOn.View, changeGroup, this.ExtendedItem.GetCompleteAppliedTransformationToView()).Start(panel, (MouseButtonEventArgs) e); }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, System.Windows.Input.MouseEventArgs e) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); if (createItemType == typeof(Polyline)) { createdItem.Properties[Polyline.PointsProperty].CollectionElements.Add(createdItem.Services.Component.RegisterComponentForDesigner(new Point(0, 0))); } else { createdItem.Properties[Polygon.PointsProperty].CollectionElements.Add(createdItem.Services.Component.RegisterComponentForDesigner(new Point(0, 0))); } new DrawPolylineMouseGesture(createdItem, clickedOn.View, changeGroup).Start(panel, (MouseButtonEventArgs)e); }
void designPanel_DragOver(object sender, DragEventArgs e) { try { IDesignPanel designPanel = (IDesignPanel)sender; e.Effects = DragDropEffects.Copy; e.Handled = true; Point p = e.GetPosition(designPanel); if (moveLogic == null) { if (e.Data.GetData(typeof(CreateComponentTool)) != this) { return; } // TODO: dropLayer in designPanel designPanel.IsAdornerLayerHitTestVisible = false; DesignPanelHitTestResult result = designPanel.HitTest(p, false, true, HitTestType.Default); if (result.ModelHit != null) { designPanel.Focus(); DesignItem createdItem = CreateItem(designPanel.Context); if (AddItemWithDefaultSize(result.ModelHit, createdItem, e.GetPosition(result.ModelHit.View))) { moveLogic = new MoveLogic(createdItem); if (designPanel.Context.Services.Component is XamlComponentService) { ((XamlComponentService)designPanel.Context.Services.Component) .RaiseComponentRegisteredAndAddedToContainer(createdItem); } createPoint = p; // We'll keep the ChangeGroup open as long as the moveLogic is active. } else { // Abort the ChangeGroup created by the CreateItem() call. changeGroup.Abort(); } } } else if ((moveLogic.ClickedOn.View as FrameworkElement).IsLoaded) { if (moveLogic.Operation == null) { moveLogic.Start(createPoint); } else { moveLogic.Move(p); } } } catch (Exception x) { DragDropExceptionHandler.RaiseUnhandledException(x); } }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, MouseEventArgs e, Action <DesignItem> drawItemCallback) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); if (drawItemCallback != null) { drawItemCallback(createdItem); } var figure = new PathFigure(); var geometry = new PathGeometry(); var geometryDesignItem = createdItem.Services.Component.RegisterComponentForDesigner(geometry); var figureDesignItem = createdItem.Services.Component.RegisterComponentForDesigner(figure); createdItem.Properties[Path.DataProperty].SetValue(geometry); //geometryDesignItem.Properties[PathGeometry.FiguresProperty].CollectionElements.Add(figureDesignItem); figureDesignItem.Properties[PathFigure.StartPointProperty].SetValue(new Point(0, 0)); new DrawPathMouseGesture(figure, createdItem, clickedOn.View, changeGroup, this.ExtendedItem.GetCompleteAppliedTransformationToView()).Start(panel, (MouseButtonEventArgs)e); }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, System.Windows.Input.MouseEventArgs e) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); if (createItemType == typeof(Polyline)) createdItem.Properties[Polyline.PointsProperty].CollectionElements.Add(createdItem.Services.Component.RegisterComponentForDesigner(new Point(0,0))); else createdItem.Properties[Polygon.PointsProperty].CollectionElements.Add(createdItem.Services.Component.RegisterComponentForDesigner(new Point(0,0))); new DrawPolylineMouseGesture(createdItem, clickedOn.View, changeGroup).Start(panel, (MouseButtonEventArgs) e); }
public void Start(IDesignPanel designPanel, MouseButtonEventArgs e) { if (designPanel == null) { throw new ArgumentNullException("designPanel"); } if (e == null) { throw new ArgumentNullException("e"); } if (isStarted) { throw new InvalidOperationException("Gesture already was started"); } isStarted = true; this.designPanel = designPanel; this.services = designPanel.Context.Services; if (designPanel.CaptureMouse()) { RegisterEvents(); OnStarted(e); } else { Stop(); } }
public void Deactivate(IDesignPanel designPanel) { designPanel.MouseDown -= OnMouseDown; designPanel.DragOver -= designPanel_DragOver; designPanel.Drop -= designPanel_Drop; designPanel.DragLeave -= designPanel_DragLeave; }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, MouseEventArgs e, Action <DesignItem> drawItemCallback) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); if (drawItemCallback != null) { drawItemCallback(createdItem); } var lineHandler = createdItem.Extensions.OfType <LineHandlerExtension>().First(); lineHandler.DragListener.ExternalStart(); new DrawLineMouseGesture(lineHandler, clickedOn.View, changeGroup).Start(panel, (MouseButtonEventArgs)e); }
public void Activate(IDesignPanel designPanel) { designPanel.MouseDown += OnMouseDown; designPanel.DragOver += designPanel_DragOver; designPanel.Drop += designPanel_Drop; designPanel.DragLeave += designPanel_DragLeave; }
void OnMouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; IDesignPanel designPanel = (IDesignPanel)sender; DesignPanelHitTestResult result = designPanel.HitTest(e.GetPosition(designPanel), false, true, HitTestType.Default); if (result.ModelHit != null) { var darwItemBehaviors = result.ModelHit.Extensions.OfType <IDrawItemExtension>(); var drawItembehavior = darwItemBehaviors.FirstOrDefault(x => x.CanItemBeDrawn(componentType)); if (drawItembehavior != null && drawItembehavior.CanItemBeDrawn(componentType)) { drawItembehavior.StartDrawItem(result.ModelHit, componentType, designPanel, e, SetPropertiesForDrawnItem); } else { var placementBehavior = result.ModelHit.GetBehavior <IPlacementBehavior>(); if (placementBehavior != null) { var createdItem = CreateItem(designPanel.Context); new CreateComponentMouseGesture(result.ModelHit, createdItem, changeGroup).Start(designPanel, e); // CreateComponentMouseGesture now is responsible for the changeGroup created by CreateItem() changeGroup = null; } } } } }
void OnMouseDown(object sender, MouseButtonEventArgs e) { IDesignPanel designPanel = (IDesignPanel)sender; DesignPanelHitTestResult result = designPanel.HitTest(e.GetPosition(designPanel), false, true); if (result.ModelHit != null) { IHandlePointerToolMouseDown b = result.ModelHit.GetBehavior <IHandlePointerToolMouseDown>(); if (b != null) { b.HandleSelectionMouseDown(designPanel, e, result); } if (!e.Handled) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; ISelectionService selectionService = designPanel.Context.Services.Selection; selectionService.SetSelectedComponents(new DesignItem[] { result.ModelHit }, SelectionTypes.Auto); if (selectionService.IsComponentSelected(result.ModelHit)) { new DragMoveMouseGesture(result.ModelHit, e.ClickCount == 2).Start(designPanel, e); } } } } }
public void Dispose() { if (_designPanel != null) { _currentTool.Deactivate(_designPanel); _designPanel = null; } }
public void HandleSelectionMouseDown(IDesignPanel designPanel, MouseButtonEventArgs e, DesignPanelHitTestResult result) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; new RangeSelectionGesture(result.ModelHit).Start(designPanel, e); } }
public void Activate(IDesignPanel designPanel) { designPanel.MouseDown += OnMouseDown; //designPanel.DragEnter += designPanel_DragOver; designPanel.DragOver += designPanel_DragOver; designPanel.Drop += designPanel_Drop; designPanel.DragLeave += designPanel_DragLeave; }
public void Deactivate(IDesignPanel designPanel) { designPanel.MouseDown -= OnMouseDown; //designPanel.DragEnter -= designPanel_DragOver; designPanel.DragOver -= designPanel_DragOver; designPanel.Drop -= designPanel_Drop; designPanel.DragLeave -= designPanel_DragLeave; }
public void HandleSelectionMouseDown(IDesignPanel designPanel, MouseButtonEventArgs e, DesignPanelHitTestResult result) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; new PartialRangeSelectionGesture(result.ModelHit).Start(designPanel, e); } }
public void Dispose() { if (_designPanel != null) { _currentTool.Deactivate(_designPanel); _designPanel = null; } }
public DefaultToolService(DesignContext context) { _currentTool = this.PointerTool; context.Services.RunWhenAvailable<IDesignPanel>( delegate(IDesignPanel designPanel) { _designPanel = designPanel; _currentTool.Activate(designPanel); }); }
public DefaultToolService(DesignContext context) { _currentTool = this.PointerTool; context.Services.RunWhenAvailable <IDesignPanel>( delegate(IDesignPanel designPanel) { _designPanel = designPanel; _currentTool.Activate(designPanel); }); }
internal static void Stop(ref InfoTextEnterArea grayOut) { if (grayOut != null) { IDesignPanel designPanel = grayOut.designPanel; AdornerPanel adornerPanelToRemove = grayOut.adornerPanel; designPanel.Adorners.Remove(adornerPanelToRemove); grayOut = null; } }
internal void OnAdornerRemove(AdornerPanel item) { if (!isVisible) { return; } IDesignPanel avs = Services.GetService <IDesignPanel>(); avs.Adorners.Remove(item); }
internal void OnAdornerAdd(AdornerPanel item) { if (!isVisible) { return; } item.SetAdornedElement(this.ExtendedItem.View, this.ExtendedItem); IDesignPanel avs = Services.GetService <IDesignPanel>(); avs.Adorners.Add(item); }
internal static void Stop(ref GrayOutDesignerExceptActiveArea grayOut) { if (grayOut != null) { Animate(grayOut.GrayOutBrush, Brush.OpacityProperty, 0); IDesignPanel designPanel = grayOut.designPanel; AdornerPanel adornerPanelToRemove = grayOut.adornerPanel; DispatcherTimer timer = new DispatcherTimer(); timer.Interval = animationTime; timer.Tick += delegate { timer.Stop(); designPanel.Adorners.Remove(adornerPanelToRemove); }; timer.Start(); grayOut = null; } }
void OnMouseDown(object sender, MouseButtonEventArgs e) { IDesignPanel designPanel = (IDesignPanel)sender; DesignPanelHitTestResult result = designPanel.HitTest(e.GetPosition(designPanel), false, true, HitTestType.ElementSelection); if (result.ModelHit != null) { IHandlePointerToolMouseDown b = result.ModelHit.GetBehavior <IHandlePointerToolMouseDown>(); if (b != null) { b.HandleSelectionMouseDown(designPanel, e, result); } if (!e.Handled) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; ISelectionService selectionService = designPanel.Context.Services.Selection; bool setSelectionIfNotMoving = false; if (selectionService.IsComponentSelected(result.ModelHit)) { setSelectionIfNotMoving = true; // There might be multiple components selected. We might have // to set the selection to only the item clicked on // (or deselect the item clicked on if Ctrl is pressed), // but we should do so only if the user isn't performing a drag operation. } else { selectionService.SetSelectedComponents(new DesignItem[] { result.ModelHit }, SelectionTypes.Auto); } if (selectionService.IsComponentSelected(result.ModelHit)) { new DragMoveMouseGesture(result.ModelHit, e.ClickCount == 2, setSelectionIfNotMoving).Start(designPanel, e); } } } } }
public void Start(IDesignPanel designPanel, MouseButtonEventArgs e) { if (designPanel == null) throw new ArgumentNullException("designPanel"); if (e == null) throw new ArgumentNullException("e"); if (isStarted) throw new InvalidOperationException("Gesture already was started"); isStarted = true; this.designPanel = designPanel; this.services = designPanel.Context.Services; if (designPanel.CaptureMouse()) { RegisterEvents(); OnStarted(e); } else { Stop(); } }
void OnMouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) { e.Handled = true; IDesignPanel designPanel = (IDesignPanel)sender; DesignPanelHitTestResult result = designPanel.HitTest(e.GetPosition(designPanel), false, true, HitTestType.Default); if (result.ModelHit != null) { IPlacementBehavior behavior = result.ModelHit.GetBehavior <IPlacementBehavior>(); if (behavior != null) { DesignItem createdItem = CreateItem(designPanel.Context); new CreateComponentMouseGesture(result.ModelHit, createdItem, changeGroup).Start(designPanel, e); // CreateComponentMouseGesture now is responsible for the changeGroup created by CreateItem() changeGroup = null; } } } }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, System.Windows.Input.MouseEventArgs e) { var createdItem = CreateItem(panel.Context, createItemType); var startPoint = e.GetPosition(clickedOn.View); var operation = PlacementOperation.TryStartInsertNewComponents(clickedOn, new DesignItem[] { createdItem }, new Rect[] { new Rect(startPoint.X, startPoint.Y, double.NaN, double.NaN) }, PlacementType.AddItem); if (operation != null) { createdItem.Services.Selection.SetSelectedComponents(new DesignItem[] { createdItem }); operation.Commit(); } createdItem.Properties[Shape.StrokeProperty].SetValue(Brushes.Black); createdItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d); createdItem.Properties[Shape.StretchProperty].SetValue(Stretch.None); var lineHandler = createdItem.Extensions.OfType<LineHandlerExtension>().First(); lineHandler.DragListener.ExternalStart(); new DrawLineMouseGesture(lineHandler, clickedOn.View, changeGroup).Start(panel, (MouseButtonEventArgs) e); }
public void Deactivate(IDesignPanel designPanel) { designPanel.MouseDown -= OnMouseDown; }
public void Activate(IDesignPanel designPanel) { designPanel.MouseDown += OnMouseDown; }
public void Deactivate(IDesignPanel designPanel) { designPanel.MouseDown -= OnMouseDown; }
void designPanel_DragOver(object sender, DragEventArgs e) { try { IDesignPanel designPanel = (IDesignPanel)sender; e.Effects = DragDropEffects.Copy; e.Handled = true; Point p = e.GetPosition(designPanel); if (moveLogic == null) { if (ChangeGroup != null) { ChangeGroup.Abort(); ChangeGroup = null; } ChangeGroup = designPanel.Context.RootItem.OpenGroup("Add Control"); designPanel.IsAdornerLayerHitTestVisible = false; DesignPanelHitTestResult result = designPanel.HitTest(p, false, true, HitTestType.Default); if (result.ModelHit != null) { designPanel.Focus(); var items = CreateItemsWithPosition(designPanel.Context, e.GetPosition(result.ModelHit.View), e); if (items != null) { if (AddItems(result.ModelHit, items)) { moveLogic = new MoveLogic(items[0]); foreach (var designItem in items) { if (designPanel.Context.Services.Component is XamlComponentService) { ((XamlComponentService)designPanel.Context.Services.Component).RaiseComponentRegisteredAndAddedToContainer(designItem); } } createPoint = p; } else { ChangeGroup.Abort(); ChangeGroup = null; } } else { e.Effects = DragDropEffects.None; } } } else if ((moveLogic.ClickedOn.View as FrameworkElement).IsLoaded) { if (moveLogic.Operation == null) { moveLogic.Start(createPoint); } else { moveLogic.Move(p); } } } catch (Exception x) { DragDropExceptionHandler.RaiseUnhandledException(x); } }
public void Activate(IDesignPanel designPanel) { designPanel.MouseDown += OnMouseDown; }
public void StartDrawItem(DesignItem clickedOn, Type createItemType, IDesignPanel panel, MouseEventArgs e, Action <DesignItem> drawItemCallback) { throw new NotImplementedException(); }