Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

changed implementation of PanelSelectionHandler so that custom panelsele... #521

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
a1438e1
Removing the optional "Extension" suffix from Markup Extension name i…
Jun 17, 2013
e1ba7bc
Made it possible to add resources to a ResourceDictionary through Des…
Jun 17, 2013
763f4d1
Fixed bug; Only sets the inner text of an XML element if the element …
Jun 17, 2013
990068d
Its WPF standard to use parent type name as prefix before the dot whe…
Jun 17, 2013
95583e9
Fixed so Resources are always first among child items.
Jun 17, 2013
ad869ad
Added generated GlobalAssemblyInfo.cs to avoid the requirement to com…
Jun 20, 2013
874e07e
Merge remote-tracking branch 'upstream/master'
Jun 26, 2013
8df438f
XML-namespaces for controls outside the default XML-namespace is now …
gumme Jul 4, 2013
9af480c
Fixed so nodes in the property grid gets DesignItemProperty instances…
gumme Jul 5, 2013
e5761c6
Removed Ignore attribute from SimpleLoadTests so the tests in the cla…
gumme Jul 8, 2013
84053d7
Removed Ignore attribute from WhitespaceTests so the tests in the cla…
gumme Jul 8, 2013
957b6f9
If the ParentProperty is a collection the collection itself is the Ta…
gumme Jul 8, 2013
295f625
Fixed bug where list with errors in the designer was only updated if …
gumme Jul 10, 2013
dbb326e
The previous solution regarding XAML names expected all properties of…
gumme Jul 10, 2013
006558f
Throws a XamlLoadException with an error message describing the error…
gumme Jul 11, 2013
c44f291
Sending in an empty string as namespaceURI when setting a value to an…
gumme Jul 11, 2013
743a6dd
Fixed missing namespace prefix on properties that is set as elements …
gumme Jul 11, 2013
899a0ee
Revert "Added generated GlobalAssemblyInfo.cs to avoid the requiremen…
Jul 12, 2013
2af3fcb
Added default ReportErrors delegate that does nothing.
gumme Jul 12, 2013
bb4a661
Fixed so its possible to use MultiBinding and PriorityBinding on a De…
gumme Jul 17, 2013
6b34ee0
Its questionable if attached properties can be used in markup extensi…
gumme Jul 18, 2013
8de9207
Fixed so markup extensions where property is set by a StaticResource …
gumme Jul 19, 2013
debb148
If properties on a markup extension (for example a binding) is modifi…
gumme Jul 19, 2013
bd82815
Fixed prefix lookup.
gumme Jul 19, 2013
16d9108
Merge remote-tracking branch 'upstream/master'
Jul 19, 2013
efdc7df
Merge remote-tracking branch 'remotes/upstream/master'
Sep 9, 2013
489d9ab
Merge remote-tracking branch 'origin/WpfDesignerUnitTests'
Sep 16, 2013
37ae46c
Merge remote-tracking branch 'origin/WpfDesignerFixes'
Sep 16, 2013
1eed2fa
Removes namespace attributes from child nodes in the pasted snippet i…
Sep 19, 2013
0563174
Fixed type resolve when pasting a custom control using StaticResource.
Sep 19, 2013
8bf2a76
Merge remote-tracking branch 'origin/NamescopeFixes'
Sep 19, 2013
3e27053
Merge remote-tracking branch 'origin/WpfDesignerPasteFixes'
Sep 19, 2013
9f719f9
Merge branch 'WpfDesignerParserFixes'
Nov 12, 2013
8849041
Merge branch 'WpfDesignerParserFixes'
Nov 20, 2013
0bb0d8d
Merge remote-tracking branch 'remotes/upstream/master'
Nov 26, 2013
2c7037c
Merge remote-tracking branch 'upstream/master'
Dec 5, 2013
85026f5
Merge remote-tracking branch 'remotes/origin/WpfDesignerStringResourc…
Dec 5, 2013
991c306
Merge remote-tracking branch 'upstream/master'
Jan 7, 2014
b7643d6
Merge remote-tracking branch 'upstream/master'
Jan 9, 2014
77f830a
Merge remote-tracking branch 'remotes/origin/WpfDesignerPropGrid'
Jan 9, 2014
19746ab
Merge remote-tracking branch 'upstream/master'
Jan 23, 2014
be80f41
Merge remote-tracking branch 'origin/WpfDesignerPropGrid'
Jan 23, 2014
e5fc98d
Merge remote-tracking branch 'remotes/origin/WpfDesignerPropGrid'
Jan 28, 2014
f782cb2
Merge branch 'WpfDesignerPropGrid'
Jan 30, 2014
369cec8
Merge remote-tracking branch 'upstream/master'
Feb 19, 2014
19fe618
Changes to control extensions for adorner handling
Feb 19, 2014
5e2c630
Merge remote-tracking branch 'remotes/origin/WpfDesignerControlExtens…
Feb 19, 2014
709808f
Change missed in last commit
Feb 19, 2014
4daf38b
Merge branch 'WpfDesignerControlExtensions'
Feb 19, 2014
ada43bb
Merge branch 'master' of github.com:gumme/SharpDevelop
Feb 19, 2014
195d403
Changes to make reverse cloning possible
Feb 20, 2014
e209974
Merge remote-tracking branch 'upstream/master'
Feb 27, 2014
70a22a7
Merge remote-tracking branch 'remotes/origin/WpfDesignerCanvasPlacement'
Feb 27, 2014
3e4a5c1
Merge remote-tracking branch 'upstream/master'
Mar 4, 2014
3759d08
Merge branch 'WpfDesignerParserFixes'
Mar 4, 2014
ffd6ad0
Remove unnecessary Canvas positioning
Mar 7, 2014
6f7ebb5
Merge branch 'WpfDesignerControlExtensions'
Mar 7, 2014
2b55aeb
Merge branch 'master' of github.com:gumme/SharpDevelop
Mar 7, 2014
3013e87
Revert "Merge branch 'master' of github.com:gumme/SharpDevelop"
Mar 17, 2014
5bdc1ac
interface for PropertyGrid.cs
Mar 17, 2014
434151e
Revert "interface for PropertyGrid.cs"
Mar 17, 2014
c2681a4
PropertyGrid interface
Mar 18, 2014
3b33cd0
Fixed bug in keyboard move
Mar 27, 2014
fb9b9fe
Merge branch 'WpfDesignerKeyboardMove'
Mar 27, 2014
4392588
Merge remote-tracking branch 'upstream/master'
Mar 28, 2014
daf7734
Merge remote-tracking branch 'remotes/origin/WpfDesignerStabilityBugF…
Mar 28, 2014
a4c105a
Merge remote-tracking branch 'upstream/master'
Apr 4, 2014
22ff94b
Merge remote-tracking branch 'upstream/master'
May 8, 2014
8d17329
Merge remote-tracking branch 'upstream/master'
May 8, 2014
40b5d51
Merge remote-tracking branch 'remotes/origin/WpfDesignerCollectionUnd…
May 9, 2014
a8b03d9
Merge remote-tracking branch 'upstream/master'
May 19, 2014
b8ad8c5
Merge remote-tracking branch 'remotes/origin/WpfDesignerXamlParserNat…
May 19, 2014
aa59343
changed implementation of PanelSelectionHandler so that custom panels…
Aug 6, 2014
352d2dc
Merge remote-tracking branch 'remotes/origin/master' into WpfDesigner…
Aug 7, 2014
d690ae5
Revert "Merge remote-tracking branch 'remotes/origin/master' into Wpf…
Aug 11, 2014
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ public void HandleSelectionMouseDown(IDesignPanel designPanel, MouseButtonEventA
}
}

