THE_LORD

Pale Theme

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