changeset 0:620c62ba4d07

Re #242: Qt# GUI * Attempt to import to correct location
author IBBoard <dev@ibboard.co.uk>
date Sat, 23 Jan 2010 17:05:18 +0000
parents
children 4ff09911ef64
files AssemblyInfo.cs IBBoard.WarFoundry.GUI.QtSharp.mdp IBBoard.WarFoundry.GUI.QtSharp.pidb Main.cs MainWindow.cs compile-ui.sh icons/App.png qt-gui/MainWindowLayout.cs qt-gui/MainWindowLayout.ui
diffstat 9 files changed, 534 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AssemblyInfo.cs	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,29 @@
+// This file (AssemblyInfo.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
+// 
+// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("IBBoard.WarFoundry.GUI.QtSharp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IBBoard.WarFoundry.GUI.QtSharp.mdp	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,34 @@
+<Project name="IBBoard.WarFoundry.GUI.QtSharp" fileversion="2.0" DefaultNamespace="IBBoard.WarFoundry.GUI.QtSharp" language="C#" targetFramework="2.0" ctype="DotNetProject">
+  <Configurations active="Debug">
+    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+      <CustomCommands>
+        <Command type="BeforeBuild" command="compile-ui.sh" workingdir="${ProjectDir}" />
+      </CustomCommands>
+      <Output directory="bin/Debug" assembly="IBBoard.WarFoundry.GUI.QtSharp" />
+      <Build debugmode="True" target="Exe" />
+      <Execution consolepause="True" runwithwarnings="True" runtime="MsNet" />
+      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+    <Configuration name="Release" ctype="DotNetProjectConfiguration">
+      <Output directory="bin/Release" assembly="IBBoard.WarFoundry.GUI.QtSharp" />
+      <Build debugmode="False" target="Exe" />
+      <Execution consolepause="True" runwithwarnings="True" runtime="MsNet" />
+      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+  </Configurations>
+  <Contents>
+    <File subtype="Code" buildaction="Compile" name="AssemblyInfo.cs" />
+    <File subtype="Code" buildaction="Compile" name="MainWindow.cs" />
+    <File subtype="Code" buildaction="Compile" name="Main.cs" />
+    <File subtype="Code" buildaction="Nothing" name="compile-ui.sh" />
+    <File subtype="Directory" buildaction="Compile" name="qt-gui" />
+    <File subtype="Code" buildaction="Compile" name="qt-gui/MainWindowLayout.cs" />
+    <File subtype="Code" buildaction="Nothing" name="qt-gui/MainWindowLayout.ui" />
+    <File subtype="Directory" buildaction="Compile" name="icons" />
+    <File subtype="Code" name="icons/App.png" buildaction="FileCopy" />
+  </Contents>
+  <References>
+    <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+    <ProjectReference type="Gac" localcopy="True" refto="qt-dotnet, Version=4.5.0.0, Culture=neutral, PublicKeyToken=194a23ba31c08164" />
+  </References>
+</Project>
\ No newline at end of file
Binary file IBBoard.WarFoundry.GUI.QtSharp.pidb has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Main.cs	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,20 @@
+// This file (Main.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
+// 
+// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+using System;
+using Qyoto;
+namespace IBBoard.WarFoundry.GUI.QtSharp
+{
+	class MainClass
+	{
+		public static void Main (string[] args)
+		{
+			new QApplication (args);
+			
+			MainWindow win = new MainWindow ();
+			win.Show ();
+			
+			QApplication.Exec ();
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MainWindow.cs	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,38 @@
+// This file (MainWindow.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
+// 
+// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+using System;
+using System.Collections.Generic;
+using Qyoto;
+
+public partial class MainWindow : QMainWindow
+{
+	private Ui_MainWindowLayout layout;
+	
+	public MainWindow ()
+	{
+		layout = new Ui_MainWindowLayout();
+		layout.SetupUi(this);
+		WindowIcon = new QIcon("icons/App.png");
+		AddMenuActions();
+		SetUpToolbar();
+	}
+	
+	private void AddMenuActions()
+	{
+		layout.unitTabs.Clear();
+	}
+	
+	private void SetUpToolbar()
+	{
+		List<QAction> actions = new List<QAction>(){
+			layout.actionCreateArmy,
+			layout.actionOpenArmy,
+			layout.actionSaveArmy};
+		layout.toolBar.AddActions(actions);
+		layout.toolBar.AddSeparator();
+		layout.toolBar.AddAction(layout.actionUndo);
+		layout.toolBar.AddAction(layout.actionRedo);
+		layout.toolBar.AddSeparator();
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile-ui.sh	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+echo "Compiling .ui files to C#"
+
+for f in qt-gui/*.ui
+do
+	echo -ne "  * Compiling $f..."
+	uics -o ${f/.ui/.cs} $f
+	echo "...compiled."
+done
+
+echo
Binary file icons/App.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qt-gui/MainWindowLayout.cs	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,181 @@
+/********************************************************************************
+** Form generated from reading ui file 'MainWindowLayout.ui'
+**
+** Created: Sat Jan 23 16:57:44 2010
+**      by: Qt User Interface Compiler for C# version 4.5.3
+**
+** WARNING! All changes made in this file will be lost when recompiling ui file!
+********************************************************************************/
+
+
+using Qyoto;
+
+public class Ui_MainWindowLayout
+{
+    public QAction actionCreateArmy;
+    public QAction actionOpenArmy;
+    public QAction actionSaveArmy;
+    public QAction actionSaveArmyAs;
+    public QAction actionExportBasicHtml;
+    public QAction actionCloseArmy;
+    public QAction actionReloadFiles;
+    public QAction actionExit;
+    public QAction actionAbout;
+    public QAction actionUndo;
+    public QAction actionRedo;
+    public QWidget mainContent;
+    public QGridLayout gridLayout;
+    public QSplitter splitter;
+    public QTreeView armyTree;
+    public QTabWidget unitTabs;
+    public QWidget tab;
+    public QWidget tab_2;
+    public QMenuBar menubar;
+    public QMenu menuFile;
+    public QMenu menuExportArmyAs;
+    public QMenu menuEdit;
+    public QMenu menuHelp;
+    public QStatusBar statusbar;
+    public QToolBar toolBar;
+
+    public void SetupUi(QMainWindow MainWindowLayout)
+    {
+    if (MainWindowLayout.ObjectName == "")
+        MainWindowLayout.ObjectName = "MainWindowLayout";
+    QSize Size = new QSize(696, 595);
+    Size = Size.ExpandedTo(MainWindowLayout.MinimumSizeHint());
+    MainWindowLayout.Size = Size;
+    MainWindowLayout.WindowIcon = new QIcon("../App.png");
+    actionCreateArmy = new QAction(MainWindowLayout);
+    actionCreateArmy.ObjectName = "actionCreateArmy";
+    actionOpenArmy = new QAction(MainWindowLayout);
+    actionOpenArmy.ObjectName = "actionOpenArmy";
+    actionSaveArmy = new QAction(MainWindowLayout);
+    actionSaveArmy.ObjectName = "actionSaveArmy";
+    actionSaveArmy.Enabled = false;
+    actionSaveArmyAs = new QAction(MainWindowLayout);
+    actionSaveArmyAs.ObjectName = "actionSaveArmyAs";
+    actionSaveArmyAs.Enabled = false;
+    actionExportBasicHtml = new QAction(MainWindowLayout);
+    actionExportBasicHtml.ObjectName = "actionExportBasicHtml";
+    actionExportBasicHtml.Enabled = false;
+    actionCloseArmy = new QAction(MainWindowLayout);
+    actionCloseArmy.ObjectName = "actionCloseArmy";
+    actionCloseArmy.Enabled = false;
+    actionReloadFiles = new QAction(MainWindowLayout);
+    actionReloadFiles.ObjectName = "actionReloadFiles";
+    actionReloadFiles.Enabled = false;
+    actionExit = new QAction(MainWindowLayout);
+    actionExit.ObjectName = "actionExit";
+    actionAbout = new QAction(MainWindowLayout);
+    actionAbout.ObjectName = "actionAbout";
+    actionAbout.Enabled = false;
+    actionUndo = new QAction(MainWindowLayout);
+    actionUndo.ObjectName = "actionUndo";
+    actionUndo.Enabled = false;
+    actionRedo = new QAction(MainWindowLayout);
+    actionRedo.ObjectName = "actionRedo";
+    actionRedo.Enabled = false;
+    mainContent = new QWidget(MainWindowLayout);
+    mainContent.ObjectName = "mainContent";
+    gridLayout = new QGridLayout(mainContent);
+    gridLayout.ObjectName = "gridLayout";
+    splitter = new QSplitter(mainContent);
+    splitter.ObjectName = "splitter";
+    splitter.Orientation = Qt.Orientation.Horizontal;
+    splitter.HandleWidth = 6;
+    armyTree = new QTreeView(splitter);
+    armyTree.ObjectName = "armyTree";
+    splitter.AddWidget(armyTree);
+    unitTabs = new QTabWidget(splitter);
+    unitTabs.ObjectName = "unitTabs";
+    unitTabs.MinimumSize = new QSize(500, 0);
+    tab = new QWidget();
+    tab.ObjectName = "tab";
+    unitTabs.AddTab(tab, QApplication.Translate("MainWindowLayout", "Tab 1", null, QApplication.Encoding.UnicodeUTF8));
+    tab_2 = new QWidget();
+    tab_2.ObjectName = "tab_2";
+    unitTabs.AddTab(tab_2, QApplication.Translate("MainWindowLayout", "Tab 2", null, QApplication.Encoding.UnicodeUTF8));
+    splitter.AddWidget(unitTabs);
+
+    gridLayout.AddWidget(splitter, 0, 0, 1, 1);
+
+    MainWindowLayout.SetCentralWidget(mainContent);
+    menubar = new QMenuBar(MainWindowLayout);
+    menubar.ObjectName = "menubar";
+    menubar.Geometry = new QRect(0, 0, 696, 20);
+    menuFile = new QMenu(menubar);
+    menuFile.ObjectName = "menuFile";
+    menuExportArmyAs = new QMenu(menuFile);
+    menuExportArmyAs.ObjectName = "menuExportArmyAs";
+    menuExportArmyAs.Enabled = false;
+    menuEdit = new QMenu(menubar);
+    menuEdit.ObjectName = "menuEdit";
+    menuHelp = new QMenu(menubar);
+    menuHelp.ObjectName = "menuHelp";
+    MainWindowLayout.SetMenuBar(menubar);
+    statusbar = new QStatusBar(MainWindowLayout);
+    statusbar.ObjectName = "statusbar";
+    MainWindowLayout.SetStatusBar(statusbar);
+    toolBar = new QToolBar(MainWindowLayout);
+    toolBar.ObjectName = "toolBar";
+    toolBar.ToolButtonStyle = Qt.ToolButtonStyle.ToolButtonIconOnly;
+    MainWindowLayout.AddToolBar(Qt.ToolBarArea.TopToolBarArea, toolBar);
+    MainWindowLayout.InsertToolBarBreak(toolBar);
+
+    menubar.AddAction(menuFile.MenuAction());
+    menubar.AddAction(menuEdit.MenuAction());
+    menubar.AddAction(menuHelp.MenuAction());
+    menuFile.AddAction(actionCreateArmy);
+    menuFile.AddAction(actionOpenArmy);
+    menuFile.AddAction(actionSaveArmy);
+    menuFile.AddAction(actionSaveArmyAs);
+    menuFile.AddAction(menuExportArmyAs.MenuAction());
+    menuFile.AddAction(actionCloseArmy);
+    menuFile.AddSeparator();
+    menuFile.AddAction(actionReloadFiles);
+    menuFile.AddSeparator();
+    menuFile.AddAction(actionExit);
+    menuExportArmyAs.AddAction(actionExportBasicHtml);
+    menuEdit.AddAction(actionUndo);
+    menuEdit.AddAction(actionRedo);
+    menuHelp.AddAction(actionAbout);
+
+    RetranslateUi(MainWindowLayout);
+    QObject.Connect(actionExit, Qt.SIGNAL("triggered()"), MainWindowLayout, Qt.SLOT("close()"));
+
+    unitTabs.CurrentIndex = 0;
+
+
+    QMetaObject.ConnectSlotsByName(MainWindowLayout);
+    } // SetupUi
+
+    public void RetranslateUi(QMainWindow MainWindowLayout)
+    {
+    MainWindowLayout.WindowTitle = QApplication.Translate("MainWindowLayout", "MainWindow", null, QApplication.Encoding.UnicodeUTF8);
+    actionCreateArmy.Text = QApplication.Translate("MainWindowLayout", "&create army", null, QApplication.Encoding.UnicodeUTF8);
+    actionOpenArmy.Text = QApplication.Translate("MainWindowLayout", "&open army", null, QApplication.Encoding.UnicodeUTF8);
+    actionSaveArmy.Text = QApplication.Translate("MainWindowLayout", "&save army", null, QApplication.Encoding.UnicodeUTF8);
+    actionSaveArmyAs.Text = QApplication.Translate("MainWindowLayout", "save army as", null, QApplication.Encoding.UnicodeUTF8);
+    actionExportBasicHtml.Text = QApplication.Translate("MainWindowLayout", "&basic html", null, QApplication.Encoding.UnicodeUTF8);
+    actionCloseArmy.Text = QApplication.Translate("MainWindowLayout", "close army", null, QApplication.Encoding.UnicodeUTF8);
+    actionReloadFiles.Text = QApplication.Translate("MainWindowLayout", "reload files", null, QApplication.Encoding.UnicodeUTF8);
+    actionExit.Text = QApplication.Translate("MainWindowLayout", "exit", null, QApplication.Encoding.UnicodeUTF8);
+    actionAbout.Text = QApplication.Translate("MainWindowLayout", "&about", null, QApplication.Encoding.UnicodeUTF8);
+    actionUndo.Text = QApplication.Translate("MainWindowLayout", "&undo", null, QApplication.Encoding.UnicodeUTF8);
+    actionRedo.Text = QApplication.Translate("MainWindowLayout", "&redo", null, QApplication.Encoding.UnicodeUTF8);
+    unitTabs.SetTabText(unitTabs.IndexOf(tab), QApplication.Translate("MainWindowLayout", "Tab 1", null, QApplication.Encoding.UnicodeUTF8));
+    unitTabs.SetTabText(unitTabs.IndexOf(tab_2), QApplication.Translate("MainWindowLayout", "Tab 2", null, QApplication.Encoding.UnicodeUTF8));
+    menuFile.Title = QApplication.Translate("MainWindowLayout", "&file", null, QApplication.Encoding.UnicodeUTF8);
+    menuExportArmyAs.Title = QApplication.Translate("MainWindowLayout", "export army as", null, QApplication.Encoding.UnicodeUTF8);
+    menuEdit.Title = QApplication.Translate("MainWindowLayout", "&edit", null, QApplication.Encoding.UnicodeUTF8);
+    menuHelp.Title = QApplication.Translate("MainWindowLayout", "&help", null, QApplication.Encoding.UnicodeUTF8);
+    toolBar.WindowTitle = QApplication.Translate("MainWindowLayout", "toolBar", null, QApplication.Encoding.UnicodeUTF8);
+    } // RetranslateUi
+
+}
+
+namespace Ui {
+    public class MainWindowLayout : Ui_MainWindowLayout {}
+} // namespace Ui
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qt-gui/MainWindowLayout.ui	Sat Jan 23 17:05:18 2010 +0000
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindowLayout</class>
+ <widget class="QMainWindow" name="MainWindowLayout">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>696</width>
+    <height>595</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <property name="windowIcon">
+   <iconset>
+    <normaloff>../App.png</normaloff>../App.png</iconset>
+  </property>
+  <widget class="QWidget" name="mainContent">
+   <layout class="QGridLayout" name="_2">
+    <item row="0" column="0">
+     <widget class="QSplitter" name="splitter">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="handleWidth">
+       <number>6</number>
+      </property>
+      <widget class="QTreeView" name="armyTree"/>
+      <widget class="QTabWidget" name="unitTabs">
+       <property name="minimumSize">
+        <size>
+         <width>500</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="currentIndex">
+        <number>0</number>
+       </property>
+       <widget class="QWidget" name="tab">
+        <attribute name="title">
+         <string>Tab 1</string>
+        </attribute>
+       </widget>
+       <widget class="QWidget" name="tab_2">
+        <attribute name="title">
+         <string>Tab 2</string>
+        </attribute>
+       </widget>
+      </widget>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>696</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>&amp;file</string>
+    </property>
+    <widget class="QMenu" name="menuExportArmyAs">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="title">
+      <string>export army as</string>
+     </property>
+     <addaction name="actionExportBasicHtml"/>
+    </widget>
+    <addaction name="actionCreateArmy"/>
+    <addaction name="actionOpenArmy"/>
+    <addaction name="actionSaveArmy"/>
+    <addaction name="actionSaveArmyAs"/>
+    <addaction name="menuExportArmyAs"/>
+    <addaction name="actionCloseArmy"/>
+    <addaction name="separator"/>
+    <addaction name="actionReloadFiles"/>
+    <addaction name="separator"/>
+    <addaction name="actionExit"/>
+   </widget>
+   <widget class="QMenu" name="menuEdit">
+    <property name="title">
+     <string>&amp;edit</string>
+    </property>
+    <addaction name="actionUndo"/>
+    <addaction name="actionRedo"/>
+   </widget>
+   <widget class="QMenu" name="menuHelp">
+    <property name="title">
+     <string>&amp;help</string>
+    </property>
+    <addaction name="actionAbout"/>
+   </widget>
+   <addaction name="menuFile"/>
+   <addaction name="menuEdit"/>
+   <addaction name="menuHelp"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+  <widget class="QToolBar" name="toolBar">
+   <property name="windowTitle">
+    <string>toolBar</string>
+   </property>
+   <property name="toolButtonStyle">
+    <enum>Qt::ToolButtonIconOnly</enum>
+   </property>
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>true</bool>
+   </attribute>
+  </widget>
+  <action name="actionCreateArmy">
+   <property name="text">
+    <string>&amp;create army</string>
+   </property>
+  </action>
+  <action name="actionOpenArmy">
+   <property name="text">
+    <string>&amp;open army</string>
+   </property>
+  </action>
+  <action name="actionSaveArmy">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;save army</string>
+   </property>
+  </action>
+  <action name="actionSaveArmyAs">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>save army as</string>
+   </property>
+  </action>
+  <action name="actionExportBasicHtml">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;basic html</string>
+   </property>
+  </action>
+  <action name="actionCloseArmy">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>close army</string>
+   </property>
+  </action>
+  <action name="actionReloadFiles">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>reload files</string>
+   </property>
+  </action>
+  <action name="actionExit">
+   <property name="text">
+    <string>exit</string>
+   </property>
+  </action>
+  <action name="actionAbout">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;about</string>
+   </property>
+  </action>
+  <action name="actionUndo">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;undo</string>
+   </property>
+  </action>
+  <action name="actionRedo">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;redo</string>
+   </property>
+  </action>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>actionExit</sender>
+   <signal>triggered()</signal>
+   <receiver>MainWindowLayout</receiver>
+   <slot>close()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>399</x>
+     <y>299</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>