Ejemplo n.º 1
0
        private void Uc_Form2Main_MouseDown(object sender, MouseEventArgs e)
        {
            MainGui_Csharp shogibanGui = ((Form2_Console)this.ParentForm).Form1_Shogi.Uc_Form1Main.MainGui;

            if (null == shogibanGui.Shape_PnlTaikyoku)
            {
                goto gt_EndMethod;
            }

            // このメインパネルに、何かして欲しいという要求は、ここに入れられます。
            shogibanGui.RepaintRequest = new RepaintRequestImpl();


            if (e.Button == MouseButtons.Left)
            {
                //------------------------------------------------------------
                // 左ボタン
                //------------------------------------------------------------
                TimedB_MouseCapture timeB = ((TimedB_MouseCapture)shogibanGui.TimedB_MouseCapture);
                timeB.MouseEventQueue.Enqueue(
                    new MouseEventState(shogibanGui.Scene, Shape_CanvasImpl.WINDOW_NAME_CONSOLE, MouseEventStateName.MouseLeftButtonDown, e.Location));
            }
            else if (e.Button == MouseButtons.Right)
            {
                //------------------------------------------------------------
                // 右ボタン
                //------------------------------------------------------------
                TimedB_MouseCapture timeB = ((TimedB_MouseCapture)shogibanGui.TimedB_MouseCapture);
                timeB.MouseEventQueue.Enqueue(
                    new MouseEventState(shogibanGui.Scene, Shape_CanvasImpl.WINDOW_NAME_CONSOLE, MouseEventStateName.MouseRightButtonDown, e.Location));


                //------------------------------
                // このメインパネルの反応
                //------------------------------
                shogibanGui.Response("MouseOperation");
            }
            else
            {
                //------------------------------
                // このメインパネルの反応
                //------------------------------
                shogibanGui.Response("MouseOperation");
            }

gt_EndMethod:
            ;
        }
Ejemplo n.º 2
0
        public override void Step()
        {
            // 入っているマウス操作イベントは、全部捨てていきます。
            SaiseiEventState[] queue = this.SaiseiEventQueue.ToArray();
            this.SaiseiEventQueue.Clear();
            foreach (SaiseiEventState eventState in queue)
            {
                switch (eventState.Name2)
                {
                case SaiseiEventStateName.Start:
                {
                    //MessageBox.Show("再生を実行します2。");

                    mainGui.RepaintRequest = new RepaintRequestImpl();

                    this.restText = Util_Function_Csharp.ReadLine_FromTextbox();
                    this.SaiseiEventQueue.Enqueue(new SaiseiEventState(SaiseiEventStateName.Step));
                }
                break;

                case SaiseiEventStateName.Step:
                {
                    bool toBreak = false;
                    if ("" == restText)
                    {
                        toBreak = true;
                    }
                    else
                    {
                        // [コマ送り]に成功している間、コマ送りし続けます。
                        Util_Functions_Server.ReadLine_TuginoItteSusumu_Srv(
                            ref restText,
                            this.mainGui.Link_Server.Model_Taikyoku,
                            this.mainGui.Model_Manual,
                            out toBreak,
                            "再生ボタン"
                            );

                        //TimedC.Saisei_Step(restText, shogiGui);// 再描画(ループが1回も実行されなかったとき用)
                        // 他のアプリが固まらないようにします。
                        Application.DoEvents();

                        // 早すぎると描画されないので、ウェイトを入れます。
                        System.Threading.Thread.Sleep(90);        //45


                        //------------------------------
                        // 再描画
                        //------------------------------
                        Util_Function_Csharp.Komaokuri_Gui(restText, mainGui);        //追加

                        //------------------------------
                        // メナス
                        //------------------------------
                        Util_Menace.Menace(mainGui);

                        mainGui.Response("Saisei");        // 再描画
                    }

                    if (toBreak)
                    {
                        // 終了
                        this.SaiseiEventQueue.Enqueue(new SaiseiEventState(SaiseiEventStateName.Finished));
                    }
                    else
                    {
                        // 続行
                        this.SaiseiEventQueue.Enqueue(new SaiseiEventState(SaiseiEventStateName.Step));
                    }
                }
                break;
                }
            }
        }