Option Strict Off
Option Explicit On
Imports System.Windows.Forms
'------------------------------------ 2024/04/01 ------------------------------------
Public Class 四frmDlgOptionSTD

#Region "宣言"
    Private mNew実行中 As Boolean = True
    Private mMe_gmDlgID As Integer = 0
    Private mDlgLoading As Boolean = False
    Private mlstカード一致で反転表示, mlstカード移動の軌跡を残す As Integer
    Private mlst背景の明るさ, mlst枠の太さ, mlstカードスピード As Integer
    Private mp配色枠標準, mp配色枠ドラッグ, mp配色背景 As Integer
    '**************************************************************************************************************************************
    Event 標準オプション設定Dlgの初期化をしてください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID As Integer, ByRef wlstカード一致で反転表示 As ListBox, ByRef wlstカード移動の軌跡を残す As ListBox, ByRef wlst背景の明るさ As ListBox, ByRef wlst枠の太さ As ListBox, ByRef wlstカードスピード As ListBox)
    Event カラーデーターをください(ByRef wmp配色枠標準 As Integer, ByRef wmp配色枠ドラッグ As Integer, ByRef wmp配色背景 As Integer)
    Event 他のウインドウが表示あるいは非表示になりました(ByVal rMe_gmDlgID As Integer, ByVal r表示変更ウインドウID As Integer, ByVal r表示True消去False As Boolean, ByRef wRet_rMe_gmDlgIDウインドウを消去しなさい As Boolean)
    '**************************************************************************
    '宣言
    Private WithEvents o色見本 As 五clsColorSet2401 = Nothing
    Private flg_o色見本Loading As Boolean = True
    '**************************************************************************************************************************************
    Private WithEvents イベントgAppEventMaker As 五clsEventMaker
    '**************************************************************************************************************************************
#End Region

#Region "AppIniFileOp"
    Private Function zzAppIniFileOp(ByVal Load_0_QueryUnload_1_Resize_2_DoIniSave_3 As Long) As Boolean
        '読出し時に　INI ファイルが存在しない場合は　False　を返します。
        If gggAppIniFile Is Nothing Then Return False
        Return gggAppIniFile.aaAppIniFileOp_フォームサイズと位置だけ_共通処理(Load_0_QueryUnload_1_Resize_2_DoIniSave_3, Me, "2531")
    End Function
#End Region

#Region "フォームイベント"
    '***********************************************************************
    Public Sub New()
        mNew実行中 = True
        ' この呼び出しは、Windows フォーム デザイナで必要です。
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後で初期化を追加します。
    End Sub
    Private Sub 四frmDlgOptionSTD_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '---------------------------------------------------
        イベントgAppEventMaker = gAppEventMaker
        '---------------------------------------------------
        mNew実行中 = False
        mDlgLoading = True
        Dim wIsOK As Boolean
        RaiseEvent 標準オプション設定Dlgの初期化をしてください(wIsOK, mMe_gmDlgID, lstカード一致で反転表示, lstカード移動の軌跡を残す, lst背景の明るさ, lst枠の太さ, lstカードスピード)
        If Not wIsOK Then GoTo EXIT_ON_ERROR
        mlstカード一致で反転表示 = lstカード一致で反転表示.SelectedIndex
        mlstカード移動の軌跡を残す = lstカード移動の軌跡を残す.SelectedIndex
        mlst背景の明るさ = lst背景の明るさ.SelectedIndex
        mlst枠の太さ = lst枠の太さ.SelectedIndex
        mlstカードスピード = lstカードスピード.SelectedIndex
        RaiseEvent カラーデーターをください(mp配色枠標準, mp配色枠ドラッグ, mp配色背景)
        '---------------------------------------------------
        gggbol = zzEnabledSet()
        mDlgLoading = False
        If Not zzAppIniFileOp(0) Then gggint = ⅩFormMove(gcoフォームをスクリーン中心に移動, Me) 'INI ファイルが存在しない場合に、このフォームを画面のセンターに表示するコード。
        '---------------------------------------------------
        o色見本 = New 五clsColorSet2401(flg_o色見本Loading, Me, 262, 135, 200, 200)
        '---------------------------------------------------
        lstカラー設定.SelectedIndex = 0 : Call lstカラー設定_SelectedIndexChanged(Nothing, Nothing)
        '---------------------------------------------------
        gggbol = ⅩForm_OwnerSet_IconSet_TextSet(Me, "オプション設定", Me.Owner)
        gggbol = イベントgAppEventMaker.MakeEventフォームの表示消去(mMe_gmDlgID, True)
        Exit Sub
        '---------------------------------------------------
