﻿Option Explicit On
Option Strict On

Imports System.ComponentModel

Public Class cMenuStrip
    Inherits System.Windows.Forms.MenuStrip

    Private customRenderer As ToolStripProfessionalRenderer = Nothing
    Private office2007Renderer As ToolStripProfessionalRenderer = Nothing
    Private blueRenderer As ToolStripProfessionalRenderer = Nothing
    Private silverRenderer As ToolStripProfessionalRenderer = Nothing
    Private oliveRenderer As ToolStripProfessionalRenderer = Nothing
    Private xpRenderer As ToolStripProfessionalRenderer = Nothing
    Private classicRenderer As ToolStripProfessionalRenderer = Nothing

    Public Sub New()
        MyBase.New()

        _RoundedEdges = True
        _Appearance = New AppearanceProperties(Me)

        customRenderer = New ToolStripProfessionalRenderer(New cMenuStripColorTable(Me)) With {.RoundedEdges = _RoundedEdges}
        office2007Renderer = New ToolStripProfessionalRenderer(New Office2007ColorTable) With {.RoundedEdges = _RoundedEdges}
        blueRenderer = New ToolStripProfessionalRenderer(New Office2003BlueColorTable) With {.RoundedEdges = _RoundedEdges}
        silverRenderer = New ToolStripProfessionalRenderer(New Office2003SilverColorTable) With {.RoundedEdges = _RoundedEdges}
        oliveRenderer = New ToolStripProfessionalRenderer(New Office2003OliveColorTable) With {.RoundedEdges = _RoundedEdges}
        xpRenderer = New ToolStripProfessionalRenderer(New OfficeXPColorTable) With {.RoundedEdges = _RoundedEdges}
        classicRenderer = New ToolStripProfessionalRenderer(New OfficeClassicColorTable) With {.RoundedEdges = _RoundedEdges}

        Me.Renderer = enumPresetStyles.Custom
        Me.Invalidate()
    End Sub

    Public Enum enumPresetStyles
        Custom = 0I
        Office2007 = 1I
        Office2003Blue = 2I
        Office2003Silver = 3I
        Office2003Olive = 4I
        OfficeXP = 5I
        OfficeClassic = 6I
    End Enum

#Region " Properties "

    Private _RoundedEdges As Boolean

    Public Property RoundedEdges() As Boolean
        Get
            Return _RoundedEdges
        End Get
        Set(ByVal value As Boolean)
            _RoundedEdges = value
            customRenderer.RoundedEdges = _RoundedEdges
            blueRenderer.RoundedEdges = _RoundedEdges
            silverRenderer.RoundedEdges = _RoundedEdges
            oliveRenderer.RoundedEdges = _RoundedEdges
            xpRenderer.RoundedEdges = _RoundedEdges
            classicRenderer.RoundedEdges = _RoundedEdges
            Me.Refresh()
            Me.Invalidate()
        End Set
    End Property

    Private _Appearance As AppearanceProperties
    <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property Appearance() As AppearanceProperties
        Get
            Return _Appearance
        End Get
        Set(ByVal value As AppearanceProperties)
            _Appearance = value
        End Set
    End Property

    Private _renderer As enumPresetStyles
    Public Overloads Property Renderer() As enumPresetStyles
        Get
            Return _renderer
        End Get
        Set(ByVal value As enumPresetStyles)
            _renderer = value
            Select Case value
                Case enumPresetStyles.Custom
                    MyBase.Renderer = customRenderer
                Case enumPresetStyles.Office2007
                    MyBase.Renderer = office2007Renderer
                Case enumPresetStyles.Office2003Blue
                    MyBase.Renderer = blueRenderer
                Case enumPresetStyles.Office2003Olive
                    MyBase.Renderer = oliveRenderer
                Case enumPresetStyles.Office2003Silver
                    MyBase.Renderer = silverRenderer
                Case enumPresetStyles.OfficeXP
                    MyBase.Renderer = xpRenderer
                Case enumPresetStyles.OfficeClassic
                    MyBase.Renderer = classicRenderer
            End Select
        End Set
    End Property

#End Region

#Region " Property Classes "

    Public Class AppearanceProperties

        Public Sub New(ByVal toolStrip As cMenuStrip)
            _ButtonAppearance = New ButtonAppearanceProperties(toolStrip)
            _GripAppearance = New GripAppearanceProperties(toolStrip)
            _ImageMarginAppearance = New ImageMarginAppearanceProperties(toolStrip)
            _MenuStripAppearance = New MenustripAppearanceProperties(toolStrip)
            _MenuItemAppearance = New MenuItemAppearanceProperties(toolStrip)
            _RaftingContainerAppearance = New RaftingContainerAppearanceProperties(toolStrip)
            _SeparatorAppearance = New SeparatorAppearanceProperties(toolStrip)
            _ToolStripAppearance = New ToolstripAppearanceProperties(toolStrip)
            _OverflowButtonAppearance = New OverflowButtonAppearanceProperties(toolStrip)
        End Sub

        Private _ButtonAppearance As ButtonAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property ButtonAppearance() As ButtonAppearanceProperties
            Get
                Return _ButtonAppearance
            End Get
            Set(ByVal value As ButtonAppearanceProperties)
                _ButtonAppearance = value
            End Set
        End Property

        Private _GripAppearance As GripAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property GripAppearance() As GripAppearanceProperties
            Get
                Return _GripAppearance
            End Get
            Set(ByVal value As GripAppearanceProperties)
                _GripAppearance = value
            End Set
        End Property

        Private _ImageMarginAppearance As ImageMarginAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property ImageMarginAppearance() As ImageMarginAppearanceProperties
            Get
                Return _ImageMarginAppearance
            End Get
            Set(ByVal value As ImageMarginAppearanceProperties)
                _ImageMarginAppearance = value
            End Set
        End Property

        Private _MenuStripAppearance As MenustripAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property MenuStripAppearance() As MenustripAppearanceProperties
            Get
                Return _MenuStripAppearance
            End Get
            Set(ByVal value As MenustripAppearanceProperties)
                _MenuStripAppearance = value
            End Set
        End Property

        Private _MenuItemAppearance As MenuItemAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property MenuItemAppearance() As MenuItemAppearanceProperties
            Get
                Return _MenuItemAppearance
            End Get
            Set(ByVal value As MenuItemAppearanceProperties)
                _MenuItemAppearance = value
            End Set
        End Property

        Private _RaftingContainerAppearance As RaftingContainerAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property RaftingContainerAppearance() As RaftingContainerAppearanceProperties
            Get
                Return _RaftingContainerAppearance
            End Get
            Set(ByVal value As RaftingContainerAppearanceProperties)
                _RaftingContainerAppearance = value
            End Set
        End Property

        Private _SeparatorAppearance As SeparatorAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property SeparatorAppearance() As SeparatorAppearanceProperties
            Get
                Return _SeparatorAppearance
            End Get
            Set(ByVal value As SeparatorAppearanceProperties)
                _SeparatorAppearance = value
            End Set
        End Property

        Private _ToolStripAppearance As ToolstripAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property ToolStripAppearance() As ToolstripAppearanceProperties
            Get
                Return _ToolStripAppearance
            End Get
            Set(ByVal value As ToolstripAppearanceProperties)
                _ToolStripAppearance = value
            End Set
        End Property

        Private _OverflowButtonAppearance As OverflowButtonAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public Property OverflowButtonAppearance() As OverflowButtonAppearanceProperties
            Get
                Return _OverflowButtonAppearance
            End Get
            Set(ByVal value As OverflowButtonAppearanceProperties)
                _OverflowButtonAppearance = value
            End Set
        End Property

    End Class

    Public Class ButtonAppearanceProperties

        Public Sub New(ByVal toolStrip As cMenuStrip)
            _SelectedAppearance = New SelectedButtonAppearancePropertyGroup(toolStrip)
            _CheckedAppearance = New CheckedButtonAppearanceProperties(toolStrip)
            _PressedAppearance = New SelectedButtonAppearancePropertyGroup(toolStrip)
        End Sub

        Private _SelectedAppearance As SelectedButtonAppearancePropertyGroup
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
        Public Property SelectedAppearance() As SelectedButtonAppearancePropertyGroup
            Get
                Return _SelectedAppearance
            End Get
            Set(ByVal value As SelectedButtonAppearancePropertyGroup)
                _SelectedAppearance = value
            End Set
        End Property

        Private _CheckedAppearance As CheckedButtonAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
        Public Property CheckedAppearance() As CheckedButtonAppearanceProperties
            Get
                Return _CheckedAppearance
            End Get
            Set(ByVal value As CheckedButtonAppearanceProperties)
                _CheckedAppearance = value
            End Set
        End Property

        Private _PressedAppearance As SelectedButtonAppearancePropertyGroup
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
        Public Property PressedAppearance() As SelectedButtonAppearancePropertyGroup
            Get
                Return _PressedAppearance
            End Get
            Set(ByVal value As SelectedButtonAppearancePropertyGroup)
                _PressedAppearance = value
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class ImageMarginAppearanceProperties

        Public Sub New(ByVal toolStrip As cMenuStrip)
            _Normal = New ImageMarginNormalAppearanceProperties(toolStrip)
            _Revealed = New ImageMarginRevealedAppearanceProperties(toolStrip)
        End Sub

        Private _Normal As ImageMarginNormalAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
        Public Property Normal() As ImageMarginNormalAppearanceProperties
            Get
                Return _Normal
            End Get
            Set(ByVal value As ImageMarginNormalAppearanceProperties)
                _Normal = value
            End Set
        End Property

        Private _Revealed As ImageMarginRevealedAppearanceProperties
        <TypeConverter(GetType(ExpandableObjectConverter))> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
        Public Property Revealed() As ImageMarginRevealedAppearanceProperties
            Get
                Return _Revealed
            End Get
            Set(ByVal value As ImageMarginRevealedAppearanceProperties)
                _Revealed = value
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

