SDRSharp Build 1632 Full Source (VS2017)

This commit is contained in:
SDRSharpR 2018-03-24 23:01:41 -07:00
parent c0fc5d4af0
commit bce56796eb
246 changed files with 31983 additions and 0 deletions

View file

@ -0,0 +1,15 @@
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Collapsible Panel")]
[assembly: AssemblyDescription("Collapsible Panel Component")]
[assembly: AssemblyProduct("SDR#")]
[assembly: AssemblyCopyright("Copyright © Youssef TOUIL 2012")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]

View file

@ -0,0 +1,82 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.Resources;
using System.Runtime.CompilerServices;
namespace SDRSharp.CollapsiblePanel.Properties
{
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[DebuggerNonUserCode]
[CompilerGenerated]
internal class Resources
{
private static ResourceManager resourceMan;
private static CultureInfo resourceCulture;
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static ResourceManager ResourceManager
{
get
{
if (Resources.resourceMan == null)
{
Resources.resourceMan = new ResourceManager("SDRSharp.CollapsiblePanel.Properties.Resources", typeof(Resources).Assembly);
}
return Resources.resourceMan;
}
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static CultureInfo Culture
{
get
{
return Resources.resourceCulture;
}
set
{
Resources.resourceCulture = value;
}
}
internal static Bitmap CollapsedIcon
{
get
{
return (Bitmap)Resources.ResourceManager.GetObject("CollapsedIcon", Resources.resourceCulture);
}
}
internal static string ExpandedHeigth
{
get
{
return Resources.ResourceManager.GetString("ExpandedHeigth", Resources.resourceCulture);
}
}
internal static Bitmap ExpandedIcon
{
get
{
return (Bitmap)Resources.ResourceManager.GetObject("ExpandedIcon", Resources.resourceCulture);
}
}
internal static Bitmap titleBackground
{
get
{
return (Bitmap)Resources.ResourceManager.GetObject("titleBackground", Resources.resourceCulture);
}
}
internal Resources()
{
}
}
}

View file

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ExpandedIcon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN
1gAADdYBkG95nAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACdSURBVChTlZGx
DcIwEEUtalZIBmEYZiGLULMAtUsGYICQNi0VEpL5D9nWRbYs50tP1t29X9mFELxYxGsH+J7yKGaxJ/gj
ZZjEV/QED9+l8kE8RE/w8HMZTmIVrXDH+3dsGa6iFe7Zt0U4iqeohT337Nti4izewoaZ/cbdDIa7sGEu
vGIRGUT6e17mwisWhov4xLd2b5b5y1t8K/fgfhf9ch0fZsVEAAAAAElFTkSuQmCC
</value>
</data>
<data name="titleBackground" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBD
AAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0M
DgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAz/wAARCAARALkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF
BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk
M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA
AQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5
OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq
srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDz
f/hd6/3ovzH+FH/C71/vRfmP8K+Sv+F4v/z0lo/4Xi//AD0lrp9mZ859a/8AC71/vRfmP8KP+F3r/ei/
Mf4V8lf8Lxf/AJ6S0f8AC8X/AOektHsw5z61/wCF3r/ei/Mf4Uf8LvX+9F+Y/wAK+Sv+F4v/AM9JaP8A
heL/APPSWj2Yc59a/wDC71/vRfmP8KP+F3r/AHovzH+FfJX/AAvF/wDnpLR/wvF/+ektHsw5z61/4Xev
96L8x/hR/wALvX+9F+Y/wr5K/wCF4v8A89JaP+F4v/z0lo9mHOfWv/C71/vRfmP8KP8Ahd6/3ovzH+Ff
JX/C8X/56S0f8Lxf/npLR7MOc+tf+F3r/ei/Mf4Uf8LvX+9F+Y/wr5K/4Xi//PSWj/heL/8APSWj2Yc5
9a/8LvX+9F+Y/wAKP+F3r/ei/Mf4V8lf8Lxf/npLR/wvF/8AnpLR7MOc+tf+F3r/AHovzH+FH/C71/vR
fmP8K+Sv+F4v/wA9JaP+F4v/AM9JaPZhzn1r/wALvX+9F+Y/wo/4Xev96L8x/hXyV/wvF/8AnpLR/wAL
xf8A56S0ezDnPrX/AIXev96L8x/hR/wu9f70X5j/AAr5K/4Xi/8Az0lo/wCF4v8A89JaPZhzn1r/AMLv
X+9F+Y/wo/4Xev8Aei/Mf4V8lf8AC8X/AOektH/C8X/56S0ezDnPJKKKK5jQKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==
</value>
</data>
<data name="ExpandedHeigth" xml:space="preserve">
<value>0</value>
</data>
<data name="CollapsedIcon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAPCAYAAADQ4S5JAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN
1gAADdYBkG95nAAAAHRJREFUKFNj+P///z4GBgaZAwcOMBCDQRoeA/F9IG7CpgAdgzSAFIPAbyA+BsSW
2BTCMLIGGHgNxPOAzuQhVgMMXALiWFI0gMBnIN6GHCiENMAASA04UIjVAAKgQFlFdRtI8gPRoUR0PBAd
0ySnJRJS6wEGAICmKADl6upOAAAAAElFTkSuQmCC
</value>
</data>
</root>

View file

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ExpandedIcon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN
1gAADdYBkG95nAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACdSURBVChTlZGx
DcIwEEUtalZIBmEYZiGLULMAtUsGYICQNi0VEpL5D9nWRbYs50tP1t29X9mFELxYxGsH+J7yKGaxJ/gj
ZZjEV/QED9+l8kE8RE/w8HMZTmIVrXDH+3dsGa6iFe7Zt0U4iqeohT337Nti4izewoaZ/cbdDIa7sGEu
vGIRGUT6e17mwisWhov4xLd2b5b5y1t8K/fgfhf9ch0fZsVEAAAAAElFTkSuQmCC
</value>
</data>
<data name="titleBackground" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBD
AAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0M
DgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAz/wAARCAARALkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF
BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk
M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA
AQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5
OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq
srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDz
f/hd6/3ovzH+FH/C71/vRfmP8K+Sv+F4v/z0lo/4Xi//AD0lrp9mZ859a/8AC71/vRfmP8KP+F3r/ei/
Mf4V8lf8Lxf/AJ6S0f8AC8X/AOektHsw5z61/wCF3r/ei/Mf4Uf8LvX+9F+Y/wAK+Sv+F4v/AM9JaP8A
heL/APPSWj2Yc59a/wDC71/vRfmP8KP+F3r/AHovzH+FfJX/AAvF/wDnpLR/wvF/+ektHsw5z61/4Xev
96L8x/hR/wALvX+9F+Y/wr5K/wCF4v8A89JaP+F4v/z0lo9mHOfWv/C71/vRfmP8KP8Ahd6/3ovzH+Ff
JX/C8X/56S0f8Lxf/npLR7MOc+tf+F3r/ei/Mf4Uf8LvX+9F+Y/wr5K/4Xi//PSWj/heL/8APSWj2Yc5
9a/8LvX+9F+Y/wAKP+F3r/ei/Mf4V8lf8Lxf/npLR/wvF/8AnpLR7MOc+tf+F3r/AHovzH+FH/C71/vR
fmP8K+Sv+F4v/wA9JaP+F4v/AM9JaPZhzn1r/wALvX+9F+Y/wo/4Xev96L8x/hXyV/wvF/8AnpLR/wAL
xf8A56S0ezDnPrX/AIXev96L8x/hR/wu9f70X5j/AAr5K/4Xi/8Az0lo/wCF4v8A89JaPZhzn1r/AMLv
X+9F+Y/wo/4Xev8Aei/Mf4V8lf8AC8X/AOektH/C8X/56S0ezDnPJKKKK5jQKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==
</value>
</data>
<data name="ExpandedHeigth" xml:space="preserve">
<value>0</value>
</data>
<data name="CollapsedIcon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAPCAYAAADQ4S5JAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN
1gAADdYBkG95nAAAAHRJREFUKFNj+P///z4GBgaZAwcOMBCDQRoeA/F9IG7CpgAdgzSAFIPAbyA+BsSW
2BTCMLIGGHgNxPOAzuQhVgMMXALiWFI0gMBnIN6GHCiENMAASA04UIjVAAKgQFlFdRtI8gPRoUR0PBAd
0ySnJRJS6wEGAICmKADl6upOAAAAAElFTkSuQmCC
</value>
</data>
</root>

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Library</OutputType>
<AssemblyName>SDRSharp.CollapsiblePanel</AssemblyName>
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
</PropertyGroup>
<ItemGroup>
<Reference Include="System">
<HintPath>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll</HintPath>
</Reference>
<Reference Include="System.Drawing">
<HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll</HintPath>
</Reference>
<Reference Include="System.Design">
<HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Design\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Design.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SDRSharp.CollapsiblePanel.Properties\Resources.cs" />
<Compile Include="SDRSharp.CollapsiblePanel\CollapsiblePanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="SDRSharp.CollapsiblePanel\CollapsiblePanelDesigner.cs" />
<Compile Include="SDRSharp.CollapsiblePanel\ContentPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SDRSharp.CollapsiblePanel\ContentPanelDesigner.cs" />
<Compile Include="SDRSharp.CollapsiblePanel\PanelStateOptions.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="SDRSharp.CollapsiblePanel.Properties\Resources.resx">
<DependentUpon>Resources.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SDRSharp.CollapsiblePanel\CollapsiblePanel.resx">
<DependentUpon>CollapsiblePanel.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2015
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDRSharp.CollapsiblePanel", "SDRSharp.CollapsiblePanel.csproj", "{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A5EFB9F9-6F99-4EBD-B5C9-3F68EFEFC823}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AF25AAAB-B38C-48F7-A7D7-0D815C0D1E47}
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,271 @@
using SDRSharp.CollapsiblePanel.Properties;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace SDRSharp.CollapsiblePanel
{
[DesignTimeVisible(true)]
[Category("Containers")]
[Description("Visual Studio like Collapsible Panel")]
[Designer(typeof(CollapsiblePanelDesigner))]
public class CollapsiblePanel : UserControl
{
private bool _autoHeight;
private PanelStateOptions _panelState = PanelStateOptions.Expanded;
private CollapsiblePanel _nextPanel;
private IContainer components;
private Panel titlePanel;
private PictureBox togglingImage;
private ImageList collapsiblePanelImageList;
private Label lblPanelTitle;
private ContentPanel contentPanel;
private TableLayoutPanel titleTableLayoutPanel;
[Description("Gets or sets panel title")]
[DisplayName("Panel Title")]
[Category("Collapsible Panel")]
public string PanelTitle
{
get
{
return this.lblPanelTitle.Text;
}
set
{
this.lblPanelTitle.Text = value;
}
}
[DefaultValue(typeof(PanelStateOptions), "Expanded")]
[Description("Gets or sets current panel state")]
[DisplayName("Panel State")]
[Category("Collapsible Panel")]
public PanelStateOptions PanelState
{
get
{
return this._panelState;
}
set
{
this._panelState = value;
this.UpdateState();
}
}
[Category("Collapsible Panel")]
[Description("Gets or sets the panel to be located beneath this panel")]
public CollapsiblePanel NextPanel
{
get
{
return this._nextPanel;
}
set
{
this._nextPanel = value;
this.MoveNextPanel();
}
}
[Category("Appearance")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ContentPanel Content
{
get
{
return this.contentPanel;
}
}
public bool AutoHeight
{
get
{
return this._autoHeight;
}
set
{
if (this._autoHeight != value)
{
this._autoHeight = value;
this.UpdateState();
}
}
}
public CollapsiblePanel()
{
this.InitializeComponent();
base.Load += this.CollapsiblePanel_Load;
base.SizeChanged += this.CollapsiblePanel_SizeChanged;
base.LocationChanged += this.CollapsiblePanel_LocationChanged;
}
private void CollapsiblePanel_Load(object sender, EventArgs e)
{
if (this._panelState == PanelStateOptions.Collapsed)
{
this.togglingImage.Image = Resources.CollapsedIcon;
}
else
{
this.togglingImage.Image = Resources.ExpandedIcon;
}
}
private void CollapsiblePanel_SizeChanged(object sender, EventArgs e)
{
this.MoveNextPanel();
}
private void CollapsiblePanel_LocationChanged(object sender, EventArgs e)
{
this.MoveNextPanel();
}
private void ToggleState(object sender, EventArgs e)
{
this._panelState = ((this._panelState == PanelStateOptions.Collapsed) ? PanelStateOptions.Expanded : PanelStateOptions.Collapsed);
this.UpdateState();
}
internal void UpdateState()
{
if (this._panelState == PanelStateOptions.Collapsed)
{
this.contentPanel.Visible = false;
base.Height = this.titlePanel.Height;
this.togglingImage.Image = Resources.CollapsedIcon;
}
else
{
int num = (this.contentPanel.Controls.Count != 1 || !this._autoHeight) ? this.contentPanel.Height : this.contentPanel.Controls[0].Height;
base.Height = this.titlePanel.Height + num;
this.contentPanel.Visible = true;
this.togglingImage.Image = Resources.ExpandedIcon;
Panel panel = base.Parent as Panel;
while (panel != null && panel.AutoSize)
{
panel = (panel.Parent as Panel);
}
if (panel != null)
{
panel.ScrollControlIntoView(this);
}
}
}
private void MoveNextPanel()
{
if (this._nextPanel != null)
{
CollapsiblePanel nextPanel = this._nextPanel;
Point location = base.Location;
int x = location.X;
location = base.Location;
nextPanel.Location = new Point(x, location.Y + base.Size.Height);
}
}
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
{
this.components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = new Container();
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof(CollapsiblePanel));
this.collapsiblePanelImageList = new ImageList(this.components);
this.titlePanel = new Panel();
this.titleTableLayoutPanel = new TableLayoutPanel();
this.togglingImage = new PictureBox();
this.lblPanelTitle = new Label();
this.contentPanel = new ContentPanel();
this.titlePanel.SuspendLayout();
this.titleTableLayoutPanel.SuspendLayout();
((ISupportInitialize)this.togglingImage).BeginInit();
base.SuspendLayout();
this.collapsiblePanelImageList.ImageStream = (ImageListStreamer)componentResourceManager.GetObject("collapsiblePanelImageList.ImageStream");
this.collapsiblePanelImageList.TransparentColor = Color.Transparent;
this.collapsiblePanelImageList.Images.SetKeyName(0, "ExpandIcon.jpg");
this.titlePanel.BackColor = Color.DarkGray;
this.titlePanel.BackgroundImage = Resources.titleBackground;
this.titlePanel.BackgroundImageLayout = ImageLayout.Stretch;
this.titlePanel.Controls.Add(this.titleTableLayoutPanel);
this.titlePanel.Dock = DockStyle.Top;
this.titlePanel.Location = new Point(0, 0);
this.titlePanel.Name = "titlePanel";
this.titlePanel.Size = new Size(150, 24);
this.titlePanel.TabIndex = 0;
this.titleTableLayoutPanel.BackColor = Color.Transparent;
this.titleTableLayoutPanel.ColumnCount = 2;
this.titleTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 24f));
this.titleTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100f));
this.titleTableLayoutPanel.Controls.Add(this.togglingImage, 0, 0);
this.titleTableLayoutPanel.Controls.Add(this.lblPanelTitle, 1, 0);
this.titleTableLayoutPanel.Dock = DockStyle.Fill;
this.titleTableLayoutPanel.Location = new Point(0, 0);
this.titleTableLayoutPanel.Name = "titleTableLayoutPanel";
this.titleTableLayoutPanel.RowCount = 1;
this.titleTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100f));
this.titleTableLayoutPanel.Size = new Size(150, 24);
this.titleTableLayoutPanel.TabIndex = 2;
this.titleTableLayoutPanel.Click += this.ToggleState;
this.togglingImage.Anchor = AnchorStyles.None;
this.togglingImage.BackColor = Color.Transparent;
this.togglingImage.Image = Resources.ExpandedIcon;
this.togglingImage.Location = new Point(7, 7);
this.togglingImage.Name = "togglingImage";
this.togglingImage.Size = new Size(10, 10);
this.togglingImage.SizeMode = PictureBoxSizeMode.StretchImage;
this.togglingImage.TabIndex = 0;
this.togglingImage.TabStop = false;
this.togglingImage.Click += this.ToggleState;
this.lblPanelTitle.Anchor = AnchorStyles.Left;
this.lblPanelTitle.AutoEllipsis = true;
this.lblPanelTitle.AutoSize = true;
this.lblPanelTitle.BackColor = Color.Transparent;
this.lblPanelTitle.Font = new Font("Segoe UI Semibold", 9f, FontStyle.Regular, GraphicsUnit.Point, 0);
this.lblPanelTitle.ForeColor = Color.WhiteSmoke;
this.lblPanelTitle.Location = new Point(27, 4);
this.lblPanelTitle.Name = "lblPanelTitle";
this.lblPanelTitle.Size = new Size(59, 15);
this.lblPanelTitle.TabIndex = 1;
this.lblPanelTitle.Text = "Panel title";
this.lblPanelTitle.Click += this.ToggleState;
this.contentPanel.Location = new Point(0, 24);
this.contentPanel.Margin = new Padding(2);
this.contentPanel.Name = "contentPanel";
this.contentPanel.Size = new Size(150, 126);
this.contentPanel.TabIndex = 1;
base.AutoScaleDimensions = new SizeF(96f, 96f);
base.AutoScaleMode = AutoScaleMode.Dpi;
base.Controls.Add(this.contentPanel);
base.Controls.Add(this.titlePanel);
base.Name = "CollapsiblePanel";
this.titlePanel.ResumeLayout(false);
this.titleTableLayoutPanel.ResumeLayout(false);
this.titleTableLayoutPanel.PerformLayout();
((ISupportInitialize)this.togglingImage).EndInit();
base.ResumeLayout(false);
base.PerformLayout();
}
}
}