EXIT_ON_ERROR:
        Call ⅩMsgBox_OK_情報("四frmDlgOptionSTD_Load() 内でエラーが発生しました。")
        Me.Close()
    End Sub
    Private Sub mnu閉じる_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnu閉じる.Click
        Me.Close()
    End Sub
    Private Sub 四frmDlgOptionSTD_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        o色見本.Dispose()
        If Me.Visible Then gggint = zzAppIniFileOp(2)
        gggint = zzAppIniFileOp(1)
        If イベントgAppEventMaker Is Nothing Then
            イベントgAppEventMaker = gAppEventMaker
        End If
        gggbol = イベントgAppEventMaker.MakeEventフォームの表示消去(mMe_gmDlgID, False)
    End Sub
    Private Sub 四frmDlgOptionSTD_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        'qqqqq("四frmDlgOptionSTD_FormClosed")
    End Sub
    Private Sub 四frmDlgOptionSTD_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        qqqqq("四frmDlgOptionSTD_Disposed")
        Call gmアプリ固有クラス.mn3optオプション設定Dlg_Load_1_Disposed_2(2, Nothing)
    End Sub
    '***********************************************************************
#End Region

#Region "コントロール　イベント"
    '***********************************************************************
    Private Sub lstカード一致で反転表示_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstカード一致で反転表示.SelectedIndexChanged
        If mNew実行中 Then Return
        If mDlgLoading Then Return
        gmアプリ固有クラス.pカード一致で反転する = lstカード一致で反転表示.SelectedIndex
        gggbol = zzEnabledSet()
    End Sub
    Private Sub lstカード移動の軌跡を残す_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstカード移動の軌跡を残す.SelectedIndexChanged
        If mNew実行中 Then Return
        If mDlgLoading Then Return
        gmアプリ固有クラス.pカード移動の軌跡を残す = lstカード移動の軌跡を残す.SelectedIndex
        gggbol = zzEnabledSet()
    End Sub
    Private Sub lstカードスピード_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstカードスピード.SelectedIndexChanged
        If mNew実行中 Then Return
        If mDlgLoading Then Return
        Call gmアプリ固有クラス.pカードスピードListBoxから読出し(lstカードスピード)
        gggbol = zzEnabledSet()
    End Sub
    Private Sub lst背景の明るさ_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lst背景の明るさ.SelectedIndexChanged
        If mNew実行中 Then Return
        If mDlgLoading Then Return
        If gmアプリ固有クラス.aa背景の明るさを変更する(lst背景の明るさ) Then
            Call frmMain.aa_もしゲーム実行中ならば再描画(3, 0, True)
            gggbol = zzEnabledSet()
        End If
    End Sub
    Private Sub lst枠の太さ_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lst枠の太さ.SelectedIndexChanged
        If mNew実行中 Then Return
        If mDlgLoading Then Return
        Call gmアプリ固有クラス.pカードサイズ枠の太さListBoxから読出し(lst枠の太さ)
        Call frmMain.aa_もしゲーム実行中ならば再描画(3, 2, False)
        gggbol = zzEnabledSet()
        'qqqqq("lst枠の太さ_SelectedIndexChanged")
    End Sub
    '***********************************************************************
    Private Sub lstカラー設定_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstカラー設定.SelectedIndexChanged
        gggbol = lstカラー設定_SelectedIndexChanged_COM(lstカラー設定.SelectedIndex, 0, False)
    End Sub
    Private Function lstカラー設定_SelectedIndexChanged_COM(ByVal Index As Integer, ByVal rCurColor As Integer, ByVal rEventMouseUp As Boolean) As Boolean
        If mNew実行中 Then Return False
        If mDlgLoading Then Return False
        If o色見本 Is Nothing Then Return False
        If flg_o色見本Loading Then Return False
        Dim ccc As Integer
        If Index >= 0 And Index < 3 Then
            With gmアプリ固有クラス
                Select Case Index
                    Case 0 : ccc = .pゲーム配色外枠
                    Case 1 : ccc = .pゲーム配色外枠ドラッグ
                    Case 2 : ccc = .pゲーム配色抜け背景
                End Select
            End With
            o色見本.CurMainColor = ccc
        ElseIf Index < 0 Then
            Dim nnn As Integer = lstカラー設定.SelectedIndex
            If rCurColor >= 0 Then
                If rEventMouseUp Then
                    With gmアプリ固有クラス
                        Select Case nnn
                            Case 0 : .pゲーム配色外枠 = rCurColor
                            Case 1 : .pゲーム配色外枠ドラッグ = rCurColor
                            Case 2 : .pゲーム配色抜け背景 = rCurColor
                        End Select
                    End With
                    gggbol = zzEnabledSet()
                End If
            End If
        End If
        Return True
    End Function
    '***********************************************************************
    Private Sub o色見本_OnColorChanged(ByVal rCurMainColor As Integer, ByVal rCurColor As Integer, ByVal rChangeMode As 五clsColorSet2401.ColorChangeMode, ByVal rEventMouseUp As Boolean) Handles o色見本.OnColorChanged
        If flg_o色見本Loading Then Exit Sub
        gggbol = lstカラー設定_SelectedIndexChanged_COM(-1, rCurColor, rEventMouseUp)
    End Sub
    '***********************************************************************
#End Region

