Browse Source

Inherited tooltips now supported in the Python forms designer.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4575 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 16 years ago
parent
commit
921f2d2045
  1. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonControlFieldExpression.cs
  2. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerComponent.cs
  3. 77
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GenerateInheritedToolTipTestFixture.cs
  4. 68
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadInheritedToolTipTestFixture.cs
  5. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

3
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonControlFieldExpression.cs

@ -309,6 +309,9 @@ namespace ICSharpCode.PythonBinding
object obj = componentCreator.GetComponent(variableName); object obj = componentCreator.GetComponent(variableName);
if (obj == null) { if (obj == null) {
obj = componentCreator.GetInstance(variableName); obj = componentCreator.GetInstance(variableName);
if (obj == null) {
obj = GetInheritedObject(memberName, componentCreator.RootComponent);
}
} }
if (obj != null) { if (obj != null) {

4
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerComponent.cs

@ -557,8 +557,8 @@ namespace ICSharpCode.PythonBinding
/// </summary> /// </summary>
public void AppendExtenderProperty(PythonCodeBuilder codeBuilder, string propertyOwnerName, ExtenderProvidedPropertyAttribute extender, PropertyDescriptor propertyDescriptor, object propertyValue) public void AppendExtenderProperty(PythonCodeBuilder codeBuilder, string propertyOwnerName, ExtenderProvidedPropertyAttribute extender, PropertyDescriptor propertyDescriptor, object propertyValue)
{ {
IComponent component = extender.Provider as IComponent; PythonDesignerComponent designerComponent = PythonDesignerComponentFactory.CreateDesignerComponent(extender.Provider as IComponent);
codeBuilder.AppendIndented("self._" + component.Site.Name); codeBuilder.AppendIndented(designerComponent.GetPropertyOwnerName());
codeBuilder.Append(".Set" + propertyDescriptor.Name); codeBuilder.Append(".Set" + propertyDescriptor.Name);
codeBuilder.Append("("); codeBuilder.Append("(");
codeBuilder.Append(propertyOwnerName); codeBuilder.Append(propertyOwnerName);

77
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GenerateInheritedToolTipTestFixture.cs

@ -0,0 +1,77 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
class PublicToolTipBaseForm : Form
{
public ToolTip toolTip;
Container components = new Container();
public PublicToolTipBaseForm()
{
toolTip = new ToolTip(components);
}
}
class PublicToolTipDerivedForm : PublicToolTipBaseForm
{
}
[TestFixture]
public class GenerateInheritedToolTipTestFixture
{
string generatedPythonCode;
[TestFixtureSetUp]
public void SetUpFixture()
{
using (DesignSurface designSurface = new DesignSurface(typeof(PublicToolTipDerivedForm))) {
IDesignerHost host = (IDesignerHost)designSurface.GetService(typeof(IDesignerHost));
IEventBindingService eventBindingService = new MockEventBindingService(host);
PublicToolTipDerivedForm form = (PublicToolTipDerivedForm)host.RootComponent;
form.ClientSize = new Size(284, 264);
PropertyDescriptorCollection descriptors = TypeDescriptor.GetProperties(form);
PropertyDescriptor descriptor = descriptors.Find("Name", false);
descriptor.SetValue(form, "MainForm");
form.toolTip.SetToolTip(form, "test");
string indentString = " ";
PythonControl pythonForm = new PythonControl(indentString);
generatedPythonCode = pythonForm.GenerateInitializeComponentMethod(form);
}
}
[Test]
public void GeneratedCode()
{
string expectedCode = "def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.toolTip.SetToolTip(self, \"test\")\r\n" +
" self.ResumeLayout(False)\r\n" +
" self.PerformLayout()\r\n";
Assert.AreEqual(expectedCode, generatedPythonCode, generatedPythonCode);
}
}
}

68
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadInheritedToolTipTestFixture.cs

@ -0,0 +1,68 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
[TestFixture]
public class LoadInheritedToolTipTestFixture : LoadFormTestFixtureBase
{
public override string PythonCode {
get {
ComponentCreator.AddType("PythonBinding.Tests.Designer.PublicToolTipDerivedForm", typeof(PythonBinding.Tests.Designer.PublicToolTipDerivedForm));
return "class TestForm(PythonBinding.Tests.Designer.PublicToolTipDerivedForm):\r\n" +
" def InitializeComponent(self):\r\n" +
" self._button1 = System.Windows.Forms.Button()\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # button1\r\n" +
" # \r\n" +
" self._button1.Location = System.Drawing.Point(0, 0)\r\n" +
" self._button1.Name = \"button1\"\r\n" +
" self._button1.Size = System.Drawing.Size(10, 10)\r\n" +
" self._button1.TabIndex = 0\r\n" +
" self._button1.Text = \"button1\"\r\n" +
" self.toolTip.SetToolTip(self._button1, \"buttonTest\")\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Controls.Add(self._button1)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.toolTip.SetToolTip(self, \"test\")\r\n" +
" self.ResumeLayout(False)\r\n" +
" self.PerformLayout()\r\n";
}
}
[Test]
public void FormHasToolTip()
{
PublicToolTipDerivedForm form = Form as PublicToolTipDerivedForm;
Assert.AreEqual("test", form.toolTip.GetToolTip(form));
}
[Test]
public void ButtonHasToolTip()
{
PublicToolTipDerivedForm form = Form as PublicToolTipDerivedForm;
Assert.AreEqual("buttonTest", form.toolTip.GetToolTip(form.Controls[0]));
}
}
}

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -198,6 +198,7 @@
<Compile Include="Designer\GenerateImeModeFormTestFixture.cs" /> <Compile Include="Designer\GenerateImeModeFormTestFixture.cs" />
<Compile Include="Designer\GenerateInheritedFormTestFixture.cs" /> <Compile Include="Designer\GenerateInheritedFormTestFixture.cs" />
<Compile Include="Designer\GenerateInheritedProtectedPanelFormTestFixture.cs" /> <Compile Include="Designer\GenerateInheritedProtectedPanelFormTestFixture.cs" />
<Compile Include="Designer\GenerateInheritedToolTipTestFixture.cs" />
<Compile Include="Designer\GenerateListViewItemTestFixture.cs" /> <Compile Include="Designer\GenerateListViewItemTestFixture.cs" />
<Compile Include="Designer\GenerateListViewSubItemsTestFixture.cs" /> <Compile Include="Designer\GenerateListViewSubItemsTestFixture.cs" />
<Compile Include="Designer\GenerateListViewWithImageListTestFixture.cs" /> <Compile Include="Designer\GenerateListViewWithImageListTestFixture.cs" />
@ -238,6 +239,7 @@
<Compile Include="Designer\LoadFormWithSysPathAppendStatementTestFixture.cs" /> <Compile Include="Designer\LoadFormWithSysPathAppendStatementTestFixture.cs" />
<Compile Include="Designer\LoadInheritedProtectedPanelFormTestFixture.cs" /> <Compile Include="Designer\LoadInheritedProtectedPanelFormTestFixture.cs" />
<Compile Include="Designer\LoadInheritedPublicPanelFormTestFixture.cs" /> <Compile Include="Designer\LoadInheritedPublicPanelFormTestFixture.cs" />
<Compile Include="Designer\LoadInheritedToolTipTestFixture.cs" />
<Compile Include="Designer\LoadListViewFormTestFixture.cs" /> <Compile Include="Designer\LoadListViewFormTestFixture.cs" />
<Compile Include="Designer\LoadLocalImageResourceTestFixture.cs" /> <Compile Include="Designer\LoadLocalImageResourceTestFixture.cs" />
<Compile Include="Designer\LoadMenuStripFormTestFixture.cs" /> <Compile Include="Designer\LoadMenuStripFormTestFixture.cs" />

Loading…
Cancel
Save