sealed class RangeSelectionGesture : ClickOrDragMouseGesture
internal class RangeSelectionGesture : ClickOrDragMouseGesture
{
DesignItem container;
AdornerPanel adornerPanel;
SelectionFrame selectionFrame;
protected DesignItem container;
protected AdornerPanel adornerPanel;
protected SelectionFrame selectionFrame;

GrayOutDesignerExceptActiveArea grayOut;
protected GrayOutDesignerExceptActiveArea grayOut;

public RangeSelectionGesture(DesignItem container)
{
Expand Down Expand Up @@ -100,7 +100,7 @@ protected override void OnMouseUp(object sender, MouseButtonEventArgs e)
Math.Abs(startPoint.Y - endPoint.Y)
);

ICollection<DesignItem> items = GetChildDesignItemsInContainer(container, new RectangleGeometry(frameRect));
ICollection<DesignItem> items = GetChildDesignItemsInContainer(new RectangleGeometry(frameRect));
if (items.Count == 0) {
items.Add(container);
}
Expand All @@ -109,8 +109,7 @@ protected override void OnMouseUp(object sender, MouseButtonEventArgs e)
Stop();
}

static ICollection<DesignItem> GetChildDesignItemsInContainer(
DesignItem container, Geometry geometry)
protected virtual ICollection<DesignItem> GetChildDesignItemsInContainer(Geometry geometry)
{
HashSet<DesignItem> resultItems = new HashSet<DesignItem>();
ViewService viewService = container.Services.View;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-08-06
* Time: 14:13
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Controls;
using ICSharpCode.WpfDesign.Designer.Services;
using ICSharpCode.WpfDesign.Extensions;

namespace ICSharpCode.WpfDesign.Designer.Extensions
{
public class PartialPanelSelectionHandler : BehaviorExtension, IHandlePointerToolMouseDown
{
protected override void OnInitialized()
{
base.OnInitialized();
this.ExtendedItem.AddBehavior(typeof(IHandlePointerToolMouseDown), this);
}

public new 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);
}
}
}