#Region "メニューイベント"
    Private Sub mnuすべて元に戻す_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuすべて元に戻す.Click
        gggbol = zzResEtData(True)
        gggbol = lstカラー設定_SelectedIndexChanged_COM(lstカラー設定.SelectedIndex, 0, False)
    End Sub
    Private Sub mnu規定値にリセット_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnu規定値にリセット.Click
        gggbol = zzResEtData(False)
        gggbol = lstカラー設定_SelectedIndexChanged_COM(lstカラー設定.SelectedIndex, 0, False)
    End Sub
#End Region

#Region "ローカルヘルパー"
    Private Function zzResEtData(ByVal 元に戻す_True_規定値にリセット_False As Boolean) As Boolean
        If mNew実行中 Then Return False
        Dim bol As Boolean = 元に戻す_True_規定値にリセット_False
        With gmアプリ固有クラス
            .pゲーム用ファイルの明るさ = IIf(bol, mlst背景の明るさ, .pゲーム用ファイルの明るさDEF)
            .pカードサイズ枠の太さ = IIf(bol, mlst枠の太さ, .pカードサイズ枠の太さDEF)
            .pカードスピード = IIf(bol, mlstカードスピード, .pカードスピードDEF)
            .pカード一致で反転する = IIf(bol, mlstカード一致で反転表示, .pカード一致で反転するDEF)
            .pカード移動の軌跡を残す = IIf(bol, mlstカード移動の軌跡を残す, .pカード移動の軌跡を残すDEF)
            .pゲーム配色外枠 = IIf(bol, mp配色枠標準, .pゲーム配色外枠DEF)
            .pゲーム配色外枠ドラッグ = IIf(bol, mp配色枠ドラッグ, .pゲーム配色外枠ドラッグDEF)
            .pゲーム配色抜け背景 = IIf(bol, mp配色背景, .pゲーム配色抜け背景DEF)
            lstカード一致で反転表示.SelectedIndex = .pカード一致で反転する
            lstカード移動の軌跡を残す.SelectedIndex = .pカード移動の軌跡を残す
            Call .pゲーム用ファイルの明るさListBoxに設定(lst背景の明るさ)
            Call .pカードサイズ枠の太さListBoxに設定(lst枠の太さ)
            Call .pカードスピードListBoxに設定(lstカードスピード)
        End With
        gggbol = zzEnabledSet()
    End Function
    Private Function zzEnabledSet() As Boolean
        If mNew実行中 Then Return False
        With gmアプリ固有クラス
            mnuすべて元に戻す.Enabled = (mlst背景の明るさ <> .pゲーム用ファイルの明るさ) Or (mlst枠の太さ <> .pカードサイズ枠の太さ) Or _
                                        (mlstカードスピード <> .pカードスピード) Or (mlstカード一致で反転表示 <> .pカード一致で反転する) Or _
                                        (mlstカード移動の軌跡を残す <> .pカード移動の軌跡を残す) Or (mp配色枠標準 <> .pゲーム配色外枠) Or _
                                        (mp配色枠ドラッグ <> .pゲーム配色外枠ドラッグ) Or (mp配色背景 <> .pゲーム配色抜け背景)
            mnu規定値にリセット.Enabled = (.pゲーム用ファイルの明るさ <> .pゲーム用ファイルの明るさDEF) Or (.pカードサイズ枠の太さ <> .pカードサイズ枠の太さDEF) Or _
                                         (.pカードスピード <> .pカードスピードDEF) Or (.pカード一致で反転する <> .pカード一致で反転するDEF) Or _
                                         (.pカード移動の軌跡を残す <> .pカード移動の軌跡を残すDEF) Or (.pゲーム配色外枠 <> .pゲーム配色外枠DEF) Or _
                                         (.pゲーム配色外枠ドラッグ <> .pゲーム配色外枠ドラッグDEF) Or (.pゲーム配色抜け背景 <> .pゲーム配色抜け背景DEF)
        End With
        Return True
    End Function
#End Region

#Region "イベントgAppEventMaker イベント"
    Private Sub イベントgAppEventMaker_スイスイとユラユラ開始と停止() Handles イベントgAppEventMaker.スイスイとユラユラ開始と停止
        If ppスイスイフラフラ_いずれかあるいは両方_を実行中 And Me.Visible Then Call mnu閉じる_Click(Nothing, Nothing)
    End Sub
    Private Sub イベントgAppEventMaker_フォームの表示と消去(ByVal rフォーム名ID As Integer, ByVal r表示True消去False As Boolean) Handles イベントgAppEventMaker.フォームの表示と消去
        Dim wRet_rMe_gmDlgIDウインドウを消去しなさい As Boolean
        RaiseEvent 他のウインドウが表示あるいは非表示になりました(mMe_gmDlgID, rフォーム名ID, r表示True消去False, wRet_rMe_gmDlgIDウインドウを消去しなさい)
        If wRet_rMe_gmDlgIDウインドウを消去しなさい Then Call mnu閉じる_Click(Nothing, Nothing)
    End Sub
#End Region

End Class


