--- nono/wx/wxsubwindow.cpp 2026/04/29 17:04:39 1.1.1.3 +++ nono/wx/wxsubwindow.cpp 2026/04/29 17:05:00 1.1.1.6 @@ -5,6 +5,7 @@ // #include "wxsubwindow.h" +#include "wxcolor.h" #include "wxmainframe.h" #include "wxtextscreen.h" @@ -17,19 +18,13 @@ wxBEGIN_EVENT_TABLE(WXSubWindow, inherit EVT_CLOSE(WXSubWindow::OnClose) wxEND_EVENT_TABLE() -// コンストラクタ (スタイル指定あり) +// コンストラクタ WXSubWindow::WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name, int style) : inherited(parent, id, name, wxDefaultPosition, wxDefaultSize, style) { } -// コンストラクタ (スタイル指定なし) -WXSubWindow::WXSubWindow(wxWindow *parent, wxWindowID id, const wxString& name) - : WXSubWindow(parent, id, name, DEFAULT_STYLE) -{ -} - // デストラクタ WXSubWindow::~WXSubWindow() { @@ -40,7 +35,7 @@ void WXSubWindow::OnClose(wxCloseEvent& event) { // ウィンドウリストから自身を削除 - gMainFrame->DeleteWindow(GetId()); + gMainFrame->DeleteWindow(this); } // テキスト系パネルのフォントサイズを変更する @@ -59,7 +54,6 @@ WXSubWindow::SetFontSize(FontId fontid) } // 大きさを変更 - Layout(); Fit(); } @@ -141,12 +135,34 @@ WXVResizeSubWindow::CalcVSize(int fixed) // 横は固定、縦方向は1行ずつ伸縮可能 // 最小サイズは fixed と1行分とパディング。 - wxSize tsize = topsizer->ComputeFittingWindowSize(this); + wxSize tsize = GetSizer()->ComputeFittingWindowSize(this); wxSize minsize = wxSize(tsize.x, fixed + fontsize.y + pad); wxSize maxsize = wxSize(tsize.x, -1); wxSize incsize = wxSize(0, fontsize.y); SetSizeHints(minsize, maxsize, incsize); - Layout(); Fit(); } + + +// +// サブウィンドウの四辺に置くためのパディングパネル +// + +// コンストラクタ (サイズ指定なし) +WXPaddingPanel::WXPaddingPanel(wxWindow *parent) + : WXPaddingPanel(parent, wxSize(DefaultPadding, DefaultPadding)) +{ +} + +// コンストラクタ (サイズ指定あり) +WXPaddingPanel::WXPaddingPanel(wxWindow *parent, const wxSize& size) + : inherited(parent, wxID_ANY, wxDefaultPosition, size) +{ + SetBackgroundColour(BGPANEL); +} + +// デストラクタ +WXPaddingPanel::~WXPaddingPanel() +{ +}