Browse Source

Default sizes, some initializers

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3518 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Ivan Shumilin 17 years ago
parent
commit
3fd8c5dc72
  1. 15
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs
  2. 28
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/ContentControlDefaultInitializer.cs
  3. 52
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/Initializers.cs
  4. 9
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs
  5. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj
  6. 23
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Metadata.cs

15
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs

@ -225,6 +225,21 @@ namespace ICSharpCode.WpfDesign.Designer
Metadata.AddPopularControl(typeof(Viewbox)); Metadata.AddPopularControl(typeof(Viewbox));
Metadata.AddPopularControl(typeof(Viewport3D)); Metadata.AddPopularControl(typeof(Viewport3D));
Metadata.AddPopularControl(typeof(WrapPanel)); Metadata.AddPopularControl(typeof(WrapPanel));
Metadata.AddDefaultSize(typeof(UIElement), new Size(120, 100));
Metadata.AddDefaultSize(typeof(ContentControl), new Size(double.NaN, double.NaN));
Metadata.AddDefaultSize(typeof(Button), new Size(75, 23));
var s1 = new Size(120, double.NaN);
Metadata.AddDefaultSize(typeof(Slider), s1);
Metadata.AddDefaultSize(typeof(TextBox), s1);
Metadata.AddDefaultSize(typeof(PasswordBox), s1);
Metadata.AddDefaultSize(typeof(ComboBox), s1);
Metadata.AddDefaultSize(typeof(ProgressBar), s1);
var s2 = new Size(120, 20);
Metadata.AddDefaultSize(typeof(ToolBar), s2);
Metadata.AddDefaultSize(typeof(Menu), s2);
} }
} }
} }

28
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/ContentControlDefaultInitializer.cs

@ -1,28 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision: 2667$</version>
// </file>
using System;
using System.Windows.Controls;
using ICSharpCode.WpfDesign.Extensions;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
/// Description of ContentControlDefaultInitializer.
/// </summary>
[ExtensionFor(typeof(ContentControl))]
public sealed class ContentControlDefaultInitializer : DefaultInitializer
{
public override void InitializeDefaults(DesignItem item)
{
DesignItemProperty contentProperty = item.Properties["Content"];
if (contentProperty.ValueOnInstance == null) {
contentProperty.SetValue(item.ComponentType.Name);
}
}
}
}

52
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/Initializers.cs

@ -0,0 +1,52 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision: 2667$</version>
// </file>
using System;
using System.Windows.Controls;
using ICSharpCode.WpfDesign.Extensions;
using System.Windows;
using System.Windows.Shapes;
using System.Windows.Media;
namespace ICSharpCode.WpfDesign.Designer.Extensions.Initializers
{
[ExtensionFor(typeof(ContentControl))]
public class ContentControlInitializer : DefaultInitializer
{
public override void InitializeDefaults(DesignItem item)
{
DesignItemProperty contentProperty = item.Properties["Content"];
if (contentProperty.ValueOnInstance == null) {
contentProperty.SetValue(item.ComponentType.Name);
}
}
}
[ExtensionFor(typeof(HeaderedContentControl))]
public class HeaderedContentControlInitializer : DefaultInitializer
{
public override void InitializeDefaults(DesignItem item)
{
DesignItemProperty headerProperty = item.Properties["Header"];
if (headerProperty.ValueOnInstance == null) {
headerProperty.SetValue(item.ComponentType.Name);
}
}
}
[ExtensionFor(typeof(Shape))]
public class ShapeInitializer : DefaultInitializer
{
public override void InitializeDefaults(DesignItem item)
{
DesignItemProperty fillProperty = item.Properties["Fill"];
if (fillProperty.ValueOnInstance == null) {
fillProperty.SetValue(Brushes.YellowGreen);
}
}
}
}

9
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

@ -98,7 +98,14 @@ namespace ICSharpCode.WpfDesign.Designer
internal static Size GetDefaultSize(DesignItem createdItem) internal static Size GetDefaultSize(DesignItem createdItem)
{ {
return new Size(GetWidth(createdItem.View), GetHeight(createdItem.View)); var s = Metadata.GetDefaultSize(createdItem.ComponentType);
if (double.IsNaN(s.Width)) {
s.Width = GetWidth(createdItem.View);
}
if (double.IsNaN(s.Height)) {
s.Height = GetHeight(createdItem.View);
}
return s;
} }
internal static double GetWidth(UIElement element) internal static double GetWidth(UIElement element)

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

@ -97,7 +97,7 @@
<Compile Include="Extensions\CanvasPlacementSupport.cs"> <Compile Include="Extensions\CanvasPlacementSupport.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Extensions\ContentControlDefaultInitializer.cs" /> <Compile Include="Extensions\Initializers.cs" />
<Compile Include="Extensions\DefaultPlacementBehavior.cs"> <Compile Include="Extensions\DefaultPlacementBehavior.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
@ -284,7 +284,6 @@
<Page Include="Themes\Generic.xaml"> <Page Include="Themes\Generic.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Folder Include="OutlineView" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Images\Class.png" /> <Resource Include="Images\Class.png" />

23
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Metadata.cs

@ -221,6 +221,29 @@ namespace ICSharpCode.WpfDesign
return placementDisabled.Contains(type); return placementDisabled.Contains(type);
} }
} }
static Dictionary<Type, Size> defaultSizes = new Dictionary<Type, Size>();
public static void AddDefaultSize(Type t, Size s)
{
lock (defaultSizes) {
defaultSizes[t] = s;
}
}
public static Size GetDefaultSize(Type t)
{
Size s;
lock (defaultSizes) {
while (t != null) {
if (defaultSizes.TryGetValue(t, out s)) {
return s;
}
t = t.BaseType;
}
}
return new Size(double.NaN, double.NaN);
}
} }
public class NumberRange public class NumberRange

Loading…
Cancel
Save