View file

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="collapsiblePanelImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABe
CAAAAk1TRnQBSQFMAwEBAAHEAQABxAEAARABAAEQAQAE/wEJARAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BAAHyAfALvAHwAfEB9DAA
AQcBkgvsAe0B7wHxMAAB7QH3B+8B9wPvAfcB7QHwMAAB7AH3BAcB7wGSAe8EBwHvAewBvDAAAewB9wIH
Au8B7AFDAesB7wEHAbwBBwHvAewBvDAAAewB7wHxAvABvAHsAQ4BbQHwAwcB7wHsAbwwAAHsAQcD/wH0
AZIBDgHsAfQBvAHvAQcB7wHsAbwwAAHsAbwB8wHvAuwBEgEOARQB7AFtAesB9wHvAewBvDAAAewBBwHy
AeoDDgEAAg4BDwEVAe0B7wHsAbwwAAHsAQcB8wEHAvcBbQEOARMB7QH3Ae8B8AEHAewBvDAAAewBBwT/
AfcBDgHsAfQD/wHwAe0BvDAAAewBvAL/AfQB/wGSAQ4B7AT/AfAB7AG8MAAB7AG8Av8B9AH/AQcB6gHv
BP8B8AHsAbwwAAHsAQcE/wH0AfIB8wH/AfQB8wH/AfEB7QG8MAAB7QHvArwKBwH3AfAwAAEHAZIL7AHt
Ae8B8jAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/+XAAs=
</value>
</data>
</root>

