--- nono/wx/wxtextscreen.h 2026/04/29 17:05:12 1.1.1.8 +++ nono/wx/wxtextscreen.h 2026/04/29 17:05:48 1.1.1.13 @@ -23,6 +23,7 @@ class WXTextScreen : public WXTextPanel { using inherited = WXTextPanel; + public: // テキストスクリーンは本来単純なキャラクタビットマップ構造のため、 // クライアント領域の端の1ピクセルまでふんだんに使用している。 // ウィンドウマネージャ側でこのウィンドウに枠などをつけてくれる場合は @@ -34,11 +35,13 @@ class WXTextScreen : public WXTextPanel public: WXTextScreen(wxWindow *parent, const nnSize& screensize); - virtual ~WXTextScreen() override; + ~WXTextScreen() override; // フォントサイズ変更 void FontChanged() override; + void Fit() override; + // テキストスクリーンを取得 (WXTextScreen を継承せずに更新する人のため) TextScreen& GetScreen() { return screen; } @@ -49,11 +52,17 @@ class WXTextScreen : public WXTextPanel int GetPaddingTop() const { return pad_top; } int GetPaddingRight() const { return pad_right; } int GetPaddingBottom() const { return pad_bottom; } + int GetPaddingX() const { return GetPaddingLeft() + GetPaddingRight(); } + int GetPaddingY() const { return GetPaddingTop() + GetPaddingBottom(); } // 桁数、行数を取得する int GetCol() const { return screen.GetCol(); } int GetRow() const { return screen.GetRow(); } + // 指定の桁数行数の時のピクセル数を取得する + int GetScreenWidth(int col_) const; + int GetScreenHeight(int row_) const; + // クライアント座標 pos をテキスト座標(桁、行)に変換して返す // (パディング領域では戻り値が負数になることに注意) wxPoint GetTextPosition(const wxPoint& pos) const; @@ -76,7 +85,7 @@ class WXTextScreen : public WXTextPanel void OnCopy(wxCommandEvent&); void Init(int col, int row); - void DoSize(); + void ResetFit(); void InvalidateText(); void Draw() override; @@ -88,5 +97,8 @@ class WXTextScreen : public WXTextPanel int pad_right {}; int pad_bottom {}; + // 余白を塗りつぶす場合は true + bool draw_padding {}; + wxDECLARE_EVENT_TABLE(); };