/*-------------------------------------------------------------------------
         *
         * ---------------------------------------------------------------------------*/
        public setting_window(gvt_lib lib, GvoDatabase db, gvtrademap_cs_form form)
            : base(lib.device, new Vector2(WINDOW_POS_X, WINDOW_POS_Y), new Vector2(WINDOW_SIZE_X, WINDOW_SIZE_Y), WINDOW_POS_Z)
        {
            base.title = "設定ウインドウ";

            m_form = form;
            m_lib  = lib;
            m_db   = db;

            // アイテム追加
            m_hittest_list = new hittest_list();

            // 設定
            m_hittest_list.Add(new hittest());
            // 設定ボタン
            m_hittest_list.Add(new hittest());
        }
示例#2
0
        static void Main()
        {
            Mutex  m = new Mutex(false, "mutex_gvtrademap_cs_cookie_Zephyros");
            string device_info_string = "";

            if (m.WaitOne(0, false))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                // MDX1.1チェック
                AssemblyName error_ass = null;
                if (!Useful.LoadReferencedAssembly(Assembly.GetExecutingAssembly(), out error_ass))
                {
                    // Assemblyの読み込みに失敗
                    // 主にMDX1.1がインストールされていない
                    using (assembly_load_error_form dlg = new assembly_load_error_form(error_ass)){
                        dlg.ShowDialog();
                    }
                    return;
                }
#if !DEBUG
                try{
#endif
                using (gvtrademap_cs_form frm = new gvtrademap_cs_form())
                {
                    if (frm.Initialize())                                       // 初期化
                    {
                        device_info_string = frm.device_info_string;
                        frm.Show();                                                             // 表示開始

                        int old_tick_count = System.Environment.TickCount;
                        while (frm.Created)
                        {
                            // 秒間60フレームを限界とする
                            // それほど精度が高くないと思う
                            if (System.Environment.TickCount - old_tick_count >= 1000 / 60)
                            {
                                old_tick_count = System.Environment.TickCount;
                                frm.update_main_window();
                            }
                            Application.DoEvents();
                            Thread.Sleep(1);                                                    // できるだけCPUを使わない
                            // 処理が間に合わなくても必ず休む
                        }
                    }
                }
#if !DEBUG
            }
            catch (Exception ex) {
                // 想定外のエラー
                using (
                    error_form dlg = new error_form(def.WINDOW_TITLE,
                                                    ex,
                                                    def.WINDOW_TITLE,
                                                    def.URL4,
                                                    (device_info_string != "")? device_info_string: "未取得")){
                    dlg.ShowDialog();
                }
            }
#endif
            }
            else
            {
                // すでに起動している
                // アクティブにして終了する
                gvtrademap_cs_form.ActiveGVTradeMap();
            }
            // m が GC によって解放されないようにする
            GC.KeepAlive(m);
        }