View file

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="collapsiblePanelImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABe
CAAAAk1TRnQBSQFMAwEBAAHEAQABxAEAARABAAEQAQAE/wEJARAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BAAHyAfALvAHwAfEB9DAA
AQcBkgvsAe0B7wHxMAAB7QH3B+8B9wPvAfcB7QHwMAAB7AH3BAcB7wGSAe8EBwHvAewBvDAAAewB9wIH
Au8B7AFDAesB7wEHAbwBBwHvAewBvDAAAewB7wHxAvABvAHsAQ4BbQHwAwcB7wHsAbwwAAHsAQcD/wH0
AZIBDgHsAfQBvAHvAQcB7wHsAbwwAAHsAbwB8wHvAuwBEgEOARQB7AFtAesB9wHvAewBvDAAAewBBwHy
AeoDDgEAAg4BDwEVAe0B7wHsAbwwAAHsAQcB8wEHAvcBbQEOARMB7QH3Ae8B8AEHAewBvDAAAewBBwT/
AfcBDgHsAfQD/wHwAe0BvDAAAewBvAL/AfQB/wGSAQ4B7AT/AfAB7AG8MAAB7AG8Av8B9AH/AQcB6gHv
BP8B8AHsAbwwAAHsAQcE/wH0AfIB8wH/AfQB8wH/AfEB7QG8MAAB7QHvArwKBwH3AfAwAAEHAZIL7AHt
Ae8B8jAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/+XAAs=
</value>
</data>
</root>

