changeset 0:d860e2c49f43

Initial commit of IBBoard libraries
author IBBoard <dev@ibboard.co.uk>
date Fri, 19 Dec 2008 11:13:48 +0000
parents
children 258ef411e698
files AssemblyInfo.cs IBBoardWF.csproj IBBoardWF.csproj.user IBBoardWF.mdp IBBoardWF.pidb Windows/Forms/ColorableStatusBar.cs Windows/Forms/ColorableStatusBar.resx Windows/Forms/ColorableStatusBarPanel.cs Windows/Forms/ColorableStatusBarPanel.resources Windows/Forms/ColorableStatusBarPanel.resx Windows/Forms/Delegates.cs Windows/Forms/IBBButton.cs Windows/Forms/IBBForm.cs Windows/Forms/IBBLabel.cs Windows/Forms/IBBLabel.resources Windows/Forms/IBBLabel.resx Windows/Forms/IBBMenuItem.cs Windows/Forms/IBBMenuItem.resources Windows/Forms/IBBMenuItem.resx Windows/Forms/IBBToolBarButton.cs Windows/Forms/ListViewColumnSorter.cs
diffstat 18 files changed, 829 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/AssemblyInfo.cs	Fri Dec 19 11:13:48 2008 +0000
     1.3 @@ -0,0 +1,58 @@
     1.4 +using System.Reflection;
     1.5 +using System.Runtime.CompilerServices;
     1.6 +
     1.7 +//
     1.8 +// General Information about an assembly is controlled through the following 
     1.9 +// set of attributes. Change these attribute values to modify the information
    1.10 +// associated with an assembly.
    1.11 +//
    1.12 +[assembly: AssemblyTitle("IBBoard.Windows.Forms")]
    1.13 +[assembly: AssemblyDescription("Custom System.Windows.Forms extensions, including translatable controls.")]
    1.14 +[assembly: AssemblyConfiguration("")]
    1.15 +[assembly: AssemblyCompany("")]
    1.16 +[assembly: AssemblyProduct("IBBoard.Windows.Forms")]
    1.17 +[assembly: AssemblyCopyright("IBBoard, 2007")]
    1.18 +[assembly: AssemblyTrademark("")]
    1.19 +[assembly: AssemblyCulture("")]		
    1.20 +
    1.21 +//
    1.22 +// Version information for an assembly consists of the following four values:
    1.23 +//
    1.24 +//      Major Version
    1.25 +//      Minor Version 
    1.26 +//      Build Number
    1.27 +//      Revision
    1.28 +//
    1.29 +// You can specify all the values or you can default the Revision and Build Numbers 
    1.30 +// by using the '*' as shown below:
    1.31 +
    1.32 +[assembly: AssemblyVersion("1.0.0.*")]
    1.33 +
    1.34 +//
    1.35 +// In order to sign your assembly you must specify a key to use. Refer to the 
    1.36 +// Microsoft .NET Framework documentation for more information on assembly signing.
    1.37 +//
    1.38 +// Use the attributes below to control which key is used for signing. 
    1.39 +//
    1.40 +// Notes: 
    1.41 +//   (*) If no key is specified, the assembly is not signed.
    1.42 +//   (*) KeyName refers to a key that has been installed in the Crypto Service
    1.43 +//       Provider (CSP) on your machine. KeyFile refers to a file which contains
    1.44 +//       a key.
    1.45 +//   (*) If the KeyFile and the KeyName values are both specified, the 
    1.46 +//       following processing occurs:
    1.47 +//       (1) If the KeyName can be found in the CSP, that key is used.
    1.48 +//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
    1.49 +//           in the KeyFile is installed into the CSP and used.
    1.50 +//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
    1.51 +//       When specifying the KeyFile, the location of the KeyFile should be
    1.52 +//       relative to the project output directory which is
    1.53 +//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
    1.54 +//       located in the project directory, you would specify the AssemblyKeyFile 
    1.55 +//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
    1.56 +//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
    1.57 +//       documentation for more information on this.
    1.58 +//
    1.59 +[assembly: AssemblyDelaySign(false)]
    1.60 +[assembly: AssemblyKeyFile("")]
    1.61 +[assembly: AssemblyKeyName("")]
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/IBBoardWF.csproj	Fri Dec 19 11:13:48 2008 +0000
     2.3 @@ -0,0 +1,147 @@
     2.4 +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     2.5 +  <PropertyGroup>
     2.6 +    <ProjectType>Local</ProjectType>
     2.7 +    <ProductVersion>8.0.50727</ProductVersion>
     2.8 +    <SchemaVersion>2.0</SchemaVersion>
     2.9 +    <ProjectGuid>{E3790268-2082-4975-B1A3-C70B37842CE8}</ProjectGuid>
    2.10 +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    2.11 +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    2.12 +    <ApplicationIcon>
    2.13 +    </ApplicationIcon>
    2.14 +    <AssemblyKeyContainerName>
    2.15 +    </AssemblyKeyContainerName>
    2.16 +    <AssemblyName>IBBoardWF</AssemblyName>
    2.17 +    <AssemblyOriginatorKeyFile>
    2.18 +    </AssemblyOriginatorKeyFile>
    2.19 +    <DefaultClientScript>JScript</DefaultClientScript>
    2.20 +    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
    2.21 +    <DefaultTargetSchema>IE50</DefaultTargetSchema>
    2.22 +    <DelaySign>false</DelaySign>
    2.23 +    <OutputType>Library</OutputType>
    2.24 +    <RootNamespace>IBBoard</RootNamespace>
    2.25 +    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
    2.26 +    <StartupObject>
    2.27 +    </StartupObject>
    2.28 +    <FileUpgradeFlags>
    2.29 +    </FileUpgradeFlags>
    2.30 +    <UpgradeBackupLocation>
    2.31 +    </UpgradeBackupLocation>
    2.32 +  </PropertyGroup>
    2.33 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    2.34 +    <OutputPath>C:\Documents and Settings\ibboard\My Documents\Visual Studio 2005\Projects\IBBoardWF\bin\Debug\</OutputPath>
    2.35 +    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
    2.36 +    <BaseAddress>285212672</BaseAddress>
    2.37 +    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
    2.38 +    <ConfigurationOverrideFile>
    2.39 +    </ConfigurationOverrideFile>
    2.40 +    <DefineConstants>DEBUG;TRACE</DefineConstants>
    2.41 +    <DocumentationFile>
    2.42 +    </DocumentationFile>
    2.43 +    <DebugSymbols>true</DebugSymbols>
    2.44 +    <FileAlignment>4096</FileAlignment>
    2.45 +    <NoStdLib>false</NoStdLib>
    2.46 +    <NoWarn>
    2.47 +    </NoWarn>
    2.48 +    <Optimize>false</Optimize>
    2.49 +    <RegisterForComInterop>false</RegisterForComInterop>
    2.50 +    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    2.51 +    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
    2.52 +    <WarningLevel>4</WarningLevel>
    2.53 +    <DebugType>full</DebugType>
    2.54 +    <ErrorReport>prompt</ErrorReport>
    2.55 +  </PropertyGroup>
    2.56 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    2.57 +    <OutputPath>bin\Release\</OutputPath>
    2.58 +    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
    2.59 +    <BaseAddress>285212672</BaseAddress>
    2.60 +    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
    2.61 +    <ConfigurationOverrideFile>
    2.62 +    </ConfigurationOverrideFile>
    2.63 +    <DefineConstants>TRACE</DefineConstants>
    2.64 +    <DocumentationFile>
    2.65 +    </DocumentationFile>
    2.66 +    <DebugSymbols>false</DebugSymbols>
    2.67 +    <FileAlignment>4096</FileAlignment>
    2.68 +    <NoStdLib>false</NoStdLib>
    2.69 +    <NoWarn>
    2.70 +    </NoWarn>
    2.71 +    <Optimize>true</Optimize>
    2.72 +    <RegisterForComInterop>false</RegisterForComInterop>
    2.73 +    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    2.74 +    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
    2.75 +    <WarningLevel>4</WarningLevel>
    2.76 +    <DebugType>none</DebugType>
    2.77 +    <ErrorReport>prompt</ErrorReport>
    2.78 +  </PropertyGroup>
    2.79 +  <ItemGroup>
    2.80 +    <Reference Include="System">
    2.81 +      <Name>System</Name>
    2.82 +    </Reference>
    2.83 +    <Reference Include="System.Data">
    2.84 +      <Name>System.Data</Name>
    2.85 +    </Reference>
    2.86 +    <Reference Include="System.Drawing">
    2.87 +      <Name>System.Drawing</Name>
    2.88 +    </Reference>
    2.89 +    <Reference Include="System.Windows.Forms">
    2.90 +      <Name>System.Windows.Forms</Name>
    2.91 +    </Reference>
    2.92 +    <Reference Include="System.Xml">
    2.93 +      <Name>System.XML</Name>
    2.94 +    </Reference>
    2.95 +    <ProjectReference Include="..\IBBoard\IBBoard.csproj">
    2.96 +      <Name>IBBoard</Name>
    2.97 +      <Project>{5DFD64F6-FC2B-4B4F-B92E-483BAC468105}</Project>
    2.98 +      <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
    2.99 +    </ProjectReference>
   2.100 +  </ItemGroup>
   2.101 +  <ItemGroup>
   2.102 +    <Compile Include="AssemblyInfo.cs">
   2.103 +      <SubType>Code</SubType>
   2.104 +    </Compile>
   2.105 +    <Compile Include="Windows\Forms\ColorableStatusBar.cs">
   2.106 +      <SubType>Component</SubType>
   2.107 +    </Compile>
   2.108 +    <Compile Include="Windows\Forms\ColorableStatusBarPanel.cs">
   2.109 +      <SubType>Component</SubType>
   2.110 +    </Compile>
   2.111 +    <Compile Include="Windows\Forms\Delegates.cs" />
   2.112 +    <Compile Include="Windows\Forms\IBBButton.cs">
   2.113 +      <SubType>Component</SubType>
   2.114 +    </Compile>
   2.115 +    <Compile Include="Windows\Forms\IBBForm.cs">
   2.116 +      <SubType>Form</SubType>
   2.117 +    </Compile>
   2.118 +    <Compile Include="Windows\Forms\IBBLabel.cs">
   2.119 +      <SubType>Component</SubType>
   2.120 +    </Compile>
   2.121 +    <Compile Include="Windows\Forms\IBBMenuItem.cs">
   2.122 +      <SubType>Component</SubType>
   2.123 +    </Compile>
   2.124 +    <Compile Include="Windows\Forms\IBBToolBarButton.cs">
   2.125 +      <SubType>Component</SubType>
   2.126 +    </Compile>
   2.127 +    <Compile Include="Windows\Forms\ListViewColumnSorter.cs">
   2.128 +      <SubType>Code</SubType>
   2.129 +    </Compile>
   2.130 +    <EmbeddedResource Include="Windows\Forms\ColorableStatusBar.resx">
   2.131 +      <DependentUpon>ColorableStatusBar.cs</DependentUpon>
   2.132 +    </EmbeddedResource>
   2.133 +    <EmbeddedResource Include="Windows\Forms\ColorableStatusBarPanel.resx">
   2.134 +      <DependentUpon>ColorableStatusBarPanel.cs</DependentUpon>
   2.135 +    </EmbeddedResource>
   2.136 +    <EmbeddedResource Include="Windows\Forms\IBBLabel.resx">
   2.137 +      <DependentUpon>IBBLabel.cs</DependentUpon>
   2.138 +    </EmbeddedResource>
   2.139 +    <EmbeddedResource Include="Windows\Forms\IBBMenuItem.resx">
   2.140 +      <DependentUpon>IBBMenuItem.cs</DependentUpon>
   2.141 +    </EmbeddedResource>
   2.142 +  </ItemGroup>
   2.143 +  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   2.144 +  <PropertyGroup>
   2.145 +    <PreBuildEvent>
   2.146 +    </PreBuildEvent>
   2.147 +    <PostBuildEvent>
   2.148 +    </PostBuildEvent>
   2.149 +  </PropertyGroup>
   2.150 +</Project>
   2.151 \ No newline at end of file
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/IBBoardWF.csproj.user	Fri Dec 19 11:13:48 2008 +0000
     3.3 @@ -0,0 +1,58 @@
     3.4 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     3.5 +  <PropertyGroup>
     3.6 +    <LastOpenVersion>7.10.3077</LastOpenVersion>
     3.7 +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     3.8 +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     3.9 +    <ReferencePath>
    3.10 +    </ReferencePath>
    3.11 +    <CopyProjectDestinationFolder>
    3.12 +    </CopyProjectDestinationFolder>
    3.13 +    <CopyProjectUncPath>
    3.14 +    </CopyProjectUncPath>
    3.15 +    <CopyProjectOption>0</CopyProjectOption>
    3.16 +    <ProjectView>ProjectFiles</ProjectView>
    3.17 +    <ProjectTrust>0</ProjectTrust>
    3.18 +  </PropertyGroup>
    3.19 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    3.20 +    <EnableASPDebugging>false</EnableASPDebugging>
    3.21 +    <EnableASPXDebugging>false</EnableASPXDebugging>
    3.22 +    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    3.23 +    <EnableSQLServerDebugging>false</EnableSQLServerDebugging>
    3.24 +    <RemoteDebugEnabled>false</RemoteDebugEnabled>
    3.25 +    <RemoteDebugMachine>
    3.26 +    </RemoteDebugMachine>
    3.27 +    <StartAction>Project</StartAction>
    3.28 +    <StartArguments>
    3.29 +    </StartArguments>
    3.30 +    <StartPage>
    3.31 +    </StartPage>
    3.32 +    <StartProgram>
    3.33 +    </StartProgram>
    3.34 +    <StartURL>
    3.35 +    </StartURL>
    3.36 +    <StartWorkingDirectory>
    3.37 +    </StartWorkingDirectory>
    3.38 +    <StartWithIE>true</StartWithIE>
    3.39 +  </PropertyGroup>
    3.40 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    3.41 +    <EnableASPDebugging>false</EnableASPDebugging>
    3.42 +    <EnableASPXDebugging>false</EnableASPXDebugging>
    3.43 +    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    3.44 +    <EnableSQLServerDebugging>false</EnableSQLServerDebugging>
    3.45 +    <RemoteDebugEnabled>false</RemoteDebugEnabled>
    3.46 +    <RemoteDebugMachine>
    3.47 +    </RemoteDebugMachine>
    3.48 +    <StartAction>Project</StartAction>
    3.49 +    <StartArguments>
    3.50 +    </StartArguments>
    3.51 +    <StartPage>
    3.52 +    </StartPage>
    3.53 +    <StartProgram>
    3.54 +    </StartProgram>
    3.55 +    <StartURL>
    3.56 +    </StartURL>
    3.57 +    <StartWorkingDirectory>
    3.58 +    </StartWorkingDirectory>
    3.59 +    <StartWithIE>true</StartWithIE>
    3.60 +  </PropertyGroup>
    3.61 +</Project>
    3.62 \ No newline at end of file
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/IBBoardWF.mdp	Fri Dec 19 11:13:48 2008 +0000
     4.3 @@ -0,0 +1,38 @@
     4.4 +<Project name="IBBoardWF" fileversion="2.0" DefaultNamespace="IBBoard" language="C#" clr-version="Net_1_1" ctype="DotNetProject">
     4.5 +  <Configurations active="Debug">
     4.6 +    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
     4.7 +      <Output directory="bin/Debug/" assembly="IBBoardWF" />
     4.8 +      <Build debugmode="True" target="Library" />
     4.9 +      <Execution runwithwarnings="False" consolepause="True" runtime="MsNet" clr-version="Net_1_1" />
    4.10 +      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
    4.11 +    </Configuration>
    4.12 +    <Configuration name="Release" ctype="DotNetProjectConfiguration">
    4.13 +      <Output directory="bin/Release/" assembly="IBBoardWF" />
    4.14 +      <Build debugmode="False" target="Library" />
    4.15 +      <Execution runwithwarnings="False" consolepause="True" runtime="MsNet" clr-version="Net_1_1" />
    4.16 +      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
    4.17 +    </Configuration>
    4.18 +  </Configurations>
    4.19 +  <Contents>
    4.20 +    <File name="AssemblyInfo.cs" subtype="Code" buildaction="Compile" />
    4.21 +    <File name="Windows/Forms/ColorableStatusBar.cs" subtype="Code" buildaction="Compile" />
    4.22 +    <File name="Windows/Forms/ColorableStatusBarPanel.cs" subtype="Code" buildaction="Compile" />
    4.23 +    <File name="Windows/Forms/ColorableStatusBarPanel.resx" subtype="Code" buildaction="EmbedAsResource" dependson="ColorableStatusBarPanel.cs" resource_id="IBBoard.Windows.Forms.ColorableStatusBarPanel.resources" />
    4.24 +    <File name="Windows/Forms/IBBButton.cs" subtype="Code" buildaction="Compile" />
    4.25 +    <File name="Windows/Forms/IBBForm.cs" subtype="Code" buildaction="Compile" />
    4.26 +    <File name="Windows/Forms/IBBLabel.cs" subtype="Code" buildaction="Compile" />
    4.27 +    <File name="Windows/Forms/IBBLabel.resx" subtype="Code" buildaction="EmbedAsResource" dependson="IBBLabel.cs" resource_id="IBBoard.Windows.Forms.IBBLabel.resources" />
    4.28 +    <File name="Windows/Forms/IBBMenuItem.cs" subtype="Code" buildaction="Compile" />
    4.29 +    <File name="Windows/Forms/IBBMenuItem.resx" subtype="Code" buildaction="EmbedAsResource" dependson="IBBMenuItem.cs" resource_id="IBBoard.Windows.Forms.IBBMenuItem.resources" />
    4.30 +    <File name="Windows/Forms/IBBToolBarButton.cs" subtype="Code" buildaction="Compile" />
    4.31 +    <File name="Windows/Forms/ListViewColumnSorter.cs" subtype="Code" buildaction="Compile" />
    4.32 +  </Contents>
    4.33 +  <References>
    4.34 +    <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    4.35 +    <ProjectReference type="Gac" localcopy="True" refto="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    4.36 +    <ProjectReference type="Gac" localcopy="True" refto="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    4.37 +    <ProjectReference type="Gac" localcopy="True" refto="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    4.38 +    <ProjectReference type="Gac" localcopy="True" refto="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    4.39 +    <ProjectReference type="Project" localcopy="True" refto="IBBoard" />
    4.40 +  </References>
    4.41 +</Project>
    4.42 \ No newline at end of file
     5.1 Binary file IBBoardWF.pidb has changed
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/Windows/Forms/ColorableStatusBar.cs	Fri Dec 19 11:13:48 2008 +0000
     6.3 @@ -0,0 +1,40 @@
     6.4 +using System;
     6.5 +using System.Drawing;
     6.6 +using System.Drawing.Drawing2D;
     6.7 +using System.Windows.Forms;
     6.8 +
     6.9 +namespace IBBoard.Windows.Forms
    6.10 +{
    6.11 +	/// <summary>
    6.12 +	/// Summary description for ColorableStatusBar.
    6.13 +	/// </summary>
    6.14 +	public class ColorableStatusBar : StatusBar
    6.15 +	{
    6.16 +		private Brush defaultBrush;
    6.17 +
    6.18 +		public ColorableStatusBar()
    6.19 +		{
    6.20 +			defaultBrush = new SolidBrush(SystemColors.WindowText);
    6.21 +		}
    6.22 +
    6.23 +		//Code taken from MS Knowledge base - http://support.microsoft.com/kb/319311
    6.24 +		public void ColorableStatusBarDrawItem(object sender, StatusBarDrawItemEventArgs sbdevent)
    6.25 +		{		
    6.26 +			if (sender is StatusBar)
    6.27 +			{
    6.28 +				System.Drawing.Graphics g = sbdevent.Graphics;
    6.29 +				StatusBar sb = (StatusBar)sender;
    6.30 +				RectangleF rectf = new RectangleF(sbdevent.Bounds.X, sbdevent.Bounds.Y, sbdevent.Bounds.Width, sbdevent.Bounds.Height);
    6.31 +			
    6.32 +				if (sbdevent.Panel is ColorableStatusBarPanel)
    6.33 +				{
    6.34 +					g.DrawString(sbdevent.Panel.Text, sb.Font, ((ColorableStatusBarPanel)sbdevent.Panel).Brush, rectf);
    6.35 +				}
    6.36 +				else
    6.37 +				{
    6.38 +					g.DrawString(sbdevent.Panel.Text, sb.Font, defaultBrush, rectf);
    6.39 +				}
    6.40 +			}
    6.41 +		} 
    6.42 +	}
    6.43 +}
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/Windows/Forms/ColorableStatusBar.resx	Fri Dec 19 11:13:48 2008 +0000
     7.3 @@ -0,0 +1,42 @@
     7.4 +<?xml version="1.0" encoding="utf-8" ?>
     7.5 +<root>
     7.6 +	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
     7.7 +		<xsd:element name="root" msdata:IsDataSet="true">
     7.8 +			<xsd:complexType>
     7.9 +				<xsd:choice maxOccurs="unbounded">
    7.10 +					<xsd:element name="data">
    7.11 +						<xsd:complexType>
    7.12 +							<xsd:sequence>
    7.13 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    7.14 +								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    7.15 +							</xsd:sequence>
    7.16 +							<xsd:attribute name="name" type="xsd:string" />
    7.17 +							<xsd:attribute name="type" type="xsd:string" />
    7.18 +							<xsd:attribute name="mimetype" type="xsd:string" />
    7.19 +						</xsd:complexType>
    7.20 +					</xsd:element>
    7.21 +					<xsd:element name="resheader">
    7.22 +						<xsd:complexType>
    7.23 +							<xsd:sequence>
    7.24 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    7.25 +							</xsd:sequence>
    7.26 +							<xsd:attribute name="name" type="xsd:string" use="required" />
    7.27 +						</xsd:complexType>
    7.28 +					</xsd:element>
    7.29 +				</xsd:choice>
    7.30 +			</xsd:complexType>
    7.31 +		</xsd:element>
    7.32 +	</xsd:schema>
    7.33 +	<resheader name="ResMimeType">
    7.34 +		<value>text/microsoft-resx</value>
    7.35 +	</resheader>
    7.36 +	<resheader name="Version">
    7.37 +		<value>1.0.0.0</value>
    7.38 +	</resheader>
    7.39 +	<resheader name="Reader">
    7.40 +		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    7.41 +	</resheader>
    7.42 +	<resheader name="Writer">
    7.43 +		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    7.44 +	</resheader>
    7.45 +</root>
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/Windows/Forms/ColorableStatusBarPanel.cs	Fri Dec 19 11:13:48 2008 +0000
     8.3 @@ -0,0 +1,56 @@
     8.4 +using System;
     8.5 +using System.Drawing;
     8.6 +using System.Drawing.Drawing2D;
     8.7 +using System.Windows.Forms;
     8.8 +
     8.9 +namespace IBBoard.Windows.Forms
    8.10 +{
    8.11 +	/// <summary>
    8.12 +	/// Summary description for ColourableStatusBarPanel.
    8.13 +	/// </summary>
    8.14 +	public class ColorableStatusBarPanel : StatusBarPanel
    8.15 +	{
    8.16 +		//Note: We keep all external references consistant with .Net and use the American spelling of Colour
    8.17 +		private Color textColour;
    8.18 +		private SolidBrush brush;
    8.19 +		private object tag;
    8.20 +
    8.21 +		public ColorableStatusBarPanel() : base()
    8.22 +		{
    8.23 +			this.Style = StatusBarPanelStyle.OwnerDraw;
    8.24 +			textColour = SystemColors.WindowText;
    8.25 +			brush = new SolidBrush(textColour);
    8.26 +		}
    8.27 +
    8.28 +		public Color Color
    8.29 +		{
    8.30 +			get { return textColour; }
    8.31 +			set 
    8.32 +			{
    8.33 +				textColour = value;
    8.34 +				brush.Color = value;
    8.35 +			}
    8.36 +		}
    8.37 +
    8.38 +		public Brush Brush
    8.39 +		{
    8.40 +			get { return brush; }
    8.41 +		}
    8.42 +
    8.43 +		public void ResetColor()
    8.44 +		{
    8.45 +			Color = SystemColors.WindowText;
    8.46 +		}
    8.47 +
    8.48 +		public object Tag
    8.49 +		{
    8.50 +			get { return tag; }
    8.51 +			set { tag = value; }
    8.52 +		}
    8.53 +
    8.54 +		public string TagString
    8.55 +		{
    8.56 +			get { return (tag == null ? "" : tag.ToString()); }
    8.57 +		}
    8.58 +	}
    8.59 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/Windows/Forms/ColorableStatusBarPanel.resx	Fri Dec 19 11:13:48 2008 +0000
     9.3 @@ -0,0 +1,42 @@
     9.4 +<?xml version="1.0" encoding="utf-8" ?>
     9.5 +<root>
     9.6 +	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
     9.7 +		<xsd:element name="root" msdata:IsDataSet="true">
     9.8 +			<xsd:complexType>
     9.9 +				<xsd:choice maxOccurs="unbounded">
    9.10 +					<xsd:element name="data">
    9.11 +						<xsd:complexType>
    9.12 +							<xsd:sequence>
    9.13 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    9.14 +								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    9.15 +							</xsd:sequence>
    9.16 +							<xsd:attribute name="name" type="xsd:string" />
    9.17 +							<xsd:attribute name="type" type="xsd:string" />
    9.18 +							<xsd:attribute name="mimetype" type="xsd:string" />
    9.19 +						</xsd:complexType>
    9.20 +					</xsd:element>
    9.21 +					<xsd:element name="resheader">
    9.22 +						<xsd:complexType>
    9.23 +							<xsd:sequence>
    9.24 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    9.25 +							</xsd:sequence>
    9.26 +							<xsd:attribute name="name" type="xsd:string" use="required" />
    9.27 +						</xsd:complexType>
    9.28 +					</xsd:element>
    9.29 +				</xsd:choice>
    9.30 +			</xsd:complexType>
    9.31 +		</xsd:element>
    9.32 +	</xsd:schema>
    9.33 +	<resheader name="ResMimeType">
    9.34 +		<value>text/microsoft-resx</value>
    9.35 +	</resheader>
    9.36 +	<resheader name="Version">
    9.37 +		<value>1.0.0.0</value>
    9.38 +	</resheader>
    9.39 +	<resheader name="Reader">
    9.40 +		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    9.41 +	</resheader>
    9.42 +	<resheader name="Writer">
    9.43 +		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    9.44 +	</resheader>
    9.45 +</root>
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/Windows/Forms/Delegates.cs	Fri Dec 19 11:13:48 2008 +0000
    10.3 @@ -0,0 +1,8 @@
    10.4 +using System;
    10.5 +using System.Windows.Forms;
    10.6 +
    10.7 +namespace IBBoard.Windows.Forms
    10.8 +{
    10.9 +    public delegate void ToolBarButtonRangeDelegate(ToolBarButton[] buttons);
   10.10 +    public delegate void ToolBarButtonDelegate(ToolBarButton button);
   10.11 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/Windows/Forms/IBBButton.cs	Fri Dec 19 11:13:48 2008 +0000
    11.3 @@ -0,0 +1,13 @@
    11.4 +using System;
    11.5 +using System.Windows.Forms;
    11.6 +using IBBoard.Lang;
    11.7 +
    11.8 +namespace IBBoard.Windows.Forms
    11.9 +{
   11.10 +	/// <summary>
   11.11 +	/// Summary description for IBBButton.
   11.12 +	/// </summary>
   11.13 +	public class IBBButton : Button, ITranslatable
   11.14 +	{
   11.15 +	}
   11.16 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/Windows/Forms/IBBForm.cs	Fri Dec 19 11:13:48 2008 +0000
    12.3 @@ -0,0 +1,13 @@
    12.4 +using System;
    12.5 +using System.Windows.Forms;
    12.6 +using IBBoard.Lang;
    12.7 +
    12.8 +namespace IBBoard.Windows.Forms
    12.9 +{
   12.10 +	/// <summary>
   12.11 +	/// Summary description for IBBForm.
   12.12 +	/// </summary>
   12.13 +	public class IBBForm : Form, ITranslatable
   12.14 +	{
   12.15 +	}
   12.16 +}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/Windows/Forms/IBBLabel.cs	Fri Dec 19 11:13:48 2008 +0000
    13.3 @@ -0,0 +1,13 @@
    13.4 +using System;
    13.5 +using System.Windows.Forms;
    13.6 +using IBBoard.Lang;
    13.7 +
    13.8 +namespace IBBoard.Windows.Forms
    13.9 +{
   13.10 +	/// <summary>
   13.11 +	/// Summary description for IBBLabel.
   13.12 +	/// </summary>
   13.13 +	public class IBBLabel : Label, ITranslatable
   13.14 +	{
   13.15 +	}
   13.16 +}
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/Windows/Forms/IBBLabel.resx	Fri Dec 19 11:13:48 2008 +0000
    14.3 @@ -0,0 +1,42 @@
    14.4 +<?xml version="1.0" encoding="utf-8" ?>
    14.5 +<root>
    14.6 +	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    14.7 +		<xsd:element name="root" msdata:IsDataSet="true">
    14.8 +			<xsd:complexType>
    14.9 +				<xsd:choice maxOccurs="unbounded">
   14.10 +					<xsd:element name="data">
   14.11 +						<xsd:complexType>
   14.12 +							<xsd:sequence>
   14.13 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   14.14 +								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
   14.15 +							</xsd:sequence>
   14.16 +							<xsd:attribute name="name" type="xsd:string" />
   14.17 +							<xsd:attribute name="type" type="xsd:string" />
   14.18 +							<xsd:attribute name="mimetype" type="xsd:string" />
   14.19 +						</xsd:complexType>
   14.20 +					</xsd:element>
   14.21 +					<xsd:element name="resheader">
   14.22 +						<xsd:complexType>
   14.23 +							<xsd:sequence>
   14.24 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   14.25 +							</xsd:sequence>
   14.26 +							<xsd:attribute name="name" type="xsd:string" use="required" />
   14.27 +						</xsd:complexType>
   14.28 +					</xsd:element>
   14.29 +				</xsd:choice>
   14.30 +			</xsd:complexType>
   14.31 +		</xsd:element>
   14.32 +	</xsd:schema>
   14.33 +	<resheader name="ResMimeType">
   14.34 +		<value>text/microsoft-resx</value>
   14.35 +	</resheader>
   14.36 +	<resheader name="Version">
   14.37 +		<value>1.0.0.0</value>
   14.38 +	</resheader>
   14.39 +	<resheader name="Reader">
   14.40 +		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   14.41 +	</resheader>
   14.42 +	<resheader name="Writer">
   14.43 +		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   14.44 +	</resheader>
   14.45 +</root>
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/Windows/Forms/IBBMenuItem.cs	Fri Dec 19 11:13:48 2008 +0000
    15.3 @@ -0,0 +1,38 @@
    15.4 +using System;
    15.5 +using System.Collections;
    15.6 +using System.ComponentModel;
    15.7 +using System.Drawing;
    15.8 +using System.Data;
    15.9 +using System.Windows.Forms;
   15.10 +using IBBoard.Lang;
   15.11 +
   15.12 +namespace IBBoard.Windows.Forms
   15.13 +{
   15.14 +	/// <summary>
   15.15 +	/// Summary description for IBBMenuItem.
   15.16 +	/// </summary>
   15.17 +	public class IBBMenuItem : System.Windows.Forms.MenuItem, ITranslatable
   15.18 +	{
   15.19 +		private string name = "emptyName";
   15.20 +
   15.21 +		public IBBMenuItem() : base(){}
   15.22 +
   15.23 +		public IBBMenuItem(string text) : base(text) {}
   15.24 +
   15.25 +		#region ITranslatable Members
   15.26 +
   15.27 +		public new string Name
   15.28 +		{
   15.29 +			get
   15.30 +			{
   15.31 +				return name;
   15.32 +			}
   15.33 +			set
   15.34 +			{
   15.35 +				name = value;
   15.36 +			}
   15.37 +		}
   15.38 +
   15.39 +		#endregion
   15.40 +	}
   15.41 +}
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/Windows/Forms/IBBMenuItem.resx	Fri Dec 19 11:13:48 2008 +0000
    16.3 @@ -0,0 +1,42 @@
    16.4 +<?xml version="1.0" encoding="utf-8" ?>
    16.5 +<root>
    16.6 +	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    16.7 +		<xsd:element name="root" msdata:IsDataSet="true">
    16.8 +			<xsd:complexType>
    16.9 +				<xsd:choice maxOccurs="unbounded">
   16.10 +					<xsd:element name="data">
   16.11 +						<xsd:complexType>
   16.12 +							<xsd:sequence>
   16.13 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   16.14 +								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
   16.15 +							</xsd:sequence>
   16.16 +							<xsd:attribute name="name" type="xsd:string" />
   16.17 +							<xsd:attribute name="type" type="xsd:string" />
   16.18 +							<xsd:attribute name="mimetype" type="xsd:string" />
   16.19 +						</xsd:complexType>
   16.20 +					</xsd:element>
   16.21 +					<xsd:element name="resheader">
   16.22 +						<xsd:complexType>
   16.23 +							<xsd:sequence>
   16.24 +								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   16.25 +							</xsd:sequence>
   16.26 +							<xsd:attribute name="name" type="xsd:string" use="required" />
   16.27 +						</xsd:complexType>
   16.28 +					</xsd:element>
   16.29 +				</xsd:choice>
   16.30 +			</xsd:complexType>
   16.31 +		</xsd:element>
   16.32 +	</xsd:schema>
   16.33 +	<resheader name="ResMimeType">
   16.34 +		<value>text/microsoft-resx</value>
   16.35 +	</resheader>
   16.36 +	<resheader name="Version">
   16.37 +		<value>1.0.0.0</value>
   16.38 +	</resheader>
   16.39 +	<resheader name="Reader">
   16.40 +		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   16.41 +	</resheader>
   16.42 +	<resheader name="Writer">
   16.43 +		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   16.44 +	</resheader>
   16.45 +</root>
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/Windows/Forms/IBBToolBarButton.cs	Fri Dec 19 11:13:48 2008 +0000
    17.3 @@ -0,0 +1,47 @@
    17.4 +using System;
    17.5 +using System.Collections;
    17.6 +using System.ComponentModel;
    17.7 +using System.Drawing;
    17.8 +using System.Data;
    17.9 +using System.Windows.Forms;
   17.10 +using IBBoard.Lang;
   17.11 +
   17.12 +namespace IBBoard.Windows.Forms
   17.13 +{
   17.14 +	/// <summary>
   17.15 +	/// Summary description for IBBMenuItem.
   17.16 +	/// </summary>
   17.17 +	public class IBBToolBarButton : System.Windows.Forms.ToolBarButton, ITranslatable
   17.18 +	{
   17.19 +		private string name = "";
   17.20 +
   17.21 +		#region ITranslatable Members
   17.22 +
   17.23 +		public new string Name
   17.24 +		{
   17.25 +			get
   17.26 +			{
   17.27 +				return name;
   17.28 +			}
   17.29 +			set
   17.30 +			{
   17.31 +				name = value;
   17.32 +			}
   17.33 +		}
   17.34 +
   17.35 +
   17.36 +		public new string Text
   17.37 +		{
   17.38 +			get
   17.39 +			{
   17.40 +				return ToolTipText;
   17.41 +			}
   17.42 +			set
   17.43 +			{
   17.44 +				ToolTipText = value;
   17.45 +			}
   17.46 +		}
   17.47 +
   17.48 +		#endregion
   17.49 +	}
   17.50 +}
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/Windows/Forms/ListViewColumnSorter.cs	Fri Dec 19 11:13:48 2008 +0000
    18.3 @@ -0,0 +1,132 @@
    18.4 +using System.Collections;	
    18.5 +using System.Windows.Forms;
    18.6 +using System.Globalization; 
    18.7 +
    18.8 +/// <summary>
    18.9 +/// This class is an implementation of the 'IComparer' interface.
   18.10 +/// </summary>
   18.11 +namespace IBBoard.Windows.Forms
   18.12 +{
   18.13 +	public class ListViewColumnSorter : IComparer
   18.14 +	{
   18.15 +		/// <summary>
   18.16 +		/// Specifies the column to be sorted
   18.17 +		/// </summary>
   18.18 +		private int ColumnToSort;
   18.19 +		/// <summary>
   18.20 +		/// Specifies the order in which to sort (i.e. 'Ascending').
   18.21 +		/// </summary>
   18.22 +		private SortOrder OrderOfSort;
   18.23 +		/// <summary>
   18.24 +		/// Case insensitive comparer object
   18.25 +		/// </summary>
   18.26 +		private CaseInsensitiveComparer ObjectCompare;
   18.27 +
   18.28 +		/// <summary>
   18.29 +		/// Class constructor.  Initializes various elements
   18.30 +		/// </summary>
   18.31 +		public ListViewColumnSorter()
   18.32 +		{
   18.33 +			// Initialize the column to '0'
   18.34 +			ColumnToSort = 0;
   18.35 +
   18.36 +			// Initialize the sort order to 'none'
   18.37 +			OrderOfSort = SortOrder.None;
   18.38 +
   18.39 +			// Initialize the CaseInsensitiveComparer object
   18.40 +			ObjectCompare = new CaseInsensitiveComparer();
   18.41 +		}
   18.42 +
   18.43 +		/// <summary>
   18.44 +		/// This method is inherited from the IComparer interface.  It compares the two objects passed using a case insensitive comparison.
   18.45 +		/// </summary>
   18.46 +		/// <param name="x">First object to be compared</param>
   18.47 +		/// <param name="y">Second object to be compared</param>
   18.48 +		/// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
   18.49 +		public int Compare(object x, object y)
   18.50 +		{
   18.51 +			int compareResult;
   18.52 +			ListViewItem listviewX, listviewY;
   18.53 +
   18.54 +			// Cast the objects to be compared to ListViewItem objects
   18.55 +			listviewX = (ListViewItem)x;
   18.56 +			listviewY = (ListViewItem)y;
   18.57 +			double resultx, resulty;
   18.58 +			
   18.59 +			if (double.TryParse(listviewX.SubItems[ColumnToSort].Text, NumberStyles.Any, 
   18.60 +				NumberFormatInfo.InvariantInfo, out resultx) && double.TryParse(listviewY.SubItems[ColumnToSort].Text, NumberStyles.Any, 
   18.61 +				NumberFormatInfo.InvariantInfo, out resulty))
   18.62 +			{
   18.63 +				if (OrderOfSort == SortOrder.Ascending)
   18.64 +				{
   18.65 +					// Ascending sort is selected, return normal result of compare operation
   18.66 +					return resultx.CompareTo(resulty);
   18.67 +				}
   18.68 +				else if (OrderOfSort == SortOrder.Descending)
   18.69 +				{
   18.70 +					// Descending sort is selected, return negative result of compare operation
   18.71 +					return resulty.CompareTo(resultx);
   18.72 +				}
   18.73 +				else
   18.74 +				{
   18.75 +					// Return '0' to indicate they are equal
   18.76 +					return 0;
   18.77 +				}
   18.78 +			}
   18.79 +			else
   18.80 +			{
   18.81 +
   18.82 +				// Compare the two items
   18.83 +				compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text,listviewY.SubItems[ColumnToSort].Text);
   18.84 +			
   18.85 +				// Calculate correct return value based on object comparison
   18.86 +				if (OrderOfSort == SortOrder.Ascending)
   18.87 +				{
   18.88 +					// Ascending sort is selected, return normal result of compare operation
   18.89 +					return compareResult;
   18.90 +				}
   18.91 +				else if (OrderOfSort == SortOrder.Descending)
   18.92 +				{
   18.93 +					// Descending sort is selected, return negative result of compare operation
   18.94 +					return (-compareResult);
   18.95 +				}
   18.96 +				else
   18.97 +				{
   18.98 +					// Return '0' to indicate they are equal
   18.99 +					return 0;
  18.100 +				}
  18.101 +			}
  18.102 +		}
  18.103 +    
  18.104 +		/// <summary>
  18.105 +		/// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0').
  18.106 +		/// </summary>
  18.107 +		public int SortColumn
  18.108 +		{
  18.109 +			set
  18.110 +			{
  18.111 +				ColumnToSort = value;
  18.112 +			}
  18.113 +			get
  18.114 +			{
  18.115 +				return ColumnToSort;
  18.116 +			}
  18.117 +		}
  18.118 +
  18.119 +		/// <summary>
  18.120 +		/// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending').
  18.121 +		/// </summary>
  18.122 +		public SortOrder Order
  18.123 +		{
  18.124 +			set
  18.125 +			{
  18.126 +				OrderOfSort = value;
  18.127 +			}
  18.128 +			get
  18.129 +			{
  18.130 +				return OrderOfSort;
  18.131 +			}
  18.132 +		}
  18.133 +    
  18.134 +	}
  18.135 +}
  18.136 \ No newline at end of file