Advertisement
as3p

ThemePale

Jan 9th, 2019
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VBScript 68.27 KB | None | 0 0
  1. #Region " Namespaces "
  2.  
  3. Imports System.Drawing.Drawing2D
  4. Imports System.ComponentModel
  5.  
  6. #End Region
  7.  
  8. #Region " Helper Methods "
  9.  
  10. Public Module HelperMethods
  11.  
  12.     Public GP As GraphicsPath
  13.  
  14.     Public Enum MouseMode As Byte
  15.         NormalMode
  16.         Hovered
  17.         Pushed
  18.     End Enum
  19.  
  20.     Public Sub DrawImageFromBase64(ByVal G As Graphics, ByVal Base64Image As String, ByVal Rect As Rectangle)
  21.         Dim IM As Image = Nothing
  22.         With G
  23.             Using ms As New System.IO.MemoryStream(Convert.FromBase64String(Base64Image))
  24.                 IM = Image.FromStream(ms) : ms.Close()
  25.             End Using
  26.             .DrawImage(IM, Rect)
  27.         End With
  28.     End Sub
  29.  
  30.     Public Sub FillRoundedPath(ByVal G As Graphics, ByVal C As Color, ByVal Rect As Rectangle, ByVal Curve As Integer, _
  31.                                  Optional ByVal TopLeft As Boolean = True, Optional ByVal TopRight As Boolean = True, _
  32.                                  Optional ByVal BottomLeft As Boolean = True, Optional ByVal BottomRight As Boolean = True)
  33.         With G
  34.             .FillPath(New SolidBrush(C), RoundRec(Rect, Curve, TopLeft, TopRight, BottomLeft, BottomRight))
  35.         End With
  36.     End Sub
  37.  
  38.     Public Sub FillRoundedPath(ByVal G As Graphics, ByVal B As Brush, ByVal Rect As Rectangle, ByVal Curve As Integer, _
  39.                                  Optional ByVal TopLeft As Boolean = True, Optional ByVal TopRight As Boolean = True, _
  40.                                  Optional ByVal BottomLeft As Boolean = True, Optional ByVal BottomRight As Boolean = True)
  41.         With G
  42.             .FillPath(B, RoundRec(Rect, Curve, TopLeft, TopRight, BottomLeft, BottomRight))
  43.         End With
  44.     End Sub
  45.  
  46.     Public Sub DrawRoundedPath(ByVal G As Graphics, ByVal C As Color, ByVal Size As Single, ByVal Rect As Rectangle, ByVal Curve As Integer, _
  47.                                  Optional ByVal TopLeft As Boolean = True, Optional ByVal TopRight As Boolean = True, _
  48.                                  Optional ByVal BottomLeft As Boolean = True, Optional ByVal BottomRight As Boolean = True)
  49.         With G
  50.             .DrawPath(New Pen(C, Size), RoundRec(Rect, Curve, TopLeft, TopRight, BottomLeft, BottomRight))
  51.         End With
  52.     End Sub
  53.  
  54.     Public Sub DrawTriangle(ByVal G As Graphics, ByVal C As Color, ByVal Size As Integer, ByVal P1_0 As Point, ByVal P1_1 As Point, ByVal P2_0 As Point, ByVal P2_1 As Point, ByVal P3_0 As Point, ByVal P3_1 As Point)
  55.         With G
  56.             .DrawLine(New Pen(C, Size), P1_0, P1_1)
  57.             .DrawLine(New Pen(C, Size), P2_0, P2_1)
  58.             .DrawLine(New Pen(C, Size), P3_0, P3_1)
  59.         End With
  60.     End Sub
  61.     Public Function Triangle(ByVal Clr As Color, ByVal P1 As Point, ByVal P2 As Point, ByVal P3 As Point) As Point()
  62.         Return New Point() {P1, P2, P3}
  63.     End Function
  64.  
  65.     Public Function PenRGBColor(ByVal GR As Graphics, ByVal R As Integer, ByVal G As Integer, ByVal B As Integer, ByVal Size As Single) As Pen
  66.         Return New Pen(Color.FromArgb(R, G, B), Size)
  67.     End Function
  68.  
  69.     Public Function PenHTMlColor(ByVal C_WithoutHash As String, ByVal Size As Single) As Pen
  70.         Return New Pen(GetHTMLColor(C_WithoutHash), Size)
  71.     End Function
  72.  
  73.     Public Function SolidBrushRGBColor(ByVal R As Integer, ByVal G As Integer, ByVal B As Integer, Optional ByVal A As Integer = 0) As SolidBrush
  74.         Return New SolidBrush(Color.FromArgb(A, R, G, B))
  75.     End Function
  76.  
  77.     Public Function SolidBrushHTMlColor(ByVal C_WithoutHash As String) As SolidBrush
  78.         Return New SolidBrush(GetHTMLColor(C_WithoutHash))
  79.     End Function
  80.  
  81.     Public Function GetHTMLColor(ByVal C_WithoutHash As String) As Color
  82.         Return ColorTranslator.FromHtml("#" & C_WithoutHash)
  83.     End Function
  84.  
  85.     Public Function ColorToHTML(ByVal C As Color) As String
  86.         Return ColorTranslator.ToHtml(C)
  87.     End Function
  88.  
  89.     Public Sub CentreString(ByVal G As Graphics, ByVal Text As String, ByVal font As Font, ByVal brush As Brush, ByVal Rect As Rectangle)
  90.         G.DrawString(Text, font, brush, New Rectangle(Rect.X, Rect.Y, Rect.Width, Rect.Height), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  91.     End Sub
  92.  
  93.     Public Sub LeftString(ByVal G As Graphics, ByVal Text As String, ByVal font As Font, ByVal brush As Brush, ByVal Rect As Rectangle)
  94.         G.DrawString(Text, font, brush, New Rectangle(4, Rect.Y + (Rect.Height / 2) - (G.MeasureString(Text, font).Height / 2) + 0, Rect.Width, Rect.Height), New StringFormat With {.Alignment = StringAlignment.Near})
  95.     End Sub
  96.  
  97.     Public Sub RightString(ByVal G As Graphics, ByVal Text As String, ByVal font As Font, ByVal brush As Brush, ByVal Rect As Rectangle)
  98.         G.DrawString(Text, font, brush, New Rectangle(4, Rect.Y + (Rect.Height / 2) - (G.MeasureString(Text, font).Height / 2), Rect.Width - Rect.Height + 10, Rect.Height), New StringFormat With {.Alignment = StringAlignment.Far})
  99.     End Sub
  100.  
  101.  
  102. #Region " Reond Border "
  103.  
  104.     ''' <summary>
  105.    ''' Credits : AeonHack
  106.    ''' </summary>
  107.  
  108.     Public Function RoundRec(ByVal r As Rectangle, ByVal Curve As Integer, _
  109.                                  Optional ByVal TopLeft As Boolean = True, Optional ByVal TopRight As Boolean = True, _
  110.                                  Optional ByVal BottomLeft As Boolean = True, Optional ByVal BottomRight As Boolean = True) As GraphicsPath
  111.         Dim CreateRoundPath As New GraphicsPath(FillMode.Winding)
  112.         If TopLeft Then
  113.             CreateRoundPath.AddArc(r.X, r.Y, Curve, Curve, 180.0F, 90.0F)
  114.         Else
  115.             CreateRoundPath.AddLine(r.X, r.Y, r.X, r.Y)
  116.         End If
  117.         If TopRight Then
  118.             CreateRoundPath.AddArc(r.Right - Curve, r.Y, Curve, Curve, 270.0F, 90.0F)
  119.         Else
  120.             CreateRoundPath.AddLine(r.Right - r.Width, r.Y, r.Width, r.Y)
  121.         End If
  122.         If BottomRight Then
  123.             CreateRoundPath.AddArc(r.Right - Curve, r.Bottom - Curve, Curve, Curve, 0.0F, 90.0F)
  124.         Else
  125.             CreateRoundPath.AddLine(r.Right, r.Bottom, r.Right, r.Bottom)
  126.  
  127.         End If
  128.         If BottomLeft Then
  129.             CreateRoundPath.AddArc(r.X, r.Bottom - Curve, Curve, Curve, 90.0F, 90.0F)
  130.         Else
  131.             CreateRoundPath.AddLine(r.X, r.Bottom, r.X, r.Bottom)
  132.         End If
  133.         CreateRoundPath.CloseFigure()
  134.         Return CreateRoundPath
  135.     End Function
  136.  
  137. #End Region
  138.  
  139.  
  140.  
  141. End Module
  142.  
  143. #End Region
  144.  
  145. #Region " Skin "
  146.  
  147. Public Class PaleSkin : Inherits ContainerControl
  148.  
  149. #Region " Variables "
  150.  
  151.     Private Movable As Boolean = False
  152.     Private MousePoint As New Point(0, 0)
  153.     Private MoveHeight = 50
  154.     Private _TitleTextPostion As TitlePostion = TitlePostion.Left
  155.  
  156. #End Region
  157.  
  158. #Region " Constructors "
  159.  
  160.     Sub New()
  161.         SetStyle(ControlStyles.Opaque Or ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.SupportsTransparentBackColor, True)
  162.         DoubleBuffered = True
  163.         BackColor = Color.Transparent
  164.         Font = New Font("Segoe UI", 14, FontStyle.Bold)
  165.         UpdateStyles()
  166.     End Sub
  167.  
  168. #End Region
  169.  
  170. #Region " Properties "
  171.  
  172.     Private _ShowIcon As Boolean
  173.     Property ShowIcon As Boolean
  174.         Get
  175.             Return _ShowIcon
  176.         End Get
  177.         Set(ByVal value As Boolean)
  178.             If value = _ShowIcon Then Return
  179.             FindForm.ShowIcon = value
  180.             _ShowIcon = value
  181.             Invalidate()
  182.         End Set
  183.     End Property
  184.  
  185.     Public Overridable Property TitleTextPostion As TitlePostion
  186.         Get
  187.             Return _TitleTextPostion
  188.         End Get
  189.         Set(ByVal value As TitlePostion)
  190.             _TitleTextPostion = value
  191.             Invalidate()
  192.         End Set
  193.     End Property
  194.  
  195.     Enum TitlePostion
  196.         Left
  197.         Center
  198.         Right
  199.     End Enum
  200.  
  201. #End Region
  202.  
  203. #Region " Draw Control "
  204.  
  205.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  206.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  207.  
  208.             With G
  209.  
  210.                 .Clear(Color.Fuchsia)
  211.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  212.                 Dim R As New Rectangle(-1, -1, Width, Height)
  213.  
  214.                 Using LGB As New LinearGradientBrush(R, GetHTMLColor("f7f7f7"), Color.White, 90.0F)
  215.                     FillRoundedPath(G, LGB, R, 12)
  216.                     DrawRoundedPath(G, GetHTMLColor("f7f7f7"), 2, R, 12)
  217.                     .DrawLine(PenHTMlColor("dadada", 1.5), New Point(12, 55), New Point(Width - 20, 55))
  218.                 End Using
  219.  
  220.                 If FindForm.ShowIcon Then
  221.                     If Not FindForm.Icon Is Nothing Then
  222.                         Select Case TitleTextPostion
  223.                             Case TitlePostion.Left
  224.                                 .DrawString(Text, Font, SolidBrushHTMlColor("2e8fc7"), 27, 14)
  225.                                 .DrawIcon(FindForm.Icon, New Rectangle(6, 17, 20, 20))
  226.                             Case TitlePostion.Center
  227.                                 CentreString(G, Text, Font, SolidBrushHTMlColor("2e8fc7"), New Rectangle(0, 0, Width, 50))
  228.                                 .DrawIcon(FindForm.Icon, New Rectangle(5, 17, 20, 20))
  229.                             Case TitlePostion.Right
  230.                                 RightString(G, Text, Font, SolidBrushHTMlColor("2e8fc7"), New Rectangle(0, 0, Width, 50))
  231.                                 .DrawIcon(FindForm.Icon, New Rectangle(Width - 30, 17, 20, 20))
  232.                         End Select
  233.                     End If
  234.                 Else
  235.                     Select Case TitleTextPostion
  236.                         Case TitlePostion.Left
  237.                             .DrawString(Text, Font, SolidBrushHTMlColor("2e8fc7"), 5, 14)
  238.                         Case TitlePostion.Center
  239.                             CentreString(G, Text, Font, SolidBrushHTMlColor("2e8fc7"), New Rectangle(0, 0, Width, 50))
  240.                         Case TitlePostion.Right
  241.                             RightString(G, Text, Font, SolidBrushHTMlColor("2e8fc7"), New Rectangle(0, 0, Width, 50))
  242.                     End Select
  243.                 End If
  244.  
  245.             End With
  246.  
  247.             e.Graphics.DrawImage(B, 0, 0)
  248.             G.Dispose()
  249.             B.Dispose()
  250.  
  251.         End Using
  252.     End Sub
  253.  
  254. #End Region
  255.  
  256. #Region " Events "
  257.  
  258.     Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
  259.         MyBase.OnMouseDown(e)
  260.         If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) Then
  261.             Movable = True
  262.             MousePoint = e.Location
  263.         End If
  264.     End Sub
  265.  
  266.     Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
  267.         MyBase.OnMouseUp(e)
  268.         Movable = False
  269.     End Sub
  270.  
  271.     Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
  272.         MyBase.OnMouseMove(e)
  273.         If Movable Then Parent.Location = MousePosition - MousePoint
  274.     End Sub
  275.  
  276.     Protected NotOverridable Overrides Sub OnCreateControl()
  277.         MyBase.OnCreateControl()
  278.         ParentForm.FormBorderStyle = FormBorderStyle.None
  279.         ParentForm.AllowTransparency = True
  280.         ParentForm.TransparencyKey = Color.Fuchsia
  281.         Dock = DockStyle.Fill
  282.     End Sub
  283.  
  284. #End Region
  285.  
  286. End Class
  287.  
  288. #End Region
  289.  
  290. #Region " Light Button "
  291.  
  292. Public Class PaleButton : Inherits Control
  293.  
  294. #Region " Variables "
  295.  
  296.     Private State As MouseMode
  297.     Private _SideImage As Image
  298.     Private _SideImageAlign As SideAligin = SideAligin.Left
  299.     Private _RoundRadius As Integer = 10
  300.  
  301. #End Region
  302.  
  303. #Region " Constructors "
  304.  
  305.     Sub New()
  306.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer Or _
  307.         ControlStyles.SupportsTransparentBackColor, True)
  308.         DoubleBuffered = True
  309.         BackColor = Color.Transparent
  310.         Font = New Font("Myriad Pro", 12, FontStyle.Bold)
  311.         UpdateStyles()
  312.     End Sub
  313.  
  314. #End Region
  315.  
  316. #Region " Properties "
  317.  
  318.     <Browsable(True)>
  319.     Public Property SideImage As Image
  320.         Get
  321.             Return _SideImage
  322.         End Get
  323.         Set(ByVal value As Image)
  324.             _SideImage = value
  325.             Invalidate()
  326.         End Set
  327.     End Property
  328.  
  329.     <Browsable(True)>
  330.     Public Property SideImageAlign As SideAligin
  331.         Get
  332.             Return _SideImageAlign
  333.         End Get
  334.         Set(ByVal value As SideAligin)
  335.             _SideImageAlign = value
  336.             Invalidate()
  337.         End Set
  338.     End Property
  339.  
  340.     Public Property RoundRadius As Integer
  341.         Get
  342.             Return _RoundRadius
  343.         End Get
  344.         Set(ByVal value As Integer)
  345.             _RoundRadius = value
  346.             Invalidate()
  347.         End Set
  348.     End Property
  349.  
  350. #End Region
  351.  
  352. #Region " Enumerators "
  353.  
  354.     Enum SideAligin
  355.         Left
  356.         Right
  357.     End Enum
  358.  
  359. #End Region
  360.  
  361. #Region " Draw Control "
  362.  
  363.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  364.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  365.  
  366.             With G
  367.                 Dim Rect As New Rectangle(1, 1, Width - 2, Height - 2)
  368.                 .SmoothingMode = SmoothingMode.HighQuality
  369.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  370.                 Select Case State
  371.                     Case MouseMode.NormalMode
  372.                         Using LGB As New LinearGradientBrush(Rect, Color.FromArgb(180, 250, 250, 250), Color.FromArgb(200, 250, 250, 250), 90S)
  373.                             FillRoundedPath(G, LGB, Rect, RoundRadius)
  374.                         End Using
  375.                         DrawRoundedPath(G, GetHTMLColor("e0e0e0"), 1, Rect, RoundRadius)
  376.                         CentreString(G, Text, Font, SolidBrushHTMlColor("6a6a6a"), Rect)
  377.                     Case MouseMode.Hovered
  378.                         Using LGB As New LinearGradientBrush(Rect, Color.FromArgb(20, GetHTMLColor("6ebeec")), Color.FromArgb(30, GetHTMLColor("6ebeec")), 120S)
  379.                             .DrawPath(New Pen(LGB, 2), RoundRec(Rect, RoundRadius))
  380.                         End Using
  381.                         CentreString(G, Text, Font, SolidBrushHTMlColor("6a6a6a"), Rect)
  382.                     Case MouseMode.Pushed
  383.                         FillRoundedPath(G, SolidBrushHTMlColor("f3f3f3"), Rect, RoundRadius)
  384.                         DrawRoundedPath(G, GetHTMLColor("e0e0e0"), 1, Rect, RoundRadius)
  385.                         CentreString(G, Text, Font, SolidBrushHTMlColor("6a6a6a"), Rect)
  386.  
  387.                 End Select
  388.             End With
  389.  
  390.             e.Graphics.DrawImage(B, 0, 0)
  391.             G.Dispose()
  392.             B.Dispose()
  393.  
  394.         End Using
  395.     End Sub
  396.  
  397. #End Region
  398.  
  399. #Region " Events "
  400.  
  401.     Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
  402.         MyBase.OnMouseUp(e)
  403.         State = MouseMode.Hovered : Invalidate()
  404.     End Sub
  405.  
  406.     Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
  407.         MyBase.OnMouseUp(e)
  408.         State = MouseMode.Pushed : Invalidate()
  409.     End Sub
  410.  
  411.     Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
  412.         MyBase.OnMouseEnter(e)
  413.         State = MouseMode.Hovered : Invalidate()
  414.     End Sub
  415.  
  416.     Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
  417.         MyBase.OnMouseEnter(e)
  418.         State = MouseMode.NormalMode : Invalidate()
  419.     End Sub
  420.  
  421. #End Region
  422.  
  423. End Class
  424.  
  425. #End Region
  426.  
  427. #Region " Blue Button "
  428.  
  429. Public Class PaleBlueButton : Inherits Control
  430.  
  431. #Region " Variables "
  432.  
  433.     Private State As MouseMode
  434.     Private _SideImage As Image
  435.     Private _SideImageAlign As SideAligin = SideAligin.Left
  436.     Private _RoundRadius As Integer = 10
  437.  
  438. #End Region
  439.  
  440. #Region " Constructors "
  441.  
  442.     Sub New()
  443.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer Or _
  444.          ControlStyles.SupportsTransparentBackColor, True)
  445.         DoubleBuffered = True
  446.         BackColor = Color.Transparent
  447.         Font = New Font("Myriad Pro", 12, FontStyle.Bold)
  448.         UpdateStyles()
  449.     End Sub
  450.  
  451. #End Region
  452.  
  453. #Region " Properties "
  454.  
  455.     <Browsable(True)>
  456.     Public Property SideImage As Image
  457.         Get
  458.             Return _SideImage
  459.         End Get
  460.         Set(ByVal value As Image)
  461.             _SideImage = value
  462.             Invalidate()
  463.         End Set
  464.     End Property
  465.  
  466.     <Browsable(True)>
  467.     Public Property SideImageAlign As SideAligin
  468.         Get
  469.             Return _SideImageAlign
  470.         End Get
  471.         Set(ByVal value As SideAligin)
  472.             _SideImageAlign = value
  473.             Invalidate()
  474.         End Set
  475.     End Property
  476.  
  477.     Public Property RoundRadius As Integer
  478.         Get
  479.             Return _RoundRadius
  480.         End Get
  481.         Set(ByVal value As Integer)
  482.             _RoundRadius = value
  483.             Invalidate()
  484.         End Set
  485.     End Property
  486.  
  487. #End Region
  488.  
  489. #Region " Enumerators "
  490.  
  491.     Enum SideAligin
  492.         Left
  493.         Right
  494.     End Enum
  495.  
  496. #End Region
  497.  
  498. #Region " Draw Control "
  499.  
  500.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  501.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  502.  
  503.             With G
  504.                 Dim Rect As New Rectangle(2, 2, Width - 4, Height - 4)
  505.                 .SmoothingMode = SmoothingMode.HighQuality
  506.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  507.                 Select Case State
  508.                     Case MouseMode.NormalMode
  509.                         FillRoundedPath(G, SolidBrushHTMlColor("5db6ea"), Rect, RoundRadius)
  510.                         Using lgb As New LinearGradientBrush(Rect, Color.FromArgb(30, GetHTMLColor("5db6ea")), Color.FromArgb(30, 250, 250, 250), 90S)
  511.                             FillRoundedPath(G, lgb, Rect, RoundRadius)
  512.                         End Using
  513.                         DrawRoundedPath(G, GetHTMLColor("4ca6db"), 1, Rect, RoundRadius)
  514.                         CentreString(G, Text, Font, Brushes.White, Rect)
  515.                     Case MouseMode.Hovered
  516.                         FillRoundedPath(G, SolidBrushHTMlColor("5db6ea"), Rect, RoundRadius)
  517.                         CentreString(G, Text, Font, SolidBrushHTMlColor("4ca6db"), Rect)
  518.                     Case MouseMode.Pushed
  519.                         FillRoundedPath(G, Brushes.White, Rect, RoundRadius)
  520.                         DrawRoundedPath(G, GetHTMLColor("4ca6db"), 1, Rect, RoundRadius)
  521.                         CentreString(G, Text, Font, Brushes.White, Rect)
  522.  
  523.                 End Select
  524.             End With
  525.  
  526.             e.Graphics.DrawImage(B, 0, 0)
  527.             G.Dispose()
  528.             B.Dispose()
  529.  
  530.         End Using
  531.     End Sub
  532.  
  533. #End Region
  534.  
  535. #Region " Events "
  536.  
  537.     Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
  538.         MyBase.OnMouseUp(e)
  539.         State = MouseMode.Hovered : Invalidate()
  540.     End Sub
  541.  
  542.     Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
  543.         MyBase.OnMouseUp(e)
  544.         State = MouseMode.Pushed : Invalidate()
  545.     End Sub
  546.  
  547.     Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
  548.         MyBase.OnMouseEnter(e)
  549.         State = MouseMode.Hovered : Invalidate()
  550.     End Sub
  551.  
  552.     Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
  553.         MyBase.OnMouseEnter(e)
  554.         State = MouseMode.NormalMode : Invalidate()
  555.     End Sub
  556.  
  557. #End Region
  558.  
  559. End Class
  560.  
  561. #End Region
  562.  
  563. #Region " Seperator "
  564.  
  565. Public Class PaleSeperator : Inherits Control
  566.  
  567. #Region " Variables "
  568.  
  569.     Public Property _SepStyle As Style = Style.Horizental
  570.  
  571. #End Region
  572.  
  573. #Region " Enumerators "
  574.  
  575.     Enum Style
  576.         Horizental
  577.         Vertiacal
  578.     End Enum
  579.  
  580. #End Region
  581.  
  582. #Region " Properties "
  583.  
  584.     Public Property SepStyle As Style
  585.         Get
  586.             Return _SepStyle
  587.         End Get
  588.         Set(ByVal value As Style)
  589.             _SepStyle = value
  590.             Invalidate()
  591.         End Set
  592.     End Property
  593.  
  594. #End Region
  595.  
  596. #Region " Constructors "
  597.  
  598.     Sub New()
  599.         SetStyle(ControlStyles.SupportsTransparentBackColor Or ControlStyles.UserPaint, True)
  600.         DoubleBuffered = True
  601.         BackColor = Color.Transparent
  602.         UpdateStyles()
  603.     End Sub
  604.  
  605. #End Region
  606.  
  607. #Region " Draw Control "
  608.  
  609.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  610.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  611.             With G
  612.                 .SmoothingMode = SmoothingMode.HighQuality
  613.                 Select Case SepStyle
  614.                     Case Style.Horizental
  615.                         .DrawLine(New Pen(SolidBrushHTMlColor("d4d4d4")), 0, 1, Width, 1)
  616.                     Case Style.Vertiacal
  617.                         .DrawLine(New Pen(SolidBrushHTMlColor("d4d4d4")), 1, 0, 1, Height)
  618.                 End Select
  619.             End With
  620.             e.Graphics.DrawImage(B, 0, 0)
  621.             G.Dispose()
  622.             B.Dispose()
  623.         End Using
  624.     End Sub
  625.  
  626. #End Region
  627.  
  628. #Region " Events "
  629.  
  630.     Protected Overrides Sub OnResize(ByVal e As EventArgs)
  631.         MyBase.OnResize(e)
  632.         If SepStyle = Style.Horizental Then
  633.             Height = 4
  634.         Else
  635.             Width = 4
  636.         End If
  637.     End Sub
  638.  
  639. #End Region
  640.  
  641. End Class
  642.  
  643. #End Region
  644.  
  645. #Region " TextBox "
  646.  
  647. Public Class PaleTextbox : Inherits Control
  648.  
  649. #Region " Variables "
  650.  
  651.     Protected WithEvents T As New TextBox
  652.     Private _TextAlign As HorizontalAlignment = HorizontalAlignment.Left
  653.     Private _MaxLength As Integer = 32767
  654.     Private _ReadOnly As Boolean = False
  655.     Private _UseSystemPasswordChar As Boolean = False
  656.     Private _WatermarkText As String = String.Empty
  657.     Private _SideImage As Image
  658.     Protected TBC As Color = GetHTMLColor("ffffff")
  659.     Protected TFC As Color = GetHTMLColor("a5a5a5")
  660.     Protected State As MouseMode = MouseMode.NormalMode
  661.     Private _BackColor As Color = Color.Transparent
  662. #End Region
  663.  
  664. #Region " Native Methods "
  665.  
  666.     Private Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As Integer, <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr)> ByVal lParam As String) As Int32
  667.  
  668. #End Region
  669.  
  670. #Region " Properties "
  671.  
  672.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
  673.     ReadOnly Property BorderStyle As BorderStyle
  674.         Get
  675.             Return BorderStyle.None
  676.         End Get
  677.     End Property
  678.  
  679.     Public Overridable Shadows Property TextAlign() As HorizontalAlignment
  680.         Get
  681.             Return _TextAlign
  682.         End Get
  683.         Set(ByVal value As HorizontalAlignment)
  684.             _TextAlign = value
  685.             If T IsNot Nothing Then
  686.                 T.TextAlign = value
  687.             End If
  688.         End Set
  689.     End Property
  690.  
  691.     Public Overridable Shadows Property MaxLength() As Integer
  692.         Get
  693.             Return _MaxLength
  694.         End Get
  695.         Set(ByVal value As Integer)
  696.             _MaxLength = value
  697.             If T IsNot Nothing Then
  698.                 T.MaxLength = value
  699.             End If
  700.         End Set
  701.     End Property
  702.     Public Shadows Property BackColor As Color
  703.         Get
  704.             Return _BackColor
  705.         End Get
  706.         Set(ByVal value As Color)
  707.             MyBase.BackColor = value
  708.             _BackColor = value
  709.             T.BackColor = value
  710.             Invalidate()
  711.         End Set
  712.     End Property
  713.  
  714.     Public Overridable Shadows Property [ReadOnly]() As Boolean
  715.         Get
  716.             Return _ReadOnly
  717.         End Get
  718.         Set(ByVal value As Boolean)
  719.             _ReadOnly = value
  720.             If T IsNot Nothing Then
  721.                 T.ReadOnly = value
  722.             End If
  723.         End Set
  724.     End Property
  725.  
  726.     Public Overridable Shadows Property UseSystemPasswordChar() As Boolean
  727.         Get
  728.             Return _UseSystemPasswordChar
  729.         End Get
  730.         Set(ByVal value As Boolean)
  731.             _UseSystemPasswordChar = value
  732.             If T IsNot Nothing Then
  733.                 T.UseSystemPasswordChar = value
  734.             End If
  735.         End Set
  736.     End Property
  737.  
  738.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
  739.     Public Overridable Shadows ReadOnly Property Multiline() As Boolean
  740.         Get
  741.             Return False
  742.         End Get
  743.     End Property
  744.  
  745.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
  746.     Public Overridable Shadows ReadOnly Property BackgroundImage() As Image
  747.         Get
  748.             Return Nothing
  749.         End Get
  750.     End Property
  751.  
  752.     Public Overridable Shadows Property Text As String
  753.         Get
  754.             Return MyBase.Text
  755.         End Get
  756.         Set(ByVal value As String)
  757.             MyBase.Text = value
  758.             If T IsNot Nothing Then
  759.                 T.Text = value
  760.             End If
  761.         End Set
  762.     End Property
  763.  
  764.     Public Property WatermarkText As String
  765.         Get
  766.             Return _WatermarkText
  767.         End Get
  768.         Set(ByVal value As String)
  769.             _WatermarkText = value
  770.             SendMessage(T.Handle, &H1501, 0, value)
  771.             Invalidate()
  772.         End Set
  773.     End Property
  774.  
  775.     <Browsable(True)>
  776.     Public Property SideImage As Image
  777.         Get
  778.             Return _SideImage
  779.         End Get
  780.         Set(ByVal value As Image)
  781.             _SideImage = value
  782.             Invalidate()
  783.         End Set
  784.     End Property
  785.  
  786.     Enum SideAligin
  787.         Left
  788.         Right
  789.     End Enum
  790.     Private _SideImageAlign As SideAligin = SideAligin.Left
  791.     <Browsable(True)>
  792.     Public Property SideImageAlign As SideAligin
  793.         Get
  794.             Return _SideImageAlign
  795.         End Get
  796.         Set(ByVal value As SideAligin)
  797.             _SideImageAlign = value
  798.             Invalidate()
  799.         End Set
  800.     End Property
  801.  
  802. #End Region
  803.  
  804. #Region " Constructors "
  805.  
  806.     Sub New()
  807.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
  808.                   ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
  809.                   ControlStyles.SupportsTransparentBackColor, True)
  810.         DoubleBuffered = True
  811.         Font = New Font("Myriad Pro", 11, FontStyle.Bold)
  812.         With T
  813.             .Multiline = False
  814.             .Cursor = Cursors.IBeam
  815.             .BackColor = TBC
  816.             .ForeColor = TFC
  817.             .BorderStyle = BorderStyle.None
  818.             .Location = New Point(7, 7)
  819.             .Font = Font
  820.             .Size = New Size(Width - 10, 30)
  821.             .UseSystemPasswordChar = _UseSystemPasswordChar
  822.         End With
  823.         Size = New Size(135, 30)
  824.         UpdateStyles()
  825.  
  826.     End Sub
  827.  
  828. #End Region
  829.  
  830. #Region " Events "
  831.  
  832.     Private Sub T_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles T.TextChanged
  833.         Text = T.Text
  834.     End Sub
  835.  
  836.     Private Sub T_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles T.KeyDown
  837.         If e.Control AndAlso e.KeyCode = Keys.A Then e.SuppressKeyPress = True
  838.         If e.Control AndAlso e.KeyCode = Keys.C Then
  839.             T.Copy()
  840.             e.SuppressKeyPress = True
  841.         End If
  842.     End Sub
  843.  
  844.     Protected NotOverridable Overrides Sub OnCreateControl()
  845.         MyBase.OnCreateControl()
  846.         If Not Controls.Contains(T) Then Controls.Add(T)
  847.     End Sub
  848.  
  849.     Protected NotOverridable Overrides Sub OnResize(ByVal e As EventArgs)
  850.         MyBase.OnResize(e)
  851.         Height = 30
  852.     End Sub
  853.  
  854.     Private Sub T_MouseHover(ByVal sender As Object, ByVal e As EventArgs) Handles T.MouseHover
  855.         State = MouseMode.Hovered
  856.         Invalidate()
  857.     End Sub
  858.  
  859.     Private Sub T_MouseLeave(ByVal sender As Object, ByVal e As EventArgs) Handles T.MouseLeave
  860.         State = MouseMode.NormalMode
  861.         Invalidate()
  862.     End Sub
  863.  
  864.     Private Sub T_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles T.MouseUp
  865.         State = MouseMode.NormalMode
  866.         Invalidate()
  867.     End Sub
  868.  
  869.     Private Sub T_MouseEnter(ByVal sender As Object, ByVal e As EventArgs) Handles T.MouseEnter
  870.         State = MouseMode.NormalMode
  871.         Invalidate()
  872.     End Sub
  873.  
  874.     Private Sub T_MouseDown(ByVal sender As Object, ByVal e As EventArgs) Handles T.MouseDown
  875.         State = MouseMode.Pushed
  876.         Invalidate()
  877.     End Sub
  878.  
  879. #End Region
  880.  
  881. #Region " Draw Control "
  882.  
  883.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  884.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  885.             Dim Rect As New Rectangle(0, 0, Width - 1, Height - 1)
  886.             Height = 30
  887.  
  888.             With G
  889.  
  890.                 .SmoothingMode = SmoothingMode.HighQuality
  891.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  892.  
  893.                 Select Case State
  894.  
  895.                     Case MouseMode.NormalMode
  896.                         FillRoundedPath(G, Brushes.White, Rect, 5)
  897.                         DrawRoundedPath(G, GetHTMLColor("dfdfdf"), 1, Rect, 5)
  898.                     Case MouseMode.Hovered
  899.                         FillRoundedPath(G, Brushes.White, Rect, 5)
  900.                         Using lgb As New LinearGradientBrush(Rect, Color.FromArgb(50, GetHTMLColor("6ebeec")), Color.FromArgb(50, GetHTMLColor("6ebeec")), 120S)
  901.                             .DrawPath(New Pen(lgb, 2), RoundRec(Rect, 8))
  902.                         End Using
  903.                     Case MouseMode.Pushed
  904.                         FillRoundedPath(G, Brushes.White, Rect, 5)
  905.                         DrawRoundedPath(G, GetHTMLColor("dfdfdf"), 1, Rect, 5)
  906.                 End Select
  907.  
  908.                 If Not SideImage Is Nothing Then
  909.                     If SideImageAlign = SideAligin.Right Then
  910.                         T.Location = New Point(7, 4.5)
  911.                         T.Width = Width - 60
  912.                         .InterpolationMode = InterpolationMode.HighQualityBicubic
  913.                         .DrawImage(SideImage, New Rectangle(Rect.Width - 24, 6, 16, 16))
  914.                     Else
  915.                         T.Location = New Point(33, 4.5)
  916.                         T.Width = Width - 60
  917.                         .InterpolationMode = InterpolationMode.HighQualityBicubic
  918.                         .DrawImage(SideImage, New Rectangle(8, 6, 16, 16))
  919.                     End If
  920.  
  921.                 Else
  922.                     T.Location = New Point(7, 4.5)
  923.                     T.Width = Width - 10
  924.                 End If
  925.  
  926.                 If Not ContextMenuStrip Is Nothing Then T.ContextMenuStrip = ContextMenuStrip
  927.  
  928.             End With
  929.  
  930.             e.Graphics.DrawImage(B.Clone(), 0, 0)
  931.             G.Dispose() : B.Dispose()
  932.  
  933.         End Using
  934.     End Sub
  935.  
  936. #End Region
  937.  
  938. End Class
  939.  
  940. #End Region
  941.  
  942. #Region " CheckBox "
  943.  
  944. Public Class PaleCheckBox : Inherits Control
  945.  
  946. #Region " Variables "
  947.  
  948.     Private _Checked As Boolean
  949.     Protected State As MouseMode = MouseMode.NormalMode
  950.  
  951. #End Region
  952.  
  953. #Region " Events "
  954.  
  955.     Event CheckedChanged(ByVal sender As Object)
  956.  
  957. #End Region
  958.  
  959. #Region " Properties "
  960.  
  961.     Property Checked As Boolean
  962.         Get
  963.             Return _Checked
  964.         End Get
  965.         Set(ByVal value As Boolean)
  966.             _Checked = value
  967.             RaiseEvent CheckedChanged(Me)
  968.             Invalidate()
  969.         End Set
  970.     End Property
  971.  
  972. #End Region
  973.  
  974. #Region " Constructors "
  975.  
  976.     Sub New()
  977.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or _
  978.      ControlStyles.SupportsTransparentBackColor Or ControlStyles.UserPaint, True)
  979.         DoubleBuffered = True
  980.         Cursor = Cursors.Hand
  981.         BackColor = Color.Transparent
  982.         Font = New Font("Myriad Pro", 9, FontStyle.Regular)
  983.         UpdateStyles()
  984.     End Sub
  985.  
  986. #End Region
  987.  
  988. #Region " Draw Control "
  989.  
  990.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  991.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  992.             G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  993.             G.SmoothingMode = SmoothingMode.AntiAlias
  994.             Using CheckBorder As New GraphicsPath With {.FillMode = FillMode.Winding}
  995.                 CheckBorder.AddArc(0, 0, 10, 8, 180, 90)
  996.                 CheckBorder.AddArc(8, 0, 8, 10, -90, 90)
  997.                 CheckBorder.AddArc(8, 8, 8, 8, 0, 70)
  998.                 CheckBorder.AddArc(0, 8, 10, 8, 90, 90)
  999.                 CheckBorder.CloseAllFigures()
  1000.                 G.FillPath(Brushes.White, CheckBorder)
  1001.                 G.DrawPath(PenHTMlColor("d9d9d9", 1.5), CheckBorder)
  1002.                 If Checked Then
  1003.                     FillRoundedPath(G, SolidBrushHTMlColor("5db5e9"), New Rectangle(3.5, 3.5, 8.5, 8.5), 2)
  1004.                     DrawRoundedPath(G, GetHTMLColor("3db3e5"), 1, New Rectangle(3.5, 3.5, 8.5, 8.5), 2)
  1005.                 End If
  1006.             End Using
  1007.  
  1008.             G.DrawString(Text, Font, SolidBrushHTMlColor("a5a5a5"), New Rectangle(18, 1.4, Width, Height - 2), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Center})
  1009.             e.Graphics.DrawImage(B, 0, 0)
  1010.             G.Dispose()
  1011.             B.Dispose()
  1012.         End Using
  1013.     End Sub
  1014.  
  1015. #End Region
  1016.  
  1017. #Region " Events "
  1018.  
  1019.     Protected Overrides Sub OnClick(ByVal e As EventArgs)
  1020.         _Checked = Not Checked
  1021.         RaiseEvent CheckedChanged(Me)
  1022.         MyBase.OnClick(e)
  1023.         Invalidate()
  1024.     End Sub
  1025.  
  1026.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  1027.         Invalidate() : MyBase.OnTextChanged(e)
  1028.     End Sub
  1029.  
  1030.     Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
  1031.         MyBase.OnResize(e)
  1032.         Height = 20
  1033.         Invalidate()
  1034.     End Sub
  1035.  
  1036.     Protected Overrides Sub OnMouseHover(ByVal e As EventArgs)
  1037.         MyBase.OnMouseHover(e)
  1038.         State = MouseMode.Hovered
  1039.         Invalidate()
  1040.     End Sub
  1041.  
  1042.     Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
  1043.         MyBase.OnMouseLeave(e)
  1044.         State = MouseMode.NormalMode
  1045.         Invalidate()
  1046.     End Sub
  1047.  
  1048. #End Region
  1049.  
  1050.  
  1051. End Class
  1052.  
  1053. #End Region
  1054.  
  1055. #Region " Label "
  1056.  
  1057. <DefaultEvent("TextChanged")> Public Class PaleLabel : Inherits Control
  1058.  
  1059. #Region " Variables "
  1060.  
  1061.     Private _ColorStyle As Style = Style.Style1
  1062.  
  1063. #End Region
  1064.  
  1065. #Region " Properties "
  1066.  
  1067.     Public Property ColorStyle As Style
  1068.         Get
  1069.             Return _ColorStyle
  1070.         End Get
  1071.         Set(ByVal value As Style)
  1072.             _ColorStyle = value
  1073.             Invalidate()
  1074.         End Set
  1075.     End Property
  1076.  
  1077.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
  1078.     Public Overridable Shadows ReadOnly Property ForeColor As Color
  1079.         Get
  1080.             Return Color.Transparent
  1081.         End Get
  1082.     End Property
  1083.  
  1084. #End Region
  1085.  
  1086. #Region " Enumerators "
  1087.  
  1088.     Public Enum Style As Byte
  1089.         Style1
  1090.         Style2
  1091.         Style3
  1092.     End Enum
  1093.  
  1094. #End Region
  1095.  
  1096. #Region " Events "
  1097.  
  1098.     Protected Overrides Sub OnTextChanged(ByVal e As EventArgs)
  1099.         MyBase.OnTextChanged(e)
  1100.         Invalidate()
  1101.     End Sub
  1102.  
  1103.     Protected Overrides Sub OnResize(ByVal e As EventArgs)
  1104.         MyBase.OnResize(e)
  1105.         Height = Font.Height
  1106.     End Sub
  1107.  
  1108. #End Region
  1109.  
  1110. #Region " Constructors "
  1111.  
  1112.     Sub New()
  1113.         SetStyle(ControlStyles.SupportsTransparentBackColor Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer, True)
  1114.         DoubleBuffered = True
  1115.         Font = New Font("Myriad Pro", 9, FontStyle.Regular)
  1116.         UpdateStyles()
  1117.     End Sub
  1118.  
  1119. #End Region
  1120.  
  1121. #Region " Draw Control "
  1122.  
  1123.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  1124.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  1125.             With G
  1126.                 .SmoothingMode = SmoothingMode.AntiAlias
  1127.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  1128.                 Select Case ColorStyle
  1129.                     Case Style.Style1
  1130.                         .DrawString(Text, Font, SolidBrushHTMlColor("898989"), ClientRectangle)
  1131.                     Case Style.Style2
  1132.                         .DrawString(Text, Font, SolidBrushHTMlColor("606060"), ClientRectangle)
  1133.                     Case Style.Style3
  1134.                         .DrawString(Text, Font, SolidBrushHTMlColor("2e8fc7"), ClientRectangle)
  1135.                 End Select
  1136.             End With
  1137.             e.Graphics.DrawImage(B, 0, 0)
  1138.             G.Dispose()
  1139.             B.Dispose()
  1140.         End Using
  1141.     End Sub
  1142.  
  1143. #End Region
  1144.  
  1145. End Class
  1146.  
  1147. #End Region
  1148.  
  1149. #Region " Close "
  1150.  
  1151. Public Class PaleClose : Inherits Control
  1152.  
  1153. #Region " Variables "
  1154.  
  1155.     Private IMG As String = _
  1156.         "iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADoTaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6MDk6MTUgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMjlUMDY6NTE6MTktMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTEyLTI5VDA2OjUxOjE5LTA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0xMi0yOVQwNjo1MToxOS0wODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6Nzk1OWQ2MDQtZTAyMC1iZDQ0LTkwYzItOTgyMzJlYTY4ZTg2PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmRmZjgyZmQzLTlhZmEtM2M0NC1hZjlhLTRjZGZmNzhiOWRmNzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmRmZjgyZmQzLTlhZmEtM2M0NC1hZjlhLTRjZGZmNzhiOWRmNzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpkZmY4MmZkMy05YWZhLTNjNDQtYWY5YS00Y2RmZjc4YjlkZjc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMTItMjlUMDY6NTE6MTktMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc5NTlkNjA0LWUwMjAtYmQ0NC05MGMyLTk4MjMyZWE2OGU4Njwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMi0yOVQwNjo1MToxOS0wODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xNTwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+t8wKZgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA5UlEQVR42oTSIUvDQRjH8c9ORJNYhL0BQbAYVnwNZuM/GUWYTUXYwtjEoGA2GtRg3CswuJcgglFkYFLEtFn+G+d5cE+65/n+vnfhnkY1HA9w5G/9YBOvWMEzmklmENDHewKWcVWfuxnxDf2ATxz7Xzs4xUGGneCrUQ3HEDBCS7lG2MY01IMJDjEtiFO0Z7kQgUfcF+QbPM2akMDbgnwXN7G8gE5B7sZOLO9hqyC3UKXyKnqZ8CQzO6sXZy53sJaEvrGbuaBZ/7OADexnXujhAdcZ1sZ6wCUWE/iCi2ibPhK+hPPfAQAi6StkWJPjCAAAAABJRU5ErkJggg=="
  1157.  
  1158. #End Region
  1159.  
  1160. #Region " Draw Control "
  1161.  
  1162.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  1163.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  1164.  
  1165.             With G
  1166.  
  1167.                 .SmoothingMode = SmoothingMode.HighQuality
  1168.                 .InterpolationMode = InterpolationMode.High
  1169.  
  1170.                 DrawImageFromBase64(G, IMG, ClientRectangle)
  1171.             End With
  1172.  
  1173.             e.Graphics.DrawImage(B, 0, 0)
  1174.             G.Dispose()
  1175.             B.Dispose()
  1176.         End Using
  1177.  
  1178.     End Sub
  1179.  
  1180. #End Region
  1181.  
  1182. #Region " Constructors "
  1183.  
  1184.     Sub New()
  1185.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer Or _
  1186.          ControlStyles.SupportsTransparentBackColor, True)
  1187.         DoubleBuffered = True
  1188.         BackColor = Color.Transparent
  1189.         Cursor = Cursors.Hand
  1190.         UpdateStyles()
  1191.     End Sub
  1192.  
  1193. #End Region
  1194.  
  1195. #Region " Events "
  1196.  
  1197.     Protected Overrides Sub OnResize(ByVal e As EventArgs)
  1198.         Size = New Size(15, 13)
  1199.     End Sub
  1200.  
  1201.     Protected Overrides Sub OnClick(ByVal e As EventArgs)
  1202.         MyBase.OnClick(e)
  1203.         Environment.Exit(0)
  1204.         Application.Exit()
  1205.     End Sub
  1206.  
  1207. #End Region
  1208.  
  1209. End Class
  1210.  
  1211. #End Region
  1212.  
  1213. #Region " RadioButton "
  1214.  
  1215. <DefaultEvent("CheckedChanged")> Public Class PaleRadioButton : Inherits Control
  1216.  
  1217. #Region " Variables "
  1218.  
  1219.     Private _Checked As Boolean
  1220.     Protected _Group As Integer = 1
  1221.     Protected State As MouseMode = MouseMode.NormalMode
  1222.  
  1223. #End Region
  1224.  
  1225. #Region " Events "
  1226.  
  1227.     Event CheckedChanged(ByVal sender As Object)
  1228.  
  1229. #End Region
  1230.  
  1231. #Region " Properties "
  1232.  
  1233.     Property Checked As Boolean
  1234.         Get
  1235.             Return _Checked
  1236.         End Get
  1237.         Set(ByVal value As Boolean)
  1238.             _Checked = value
  1239.             RaiseEvent CheckedChanged(Me)
  1240.             Invalidate()
  1241.         End Set
  1242.     End Property
  1243.  
  1244.     Property Group As Integer
  1245.         Get
  1246.             Return _Group
  1247.         End Get
  1248.         Set(ByVal value As Integer)
  1249.             _Group = value
  1250.             Invalidate()
  1251.         End Set
  1252.     End Property
  1253.  
  1254.  
  1255. #End Region
  1256.  
  1257. #Region " Constructors "
  1258.  
  1259.     Sub New()
  1260.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or _
  1261.     ControlStyles.SupportsTransparentBackColor Or ControlStyles.UserPaint, True)
  1262.         DoubleBuffered = True
  1263.         Cursor = Cursors.Hand
  1264.         BackColor = Color.Transparent
  1265.         Font = New Font("Myriad Pro", 9, FontStyle.Regular)
  1266.         UpdateStyles()
  1267.     End Sub
  1268.  
  1269. #End Region
  1270.  
  1271. #Region " Draw Control "
  1272.  
  1273.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  1274.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  1275.             Dim R As New Rectangle(1, 1, 18, 18)
  1276.             With G
  1277.                 .SmoothingMode = SmoothingMode.HighQuality
  1278.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  1279.                 If Checked Then
  1280.                     .FillEllipse(SolidBrushHTMlColor("5db5e9"), New Rectangle(4, 4, 12, 12))
  1281.                     .DrawEllipse(PenHTMlColor("4ca6db", 2), R)
  1282.                 Else
  1283.                     .FillEllipse(Brushes.White, New Rectangle(1, 1, 18, 18))
  1284.                     .DrawEllipse(PenHTMlColor("d9d9d9", 2), R)
  1285.                 End If
  1286.                 .DrawString(Text, Font, SolidBrushHTMlColor("a5a5a5"), New Rectangle(21, 1.5, Width, Height - 2), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Center})
  1287.             End With
  1288.  
  1289.             e.Graphics.DrawImage(B, 0, 0)
  1290.             G.Dispose()
  1291.             B.Dispose()
  1292.  
  1293.         End Using
  1294.     End Sub
  1295.  
  1296. #End Region
  1297.  
  1298. #Region " Events "
  1299.  
  1300.     Private Sub UpdateState()
  1301.         If Not IsHandleCreated OrElse Not Checked Then Return
  1302.         For Each C As Control In Parent.Controls
  1303.             If C IsNot Me AndAlso TypeOf C Is PaleRadioButton AndAlso DirectCast(C, PaleRadioButton).Group = _Group Then
  1304.                 DirectCast(C, PaleRadioButton).Checked = False
  1305.             End If
  1306.         Next
  1307.     End Sub
  1308.  
  1309.     Protected Overrides Sub OnClick(ByVal e As EventArgs)
  1310.         _Checked = Not Checked
  1311.         UpdateState()
  1312.         MyBase.OnClick(e)
  1313.         Invalidate()
  1314.     End Sub
  1315.  
  1316.     Protected Overrides Sub OnCreateControl()
  1317.         UpdateState()
  1318.         MyBase.OnCreateControl()
  1319.     End Sub
  1320.  
  1321.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  1322.         Invalidate() : MyBase.OnTextChanged(e)
  1323.     End Sub
  1324.  
  1325.     Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
  1326.         MyBase.OnResize(e)
  1327.         Height = 21
  1328.         Invalidate()
  1329.     End Sub
  1330.  
  1331. #End Region
  1332.  
  1333. End Class
  1334.  
  1335. #End Region
  1336.  
  1337. #Region " ComboBox "
  1338.  
  1339. Public Class PaleComboBox : Inherits ComboBox
  1340.  
  1341. #Region " Variables "
  1342.  
  1343.     Private _StartIndex As Integer = 0
  1344.  
  1345. #End Region
  1346.  
  1347. #Region " Constructors "
  1348.  
  1349.     Sub New()
  1350.  
  1351.         SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or _
  1352.                   ControlStyles.OptimizedDoubleBuffer Or ControlStyles.SupportsTransparentBackColor, True)
  1353.         BackColor = Color.Transparent
  1354.         Font = New Font("Myriad Pro", 11)
  1355.         DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
  1356.         DoubleBuffered = True
  1357.         StartIndex = 0
  1358.         DropDownHeight = 100
  1359.         DropDownStyle = ComboBoxStyle.DropDownList
  1360.         UpdateStyles()
  1361.  
  1362.     End Sub
  1363.  
  1364. #End Region
  1365.  
  1366. #Region " Properties "
  1367.  
  1368.     Private Property StartIndex As Integer
  1369.         Get
  1370.             Return _StartIndex
  1371.         End Get
  1372.         Set(ByVal value As Integer)
  1373.             _StartIndex = value
  1374.             Try
  1375.                 MyBase.SelectedIndex = value
  1376.             Catch
  1377.             End Try
  1378.             Invalidate()
  1379.         End Set
  1380.     End Property
  1381.  
  1382. #End Region
  1383.  
  1384.     Protected Overrides Sub OnDrawItem(ByVal e As DrawItemEventArgs)
  1385.         Try
  1386.             Dim G As Graphics = e.Graphics
  1387.             With G
  1388.                 .SmoothingMode = SmoothingMode.AntiAlias
  1389.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  1390.                 If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
  1391.                     .FillRectangle(SolidBrushHTMlColor("5db5e9"), e.Bounds)
  1392.                     .DrawRectangle(PenHTMlColor("5db5e9", 1), e.Bounds)
  1393.                     .DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), Font, Brushes.White, 1, e.Bounds.Y + 3)
  1394.                 Else
  1395.                     .FillRectangle(Brushes.White, e.Bounds)
  1396.                     .DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), Font, SolidBrushHTMlColor("a5a5a5"), 1, e.Bounds.Y + 3)
  1397.                 End If
  1398.             End With
  1399.         Catch
  1400.         End Try
  1401.         Invalidate()
  1402.     End Sub
  1403.  
  1404.     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
  1405.         Using B As New Bitmap(Width, Height), G As Graphics = Graphics.FromImage(B)
  1406.             Dim Rect As New Rectangle(1, 1, Width - 2.5, Height - 2.5)
  1407.             With G
  1408.                 .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
  1409.                 .SmoothingMode = SmoothingMode.AntiAlias
  1410.                 FillRoundedPath(G, Brushes.White, Rect, 5)
  1411.                 DrawRoundedPath(G, GetHTMLColor("d9d9d9"), 1.5, Rect, 5)
  1412.                 FillRoundedPath(G, SolidBrushHTMlColor("5db5e9"), New Rectangle(Width - 30, 1.4, 29, Height - 2.5), 5)
  1413.                 DrawRoundedPath(G, GetHTMLColor("4ca6db"), 1.5, New Rectangle(Width - 30, 1.4, 29, Height - 2.5), 5)
  1414.                 DrawTriangle(G, Color.White, 1.5, _
  1415.                           New Point(Width - 20, 12), New Point(Width - 16, 16), _
  1416.                           New Point(Width - 16, 16), New Point(Width - 12, 12), _
  1417.                           New Point(Width - 16, 17), New Point(Width - 16, 16) _
  1418.                           )
  1419.                 .DrawString(Text, Font, New SolidBrush(GetHTMLColor("a5a5a5")), New Rectangle(7, 1.5, Width - 1, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
  1420.             End With
  1421.             e.Graphics.DrawImage(B, 0, 0)
  1422.             G.Dispose()
  1423.             B.Dispose()
  1424.         End Using
  1425.     End Sub
  1426.  
  1427. #Region " Events "
  1428.  
  1429.     Protected Overrides Sub OnResize(ByVal e As EventArgs)
  1430.         MyBase.OnResize(e)
  1431.         Height = 27
  1432.         Invalidate()
  1433.     End Sub
  1434.  
  1435. #End Region
  1436.  
  1437. End Class
  1438.  
  1439. #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement