--- nono/wx/wxsubwindow.h 2026/04/29 17:04:28 1.1 +++ nono/wx/wxsubwindow.h 2026/04/29 17:05:08 1.1.1.9 @@ -1,20 +1,27 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt +// + +// +// サブウィンドウ // #pragma once -// +#include "wxnono.h" + +class WXTextScreen; + // サブウィンドウ // // メインウィンドウのメニューから表示されて、表示されてる間チェック状態を // 維持するタイプのウィンドウ。クローズ処理が共通に必要なだけで、中身に // ついては関与していない。 - class WXSubWindow : public wxFrame { - typedef wxFrame inherited; + using inherited = wxFrame; public: static const int DEFAULT_STYLE = (wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT) @@ -24,14 +31,42 @@ class WXSubWindow : public wxFrame public: WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name, int style); - WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name); - virtual ~WXSubWindow(); + WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name) + : WXSubWindow(parent, id, name, DEFAULT_STYLE) { } + virtual ~WXSubWindow() override; - // フォントサイズ変更 (継承クラスによる) - virtual void SetFontSize(fontsize_t fontsize) { } + // フォントサイズ変更 + virtual void FontChanged(); + + // ウィンドウサイズ再計算 (継承先による) + virtual void DoSize(); private: void OnClose(wxCloseEvent& event); wxDECLARE_EVENT_TABLE(); }; + + +// 縦リサイズ可能なサブウィンドウ +class WXVResizeSubWindow : public WXSubWindow +{ + using inherited = WXSubWindow; + public: + WXVResizeSubWindow(wxWindow *parent, wxWindowID id, const wxString& name); + virtual ~WXVResizeSubWindow() override; + + bool Layout() override; + + // フォントサイズ変更 + void FontChanged() override; + + void DoSize() override; + + protected: + // テキストパネル + WXTextScreen *screen {}; + + // 高さの固定分 + int fixed_height {}; +};