#End Region

#Region " Property Group Classes "

    Public Class SelectedButtonAppearancePropertyGroup

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(255, 255, 222)
        <DefaultValue(GetType(Color), "255, 255, 222")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(255, 225, 172)
        <DefaultValue(GetType(Color), "255, 225, 172")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(255, 203, 136)
        <DefaultValue(GetType(Color), "255, 203, 136")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _Highlight As Color = Color.FromArgb(196, 208, 229)
        <DefaultValue(GetType(Color), "196, 208, 229")> _
        Public Property Highlight() As Color
            Get
                Return _Highlight
            End Get
            Set(ByVal value As Color)
                _Highlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _BorderHighlight As Color = Color.FromArgb(0, 0, 128)
        <DefaultValue(GetType(Color), "0, 0, 128")> _
        Public Property BorderHighlight() As Color
            Get
                Return _BorderHighlight
            End Get
            Set(ByVal value As Color)
                _BorderHighlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _Border As Color = Color.FromArgb(0, 0, 128)
        <DefaultValue(GetType(Color), "0, 0, 128")> _
        Public Property Border() As Color
            Get
                Return _Border
            End Get
            Set(ByVal value As Color)
                _Border = value
                ts.Invalidate()
            End Set
        End Property
        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class PressedButtonAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(254, 128, 62)
        <DefaultValue(GetType(Color), "254, 128, 62")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(255, 177, 109)
        <DefaultValue(GetType(Color), "255, 177, 109")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(255, 223, 154)

        <DefaultValue(GetType(Color), "255, 223, 154")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _Highlight As Color = Color.FromArgb(152, 173, 210)
        <DefaultValue(GetType(Color), "152, 173, 210")> _
        Public Property Highlight() As Color
            Get
                Return _Highlight
            End Get
            Set(ByVal value As Color)
                _Highlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _BorderHighlight As Color = Color.FromArgb(51, 94, 168)
        <DefaultValue(GetType(Color), "51, 94, 168")> _
        Public Property BorderHighlight() As Color
            Get
                Return _BorderHighlight
            End Get
            Set(ByVal value As Color)
                _BorderHighlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _Border As Color = Color.FromArgb(0, 0, 128)
        <DefaultValue(GetType(Color), "0, 0, 128")> _
        Public Property Border() As Color
            Get
                Return _Border
            End Get
            Set(ByVal value As Color)
                _Border = value
                ts.Invalidate()
            End Set
        End Property
        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class CheckedButtonAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(255, 223, 154)
        <DefaultValue(GetType(Color), "255, 223, 154")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(255, 195, 116)
        <DefaultValue(GetType(Color), "255, 195, 116")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(255, 166, 76)
        <DefaultValue(GetType(Color), "255, 166, 76")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _Highlight As Color = Color.FromArgb(196, 208, 229)
        <DefaultValue(GetType(Color), "196, 208, 229")> _
        Public Property Highlight() As Color
            Get
                Return _Highlight
            End Get
            Set(ByVal value As Color)
                _Highlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _BorderHighlight As Color = Color.FromArgb(51, 94, 168)
        <DefaultValue(GetType(Color), "51, 94, 168")> _
        Public Property BorderHighlight() As Color
            Get
                Return _BorderHighlight
            End Get
            Set(ByVal value As Color)
                _BorderHighlight = value
                ts.Invalidate()
            End Set
        End Property

        Private _Background As Color = Color.FromArgb(255, 192, 111)
        <DefaultValue(GetType(Color), "255, 192, 111")> _
        Public Property Background() As Color
            Get
                Return _Background
            End Get
            Set(ByVal value As Color)
                _Background = value
                ts.Invalidate()
            End Set
        End Property

        Private _SelectedBackground As Color = Color.FromArgb(254, 128, 62)
        <DefaultValue(GetType(Color), "254, 128, 62")> _
        Public Property SelectedBackground() As Color
            Get
                Return _SelectedBackground
            End Get
            Set(ByVal value As Color)
                _SelectedBackground = value
                ts.Invalidate()
            End Set
        End Property

        Private _PressedBackrgound As Color = Color.FromArgb(254, 128, 62)
        <DefaultValue(GetType(Color), "254, 128, 62")> _
        Public Property PressedBackground() As Color
            Get
                Return _PressedBackrgound
            End Get
            Set(ByVal value As Color)
                _PressedBackrgound = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class GripAppearanceProperties
        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _Dark As Color = Color.FromArgb(39, 65, 118)
        <DefaultValue(GetType(Color), "39, 65, 118")> _
        Public Property Dark() As Color
            Get
                Return _Dark
            End Get
            Set(ByVal value As Color)
                _Dark = value
                ts.Invalidate()
            End Set
        End Property

        Private _Light As Color = Color.FromArgb(255, 255, 255)
        <DefaultValue(GetType(Color), "255, 255, 255")> _
        Public Property Light() As Color
            Get
                Return _Light
            End Get
            Set(ByVal value As Color)
                _Light = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class MenustripAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _Border As Color = Color.FromArgb(0, 45, 150)
        <DefaultValue(GetType(Color), "0, 45, 150")> _
        Public Property Border() As Color
            Get
                Return _Border
            End Get
            Set(ByVal value As Color)
                _Border = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientBegin As Color = Color.FromArgb(158, 190, 245)
        <DefaultValue(GetType(Color), "158, 190, 245")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(196, 218, 250)
        <DefaultValue(GetType(Color), "196, 218, 250")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class MenuItemAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _Selected As Color = Color.FromArgb(255, 238, 194)
        <DefaultValue(GetType(Color), "255, 238, 194")> _
        Public Property Selected() As Color
            Get
                Return _Selected
            End Get
            Set(ByVal value As Color)
                _Selected = value
                ts.Invalidate()
            End Set
        End Property

        Private _Border As Color = Color.FromArgb(0, 0, 128)
        <DefaultValue(GetType(Color), "0, 0, 128")> _
        Public Property Border() As Color
            Get
                Return _Border
            End Get
            Set(ByVal value As Color)
                _Border = value
                ts.Invalidate()
            End Set
        End Property

        Private _SelectedGradientBegin As Color = Color.FromArgb(255, 255, 222)
        <DefaultValue(GetType(Color), "255, 255, 222")> _
        Public Property SelectedGradientBegin() As Color
            Get
                Return _SelectedGradientBegin
            End Get
            Set(ByVal value As Color)
                _SelectedGradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _SelectedGradientEnd As Color = Color.FromArgb(255, 203, 136)
        <DefaultValue(GetType(Color), "255, 203, 136")> _
        Public Property SelectedGradientEnd() As Color
            Get
                Return _SelectedGradientEnd
            End Get
            Set(ByVal value As Color)
                _SelectedGradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _PressedGradientBegin As Color = Color.FromArgb(227, 239, 255)
        <DefaultValue(GetType(Color), "227, 239, 255")> _
        Public Property PressedGradientBegin() As Color
            Get
                Return _PressedGradientBegin
            End Get
            Set(ByVal value As Color)
                _PressedGradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _PressedGradientMiddle As Color = Color.FromArgb(161, 197, 249)
        <DefaultValue(GetType(Color), "161, 197, 249")> _
        Public Property PressedGradientMiddle() As Color
            Get
                Return _PressedGradientMiddle
            End Get
            Set(ByVal value As Color)
                _PressedGradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _PressedGradientEnd As Color = Color.FromArgb(123, 164, 224)
        <DefaultValue(GetType(Color), "123, 164, 224")> _
        Public Property PressedGradientEnd() As Color
            Get
                Return _PressedGradientEnd
            End Get
            Set(ByVal value As Color)
                _PressedGradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class RaftingContainerAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(158, 190, 245)
        <DefaultValue(GetType(Color), "158, 190, 245")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(196, 218, 250)
        <DefaultValue(GetType(Color), "196, 218, 250")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class SeparatorAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _Dark As Color = Color.FromArgb(106, 140, 203)
        <DefaultValue(GetType(Color), "106, 140, 203")> _
        Public Property Dark() As Color
            Get
                Return _Dark
            End Get
            Set(ByVal value As Color)
                _Dark = value
                ts.Invalidate()
            End Set
        End Property

        Private _Light As Color = Color.FromArgb(241, 249, 255)
        <DefaultValue(GetType(Color), "241, 249, 255")> _
        Public Property Light() As Color
            Get
                Return _Light
            End Get
            Set(ByVal value As Color)
                _Light = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class ToolstripAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(227, 239, 255)
        <DefaultValue(GetType(Color), "227, 239, 255")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(203, 225, 252)
        <DefaultValue(GetType(Color), "203, 225, 252")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(123, 164, 224)
        <DefaultValue(GetType(Color), "123, 164, 224")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _Border As Color = Color.FromArgb(59, 97, 156)
        <DefaultValue(GetType(Color), "59, 97, 156")> _
        Public Property Border() As Color
            Get
                Return _Border
            End Get
            Set(ByVal value As Color)
                _Border = value
                ts.Invalidate()
            End Set
        End Property

        Private _DropDownBackground As Color = Color.FromArgb(246, 246, 246)
        <DefaultValue(GetType(Color), "246, 246, 246")> _
        Public Property DropDownBackground() As Color
            Get
                Return _DropDownBackground
            End Get
            Set(ByVal value As Color)
                _DropDownBackground = value
                ts.Invalidate()
            End Set
        End Property

        Private _ContentPanelGradientBegin As Color = Color.FromArgb(158, 190, 245)
        <DefaultValue(GetType(Color), "158, 190, 245")> _
        Public Property ContentPanelGradientBegin() As Color
            Get
                Return _ContentPanelGradientBegin
            End Get
            Set(ByVal value As Color)
                _ContentPanelGradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _ContentPanelGradientEnd As Color = Color.FromArgb(196, 218, 250)
        <DefaultValue(GetType(Color), "196, 218, 250")> _
        Public Property ContentPanelGradientEnd() As Color
            Get
                Return _ContentPanelGradientEnd
            End Get
            Set(ByVal value As Color)
                _ContentPanelGradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Private _PanelGradientBegin As Color = Color.FromArgb(158, 190, 245)
        <DefaultValue(GetType(Color), "158, 190, 245")> _
        Public Property PanelGradientBegin() As Color
            Get
                Return _PanelGradientBegin
            End Get
            Set(ByVal value As Color)
                _PanelGradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _PanelGradientEnd As Color = Color.FromArgb(196, 218, 250)
        <DefaultValue(GetType(Color), "196, 218, 250")> _
        Public Property PanelGradientEnd() As Color
            Get
                Return _PanelGradientEnd
            End Get
            Set(ByVal value As Color)
                _PanelGradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function
    End Class

    Public Class OverflowButtonAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(127, 177, 250)
        <DefaultValue(GetType(Color), "127, 177, 250")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(82, 127, 208)
        <DefaultValue(GetType(Color), "82, 127, 208")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(0, 53, 145)
        <DefaultValue(GetType(Color), "0, 53, 145")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function

    End Class

    Public Class ImageMarginNormalAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(227, 239, 255)
        <DefaultValue(GetType(Color), "227, 239, 255")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(203, 225, 252)
        <DefaultValue(GetType(Color), "203, 225, 252")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(123, 164, 224)
        <DefaultValue(GetType(Color), "123, 164, 224")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function

    End Class

    Public Class ImageMarginRevealedAppearanceProperties

        Private ts As cMenuStrip
        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Private _GradientBegin As Color = Color.FromArgb(203, 221, 246)
        <DefaultValue(GetType(Color), "203, 221, 246")> _
        Public Property GradientBegin() As Color
            Get
                Return _GradientBegin
            End Get
            Set(ByVal value As Color)
                _GradientBegin = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientMiddle As Color = Color.FromArgb(161, 197, 249)
        <DefaultValue(GetType(Color), "161, 197, 249")> _
        Public Property GradientMiddle() As Color
            Get
                Return _GradientMiddle
            End Get
            Set(ByVal value As Color)
                _GradientMiddle = value
                ts.Invalidate()
            End Set
        End Property

        Private _GradientEnd As Color = Color.FromArgb(114, 155, 215)
        <DefaultValue(GetType(Color), "114, 155, 215")> _
        Public Property GradientEnd() As Color
            Get
                Return _GradientEnd
            End Get
            Set(ByVal value As Color)
                _GradientEnd = value
                ts.Invalidate()
            End Set
        End Property

        Public Overrides Function ToString() As String
            Return String.Empty
        End Function

    End Class

