Option Strict Off
Option Explicit On
Imports System.Windows.Forms
'------------------------------------ 2023/11/09 ------------------------------------
Public Class frmDlgカードショーオプション

#Region "宣言"
    Private mMe_gmDlgID As Integer = 0
    Private mLoading As Boolean
    '**************************************************************************************************************************************
    Private WithEvents イベントgAppEventMaker As 五clsEventMaker
    '**************************************************************************************************************************************
    Event ダイアログの初期化をしてください(ByRef wIsOK As Boolean, ByRef wMe_gmDlgID 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)
#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, "96258136")
    End Function
#End Region

#Region "初期化"

    Private Sub frmDlgカードショーオプション_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        qqqqq("frmDlgカードショーオプション_Disposed")
        Call gooClsCardShow.aaカードショーオプションDlg_Load_1_Disposed_2(2, Nothing)
    End Sub
    Private Sub frmDlgカードショーオプション_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        'qqqqq("frmDlgカードショーオプション_FormClosed")
    End Sub
    Private Sub frmDlgカードショーオプション_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        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 frmDlgカードショーオプション_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '---------------------------------------------------
        イベントgAppEventMaker = gAppEventMaker
        '---------------------------------------------------
        mLoading = True
        Dim wIsOK As Boolean = False
        RaiseEvent ダイアログの初期化をしてください(wIsOK, mMe_gmDlgID)
        If Not wIsOK Then GoTo EXIT_ON_ERROR
        '---------------------------------------------------
        gggbol = aaBtnOptStateSet("")
        Call イベントgAppEventMaker_カードショー開始と停止(ppカードショー実行中)
        '---------------------------------------------------
        mLoading = False
        '---------------------------------------------------
        gggbol = ⅩForm_OwnerSet_IconSet_TextSet(Me, "カードショー実行と、オプション設定", Me.Owner)
        If Not zzAppIniFileOp(0) Then gggint = ⅩFormMove(gcoフォームをスクリーン中心に移動, Me) 'INI ファイルが存在しない場合に、このフォームを画面のセンターに表示するコード。
        gggbol = イベントgAppEventMaker.MakeEventフォームの表示消去(mMe_gmDlgID, True)
        Exit Sub
        '---------------------------------------------------
EXIT_ON_ERROR:
        Call ⅩMsgBox_OK_情報("frmDlgOptionKana_Load() 内でエラーが発生しました。")
        Me.Close()
    End Sub

#End Region

#Region "コントロールのイベント"
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub lstカードショー実行モード_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstカードショー実行モード.SelectedIndexChanged
        If mLoading Then Exit Sub
        With lstカードショー実行モード
            gooClsCardShow.pカードショーはループで実行 = (.SelectedIndex = 0)
        End With
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub chkすべてのカード型を使用_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkすべてのカード型を使用.CheckStateChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pすべてのカード型を使用する = (chkすべてのカード型を使用.CheckState = 1)
    End Sub
    Private Sub chkモード変更時に画面クリア_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkモード変更時に画面クリア.CheckStateChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pカードショーループのモード変更時クリア = (chkモード変更時に画面クリア.CheckState = 1)
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub lstカードイメージ_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstカードイメージ.SelectedIndexChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pショーカードイメージ = lstカードイメージ.SelectedIndex
    End Sub
    Private Sub lstカードサイズ_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstカードサイズ.SelectedIndexChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pカードサイズ大中小 = lstカードサイズ.SelectedIndex + 1
    End Sub
    Private Sub lstショーカードの明るさ_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstショーカードの明るさ.SelectedIndexChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pショーカードの明るさ = lstショーカードの明るさ.SelectedIndex + 1
    End Sub
    Private Sub lstモードごとの出現回数_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstモードごとの出現回数.Click
        If mLoading Then Exit Sub
        gooClsCardShow.pモードごとの出現回数 = lstモードごとの出現回数.SelectedIndex + 1
    End Sub
    Private Sub lstカードの移動ステップ数_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstカードの移動ステップ数.SelectedIndexChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pカードの移動ステップ数 = lstカードの移動ステップ数.SelectedIndex + 1
    End Sub
    Private Sub lstショーカードのスピード_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lstショーカードのスピード.SelectedIndexChanged
        If mLoading Then Exit Sub
        gooClsCardShow.pショーカードのスピード = lstショーカードのスピード.SelectedIndex + 1
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Friend Function aaBtnOptStateSet(ByRef op As String) As Boolean
        On Error GoTo errop
        Dim a, n As Integer
        mLoading = True
        With gooClsCardShow
            If op = "" Or op = "pカードショーはループで実行" Then
                lstカードショー実行モード.SelectedIndex = IIf(.pカードショーはループで実行, 0, 1)
            End If
            If op = "" Or op = "pすべてのカード型を使用する" Then
                chkすべてのカード型を使用.CheckState = IIf(.pすべてのカード型を使用する, 1, 0)
            End If
            If op = "" Or op = "pカードショーループのモード変更時クリア" Then
                chkモード変更時に画面クリア.CheckState = IIf(.pカードショーループのモード変更時クリア, 1, 0)
            End If
            If op = "" Or op = "pショーカードイメージ" Then
                lstカードイメージ.SelectedIndex = .pショーカードイメージ
            End If
            If op = "" Or op = "pカードサイズ大中小" Then
                lstカードサイズ.SelectedIndex = .pカードサイズ大中小 - 1
            End If
            If op = "" Or op = "pショーカードの明るさ" Then
                lstショーカードの明るさ.SelectedIndex = .pショーカードの明るさ - 1
            End If
            If op = "" Or op = "pモードごとの出現回数" Then
                lstモードごとの出現回数.SelectedIndex = .pモードごとの出現回数 - 1
            End If
            If op = "" Or op = "pカードの移動ステップ数" Then
                lstカードの移動ステップ数.SelectedIndex = .pカードの移動ステップ数 - 1
            End If
            If op = "" Or op = "pショーカードのスピード" Then
                lstショーカードのスピード.SelectedIndex = .pショーカードのスピード - 1
            End If
        End With
        mLoading = False
        Return True