View file

@ -0,0 +1,17 @@
using System.ComponentModel;
using System.Windows.Forms.Design;
namespace SDRSharp.CollapsiblePanel
{
public class CollapsiblePanelDesigner : ParentControlDesigner
{
public override void Initialize(IComponent component)
{
base.Initialize(component);
if (this.Control is CollapsiblePanel)
{
base.EnableDesignMode(((CollapsiblePanel)this.Control).Content, "Content");
}
}
}
}

View file

@ -0,0 +1,32 @@
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace SDRSharp.CollapsiblePanel
{
[Designer(typeof(ContentPanelDesigner))]
public class ContentPanel : Panel
{
public ContentPanel()
{
base.Dock = DockStyle.Fill;
}
protected override void OnControlAdded(ControlEventArgs e)
{
e.Control.Resize += this.sourceControlPanel_Resize;
base.OnControlAdded(e);
}
protected override void OnControlRemoved(ControlEventArgs e)
{
e.Control.Resize -= this.sourceControlPanel_Resize;
base.OnControlRemoved(e);
}
private void sourceControlPanel_Resize(object sender, EventArgs e)
{
((CollapsiblePanel)base.Parent).UpdateState();
}
}
}

View file

@ -0,0 +1,16 @@
using System.Collections;
using System.Windows.Forms.Design;
namespace SDRSharp.CollapsiblePanel
{
public class ContentPanelDesigner : ScrollableControlDesigner
{
protected override void PreFilterProperties(IDictionary properties)
{
properties.Remove("Dock");
properties.Remove("AutoSize");
properties.Remove("AutoSizeMode");
base.PreFilterProperties(properties);
}
}
}

View file

@ -0,0 +1,8 @@
namespace SDRSharp.CollapsiblePanel
{
public enum PanelStateOptions
{
Collapsed,
Expanded
}
}