#End Region

#Region " Color Tables "

    Public Class cMenuStripColorTable
        Inherits ProfessionalColorTable

        Private ts As cMenuStrip = Nothing

        Public Sub New(ByVal toolStrip As cMenuStrip)
            ts = toolStrip
        End Sub

        Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.Highlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.BorderHighlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.Highlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.BorderHighlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.Highlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.BorderHighlight
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.Border
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.Border
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return ts.Appearance.ButtonAppearance.SelectedAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return ts.Appearance.ButtonAppearance.PressedAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.Background
            End Get
        End Property

        Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.SelectedBackground
            End Get
        End Property

        Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return ts.Appearance.ButtonAppearance.CheckedAppearance.PressedBackground
            End Get
        End Property

        Overrides ReadOnly Property GripDark() As Color
            Get
                Return ts.Appearance.GripAppearance.Dark
            End Get
        End Property

        Overrides ReadOnly Property GripLight() As Color
            Get
                Return ts.Appearance.GripAppearance.Light
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Normal.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Normal.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Normal.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Revealed.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Revealed.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return ts.Appearance.ImageMarginAppearance.Revealed.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return ts.Appearance.MenuStripAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return ts.Appearance.MenuStripAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.Selected
            End Get
        End Property

        Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.Border
            End Get
        End Property

        Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return ts.Appearance.MenuStripAppearance.Border
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.SelectedGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.SelectedGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.PressedGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.PressedGradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return ts.Appearance.MenuItemAppearance.PressedGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return ts.Appearance.RaftingContainerAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return ts.Appearance.RaftingContainerAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return ts.Appearance.SeparatorAppearance.Dark
            End Get
        End Property

        Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return ts.Appearance.SeparatorAppearance.Light
            End Get
        End Property

        Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.Border
            End Get
        End Property

        Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.DropDownBackground
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.GradientEnd
            End Get
        End Property

        Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.ContentPanelGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.ContentPanelGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.PanelGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return ts.Appearance.ToolStripAppearance.PanelGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return ts.Appearance.OverflowButtonAppearance.GradientBegin
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return ts.Appearance.OverflowButtonAppearance.GradientMiddle
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return ts.Appearance.OverflowButtonAppearance.GradientEnd
            End Get
        End Property

    End Class

    Public Class Office2007ColorTable
        Inherits ProfessionalColorTable

        Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(251, 140, 60)
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(255, 189, 105)
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 207, 146)
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 189, 105)
            End Get
        End Property

        Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 175, 73)
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 245, 204)
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 230, 162)
            End Get
        End Property

        Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 218, 117)
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(252, 151, 61)
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 171, 63)
            End Get
        End Property

        Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 184, 94)
            End Get
        End Property

        Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(255, 171, 63) 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Me.ButtonPressedGradientBegin 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Me.CheckSelectedBackground
            End Get
        End Property

        Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(111, 157, 217)
            End Get
        End Property

        Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(233, 238, 238)
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Me.ImageMarginGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Me.ImageMarginGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Me.ImageMarginGradientBegin 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Me.ImageMarginRevealedGradientBegin 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return ImageMarginRevealedGradientBegin 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(191, 219, 255)
            End Get
        End Property

        Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Me.MenuStripGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(255, 231, 162)
            End Get
        End Property

        Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(255, 189, 105)
            End Get
        End Property

        Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(101, 147, 207)
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Me.ButtonSelectedGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Me.ButtonSelectedGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(226, 239, 255)
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(190, 215, 247)
            End Get
        End Property

        Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(153, 191, 240)
            End Get
        End Property

        Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.White 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.White 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(154, 198, 255)
            End Get
        End Property

        Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.White
            End Get
        End Property

        Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(111, 157, 217)
            End Get
        End Property

        Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(246, 246, 246)
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(227, 239, 255)
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(218, 234, 255)
            End Get
        End Property

        Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(177, 211, 255)
            End Get
        End Property

        Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 232, 255) 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(111, 157, 217) 'UNSURE
            End Get
        End Property

        Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Me.MenuStripGradientBegin
            End Get
        End Property

        Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Me.MenuStripGradientEnd
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 232, 255)
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(167, 204, 251)
            End Get
        End Property

        Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(111, 157, 217)
            End Get
        End Property

    End Class

    Public Class Office2003BlueColorTable
        Inherits ProfessionalColorTable

        Public Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.FromArgb(195, 211, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.FromArgb(0, 0, 128)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.FromArgb(150, 179, 225)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.FromArgb(49, 106, 197)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.FromArgb(195, 211, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.FromArgb(49, 106, 197)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(0, 0, 128)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(0, 0, 128)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 195, 116)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 166, 76)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 225, 172)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 177, 109)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(255, 192, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(39, 65, 118)
            End Get
        End Property

        Public Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(227, 239, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Color.FromArgb(203, 225, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Color.FromArgb(123, 164, 224)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Color.FromArgb(203, 221, 246)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Color.FromArgb(161, 197, 249)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return Color.FromArgb(114, 155, 215)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(158, 190, 245)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Color.FromArgb(196, 218, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(255, 238, 194)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(0, 0, 128)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(0, 45, 150)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(227, 239, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(161, 197, 249)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(123, 164, 224)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.FromArgb(158, 190, 245)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.FromArgb(196, 218, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(106, 140, 203)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.FromArgb(241, 249, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientBegin() As Color
            Get
                Return Color.FromArgb(158, 190, 245)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientEnd() As Color
            Get
                Return Color.FromArgb(196, 218, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(59, 97, 156)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(246, 246, 246)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(227, 239, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(203, 225, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(123, 164, 224)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(158, 190, 245)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(196, 218, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(158, 190, 245)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(196, 218, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(127, 177, 250)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(82, 127, 208)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(0, 53, 145)
            End Get
        End Property

    End Class

    Public Class Office2003SilverColorTable
        Inherits ProfessionalColorTable

        Public Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.FromArgb(231, 232, 235)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.FromArgb(75, 75, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.FromArgb(215, 216, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.FromArgb(178, 180, 191)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.FromArgb(231, 232, 235)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.FromArgb(178, 180, 191)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(75, 75, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(75, 75, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 195, 116)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 166, 76)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 225, 172)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 177, 109)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(255, 192, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(84, 84, 117)
            End Get
        End Property

        Public Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(249, 249, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Color.FromArgb(225, 226, 236)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Color.FromArgb(147, 145, 176)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 226)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Color.FromArgb(184, 185, 202)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return Color.FromArgb(118, 116, 151)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Color.FromArgb(243, 243, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(255, 238, 194)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(75, 75, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(124, 124, 148)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(232, 233, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(184, 185, 202)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(172, 170, 194)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.FromArgb(243, 243, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(110, 109, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientEnd() As Color
            Get
                Return Color.FromArgb(243, 243, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(124, 124, 148)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(253, 250, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(249, 249, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(225, 226, 236)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(147, 145, 176)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(243, 243, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(215, 215, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(243, 243, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(186, 185, 206)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(156, 155, 180)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(118, 116, 146)
            End Get
        End Property

    End Class

    Public Class Office2003OliveColorTable
        Inherits ProfessionalColorTable
        Public Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.FromArgb(223, 227, 213)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.FromArgb(63, 93, 56)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.FromArgb(200, 206, 182)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.FromArgb(147, 160, 112)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.FromArgb(223, 227, 213)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.FromArgb(147, 160, 112)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(63, 93, 56)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(63, 93, 56)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 195, 116)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 166, 76)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 225, 172)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(255, 177, 109)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 223, 154)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(255, 192, 111)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Color.FromArgb(254, 128, 62)
            End Get
        End Property

        Public Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(81, 94, 51)
            End Get
        End Property

        Public Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Color.FromArgb(206, 220, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Color.FromArgb(181, 196, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Color.FromArgb(230, 230, 209)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Color.FromArgb(186, 201, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return Color.FromArgb(160, 177, 116)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(217, 217, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Color.FromArgb(242, 241, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(255, 238, 194)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(63, 93, 56)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(117, 141, 94)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(255, 203, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(237, 240, 214)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(186, 201, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(181, 196, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.FromArgb(217, 217, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.FromArgb(242, 241, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(96, 128, 88)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.FromArgb(244, 247, 222)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientBegin() As Color
            Get
                Return Color.FromArgb(217, 217, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientEnd() As Color
            Get
                Return Color.FromArgb(242, 241, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(96, 128, 88)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(244, 244, 238)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(255, 255, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(206, 220, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(181, 196, 143)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(217, 217, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(242, 241, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(217, 217, 167)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(242, 241, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(186, 204, 150)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(141, 160, 107)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(96, 119, 107)
            End Get
        End Property


    End Class

    Public Class OfficeXPColorTable
        Inherits ProfessionalColorTable
        Public Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.FromArgb(196, 208, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.FromArgb(152, 173, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.FromArgb(196, 208, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(226, 229, 238)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(226, 229, 238)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(226, 229, 238)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(153, 175, 212)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(153, 175, 212)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(153, 175, 212)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(226, 229, 238)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(189, 188, 191)
            End Get
        End Property

        Public Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(252, 252, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Color.FromArgb(245, 244, 246)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Color.FromArgb(247, 246, 248)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Color.FromArgb(241, 240, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return Color.FromArgb(228, 226, 230)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Color.FromArgb(251, 250, 251)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(51, 94, 168)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(134, 133, 136)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(194, 207, 229)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(252, 252, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(241, 240, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(245, 244, 246)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.FromArgb(251, 250, 251)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(193, 193, 196)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientBegin() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientEnd() As Color
            Get
                Return Color.FromArgb(251, 250, 251)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(238, 237, 240)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(252, 252, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(252, 252, 252)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(245, 244, 246)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(251, 250, 251)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(235, 233, 237)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(251, 250, 251)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(242, 242, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(224, 224, 225)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(167, 166, 170)
            End Get
        End Property


    End Class

    Public Class OfficeClassicColorTable
        Inherits ProfessionalColorTable
        Public Overrides ReadOnly Property ButtonSelectedHighlight() As Color
            Get
                Return Color.FromArgb(184, 191, 211)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedHighlightBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlight() As Color
            Get
                Return Color.FromArgb(131, 144, 179)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedHighlightBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlight() As Color
            Get
                Return Color.FromArgb(184, 191, 211)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedHighlightBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As Color
            Get
                Return Color.FromArgb(0, 0, 0)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientMiddle() As Color
            Get
                Return Color.FromArgb(0, 0, 0)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonCheckedGradientEnd() As Color
            Get
                Return Color.FromArgb(0, 0, 0)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(182, 189, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As Color
            Get
                Return Color.FromArgb(182, 189, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(182, 189, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(133, 146, 181)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(133, 146, 181)
            End Get
        End Property

        Public Overrides ReadOnly Property ButtonPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(133, 146, 181)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckBackground() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckSelectedBackground() As Color
            Get
                Return Color.FromArgb(133, 146, 181)
            End Get
        End Property

        Public Overrides ReadOnly Property CheckPressedBackground() As Color
            Get
                Return Color.FromArgb(133, 146, 181)
            End Get
        End Property

        Public Overrides ReadOnly Property GripDark() As Color
            Get
                Return Color.FromArgb(160, 160, 160)
            End Get
        End Property

        Public Overrides ReadOnly Property GripLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientBegin() As Color
            Get
                Return Color.FromArgb(245, 244, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientMiddle() As Color
            Get
                Return Color.FromArgb(234, 232, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginGradientEnd() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientBegin() As Color
            Get
                Return Color.FromArgb(238, 236, 233)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientMiddle() As Color
            Get
                Return Color.FromArgb(225, 222, 217)
            End Get
        End Property

        Public Overrides ReadOnly Property ImageMarginRevealedGradientEnd() As Color
            Get
                Return Color.FromArgb(216, 213, 206)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
            Get
                Return Color.FromArgb(246, 245, 244)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelected() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemBorder() As Color
            Get
                Return Color.FromArgb(10, 36, 106)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuBorder() As Color
            Get
                Return Color.FromArgb(102, 102, 102)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientBegin() As Color
            Get
                Return Color.FromArgb(182, 189, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemSelectedGradientEnd() As Color
            Get
                Return Color.FromArgb(182, 189, 210)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As Color
            Get
                Return Color.FromArgb(245, 244, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As Color
            Get
                Return Color.FromArgb(225, 222, 217)
            End Get
        End Property

        Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As Color
            Get
                Return Color.FromArgb(234, 232, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientBegin() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property RaftingContainerGradientEnd() As Color
            Get
                Return Color.FromArgb(246, 245, 244)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorDark() As Color
            Get
                Return Color.FromArgb(166, 166, 166)
            End Get
        End Property

        Public Overrides ReadOnly Property SeparatorLight() As Color
            Get
                Return Color.FromArgb(255, 255, 255)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientBegin() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property StatusStripGradientEnd() As Color
            Get
                Return Color.FromArgb(246, 245, 244)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripBorder() As Color
            Get
                Return Color.FromArgb(219, 216, 209)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripDropDownBackground() As Color
            Get
                Return Color.FromArgb(249, 248, 247)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
            Get
                Return Color.FromArgb(245, 244, 242)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
            Get
                Return Color.FromArgb(234, 232, 228)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripContentPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(246, 245, 244)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientBegin() As Color
            Get
                Return Color.FromArgb(212, 208, 200)
            End Get
        End Property

        Public Overrides ReadOnly Property ToolStripPanelGradientEnd() As Color
            Get
                Return Color.FromArgb(246, 245, 244)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientBegin() As Color
            Get
                Return Color.FromArgb(225, 222, 217)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientMiddle() As Color
            Get
                Return Color.FromArgb(216, 213, 206)
            End Get
        End Property

        Public Overrides ReadOnly Property OverflowButtonGradientEnd() As Color
            Get
                Return Color.FromArgb(128, 128, 128)
            End Get
        End Property

    End Class

#End Region

End Class

