|
|
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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.