الوسوم:
  1. ●¦ Snharib ¦●

    ●¦ Snharib ¦● V • I • P

    الأنتساب:
    ‏8 يناير 2014
    المشاركات:
    1,128
    الإعجابات المتلقاة:
    1,786
    نقاط الجائزة:
    113
    الإقامة:
    || Iraq ||

    [​IMG]

    أليوم جايب لكم ثيم (الفيسبوك).

    طبعاً اكثر الأشخصاص يستخدمون هذه الثيم بـالبرامج الوهمية.

    صورة الثيمْ

    [​IMG]

    [​IMG]

    وهذه كلاس ـألثيم..
    [NEW]Imports System.Drawing.Text
    Imports System.Drawing.Drawing2D
    Imports System.ComponentModel
    Imports System.Drawing.Design

    ''' <summary>
    ''' Facebook GDI Theme
    ''' Creator: Xertz (HF)
    ''' Version: 1.1
    ''' Date Created: 15/12/2013
    ''' Date Changed: 15/12/2013
    ''' UID: 1602992
    ''' For any bugs / errors, PM me.
    ''' </summary>
    ''' <remarks></remarks>

    Module DrawHelpers

    #Region "Functions"

    Dim Height As Integer
    Dim Width As Integer

    Public Function RoundRec(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
    Dim P As GraphicsPath = New GraphicsPath()
    Dim ArcRectangleWidth As Integer = Curve * 2
    P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
    P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
    P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
    P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
    P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
    Return P
    End Function

    Public Function RoundRect(x!, y!, w!, h!, Optional r! = 0.3, Optional TL As Boolean = True, Optional TR As Boolean = True, Optional BR As Boolean = True, Optional BL As Boolean = True) As GraphicsPath
    Dim d! = Math.Min(w, h) * r, xw = x + w, yh = y + h
    RoundRect = New GraphicsPath

    With RoundRect
    If TL Then .AddArc(x, y, d, d, 180, 90) Else .AddLine(x, y, x, y)
    If TR Then .AddArc(xw - d, y, d, d, 270, 90) Else .AddLine(xw, y, xw, y)
    If BR Then .AddArc(xw - d, yh - d, d, d, 0, 90) Else .AddLine(xw, yh, xw, yh)
    If BL Then .AddArc(x, yh - d, d, d, 90, 90) Else .AddLine(x, yh, x, yh)

    .CloseFigure()
    End With
    End Function

    Enum MouseState As Byte
    None = 0
    Over = 1
    Down = 2
    Block = 3
    End Enum

    #End Region

    End Module

    Public Class FacebookThemeContainer
    Inherits ContainerControl

    #Region "Declarations"
    Private _MainColour As Color = Color.FromArgb(252, 252, 252)
    Private _HeaderColour As Color = Color.FromArgb(67, 96, 156)
    Private _BorderColour As Color = Color.DarkGray
    Private _MainBrushColour As New SolidBrush(_MainColour)
    Private _HeaderBrushColour As New SolidBrush(_HeaderColour)
    Private F As New Font("Tahoma", 13, FontStyle.Bold)
    Private Cap As Boolean = False
    Private MoveHeight As Integer = 45
    Private MouseP As Point = New Point(0, 0)
    #End Region

    #Region "Mouse States"
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
    MyBase.OnMouseDown(e)
    If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) Then
    Cap = True : MouseP = e.Location
    End If
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
    MyBase.OnMouseUp(e) : Cap = False
    End Sub
    Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
    MyBase.OnMouseMove(e)
    If Cap Then
    Parent.Location = MousePosition - MouseP
    End If
    End Sub
    #End Region

    #Region "Colour Properties"
    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _MainColour
    End Get
    Set(value As Color)
    _MainColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property HeaderColour As Color
    Get
    Return _HeaderColour
    End Get
    Set(value As Color)
    _HeaderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    #End Region

    #Region "Draw Control"
    Sub New()

    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)

    Me.DoubleBuffered = True
    Me.BackColor = _MainColour
    Me.Dock = DockStyle.Fill
    End Sub

    Protected Overrides Sub OnCreateControl()
    MyBase.OnCreateControl()
    ParentForm.FormBorderStyle = FormBorderStyle.None
    ParentForm.AllowTransparency = False
    ParentForm.TransparencyKey = Color.Fuchsia
    ParentForm.FindForm.StartPosition = FormStartPosition.CenterScreen
    Dock = DockStyle.Fill
    Invalidate()
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim G As Graphics
    G = e.Graphics
    G.SmoothingMode = SmoothingMode.HighQuality
    G.FillRectangle(_HeaderBrushColour, New Rectangle(-1, -1, Me.Width + 1, 45))
    G.DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(-1, 45), New Point(Me.Width - 1, 45))
    G.DrawRectangle(New Pen(New SolidBrush(_BorderColour)), New Rectangle(0, 0, Width - 1, Height - 1))
    Dim I As Bitmap = Me.ParentForm.Icon.ToBitmap
    Dim IM As Image = I
    Dim FormText As String = Me.ParentForm.Text
    G.TextRenderingHint = TextRenderingHint.AntiAlias
    G.DrawString(FormText, F, New SolidBrush(Color.FromArgb(220, 220, 220)), New Point(43, 11))
    G.DrawImage(IM, New Rectangle(8, 6, 32, 32))
    MyBase.OnPaint(e)
    I.Dispose()
    IM.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookButton
    Inherits Control

    #Region "Declarations"
    Private State As MouseState = MouseState.None
    Private _MainColour As Color = Color.FromArgb(70, 98, 158)
    Private _TextColour As Color = Color.FromArgb(255, 255, 255)
    Private _HoverColour As Color = Color.FromArgb(55, 83, 158)
    #End Region

    #Region "Mouse States"

    Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    State = MouseState.Down : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseEnter(e As EventArgs)
    MyBase.OnMouseEnter(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(e As EventArgs)
    MyBase.OnMouseLeave(e)
    State = MouseState.None : Invalidate()
    End Sub

    #End Region

    #Region "Colour Properties"

    <Category("Colours"), Description("Background Colour Selection")> _
    Public Property BackgroundColour As Color
    Get
    Return _MainColour
    End Get
    Set(value As Color)
    _MainColour = value
    End Set
    End Property

    <Category("Colours"), Description("Text Colour Selection")> _
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property

    #End Region

    #Region "Draw Control"

    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    Size = New Size(135, 32)
    BackColor = Color.Transparent
    Font = New Font("Klavika", 9)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim GP, GP1 As New GraphicsPath
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    Select Case State
    Case MouseState.None
    GP = DrawHelpers.RoundRec(Base, 2)
    .FillPath(New SolidBrush(_MainColour), GP)
    .DrawString(Text, Font, New SolidBrush(_TextColour), Base, New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
    Case MouseState.Over
    GP = DrawHelpers.RoundRec(Base, 2)
    .FillPath(New SolidBrush(_HoverColour), GP)
    .DrawString(Text, Font, New SolidBrush(_TextColour), Base, New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
    Case MouseState.Down
    GP = DrawHelpers.RoundRec(Base, 2)
    .FillPath(New SolidBrush(_HoverColour), GP)
    .DrawString(Text, Font, New SolidBrush(_TextColour), Base, New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
    GP1 = DrawHelpers.RoundRec(New Rectangle(0, 0, Width, Height), 3)
    .DrawPath(New Pen(New SolidBrush(Color.LightYellow), 2), GP1)
    End Select
    End With
    MyBase.OnPaint(e)
    e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub

    #End Region

    End Class

    <DefaultEvent("TextChanged")>
    Public Class FacebookTextBox
    Inherits Control

    #Region "Declarations"
    Private State As MouseState = MouseState.None
    Private WithEvents TB As Windows.Forms.TextBox
    Private _BaseColour As Color = Color.FromArgb(255, 255, 255)
    Private _TextColour As Color = Color.FromArgb(50, 50, 50)
    Private _BorderColour As Color = Color.FromArgb(180, 187, 205)
    #End Region

    #Region "TextBox Properties"

    Private _TextAlign As HorizontalAlignment = HorizontalAlignment.Left
    <Category("Options")>
    Property TextAlign() As HorizontalAlignment
    Get
    Return _TextAlign
    End Get
    Set(ByVal value As HorizontalAlignment)
    _TextAlign = value
    If TB IsNot Nothing Then
    TB.TextAlign = value
    End If
    End Set
    End Property
    Private _MaxLength As Integer = 32767
    <Category("Options")>
    Property MaxLength() As Integer
    Get
    Return _MaxLength
    End Get
    Set(ByVal value As Integer)
    _MaxLength = value
    If TB IsNot Nothing Then
    TB.MaxLength = value
    End If
    End Set
    End Property
    Private _ReadOnly As Boolean
    <Category("Options")>
    Property [ReadOnly]() As Boolean
    Get
    Return _ReadOnly
    End Get
    Set(ByVal value As Boolean)
    _ReadOnly = value
    If TB IsNot Nothing Then
    TB.ReadOnly = value
    End If
    End Set
    End Property
    Private _UseSystemPasswordChar As Boolean
    <Category("Options")>
    Property UseSystemPasswordChar() As Boolean
    Get
    Return _UseSystemPasswordChar
    End Get
    Set(ByVal value As Boolean)
    _UseSystemPasswordChar = value
    If TB IsNot Nothing Then
    TB.UseSystemPasswordChar = value
    End If
    End Set
    End Property
    Private _Multiline As Boolean
    <Category("Options")>
    Property Multiline() As Boolean
    Get
    Return _Multiline
    End Get
    Set(ByVal value As Boolean)
    _Multiline = value
    If TB IsNot Nothing Then
    TB.Multiline = value

    If value Then
    TB.Height = Height - 11
    Else
    Height = TB.Height + 11
    End If

    End If
    End Set
    End Property
    <Category("Options")>
    Overrides Property Text As String
    Get
    Return MyBase.Text
    End Get
    Set(ByVal value As String)
    MyBase.Text = value
    If TB IsNot Nothing Then
    TB.Text = value
    End If
    End Set
    End Property
    <Category("Options")>
    Overrides Property Font As Font
    Get
    Return MyBase.Font
    End Get
    Set(ByVal value As Font)
    MyBase.Font = value
    If TB IsNot Nothing Then
    TB.Font = value
    TB.Location = New Point(3, 5)
    TB.Width = Width - 6

    If Not _Multiline Then
    Height = TB.Height + 11
    End If
    End If
    End Set
    End Property

    Protected Overrides Sub OnCreateControl()
    MyBase.OnCreateControl()
    If Not Controls.Contains(TB) Then
    Controls.Add(TB)
    End If
    End Sub
    Private Sub OnBaseTextChanged(ByVal s As Object, ByVal e As EventArgs)
    Text = TB.Text
    End Sub
    Private Sub OnBaseKeyDown(ByVal s As Object, ByVal e As KeyEventArgs)
    If e.Control AndAlso e.KeyCode = Keys.A Then
    TB.SelectAll()
    e.SuppressKeyPress = True
    End If
    If e.Control AndAlso e.KeyCode = Keys.C Then
    TB.Copy()
    e.SuppressKeyPress = True
    End If
    End Sub
    Protected Overrides Sub OnResize(ByVal e As EventArgs)
    TB.Location = New Point(5, 5)
    TB.Width = Width - 10

    If _Multiline Then
    TB.Height = Height - 11
    Else
    Height = TB.Height + 11
    End If

    MyBase.OnResize(e)
    End Sub

    #End Region

    #Region "Colour Properties"

    <Category("Colours")>
    Public Property BackgroundColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    #End Region

    #Region "Mouse States"

    Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    State = MouseState.Down : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    State = MouseState.Over : TB.Focus() : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(e As EventArgs)
    MyBase.OnMouseLeave(e)
    State = MouseState.None : Invalidate()
    End Sub

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    BackColor = Color.Transparent
    TB = New Windows.Forms.TextBox
    TB.Font = New Font("Segoe UI", 10)
    TB.Text = Text
    TB.BackColor = _BaseColour
    TB.ForeColor = _TextColour
    TB.MaxLength = _MaxLength
    TB.Multiline = _Multiline
    TB.ReadOnly = _ReadOnly
    TB.UseSystemPasswordChar = _UseSystemPasswordChar
    TB.BorderStyle = BorderStyle.None
    TB.Location = New Point(5, 5)
    TB.Width = Width - 10
    If _Multiline Then
    TB.Height = Height - 11
    Else
    Height = TB.Height + 11
    End If
    AddHandler TB.TextChanged, AddressOf OnBaseTextChanged
    AddHandler TB.KeyDown, AddressOf OnBaseKeyDown
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    TB.BackColor = _BaseColour
    TB.ForeColor = _TextColour
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .DrawRectangle(New Pen(New SolidBrush(_BorderColour)), New Rectangle(0, 0, Width, Height))
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookGroupBox
    Inherits ContainerControl

    #Region "Declarations"
    Private _MainColour As Color = Color.FromArgb(237, 239, 244)
    Private _HeaderColour As Color = Color.FromArgb(109, 132, 180)
    Private _TextColour As Color = Color.FromArgb(255, 255, 255)
    Private _CircleColour As Color = Color.FromArgb(93, 170, 64)
    Private _BorderColour As Color = Color.FromArgb(14, 44, 109)
    Private _DrawCircle As Boolean = True
    #End Region

    #Region "Colour & Other Properties"
    <Category("Colours")>
    Public Property MainColour As Color
    Get
    Return _MainColour
    End Get
    Set(value As Color)
    _MainColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property HeaderColour As Color
    Get
    Return _HeaderColour
    End Get
    Set(value As Color)
    _HeaderColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property CircleColour As Color
    Get
    Return _CircleColour
    End Get
    Set(value As Color)
    _CircleColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Misc")>
    Public Property DrawCircle As Boolean
    Get
    Return _DrawCircle
    End Get
    Set(value As Boolean)
    _DrawCircle = value
    End Set
    End Property
    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    BackColor = Color.Transparent
    Size = New Size(160, 110)
    Font = New Font("Segoe UI", 10, FontStyle.Bold)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    Dim Circle As New Rectangle(8, 8, 10, 10)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    .FillRectangle(New SolidBrush(_MainColour), Base)
    .FillRectangle(New SolidBrush(_HeaderColour), New Rectangle(0, 0, Width - 1, 26))
    .DrawRectangle(New Pen(New SolidBrush(_BorderColour)), New Rectangle(0, 0, Width, Height))
    If _DrawCircle Then
    .FillEllipse(New SolidBrush(_CircleColour), Circle)
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(23, 4, Width, Height), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
    Else
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(5, 4, Width, Height), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
    End If
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookCloseButton
    Inherits Control

    #Region "Declarations"
    Private State As MouseState = MouseState.None
    Private x As Integer
    Private _BackColour As Color = Color.FromArgb(67, 96, 156)
    #End Region

    #Region "Mouse States"

    Protected Overrides Sub OnMouseEnter(e As EventArgs)
    MyBase.OnMouseEnter(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    State = MouseState.Down : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(e As EventArgs)
    MyBase.OnMouseLeave(e)
    State = MouseState.None : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    x = e.X : Invalidate()
    End Sub

    Protected Overrides Sub OnClick(e As EventArgs)
    MyBase.OnClick(e)
    Environment.Exit(0)
    End Sub

    #End Region

    #Region "Colour Properties"
    <Category("Colors")> _
    Public Property BaseColour As Color
    Get
    Return _BackColour
    End Get
    Set(value As Color)
    _BackColour = value
    End Set
    End Property
    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    BackColor = Color.White
    Size = New Size(20, 20)
    Anchor = AnchorStyles.Top Or AnchorStyles.Right
    Font = New Font("Marlett", 20)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G As Graphics = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width, Height)
    With G
    .SmoothingMode = 2
    .PixelOffsetMode = 2
    .TextRenderingHint = 5
    .Clear(BackColor)
    .FillRectangle(New SolidBrush(_BackColour), Base)
    Select Case State
    Case MouseState.None
    .DrawString("r", Font, New SolidBrush(Color.FromArgb(211, 218, 233)), New Rectangle(0, 0, Width, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
    Case MouseState.Over
    .DrawString("r", Font, New SolidBrush(Color.FromArgb(151, 158, 172)), New Rectangle(0, 0, Width, Height), New StringFormat With {.LineAlignment = StringAlignment.Near, .Alignment = StringAlignment.Center})
    End Select
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookTabControlVertical
    Inherits TabControl

    #Region "Declarations"
    Private _PressedTabColour As Color = Color.FromArgb(200, 215, 237)
    Private _HoverColour As Color = Color.FromArgb(109, 132, 180)
    Private _NormalColour As Color = Color.FromArgb(237, 239, 244)
    Private _BorderColour As Color = Color.FromArgb(139, 162, 210)
    Private _TextColour As Color = Color.FromArgb(58, 66, 73)
    Private HoverIndex As Integer = -1
    #End Region

    #Region "Colour & Other Properties"
    <Category("Colours")>
    Public Property NormalColour As Color
    Get
    Return _NormalColour
    End Get
    Set(value As Color)
    _NormalColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property HoverColour As Color
    Get
    Return _HoverColour
    End Get
    Set(value As Color)
    _HoverColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property PressedTabColour As Color
    Get
    Return _PressedTabColour
    End Get
    Set(value As Color)
    _PressedTabColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property
    #End Region

    #Region "Draw Control"
    Sub New()
    DoubleBuffered = True
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True)
    SizeMode = TabSizeMode.Fixed
    ItemSize = New Size(44, 95)
    Font = New Font("Segoe UI", 9, FontStyle.Regular)
    DrawMode = TabDrawMode.OwnerDrawFixed
    End Sub

    Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    Alignment = TabAlignment.Left
    End Sub

    Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
    If TypeOf e.Control Is TabPage Then
    For Each i As TabPage In Me.Controls
    i = New TabPage
    Next
    e.Control.BackColor = Color.FromArgb(255, 255, 255)
    End If
    MyBase.OnControlAdded(e)
    End Sub

    Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    For I As Integer = 0 To TabPages.Count - 1
    If GetTabRect(I).Contains(e.Location) Then
    HoverIndex = I
    Exit For
    End If
    Next
    Invalidate()
    MyBase.OnMouseMove(e)
    End Sub

    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
    HoverIndex = -1
    Invalidate()
    MyBase.OnMouseLeave(e)

    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    G.SmoothingMode = SmoothingMode.HighQuality
    G.PixelOffsetMode = PixelOffsetMode.HighQuality
    G.Clear(BackColor)
    Try : SelectedTab.BackColor = _NormalColour : Catch : End Try
    With G
    .FillRectangle(New SolidBrush(_NormalColour), New Rectangle(-2, 0, ItemSize.Height + 4, Height + 22))
    For i As Integer = 0 To TabCount - 1
    If i = SelectedIndex Then
    Dim x2 As Rectangle = New Rectangle(New Point(GetTabRect(i).Location.X - 2, GetTabRect(i).Location.Y - 2), New Size(GetTabRect(i).Width + 3, GetTabRect(i).Height - 1))
    .FillRectangle(New SolidBrush(_NormalColour), x2)
    Dim tabRect As New Rectangle(GetTabRect(i).Location.X - 3, GetTabRect(i).Location.Y + 2, GetTabRect(i).Size.Width + 10, GetTabRect(i).Size.Height - 11)
    .FillRectangle(New SolidBrush(_PressedTabColour), New Rectangle(tabRect.X + 1, tabRect.Y + 1, tabRect.Width - 1, tabRect.Height - 2))
    .DrawRectangle(New Pen(_BorderColour), tabRect)
    .SmoothingMode = SmoothingMode.AntiAlias
    Else
    Dim x2 As Rectangle = New Rectangle(New Point(GetTabRect(i).Location.X - 2, GetTabRect(i).Location.Y - 2), New Size(GetTabRect(i).Width - 1, GetTabRect(i).Height - 11))
    .FillRectangle(New SolidBrush(_NormalColour), x2)
    If HoverIndex = i Then
    Dim x21 As Rectangle = New Rectangle(New Point(GetTabRect(i).Location.X - 2, GetTabRect(i).Location.Y + 2), New Size(GetTabRect(i).Width, GetTabRect(i).Height - 11))
    .FillRectangle(New SolidBrush(Color.FromArgb(199, 201, 207)), x21)
    End If
    End If
    Dim tabRect1 As New Rectangle(GetTabRect(i).Location.X + 3, GetTabRect(i).Location.Y + 3, GetTabRect(i).Size.Width - 20, GetTabRect(i).Size.Height - 11)
    .DrawString(TabPages(i).Text, Font, New SolidBrush(_TextColour), tabRect1, New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
    .FillRectangle(New SolidBrush(_NormalColour), New Rectangle(97, 0, Width - 97, Height))
    .DrawLine(New Pen((_BorderColour), 1), New Point(96, 0), New Point(96, Height))
    Next
    End With
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookChatRightBubble
    Inherits Control
    #Region "Declarations"
    Private _TextColour As Color = Color.FromArgb(65, 73, 80)
    Private _BorderColour As Color = Color.FromArgb(163, 182, 208)
    Private _BaseColour As Color = Color.FromArgb(214, 231, 254)
    Private _ShowArrow As Boolean = True
    Private _ArrowFixed As Boolean = True
    #End Region

    #Region "Colour & Other Properties"
    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Misc")>
    Public Property ShowArrow As Boolean
    Get
    Return _ShowArrow
    End Get
    Set(value As Boolean)
    _ShowArrow = value
    End Set
    End Property
    <Category("Misc")>
    Public Property ArrowFixed As Boolean
    Get
    Return _ArrowFixed
    End Get
    Set(value As Boolean)
    _ArrowFixed = value
    End Set
    End Property
    '--Need to sort out
    #Region ""
    'Private _Multiline As Boolean
    '<Category("Options")>
    'Property Multiline() As Boolean
    ' Get
    ' Return _Multiline
    ' End Get
    ' Set(ByVal value As Boolean)
    ' _Multiline = value
    ' If TB IsNot Nothing Then
    ' TB.Multiline = value

    ' If value Then
    ' TB.Height = Height - 11
    ' Else
    ' Height = TB.Height + 11
    ' End If

    ' End If
    ' End Set
    'End Property
    '<Category("Options")>
    'Overrides Property Text As String
    ' Get
    ' Return MyBase.Text
    ' End Get
    ' Set(ByVal value As String)
    ' MyBase.Text = value
    ' If TB IsNot Nothing Then
    ' TB.Text = value
    ' End If
    ' End Set
    'End Property
    '<Category("Options")>
    'Overrides Property Font As Font
    ' Get
    ' Return MyBase.Font
    ' End Get
    ' Set(ByVal value As Font)
    ' MyBase.Font = value
    ' If TB IsNot Nothing Then
    ' TB.Font = value
    ' TB.Location = New Point(3, 5)
    ' TB.Width = Width - 6

    ' If Not _Multiline Then
    ' Height = TB.Height + 11
    ' End If
    ' End If
    ' End Set
    'End Property
    #End Region

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    Size = New Size(135, 32)
    BackColor = Color.Transparent
    Font = New Font("Klavika", 9)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim GP, GP1 As New GraphicsPath
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    If _ShowArrow Then
    Dim Base As New Rectangle(0, 0, Width - 8, Height - 1)
    Dim BorderBase As New Rectangle(0, 0, Width - 7, Height)
    GP = DrawHelpers.RoundRec(Base, 2)
    GP1 = DrawHelpers.RoundRec(BorderBase, 4)
    .FillPath(New SolidBrush(_BaseColour), GP)
    .DrawPath(New Pen(New SolidBrush(_BorderColour)), GP1)
    .DrawString(Text, Font, New SolidBrush(_TextColour), (New Rectangle(6, 4, Width - 15, Height)))
    If _ArrowFixed Then
    Dim p() As Point = {New Point(Width - 8, 11), New Point(Width, 17), New Point(Width - 8, 22)}
    .FillPolygon(New SolidBrush(_BaseColour), p)
    .DrawPolygon(New Pen(New SolidBrush(_BaseColour)), p)
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(Width - 7, 11), New Point(Width, 17))
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(Width, 17), New Point(Width - 7, 22))
    Else
    Dim p() As Point = {New Point(Width - 8, Height - 19), New Point(Width, Height - 25), New Point(Width - 8, Height - 30)}
    .FillPolygon(New SolidBrush(_BaseColour), p)
    .DrawPolygon(New Pen(New SolidBrush(_BaseColour)), p)
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(Width - 7, Height - 19), New Point(Width, Height - 25))
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(Width, Height - 25), New Point(Width - 7, Height - 30))
    End If
    Else
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    Dim BorderBase As New Rectangle(0, 0, Width, Height)
    GP = DrawHelpers.RoundRec(Base, 2)
    GP1 = DrawHelpers.RoundRec(BorderBase, 4)
    .FillPath(New SolidBrush(_BaseColour), GP)
    .DrawPath(New Pen(New SolidBrush(_BorderColour)), GP1)
    .DrawString(Text, Font, New SolidBrush(_TextColour), (New Rectangle(6, 4, Width - 10, Height)))
    End If
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookChatLeftBubble
    Inherits Control

    #Region "Declarations"
    Private _TextColour As Color = Color.FromArgb(65, 73, 80)
    Private _BorderColour As Color = Color.FromArgb(198, 198, 198)
    Private _BaseColour As Color = Color.FromArgb(250, 250, 250)
    Private _ShowArrow As Boolean = True
    Private _ArrowFixed As Boolean = True
    #End Region

    #Region "Colour & Other Properties"
    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property
    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Misc")>
    Public Property ShowArrow As Boolean
    Get
    Return _ShowArrow
    End Get
    Set(value As Boolean)
    _ShowArrow = value
    End Set
    End Property
    <Category("Misc")>
    Public Property ArrowFixed As Boolean
    Get
    Return _ArrowFixed
    End Get
    Set(value As Boolean)
    _ArrowFixed = value
    End Set
    End Property
    '--Need to sort out
    #Region ""
    'Private _Multiline As Boolean
    '<Category("Options")>
    'Property Multiline() As Boolean
    ' Get
    ' Return _Multiline
    ' End Get
    ' Set(ByVal value As Boolean)
    ' _Multiline = value
    ' If TB IsNot Nothing Then
    ' TB.Multiline = value

    ' If value Then
    ' TB.Height = Height - 11
    ' Else
    ' Height = TB.Height + 11
    ' End If

    ' End If
    ' End Set
    'End Property
    '<Category("Options")>
    'Overrides Property Text As String
    ' Get
    ' Return MyBase.Text
    ' End Get
    ' Set(ByVal value As String)
    ' MyBase.Text = value
    ' If TB IsNot Nothing Then
    ' TB.Text = value
    ' End If
    ' End Set
    'End Property
    '<Category("Options")>
    'Overrides Property Font As Font
    ' Get
    ' Return MyBase.Font
    ' End Get
    ' Set(ByVal value As Font)
    ' MyBase.Font = value
    ' If TB IsNot Nothing Then
    ' TB.Font = value
    ' TB.Location = New Point(3, 5)
    ' TB.Width = Width - 6

    ' If Not _Multiline Then
    ' Height = TB.Height + 11
    ' End If
    ' End If
    ' End Set
    'End Property
    #End Region

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    Size = New Size(135, 32)
    BackColor = Color.Transparent
    Font = New Font("Klavika", 9)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim GP, GP1 As New GraphicsPath
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    If _ShowArrow Then
    Dim Base As New Rectangle(7, 0, Width - 7, Height - 1)
    Dim BorderBase As New Rectangle(8, 0, Width - 8, Height)
    GP = DrawHelpers.RoundRec(Base, 2)
    GP1 = DrawHelpers.RoundRec(BorderBase, 4)
    .FillPath(New SolidBrush(_BaseColour), GP)
    .DrawPath(New Pen(New SolidBrush(_BorderColour)), GP1)
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(15, 4, Width - 17, Height - 5))
    If _ArrowFixed Then
    Dim p() As Point = {New Point(9, 11), New Point(0, 17), New Point(9, 22)}
    .FillPolygon(New SolidBrush(_BaseColour), p)
    .DrawPolygon(New Pen(New SolidBrush(_BaseColour)), p)
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(8, 11), New Point(0, 17))
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(0, 17), New Point(8, 22))
    Else
    Dim p() As Point = {New Point(9, Height - 19), New Point(0, Height - 25), New Point(9, Height - 30)}
    .FillPolygon(New SolidBrush(_BaseColour), p)
    .DrawPolygon(New Pen(New SolidBrush(_BaseColour)), p)
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(8, Height - 19), New Point(0, Height - 25))
    .DrawLine(New Pen(New SolidBrush(_BorderColour)), New Point(0, Height - 25), New Point(8, Height - 30))
    End If
    Else
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    Dim BorderBase As New Rectangle(0, 0, Width, Height)
    GP = DrawHelpers.RoundRec(Base, 2)
    GP1 = DrawHelpers.RoundRec(BorderBase, 4)
    .FillPath(New SolidBrush(_BaseColour), GP)
    .DrawPath(New Pen(New SolidBrush(_BorderColour)), GP1)
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(6, 4, Width - 17, Height - 5))
    End If
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    <DefaultEvent("CheckedChanged")>
    Public Class FacebookRadioButton
    Inherits Control

    #Region "Declarations"
    Private _Checked As Boolean
    Private State As MouseState = MouseState.None
    Private _HighColour As Color = Color.FromArgb(125, 200, 255)
    Private _SecondBorderColour As Color = Color.FromArgb(114, 207, 249)
    Private _CheckedColour As Color = Color.FromArgb(103, 215, 243)
    Private _BorderColour As Color = Color.FromArgb(207, 211, 220)
    Private _BackColour As Color = Color.FromArgb(237, 239, 244)
    Private _TextColour As Color = Color.FromArgb(65, 73, 80)
    #End Region

    #Region "Colour & Other Properties"

    <Category("Colours")>
    Public Property HighlightColour As Color
    Get
    Return _HighColour
    End Get
    Set(value As Color)
    _HighColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BackColour
    End Get
    Set(value As Color)
    _BackColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property CheckedColour As Color
    Get
    Return _CheckedColour
    End Get
    Set(value As Color)
    _CheckedColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property SecondCircleColour As Color
    Get
    Return _SecondBorderColour
    End Get
    Set(value As Color)
    _SecondBorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property FontColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property

    Event CheckedChanged(ByVal sender As Object)
    Property Checked() As Boolean
    Get
    Return _Checked
    End Get
    Set(value As Boolean)
    _Checked = value
    InvalidateControls()
    RaiseEvent CheckedChanged(Me)
    Invalidate()
    End Set
    End Property

    Protected Overrides Sub OnClick(e As EventArgs)
    If Not _Checked Then Checked = True
    MyBase.OnClick(e)
    End Sub
    Private Sub InvalidateControls()
    If Not IsHandleCreated OrElse Not _Checked Then Return
    For Each C As Control In Parent.Controls
    If C IsNot Me AndAlso TypeOf C Is FacebookRadioButton Then
    DirectCast(C, FacebookRadioButton).Checked = False
    Invalidate()
    End If
    Next
    End Sub
    Protected Overrides Sub OnCreateControl()
    MyBase.OnCreateControl()
    InvalidateControls()
    End Sub
    Protected Overrides Sub OnResize(e As EventArgs)
    MyBase.OnResize(e)
    Height = 22
    End Sub
    #End Region

    #Region "Mouse States"

    Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    State = MouseState.Down : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseEnter(e As EventArgs)
    MyBase.OnMouseEnter(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(e As EventArgs)
    MyBase.OnMouseLeave(e)
    State = MouseState.None : Invalidate()
    End Sub

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    Cursor = Cursors.Hand
    Size = New Size(100, 22)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim Base As New Rectangle(1, 0, Height - 2, Height - 2)
    Dim Circle As New Rectangle(7, 6, Height - 14, Height - 14)
    Dim SecondBorder As New Rectangle(4, 3, 14, 14)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    .FillEllipse(New SolidBrush(_BackColour), Base)
    .DrawEllipse(New Pen(_BorderColour), Base)
    Select Case State
    Case MouseState.Over
    .DrawEllipse(New Pen(_HighColour), Base)
    Case MouseState.Down
    .DrawEllipse(New Pen(_HighColour), Base)
    End Select
    If Checked Then
    .FillEllipse(New SolidBrush(_CheckedColour), Circle)
    .DrawEllipse(New Pen(_HighColour), Base)
    .DrawEllipse(New Pen(_SecondBorderColour), SecondBorder)
    End If
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(24, 4, Width, Height), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    <DefaultEvent("CheckedChanged")>
    Public Class FacebookCheckBox
    Inherits Control

    #Region "Declarations"
    Private _Checked As Boolean
    Private State As MouseState = MouseState.None
    Private _HighColour As Color = Color.FromArgb(125, 200, 255)
    Private _CheckedColour As Color = Color.FromArgb(103, 215, 243)
    Private _BorderColour As Color = Color.FromArgb(207, 211, 220)
    Private _BackColour As Color = Color.FromArgb(237, 239, 244)
    Private _TextColour As Color = Color.FromArgb(65, 73, 80)
    #End Region

    #Region "Colour & Other Properties"

    <Category("Colours")>
    Public Property HighlightColour As Color
    Get
    Return _HighColour
    End Get
    Set(value As Color)
    _HighColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BackColour
    End Get
    Set(value As Color)
    _BackColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property CheckedColour As Color
    Get
    Return _CheckedColour
    End Get
    Set(value As Color)
    _CheckedColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property FontColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property

    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
    MyBase.OnTextChanged(e)
    Invalidate()
    End Sub

    Property Checked() As Boolean
    Get
    Return _Checked
    End Get
    Set(ByVal value As Boolean)
    _Checked = value
    Invalidate()
    End Set
    End Property

    Event CheckedChanged(ByVal sender As Object)
    Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
    _Checked = Not _Checked
    RaiseEvent CheckedChanged(Me)
    MyBase.OnClick(e)
    End Sub

    Protected Overrides Sub OnResize(e As EventArgs)
    MyBase.OnResize(e)
    Height = 22
    End Sub
    #End Region

    #Region "Mouse States"

    Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    State = MouseState.Down : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseEnter(e As EventArgs)
    MyBase.OnMouseEnter(e)
    State = MouseState.Over : Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(e As EventArgs)
    MyBase.OnMouseLeave(e)
    State = MouseState.None : Invalidate()
    End Sub

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    Cursor = Cursors.Hand
    Size = New Size(100, 22)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, 22, 22)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    .FillRectangle(New SolidBrush(_BackColour), Base)
    .DrawRectangle(New Pen(_BorderColour), New Rectangle(1, 1, 20, 20))
    Select Case State
    Case MouseState.Over
    .DrawRectangle(New Pen(_HighColour), New Rectangle(1, 1, 20, 20))
    Case MouseState.Down
    .DrawRectangle(New Pen(_HighColour), New Rectangle(1, 1, 20, 20))
    End Select
    If Checked Then
    .FillRectangle(New SolidBrush(_CheckedColour), New Rectangle(3, 3, 16, 16))
    .DrawRectangle(New Pen(_HighColour), New Rectangle(1, 1, 20, 20))
    End If
    .DrawString(Text, Font, New SolidBrush(_TextColour), New Rectangle(24, 4, Width, Height), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookProgressBar
    Inherits Control

    #Region "Declarations"
    Private _ProgressColour As Color = Color.LightBlue
    Private _GlowColour As Color = Color.FromArgb(73, 185, 213)
    Private _BorderColour As Color = Color.FromArgb(187, 191, 200)
    Private _BaseColour As Color = Color.FromArgb(237, 237, 237)
    Private _FontColour As Color = Color.FromArgb(50, 50, 50)
    Private _Value As Integer = 0
    Private _Maximum As Integer = 100
    #End Region

    #Region "Properties"

    <Category("Control")>
    Public Property Maximum() As Integer
    Get
    Return _Maximum
    End Get
    Set(V As Integer)
    Select Case V
    Case Is < _Value
    _Value = V
    End Select
    _Maximum = V
    Invalidate()
    End Set
    End Property

    <Category("Control")>
    Public Property Value() As Integer
    Get
    Select Case _Value
    Case 0
    Return 0
    Invalidate()
    Case Else
    Return _Value
    Invalidate()
    End Select
    End Get
    Set(V As Integer)
    Select Case V
    Case Is > _Maximum
    V = _Maximum
    Invalidate()
    End Select
    _Value = V
    Invalidate()
    End Set
    End Property

    <Category("Colours")>
    Public Property ProgressColour As Color
    Get
    Return _ProgressColour
    End Get
    Set(value As Color)
    _ProgressColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property GlowColour As Color
    Get
    Return _GlowColour
    End Get
    Set(value As Color)
    _GlowColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property FontColour As Color
    Get
    Return _FontColour
    End Get
    Set(value As Color)
    _FontColour = value
    End Set
    End Property

    #End Region

    #Region "Events"

    Protected Overrides Sub OnResize(e As EventArgs)
    MyBase.OnResize(e)
    Height = 25
    End Sub

    Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    Height = 25
    End Sub

    Public Sub Increment(ByVal Amount As Integer)
    Value += Amount
    End Sub

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    BackColor = Color.FromArgb(60, 70, 73)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B = New Bitmap(Width, Height)
    Dim G As Graphics = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width, Height)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    Dim ProgVal As Integer = CInt(_Value / _Maximum * (Width - 40))
    Select Case Value
    Case 0
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .DrawLine(New Pen(_BorderColour), New Point(Width - 40, 0), New Point(Width - 40, Height))
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_BorderColour), Base)
    .DrawString(String.Format("{0}%", _Value), Font, New SolidBrush(_FontColour), New Point(Width - 37, 4))
    Case _Maximum
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_GlowColour), Base)
    .DrawLine(New Pen(_GlowColour), New Point(Width - 40, 0), New Point(Width - 40, Height))
    .DrawString(String.Format("{0}%", _Value), Font, New SolidBrush(_FontColour), New Point(Width - 37, 4))
    Case Else
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_BorderColour), Base)
    .DrawLine(New Pen(_BorderColour), New Point(Width - 40, 0), New Point(Width - 40, Height))
    .DrawString(String.Format("{0}%", _Value), Font, New SolidBrush(_FontColour), New Point(Width - 37, 4))
    End Select
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub

    #End Region

    End Class

    Public Class FacebookComboBox
    Inherits ComboBox

    #Region "Declarations"
    Private _StartIndex As Integer = 0
    Private _BorderColour As Color = Color.FromArgb(73, 185, 213)
    Private _BaseColour As Color = Color.White
    Private _FontColour As Color = Color.FromArgb(50, 50, 50)
    #End Region

    #Region "Properties & Events"

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property FontColour As Color
    Get
    Return _FontColour
    End Get
    Set(value As Color)
    _FontColour = value
    End Set
    End Property

    Public Property StartIndex As Integer
    Get
    Return _StartIndex
    End Get
    Set(ByVal value As Integer)
    _StartIndex = value
    Try
    MyBase.SelectedIndex = value
    Catch
    End Try
    Invalidate()
    End Set
    End Property

    Sub ReplaceItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles Me.DrawItem
    e.DrawBackground()
    e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    Dim Rect As New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width + 1, e.Bounds.Height + 1)
    Try
    With e.Graphics
    If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
    .FillRectangle(Brushes.LightSteelBlue, Rect)
    .DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), Font, New SolidBrush(_FontColour), 1, e.Bounds.Top + 2)
    Else
    .FillRectangle(New SolidBrush(Color.White), Rect)
    .DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), Font, New SolidBrush(_FontColour), 1, e.Bounds.Top + 2)
    End If
    End With
    Catch
    End Try
    e.DrawFocusRectangle()
    Me.Invalidate()

    End Sub

    Protected Overrides Sub OnTextChanged(e As System.EventArgs)
    MyBase.OnTextChanged(e)
    Invalidate()
    End Sub

    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.Invalidate()
    MyBase.OnMouseClick(e)
    End Sub

    Protected Overrides Sub OnMouseUp(e As System.Windows.Forms.MouseEventArgs)
    MyBase.Invalidate()
    MyBase.OnMouseUp(e)
    End Sub

    #End Region

    #Region "Draw Control"

    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    BackColor = Color.Transparent
    DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
    DropDownStyle = ComboBoxStyle.DropDownList
    Me.Width = 163
    Font = New Font("Segoe UI", 10)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    With G
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    Try
    Dim Square As New Rectangle(Width - 22, 0, Width, Height)
    .FillRectangle(New SolidBrush(Color.FromArgb(237, 237, 237)), Square)
    .FillRectangle(New SolidBrush(_BaseColour), New Rectangle(0, 0, Width - 22, Height))
    .DrawLine(New Pen(_BorderColour), New Point(Width - 23, 0), New Point(Width - 23, Height))
    Try
    .DrawString(Text, Font, New SolidBrush(_FontColour), New Rectangle(3, 0, Width - 20, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
    Catch : End Try
    .DrawLine(New Pen(_BorderColour), 0, 0, 0, 0)
    .DrawRectangle(New Pen(_BorderColour), New Rectangle(0, 0, Width, Height))
    Dim P() As Point = {New Point(Width - 18, 9), New Point(Width - 12, 18), New Point(Width - 6, 9)}
    .FillPolygon(New SolidBrush(_BorderColour), P)
    .DrawPolygon(New Pen(Color.Gainsboro), P)
    Catch
    End Try
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub

    #End Region


    End Class

    Public Class Facebook2ndProgressBar
    Inherits Control

    #Region "Declarations"
    Private _ProgressColour As Color = Color.FromArgb(109, 131, 179)
    Private _GlowColour As Color = Color.FromArgb(73, 185, 213)
    Private _BorderColour As Color = Color.FromArgb(64, 89, 134)
    Private _BaseColour As Color = Color.FromArgb(237, 237, 237)
    Private _Value As Integer = 0
    Private _Maximum As Integer = 100
    #End Region

    #Region "Properties"

    <Category("Control")>
    Public Property Maximum() As Integer
    Get
    Return _Maximum
    End Get
    Set(V As Integer)
    Select Case V
    Case Is < _Value
    _Value = V
    End Select
    _Maximum = V
    Invalidate()
    End Set
    End Property

    <Category("Control")>
    Public Property Value() As Integer
    Get
    Select Case _Value
    Case 0
    Return 0
    Invalidate()
    Case Else
    Return _Value
    Invalidate()
    End Select
    End Get
    Set(V As Integer)
    Select Case V
    Case Is > _Maximum
    V = _Maximum
    Invalidate()
    End Select
    _Value = V
    Invalidate()
    End Set
    End Property

    <Category("Colours")>
    Public Property ProgressColour As Color
    Get
    Return _ProgressColour
    End Get
    Set(value As Color)
    _ProgressColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property

    <Category("Colours")>
    Public Property GlowColour As Color
    Get
    Return _GlowColour
    End Get
    Set(value As Color)
    _GlowColour = value
    End Set
    End Property
    #End Region

    #Region "Events"

    Protected Overrides Sub OnResize(e As EventArgs)
    MyBase.OnResize(e)
    Height = 10
    End Sub

    Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    Height = 10
    End Sub

    Public Sub Increment(ByVal Amount As Integer)
    Value += Amount
    End Sub

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    BackColor = Color.FromArgb(60, 70, 73)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B = New Bitmap(Width, Height)
    Dim G As Graphics = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width, Height)
    With G
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .Clear(BackColor)
    Dim ProgVal As Integer = CInt(_Value / _Maximum * Width)
    Select Case Value
    Case 0
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_BorderColour, 2), Base)
    Case _Maximum
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_BorderColour, 2), Base)
    Case Else
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ProgressColour), New Rectangle(0, 0, ProgVal - 1, Height))
    .DrawRectangle(New Pen(_BorderColour, 2), Base)
    End Select
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region

    End Class

    Public Class FacebookSeperator
    Inherits Control

    #Region "Declarations"
    Private _SeperatorColour As Color = Color.FromArgb(14, 44, 109)
    Private _Alignment As Style = Style.Horizontal
    #End Region

    #Region "Properties"

    Enum Style
    Horizontal
    Verticle
    End Enum
    <Category("Control")>
    Public Property Alignment As Style
    Get
    Return _Alignment
    End Get
    Set(value As Style)
    _Alignment = value
    End Set
    End Property

    <Category("Colours")>
    Public Property SeperatorColour As Color
    Get
    Return _SeperatorColour
    End Get
    Set(value As Color)
    _SeperatorColour = value
    End Set
    End Property

    #End Region

    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _
    ControlStyles.SupportsTransparentBackColor, True)
    DoubleBuffered = True
    BackColor = Color.Transparent
    Size = New Size(30, 30)
    End Sub

    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim B As New Bitmap(Width, Height)
    Dim G = Graphics.FromImage(B)
    Dim Base As New Rectangle(0, 0, Width - 1, Height - 1)
    With G
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    Select Case _Alignment
    Case Style.Horizontal
    .DrawLine(New Pen(_SeperatorColour, 0.5), New Point(0, Height / 2), New Point(Width, Height / 2))
    Case Style.Verticle
    .DrawLine(New Pen(_SeperatorColour, 0.5), New Point(Width / 2, 0), New Point(Width / 2, Height))
    End Select
    End With
    MyBase.OnPaint(e)
    G.Dispose()
    e.Graphics.InterpolationMode = 7
    e.Graphics.DrawImageUnscaled(B, 0, 0)
    B.Dispose()
    End Sub
    #End Region



    End Class[/NEW]

    لـتحميله هنا : [VB.NET] Facebook GDI Theme - Pastebin.com :{17}:

    [​IMG]

     
  2. أمير عرش الدموع

    أمير عرش الدموع DeveloPer Plus

    الأنتساب:
    ‏25 يناير 2012
    المشاركات:
    111
    الإعجابات المتلقاة:
    3
    نقاط الجائزة:
    18
    الإقامة:
    IRAQ
    رد: [Facebook Theme]|[VB.NET]

    رائع واكثر اخى الحبيب
    جزاك الله خيرا:{1}:​
     
  3. 3mran

    3mran Developer

    الأنتساب:
    ‏2 ابريل 2012
    المشاركات:
    70
    الإعجابات المتلقاة:
    12
    نقاط الجائزة:
    8
    رد: [Facebook Theme]|[VB.NET]

    تسلم اخي بارك الله فيك ~ ^:"
     
  4. تــــركــــي

    تــــركــــي DeveloPer Plus

    الأنتساب:
    ‏25 ابريل 2012
    المشاركات:
    180
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    16
    رد: [Facebook Theme]|[VB.NET]

    تسسلمَ ديآتكَ ـآخيَ,~

    في ميزآإن حسسنآتكَ َ,~
     
  5. مـ☻ـجـ☻ـآهـ☻ـد

    مـ☻ـجـ☻ـآهـ☻ـد <span style="background-color: #E0921B"><span styl DeveloPer Plus

    الأنتساب:
    ‏30 مارس 2012
    المشاركات:
    152
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    16
    الإقامة:
    {ĜäŽã}
    رد: [Facebook Theme]|[VB.NET]

    شكراً لك ,,

    بارك الله فيك
     
  6. n0.H4ck

    n0.H4ck DeveloPer Plus

    الأنتساب:
    ‏7 مايو 2012
    المشاركات:
    122
    الإعجابات المتلقاة:
    5
    نقاط الجائزة:
    18
    رد: [Facebook Theme]|[VB.NET]

    ثيم جميل ..
    أحسنت أخوي و بارك الله فيك ,,
     
  7. ساكن الروح

    ساكن الروح Developer

    الأنتساب:
    ‏16 سبتمبر 2011
    المشاركات:
    20
    الإعجابات المتلقاة:
    1
    نقاط الجائزة:
    3
    رد: [Facebook Theme]|[VB.NET]

    اشكرك اخي العزيز %:"​
     
  8. القناص

    القناص DeveloPer Plus

    الأنتساب:
    ‏8 ديسمبر 2012
    المشاركات:
    89
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    6
    الإقامة:
    العراق
    رد: [Facebook Theme]|[VB.NET]

    [font="ae_almothnna"]ابدعت يااا بطل
    وشم خماسي *:"[/font]​
     

مشاركة هذه الصفحة