/// <summary>
///
/// </summary>
internal class PartialRangeSelectionGesture : RangeSelectionGesture
{
public PartialRangeSelectionGesture(DesignItem container)
: base(container)
{
}

protected override ICollection<DesignItem> GetChildDesignItemsInContainer(Geometry geometry)
{
HashSet<DesignItem> resultItems = new HashSet<DesignItem>();
ViewService viewService = container.Services.View;

HitTestFilterCallback filterCallback = delegate(DependencyObject potentialHitTestTarget)
{
FrameworkElement element = potentialHitTestTarget as FrameworkElement;
if (element != null)
{
// ensure we are able to select elements with width/height=0
if (element.ActualWidth == 0 || element.ActualHeight == 0)
{
DependencyObject tmp = element;
DesignItem model = null;
while (tmp != null)
{
model = viewService.GetModel(tmp);
if (model != null) break;
tmp = VisualTreeHelper.GetParent(tmp);
}
if (model != container)
{
resultItems.Add(model);
return HitTestFilterBehavior.ContinueSkipChildren;
}
}
}
return HitTestFilterBehavior.Continue;
};

HitTestResultCallback resultCallback = delegate(HitTestResult result)
{
if (((GeometryHitTestResult)result).IntersectionDetail == IntersectionDetail.FullyInside || (Mouse.RightButton== MouseButtonState.Pressed && ((GeometryHitTestResult)result).IntersectionDetail == IntersectionDetail.Intersects))
{
// find the model for the visual contained in the selection area
DependencyObject tmp = result.VisualHit;
DesignItem model = null;
while (tmp != null)
{
model = viewService.GetModel(tmp);
if (model != null) break;
tmp = VisualTreeHelper.GetParent(tmp);
}
if (model != container)
{
resultItems.Add(model);
}
}
return HitTestResultBehavior.Continue;
};

VisualTreeHelper.HitTest(container.View, filterCallback, resultCallback, new GeometryHitTestParameters(geometry));
return resultItems;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Controls\RenderTransformOriginThumb.cs" />
<Compile Include="Extensions\PartialPanelSelectionHandler.cs" />
<Compile Include="Extensions\RightClickContextMenu.xaml.cs">
<DependentUpon>RightClickContextMenu.xaml</DependentUpon>
<SubType>Code</SubType>
Expand Down