Browse Source

Fixed forum-18481: Problem with Boo Forms Designer when using TableLayoutPanel

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2661 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
8675624e3c
  1. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs
  2. 9
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs
  3. 11
      src/Libraries/NRefactory/Project/Src/Visitors/CodeDOMVerboseOutputGenerator.cs

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs

@ -30,7 +30,6 @@ namespace Grunwald.BooBinding.Designer @@ -30,7 +30,6 @@ namespace Grunwald.BooBinding.Designer
IDesignerLoaderHost designerLoaderHost = null;
IDesignerGenerator generator;
ITypeResolutionService typeResolutionService = null;
CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
TextEditorControl textEditorControl;
@ -54,7 +53,7 @@ namespace Grunwald.BooBinding.Designer @@ -54,7 +53,7 @@ namespace Grunwald.BooBinding.Designer
protected override CodeDomProvider CodeDomProvider {
get {
return provider;
return generator.CodeDomProvider;
}
}
@ -182,7 +181,8 @@ namespace Grunwald.BooBinding.Designer @@ -182,7 +181,8 @@ namespace Grunwald.BooBinding.Designer
// output generated CodeDOM to the console :
ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator outputGenerator = new ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator();
outputGenerator.GenerateCodeFromMember(visitor.OutputCompileUnit.Namespaces[0].Types[0], Console.Out, null);
provider.GenerateCodeFromCompileUnit(visitor.OutputCompileUnit, Console.Out, null);
CodeDomProvider cSharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
cSharpProvider.GenerateCodeFromCompileUnit(visitor.OutputCompileUnit, Console.Out, null);
#endif
return visitor.OutputCompileUnit;

9
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs

@ -333,7 +333,10 @@ namespace Grunwald.BooBinding.Designer @@ -333,7 +333,10 @@ namespace Grunwald.BooBinding.Designer
public override void OnIntegerLiteralExpression(IntegerLiteralExpression node)
{
_expression = new CodePrimitiveExpression(node.Value);
if (node.IsLong || node.Value < int.MinValue || node.Value > int.MaxValue)
_expression = new CodePrimitiveExpression(node.Value);
else
_expression = new CodePrimitiveExpression((int)node.Value);
}
public override void OnDoubleLiteralExpression(DoubleLiteralExpression node)
@ -443,7 +446,7 @@ namespace Grunwald.BooBinding.Designer @@ -443,7 +446,7 @@ namespace Grunwald.BooBinding.Designer
if (me.IsStatic == isStatic && me.Name == name) {
_fieldReferenceType = me.ReturnType;
CodeMethodReferenceExpression cmre = new CodeMethodReferenceExpression(target, name);
cmre.UserData["method"] = me;
cmre.UserData["methodUserData"] = me;
return cmre;
}
}
@ -500,7 +503,7 @@ namespace Grunwald.BooBinding.Designer @@ -500,7 +503,7 @@ namespace Grunwald.BooBinding.Designer
/// </summary>
void FixArrayArguments(CodeMethodInvokeExpression cmie)
{
IMethod m = cmie.Method.UserData["method"] as IMethod;
IMethod m = cmie.Method.UserData["methodUserData"] as IMethod;
if (m != null) {
int count = Math.Min(m.Parameters.Count, cmie.Parameters.Count);
for (int i = 0; i < count; i++) {

11
src/Libraries/NRefactory/Project/Src/Visitors/CodeDOMVerboseOutputGenerator.cs

@ -314,6 +314,17 @@ namespace ICSharpCode.NRefactory.Visitors @@ -314,6 +314,17 @@ namespace ICSharpCode.NRefactory.Visitors
Output.WriteLine("[CodeAttributeDeclarationCollection: {0}]", attributes.ToString());
}
protected override void GeneratePrimitiveExpression(CodePrimitiveExpression e)
{
if (e.Value == null) {
Output.WriteLine("[CodePrimitiveExpression: null]");
} else {
Output.Write("[CodePrimitiveExpression: ");
base.GeneratePrimitiveExpression(e);
Output.WriteLine(" (" + e.Value.GetType().Name + ")]");
}
}
protected override bool Supports(GeneratorSupport support)
{
return true;

Loading…
Cancel
Save