Option Strict On

Imports System.ComponentModel
Imports MetroFramework
Imports MetroFramework.Components
Imports MetroFramework.Controls
Imports MetroFramework.Drawing

Public Class CheckBoxComboBox

    Dim Manager As New MetroStyleManager
    Dim Dubs As New List(Of MetroCheckBox)
    Dim Subs As New List(Of MetroCheckBox)
    Dim MyHeight As Integer = 300
    Private Sub Reso_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Manager.Owner = Me
        Me.StyleManager = Manager
        BGP.StyleManager = Manager

        Me.Height = 15
        Animation.Enabled = True
        BGP.StyleManager.Style = MetroColorStyle.Orange
        Me.StyleManager.Style = MetroColorStyle.Orange

        If Me.Text = "CR Dub selection" Then

            'CB_CR_Audio.Items.Clear()

            For i As Integer = 1 To Main.LangValueEnum.Count - 1 ' index 0 = 'null' | last index = jp

                Dim Dub As New MetroCheckBox
                Dub.Text = Main.LangValueEnum(i).DisplayText
                Dub.FontSize = MetroCheckBoxSize.SomethingInBetween
                Dub.TextAlign = ContentAlignment.MiddleCenter
                Dub.SetBounds(2, 30 * Dubs.Count + 1, 316, 25)
                Dub.UseCustomBackColor = True
                Dub.UseCustomForeColor = True
                Dub.ForeColor = Color.Black

                AddHandler Dub.MouseEnter, AddressOf ItemMouseEnter
                AddHandler Dub.MouseLeave, AddressOf ItemMouseLeave

                If Main.LangValueEnum(i).CR_Value = Main.DubSprache.CR_Value Then
                    Dub.Checked = True
                End If

                Dubs.Add(Dub)
                Me.Controls.Add(Dub)
            Next
            'MyHeight = (Main.LangValueEnum.Count - 1) * 30

        ElseIf Me.Text = "CR Sub selection" Then

            For i As Integer = 1 To Main.LangValueEnum.Count - 2 ' index 0 = 'null' | last index = jp

                Dim SubT As New MetroCheckBox
                SubT.Text = Main.LangValueEnum(i).DisplayText
                SubT.Name = Main.LangValueEnum(i).CR_Value
                SubT.FontSize = MetroCheckBoxSize.SomethingInBetween
                SubT.TextAlign = ContentAlignment.MiddleCenter
                SubT.SetBounds(2, 30 * Subs.Count + 1, 295, 25)
                SubT.UseCustomBackColor = True
                SubT.UseCustomForeColor = True
                SubT.ForeColor = Color.Black
                SubT.StyleManager = Manager
                AddHandler SubT.MouseEnter, AddressOf ItemMouseEnter
                AddHandler SubT.MouseLeave, AddressOf ItemMouseLeave
                AddHandler SubT.CheckedChanged, AddressOf ItemCheckedChanged

                If Einstellungen.CR_SoftSubsTemp.Contains(Main.LangValueEnum(i).CR_Value) Then
                    SubT.Checked = True
                End If

                Subs.Add(SubT)
                BGP.Controls.Add(SubT)
            Next

            'MyHeight = 300 '(Main.LangValueEnum.Count - 2) * 30
        End If




    End Sub

    Private Sub ItemCheckedChanged(sender As Object, e As EventArgs)

        Dim Box As MetroCheckBox = CType(sender, MetroCheckBox)

        If Box.Checked = True Then
            If Einstellungen.CR_SoftSubDefault.Items.Contains(Box.Text) Then
            Else
                Einstellungen.CR_SoftSubDefault.Items.Add(Box.Text)
            End If
        Else
            If Einstellungen.CR_SoftSubDefault.Items.Contains(Box.Text) And Einstellungen.CR_SoftSubDefault.SelectedItem.ToString = Box.Text Then
                Einstellungen.CR_SoftSubDefault.Items.Remove(Box.Text)
                Einstellungen.CR_SoftSubDefault.SelectedIndex = 0
            ElseIf Einstellungen.CR_SoftSubDefault.Items.Contains(Box.Text) Then
                Einstellungen.CR_SoftSubDefault.Items.Remove(Box.Text)
            End If
        End If


    End Sub
    Private Sub ItemMouseEnter(sender As Object, e As EventArgs)
        DirectCast(sender, MetroCheckBox).BackColor = Color.FromArgb(&HFFDEDEDE)
    End Sub

    Private Sub ItemMouseLeave(sender As Object, e As EventArgs)
        DirectCast(sender, MetroCheckBox).BackColor = Me.BackColor
    End Sub

    Private Sub CheckBoxComboBox_LocationChanged(sender As Object, e As EventArgs) Handles Me.LocationChanged
        If Me.Text = "CR Dub selection" Then
            Me.Location = New Point(Einstellungen.Location.X + 116, Einstellungen.Location.Y + 200)
        ElseIf Me.Text = "CR Sub selection" Then
            Me.Location = New Point(Einstellungen.Location.X + 116, Einstellungen.Location.Y + 340)
        End If


    End Sub

    Private Sub CheckBoxComboBox_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
        Me.Close()
    End Sub

    Private Sub CheckBoxComboBox_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing

#Region "sof subs"


        Einstellungen.CR_SoftSubsTemp.Clear()

        For i As Integer = 0 To Subs.Count - 1
            Dim Box As MetroCheckBox = Subs(i)

            If Box.Checked = True Then
                Einstellungen.CR_SoftSubsTemp.Add(Box.Name)
            End If

        Next



#End Region
    End Sub

    Private Sub Animation_Tick(sender As Object, e As EventArgs) Handles Animation.Tick
        If Me.Text = "CR Dub selection" Then
            If Me.Height < MyHeight Then
                Me.Height = Me.Height + 30
            Else
                Me.Height = MyHeight
                Animation.Enabled = False
            End If


        ElseIf Me.Text = "CR Sub selection" Then
            If Me.Height < MyHeight Then
                Me.Height = Me.Height + 30
            Else
                Me.Height = MyHeight
                Animation.Enabled = False
            End If

        End If
    End Sub

End Class