Beispiel #1
0
        public EngineSubSettingDialog()
        {
            InitializeComponent();

            BindControl();
            Disposed += OnDisposed;

            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.SettingDialog);
        }
Beispiel #2
0
        public GameResultDialog()
        {
            InitializeComponent();

            InitListViewHeader();
            InitListViewContents();

            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.SettingDialog);
        }
Beispiel #3
0
        private void FontDataChanged(Model.Common.ObjectModel.PropertyChangedEventArgs args)
        {
            var fm = TheApp.app.Config.FontManager;
            var s  = (string)args.value;

            if (s == fontDataName)
            {
                FontUtility.ReplaceFont(control, fm.GetValue <FontData>(s));
            }
        }
Beispiel #4
0
        public GameSettingDialog(MainDialog mainDialog_)
        {
            InitializeComponent();

            mainDialog = mainDialog_;

            // ViewModelのハンドラの設定
            SetHandlers();

            // TheApp.app.config.GameSettingを、このFormのControlたちとデータバインドしておく。
            BindSetting();

            Disposed += OnDisposed;

            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.SettingDialog);
        }
        /// <summary>
        /// 条件にマッチするエンジンだけを選択肢として表示する。
        /// コンストラクタのあと呼び出すこと。
        /// 
        /// NormalSearchSupportEngine : 通常探索に対応しているエンジンを表示するのか。
        /// MateSupportEngine         : 詰将棋探索に対応しているエンジンを表示するのか。
        /// </summary>
        public void InitEngineDefines(bool NormalSearchSupportEngine , bool MateSupportEngine )
        {
            engineDefines = new List<EngineDefineEx>();
            foreach(var e in TheApp.app.EngineDefines)
            {
                var type = e.EngineDefine.EngineType;
                if ((NormalSearchSupportEngine && (type == 0 || type == 2)) ||
                    (MateSupportEngine         && (type == 1 || type == 2))
                    )
                        engineDefines.Add(e);
            }

            InitSelectionControls();

            // フォント変更。コンストラクタのタイミング゛は子Controlが生成されておらず、間に合わなかったので
            // このタイミングで初期化を行う。
            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.SettingDialog);
        }
Beispiel #6
0
        /// <summary>
        /// リサイズ。
        /// 非フローティングモードなら、このメッセージは無視する。
        /// フローティングモードなら自律的にサイズを変更。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void KifuControl_SizeChanged(object sender, EventArgs e)
        {
            if (ViewModel.DockState != DockState.InTheMainWindow)
            {
                var f = TheApp.app.Config.FontManager.KifuWindow;

                var font = new Font(f.FontName, f.FontSize, f.FontStyle, GraphicsUnit.Point);
                FontUtility.SetFont(listBox1, font);

                var buttons = new[] { button1, button2, button3, button4, button5, button6 };
                foreach (var button in buttons)
                {
                    var font2 = new Font(f.FontName, f.FontSize, f.FontStyle, GraphicsUnit.Point);
                    FontUtility.SetFont(button, font2);
                }

                UpdateButtonLocation();
            }
        }
Beispiel #7
0
        /// <summary>
        /// [UI thread] : 親ウインドウがリサイズされた時にそれに収まるようにこのコントロール内の文字の大きさを調整する。
        /// (MainWindowに埋め込んでいるときに、リサイズに対して呼び出される)
        ///
        /// inTheGame == trueのときはゲーム中なので「本譜」ボタンと「次分岐」ボタンを表示しない。
        /// </summary>
        /// <param name="scale"></param>
        public void OnResize(double scale)
        {
            // MainWindowに埋め込んでいないなら呼び出してはならない。
            Debug.Assert(ViewModel.DockState == DockState.InTheMainWindow);

            // 最小化したのかな?
            if (Width == 0 || Height == 0 || listBox1.ClientSize.Width == 0)
            {
                return;
            }

            // リサイズしたので連動してボタンの位置が変わる。
            UpdateButtonLocation();

            // 画面を小さくしてもスクロールバーは小さくならないから計算通りのフォントサイズだとまずいのか…。
            var w_rate     = 1.0f + TheApp.app.Config.KifuWindowWidthType * 0.25f; // 横幅をどれだけ引き伸ばすのか
            var font_size  = (float)(19.5 * scale * w_rate);
            var font_size2 = (float)(16 * scale);                                  // button用のフォントサイズ

            /*
             *  // ClientSizeはスクロールバーを除いた幅なので、controlのwidthとの比の分だけ
             *  // fontを小さく表示してやる。
             *  font_size *= (float)listBox1.ClientSize.Width / this.Width;
             *
             *  Console.WriteLine(listBox1.ClientSize.Width + "/" + this.Width);
             */

            // スクロールバーが出たために文字の横幅が収まらない可能性を考慮してItems.Add()ごとに
            // OnResize()を都度呼び出してやりたい…が、スクロールバーが出た結果、文字を縮小して、
            // その結果、スクロールバーが消えるという現象が…。

            // → 結論的には、スクロールバーの有無によって文字フォントサイズを変更するのは
            // 筋が良くないということに。最初からスクロールバーの分だけ控えて描画すべき。

            // ところがスクロールバーの横幅不明。実測34だったが、環境によって異なる可能性が..
            // AutoScaleの値とか反映されてると困るのだが…。
            font_size  *= ((float)Width - 34 /* scroll bar */) / Width;
            font_size2 *= ((float)Width - 34 /* scroll bar */) / Width;

            // 幅を縮めるとfont_sizeが負になるが、負のサイズのFontは生成できないので1にしておく。
            if (font_size <= 0)
            {
                font_size = 1;
            }
            if (font_size2 <= 0)
            {
                font_size2 = 1;
            }

            // 前回のフォントサイズと異なるときだけ再設定する
            //if (last_font_size == font_size)
            //    return;

            last_font_size = font_size;

            var config    = TheApp.app.Config;
            var fontname  = config.FontManager.KifuWindow.FontName;
            var fontstyle = config.FontManager.KifuWindow.FontStyle;
            var font      = new Font(fontname, font_size, fontstyle, GraphicsUnit.Pixel);

            FontUtility.SetFont(listBox1, font);

            // buttonのFontSizeあまり変更すると高さが足りなくなるので横幅の比率変更は反映させない。
            var buttons = new[] { button1, button2, button3, button4, button5, button6 };

            foreach (var b in buttons)
            {
                // 親以外のFontをControl間で共有すべきではないという考えに基づき、
                // 少し無駄ではあるが、それぞれにFontのinstanceを割り当てる。
                var font2 = new Font(fontname, font_size2, fontstyle, GraphicsUnit.Pixel);
                FontUtility.SetFont(b, font2);
            }
        }
Beispiel #8
0
 /// <summary>
 /// フォントの初期化
 /// </summary>
 private void InitFont()
 {
     FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.SettingDialog);
 }
Beispiel #9
0
        public MessageDialog()
        {
            InitializeComponent();

            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.MessageDialog);
        }