// ------------------------------------------------------------------------------------ public MainForm() { InitializeComponent(); // リソース節約のためのコード ms_meiryo_Ke_P_9pt = new Font("MeiryoKe_PGothic", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128))); m_Btn_connect.Font = ms_meiryo_Ke_P_9pt; m_Btn_postMsg.Font = ms_meiryo_Ke_P_9pt; m_Btn_Chg_RmLimit.Font = ms_meiryo_Ke_P_9pt; m_Btn_timer_JSON.Font = ms_meiryo_Ke_P_9pt; m_TBox_PostMsg.Font = ms_meiryo_Ke_P_9pt; m_Lbl_timer_elapsed.Font = ms_meiryo_Ke_P_9pt; label1.Font = ms_meiryo_Ke_P_9pt; m_btn_test_1.Font = ms_meiryo_Ke_P_9pt; m_btn_test_2.Font = ms_meiryo_Ke_P_9pt; m_btn_test_3.Font = ms_meiryo_Ke_P_9pt; ms_meiryo_Ke_P_8pt = new Font("MeiryoKe_PGothic", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128))); m_TBox_uname.Font = ms_meiryo_Ke_P_8pt; m_TBox_roomname.Font = ms_meiryo_Ke_P_8pt; label2.Font = ms_meiryo_Ke_P_8pt; label3.Font = ms_meiryo_Ke_P_8pt; label4.Font = ms_meiryo_Ke_P_8pt; ms_meiryo_8pt = new Font("メイリオ", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128))); m_RBox_usrMsg.Font = ms_meiryo_8pt; m_RBox_status.Font = ms_meiryo_8pt; m_CmbBox_str_icon.Font = ms_meiryo_8pt; // -------------------------------------------- m_Timer_getJSON = new System.Timers.Timer(m_timer_interval_msec); m_Timer_getJSON.Elapsed += OnTimer_GetJSON; m_Timer_getJSON.AutoReset = true; m_Timer_getJSON.SynchronizingObject = this; /* * m_Timer_delayBAN = new System.Timers.Timer(MSEC_timer_intvl_delayBAN); * m_Timer_delayBAN.Elapsed += OnTimer_delayBAN; * m_Timer_delayBAN.AutoReset = true; * m_Timer_delayBAN.SynchronizingObject = this; */ ms_RBox_status = m_RBox_status; m_RBox_status.SelectionTabs = new int[] { 30 }; m_RBox_status.LanguageOption = RichTextBoxLanguageOptions.UIFonts; // 行間を狭くする ms_RBox_usrMsg = m_RBox_usrMsg; ms_RBox_usrMsg.SelectionTabs = new int[] { 30 }; ms_RBox_usrMsg.LanguageOption = RichTextBoxLanguageOptions.UIFonts; // 行間を狭くする // BanCtrl を生成 BanCtrls_Ctrlr.Init(); // BanCtrl の GUI を生成 this.Create_BanCtrls_GUI(); // encip の記録ファイルを読み込む DB_static.Load_fromFile(); MainForm.WriteStatus("--- 起動しました\r\n"); }
// GetJSON() の後にコールされる void Update_BanCtrls() { int c_num_on_room = Math.Min(NUM_Btn_BAN, UInfo_onRoom.msa_uinfo.Count); BanCtrl ban_ctrl = BanCtrls_Ctrlr.ms_BanCtrl_top; for (int idx = 0; idx < c_num_on_room; idx++) { UInfo uinfo = UInfo_onRoom.msa_uinfo[idx]; BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx]; // uinfo、ban_ctrl、ban_ctrl_GUI の3つを lead_id_this_session を軸として結びつけていく int lead_id_this_session = uinfo.m_id_this_session; if (ban_ctrl_GUI.m_id_this_session != lead_id_this_session) { ban_ctrl = BanCtrls_Ctrlr.Update_RoomUsr(ban_ctrl, lead_id_this_session, ban_ctrl_GUI, uinfo); ban_ctrl_GUI.m_id_this_session = lead_id_this_session; ban_ctrl_GUI.m_ban_ctrl = ban_ctrl; } if (ban_ctrl.mb_Rgst_ban && ban_ctrl.mb_Exec_Ban == false) { ma_btn_idx_to_ban[m_tmnt_btn_idx_to_ban] = idx; m_tmnt_btn_idx_to_ban++; } ban_ctrl = ban_ctrl.m_next; } int idx_tmnt; { int idx_eusr = ExitEip_onTalks.msa_encip_on_talks.Count; idx_tmnt = Math.Min(NUM_Btn_BAN, c_num_on_room + idx_eusr); idx_eusr--; // eusr は、後方から処理をしていく(時間的順序を考慮) for (int idx_GUI = c_num_on_room; idx_GUI < idx_tmnt; idx_eusr--, idx_GUI++) { BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx_GUI]; // exit_user、ban_ctrl、ban_ctrl_GUI の3つを lead_id_this_session を軸として結びつけていく int lead_id_this_session = ExitEip_onTalks.msa_id_this_session[idx_eusr]; if (ban_ctrl_GUI.m_id_this_session != lead_id_this_session) { ban_ctrl = BanCtrls_Ctrlr.Update_ExitUsr(ban_ctrl, lead_id_this_session, ban_ctrl_GUI, idx_eusr); ban_ctrl_GUI.m_id_this_session = lead_id_this_session; ban_ctrl_GUI.m_ban_ctrl = ban_ctrl; } ban_ctrl = ban_ctrl.m_next; } } // 非使用の ban_ctrl_GUI の id_this_session をクリア for (int idx_GUI = idx_tmnt; idx_GUI < NUM_Btn_BAN; idx_GUI++) { BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx_GUI]; if (ban_ctrl_GUI.m_id_this_session == 0) { break; } ban_ctrl_GUI.m_Btn_AI_talk.Text = "---"; ban_ctrl_GUI.m_Btn_AI_talk.Enabled = false; ban_ctrl_GUI.m_Btn_ban.Text = " ---"; ban_ctrl_GUI.m_Btn_ban.Enabled = false; ban_ctrl_GUI.m_TBox_info.Visible = false; ban_ctrl_GUI.m_id_this_session = 0; } // 非使用の ban_ctrl の id_this_session をクリア while (ban_ctrl != null) { if (ban_ctrl.m_id_this_session == 0) { break; } ban_ctrl.m_id_this_session = 0; ban_ctrl = ban_ctrl.m_next; } // BanCtrl の表示更新を終えたタイミングで、即時 BAN 対象者がいたら BAN を実行する for (int i = 0; i < m_tmnt_btn_idx_to_ban; i++) { msa_BanCtrl_GUIs[ma_btn_idx_to_ban[i]].m_ban_ctrl.OnClk_Btn_BAN(); } m_tmnt_btn_idx_to_ban = 0; // AI_talk 対応ユーザがいたら、AI_talk に対応させる if (DB_cur.msb_to_appear_AI_talk) { AI_talk.Talk_toTgt(); DB_cur.msb_to_appear_AI_talk = false; } }