Annotation of nono/wx/wxsubwindow.h, revision 1.1.1.4

1.1       root        1: //
                      2: // nono
1.1.1.2   root        3: // Copyright (C) 2020 nono project
                      4: // Licensed under nono-license.txt
1.1       root        5: //
                      6: 
                      7: #pragma once
                      8: 
1.1.1.2   root        9: #include "wxheader.h"
                     10: 
1.1       root       11: //
                     12: // サブウィンドウ
                     13: //
                     14: // メインウィンドウのメニューから表示されて、表示されてる間チェック状態を
                     15: // 維持するタイプのウィンドウ。クローズ処理が共通に必要なだけで、中身に
                     16: // ついては関与していない。
                     17: class WXSubWindow : public wxFrame
                     18: {
1.1.1.2   root       19:        using inherited = wxFrame;
1.1       root       20:  public:
                     21:        static const int DEFAULT_STYLE =
                     22:                (wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT)
                     23:                & ~wxMAXIMIZE_BOX
                     24:                & ~wxRESIZE_BORDER;
                     25: 
1.1.1.3   root       26:        // テキスト系パネルを配置する際のデフォルトの余白。
                     27:        // 今流行りの縁がまったくないウィンドウマネージャだと、こちらのテキスト
                     28:        // パネルにもウィンドウにも縁を一切付けない場合 (これがデフォルト動作)、
                     29:        // 端の文字が読みにくくなってしまうので、こちらで余白を用意する。orz
                     30:        // 余白は、リサイズ可能なテキストウィンドウのリサイズ方向では1行の高さや
                     31:        // 1文字の幅の整数倍にしなければならない(したい)ので都度計算する必要が
                     32:        // あるが、そうでない固定方向については現在のフォントから計算とかも面倒
                     33:        // なのでとりあえず固定値としておく。単位は px。
                     34:        static const int DefaultPadding = 3;
1.1.1.2   root       35: 
1.1       root       36:  public:
                     37:        WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name,
                     38:                int style);
                     39:        WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name);
                     40:        virtual ~WXSubWindow();
                     41: 
1.1.1.3   root       42:        // テキスト系パネルのフォントサイズ変更
                     43:        virtual void SetFontSize(FontId fontid);
1.1       root       44: 
                     45:  private:
                     46:        void OnClose(wxCloseEvent& event);
                     47: 
                     48:        wxDECLARE_EVENT_TABLE();
                     49: };
1.1.1.3   root       50: 
                     51: 
                     52: //
                     53: // 縦リサイズ可能なサブウィンドウ
                     54: //
                     55: class WXVResizeSubWindow : public WXSubWindow
                     56: {
                     57:        using inherited = WXSubWindow;
                     58:  public:
                     59:        WXVResizeSubWindow(wxWindow *parent, wxWindowID id, const wxString& name);
                     60:        virtual ~WXVResizeSubWindow() override;
                     61: 
                     62:        // テキスト系パネルのフォントサイズ変更
                     63:        void SetFontSize(FontId fontid) override;
                     64: 
                     65:        // ウィンドウサイズ再計算 (継承先による)
                     66:        virtual void DoSize() = 0;
                     67: 
                     68:  protected:
                     69:        // ウィンドウサイズを再計算の共通部分 (継承先 DoSize() から呼ばれる)
                     70:        void CalcVSize(int fixed);
                     71: 
                     72:        // 全体を収納する sizer
1.1.1.4 ! root       73:        wxBoxSizer *topsizer {};
1.1.1.3   root       74: 
                     75:        // テキストパネル
1.1.1.4 ! root       76:        WXTextScreen *screen {};
1.1.1.3   root       77: 
                     78:        // 上下パディング
1.1.1.4 ! root       79:        wxPanel *padding1 {};
        !            80:        wxPanel *padding2 {};
1.1.1.3   root       81: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.