public void LaunchForm_AsBody() { ((Ui_ShogiForm1)this.OwnerForm).Delegate_Form1_Load = (NarabeRoomViewModel shogiGui, object sender, EventArgs e) => { // // ボタンのプロパティを外部ファイルから設定 // foreach (WidgetsLoader widgetsLoader in this.WidgetLoaders) { widgetsLoader.Step1_ReadFile(shogiGui); } foreach (WidgetsLoader widgetsLoader in this.WidgetLoaders) { widgetsLoader.Step2_Compile_AllWidget(shogiGui); } foreach (WidgetsLoader widgetsLoader in this.WidgetLoaders) { widgetsLoader.Step3_SetEvent(shogiGui); } }; this.ReadStyle_ToForm((Ui_ShogiForm1)this.OwnerForm); // // FIXME: [初期配置]を1回やっておかないと、[コマ送り]ボタン等で不具合が出てしまう。 // { //ResponseImpl dammy_response = new ResponseImpl(); WidgetsLoader_KifuNarabe.Perform_SyokiHaichi( //ref dammy_response, ((Ui_ShogiForm1)this.OwnerForm).Ui_PnlMain1 ); } Application.Run((Ui_ShogiForm1)this.OwnerForm); }
public virtual void Step3_SetEvent(object obj_shogiGui) { NarabeRoomViewModel shogiGui1 = (NarabeRoomViewModel)obj_shogiGui; //---------- // [成る]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnNaru"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; shogiGui.Shape_PnlTaikyoku.SetNaruFlag(true); this.After_NaruNaranai( shogiGui , btnKoma_Selected ); }; } //---------- // [成らない]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnNaranai"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; shogiGui.Shape_PnlTaikyoku.SetNaruFlag(false); this.After_NaruNaranai( shogiGui , btnKoma_Selected ); }; } //---------- // [クリアー]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnClear"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Util_Lua_KifuNarabe.ShogiGui = shogiGui; Util_Lua_KifuNarabe.Perform("click_clearButton"); }; } //---------- // [再生]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnPlay"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Util_Lua_KifuNarabe.ShogiGui = shogiGui; Util_Lua_KifuNarabe.Perform("click_playButton"); }; } //---------- // [コマ送り]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnForward"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; string restText = Util_InGui.ReadLine_FromTextbox(); Util_InServer.Komaokuri_Srv(ref restText, shogiGui); Util_InGui.Komaokuri_Gui(restText, shogiGui); Util_Menace.Menace(shogiGui);// メナス }; } //---------- // [巻戻し]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnBackward"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; Finger movedKoma; Finger foodKoma;//取られた駒 string fugoJStr; if (!Util_InServer.Makimodosi_Srv(out movedKoma, out foodKoma, out fugoJStr, shogiGui)) { goto gt_EndBlock; } Util_InGui.Makimodosi_Gui(shogiGui, movedKoma, foodKoma, fugoJStr, Util_InGui.ReadLine_FromTextbox()); Util_Menace.Menace(shogiGui);//メナス gt_EndBlock: ; }; } //---------- // ログ出せボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnLogdase"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; ui_PnlMain.ShogiGui.Logdase(); }; } //---------- // [壁置く]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnKabeOku"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; // [壁置く]←→[駒動かす]切替 switch (widget.Text) { case "壁置く": widget.Text = "駒動かす"; break; default: widget.Text = "壁置く"; break; } shogiGui.ResponseData.ToRedraw(); }; } //---------- // [出力切替]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnSyuturyokuKirikae"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; switch (shogiGui.Shape_PnlTaikyoku.SyuturyokuKirikae) { case SyuturyokuKirikae.Japanese: shogiGui.Shape_PnlTaikyoku.SetSyuturyokuKirikae(SyuturyokuKirikae.Sfen); break; case SyuturyokuKirikae.Sfen: shogiGui.Shape_PnlTaikyoku.SetSyuturyokuKirikae(SyuturyokuKirikae.Html); break; case SyuturyokuKirikae.Html: shogiGui.Shape_PnlTaikyoku.SetSyuturyokuKirikae(SyuturyokuKirikae.Japanese); break; } shogiGui.ResponseData.OutputTxt = ResponseGedanTxt.Kifu; }; } //---------- // [▲]~[打]符号ボタン //---------- { string[] buttonNames = new string[] { "BtnFugo_Sente" // [▲]~[打]符号ボタン , "BtnFugo_Gote" , "BtnFugo_1" , "BtnFugo_2" , "BtnFugo_3" , "BtnFugo_4" , "BtnFugo_5" , "BtnFugo_6" , "BtnFugo_7" , "BtnFugo_8" , "BtnFugo_9" , "BtnFugo_Dou" , "BtnFugo_Fu" , "BtnFugo_Hisya" , "BtnFugo_Kaku" , "BtnFugo_Kyo" , "BtnFugo_Kei" , "BtnFugo_Gin" , "BtnFugo_Kin" , "BtnFugo_Oh" , "BtnFugo_Gyoku" , "BtnFugo_Tokin" , "BtnFugo_Narikyo" , "BtnFugo_Narikei" , "BtnFugo_Narigin" , "BtnFugo_Ryu" , "BtnFugo_Uma" , "BtnFugo_Yoru" , "BtnFugo_Hiku" , "BtnFugo_Agaru" , "BtnFugo_Migi" , "BtnFugo_Hidari" , "BtnFugo_Sugu" , "BtnFugo_Nari" , "BtnFugo_Funari" , "BtnFugo_Da" }; foreach (string buttonName in buttonNames) { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget(buttonName); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; shogiGui.ResponseData.SetAppendInputTextString(shogiGui.Shape_PnlTaikyoku.GetWidget(buttonName).Fugo); }; } } //---------- // [全消]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnFugo_Zenkesi"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; shogiGui.ResponseData.InputTextString = ""; }; } //---------- // [ここから採譜]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnFugo_KokokaraSaifu"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; ui_PnlMain.ShogiGui.GameViewModel.Kifu.SetStartpos_KokokaraSaifu(Util_InServer.CurPside(ui_PnlMain.ShogiGui)); shogiGui.ResponseData.OutputTxt = ResponseGedanTxt.Kifu; }; } //---------- // 初期配置ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnSyokihaichi"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; WidgetsLoader_KifuNarabe.Perform_SyokiHaichi(ui_PnlMain); }; } //---------- // [向き]ボタン //---------- { UserWidget widget = shogiGui1.Shape_PnlTaikyoku.GetWidget("BtnMuki"); widget.Delegate_MouseHitEvent = ( object obj_shogiGui2 , Shape_BtnKoma btnKoma_Selected ) => { NarabeRoomViewModel shogiGui = (NarabeRoomViewModel)obj_shogiGui2; Ui_PnlMain ui_PnlMain = ((Ui_ShogiForm1)shogiGui.OwnerForm).Ui_PnlMain1; Shape_BtnKoma movedKoma = shogiGui.Shape_PnlTaikyoku.Btn_MovedKoma(); RO_Star_Koma koma; Finger figKoma = Fingers.Error_1; if (null != movedKoma) { //>>>>> 移動直後の駒があるとき koma = Util_Koma.AsKoma(ui_PnlMain.ShogiGui.GameViewModel.GuiSkyConst.StarlightIndexOf(movedKoma.Finger).Now); figKoma = movedKoma.Finger; } else if (null != btnKoma_Selected) { //>>>>> 選択されている駒があるとき koma = Util_Koma.AsKoma(ui_PnlMain.ShogiGui.GameViewModel.GuiSkyConst.StarlightIndexOf(btnKoma_Selected.Koma).Now); figKoma = btnKoma_Selected.Koma; } else { koma = null; } if (null != koma) { switch (koma.Pside) { case Playerside.P1: { SkyBuffer buffer_Sky = new SkyBuffer(ui_PnlMain.ShogiGui.GameViewModel.GuiSkyConst); buffer_Sky.AddOverwriteStarlight(figKoma, new RO_MotionlessStarlight( //figKoma, new RO_Star_Koma(Playerside.P2, koma.Masu, Haiyaku184Array.Syurui(koma.Haiyaku)) )); KifuNode modifyNode = new KifuNodeImpl( ui_PnlMain.ShogiGui.GameViewModel.Kifu.CurNode.Key, //現在の局面を流用 new KyokumenWrapper(new SkyConst(buffer_Sky)), ((KifuNode)ui_PnlMain.ShogiGui.GameViewModel.Kifu.CurNode).Tebanside ); // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ // ここで局面データを変更します。 // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Util_InServer.SetCurNode_Srv(ui_PnlMain.ShogiGui, modifyNode); ui_PnlMain.ShogiGui.ResponseData.ToRedraw(); } break; case Playerside.P2: { SkyBuffer buffer_Sky = new SkyBuffer(ui_PnlMain.ShogiGui.GameViewModel.GuiSkyConst); buffer_Sky.AddOverwriteStarlight(figKoma, new RO_MotionlessStarlight( //figKoma, new RO_Star_Koma(Playerside.P1, koma.Masu, Haiyaku184Array.Syurui(koma.Haiyaku)) )); KifuNode modifyNode = new KifuNodeImpl( ui_PnlMain.ShogiGui.GameViewModel.Kifu.CurNode.Key, //現在の局面を流用 new KyokumenWrapper(new SkyConst(buffer_Sky)), ((KifuNode)ui_PnlMain.ShogiGui.GameViewModel.Kifu.CurNode).Tebanside ); // ここで局面データを変更します。 Util_InServer.SetCurNode_Srv(ui_PnlMain.ShogiGui, modifyNode); ui_PnlMain.ShogiGui.ResponseData.ToRedraw(); } break; } } }; } }