errop:  MsgBox(ErrorToString()) : Return False
    End Function
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub btn複数モード実行_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn複数モード実行.Click
        If mLoading Then Exit Sub
        Call frmMain.aaカードショー実行(0)
    End Sub
    Private Sub btnカードショーループを停止_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnカードショーループを停止.Click
        If mLoading Then Exit Sub
        gmカードループ停止原因 = 999
    End Sub
    Private Sub btn閉じる_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn閉じる.Click
        If mLoading Then Exit Sub
        Me.Close()
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub btnズーム_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnズーム.Click, btnジャンプ.Click, btnスライド.Click, btnクルクル.Click, btnストップ.Click, btnアチコチ.Click, btnペタペタ.Click, btnスクスク.Click, btnフラフラ.Click
        If mLoading Then Exit Sub
        Dim index As Integer = IIf(sender.Equals(btnズーム), 1, IIf(sender.Equals(btnジャンプ), 2, IIf(sender.Equals(btnスライド), 3, IIf(sender.Equals(btnクルクル), 4, IIf(sender.Equals(btnストップ), 5, _
                               IIf(sender.Equals(btnアチコチ), 6, IIf(sender.Equals(btnペタペタ), 7, IIf(sender.Equals(btnスクスク), 8, IIf(sender.Equals(btnフラフラ), 9, 0)))))))))
        If index = 0 Then Return
        Call frmMain.aaカードショー実行(index)
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    Private Sub btn複数モード設定_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn複数モード設定.Click
        If mLoading Then Exit Sub
        If ppカードショーテスト実行中 Then
            gmカードループ停止原因 = 999
            Call Sleep(1000)
        End If
        gggbol = frmDlgカードショー複数モード選択.DlgShow1(Me)
        'qqqqq "mn40show複数モードの選択設定_Clickのあとで"
    End Sub
    '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#End Region

#Region "イベント from gAppEventMaker"

    Private Sub イベントgAppEventMaker_カードショー開始と停止(ByVal r開始true停止false As Boolean) Handles イベントgAppEventMaker.カードショー開始と停止
        Dim ev As Boolean = (r開始true停止false = False)
        lstカードショー実行モード.Enabled = ev
        btn複数モード実行.Enabled = ev
        btn複数モード設定.Enabled = ev
        btnズーム.Enabled = ev
        btnジャンプ.Enabled = ev
        btnスライド.Enabled = ev
        btnクルクル.Enabled = ev
        btnストップ.Enabled = ev
        btnアチコチ.Enabled = ev
        btnペタペタ.Enabled = ev
        btnスクスク.Enabled = ev
        btnフラフラ.Enabled = ev
        btnカードショーループを停止.Enabled = Not ev
    End Sub
    Private Sub イベントgAppEventMaker_ゲーム開始と停止(ByVal r開始True停止False As Boolean, ByRef wOptionRetStr As String) Handles イベントgAppEventMaker.ゲーム開始と停止
        If (Me.Visible = True) And (r開始True停止False = True) Then Call btn閉じる_Click(Nothing, Nothing)
    End Sub
    Private Sub イベントgAppEventMaker_スイスイとユラユラ開始と停止() Handles イベントgAppEventMaker.スイスイとユラユラ開始と停止
        If (Me.Visible = True) And (ppスイスイフラフラ_いずれかあるいは両方_を実行中 = True) Then Call btn閉じる_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 btn閉じる_Click(Nothing, Nothing)
    End Sub

#End Region

End Class