--- nono/wx/wxtextscreen.h 2026/04/29 17:05:12 1.1.1.8 +++ nono/wx/wxtextscreen.h 2026/04/29 17:05:44 1.1.1.12 @@ -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; } @@ -54,6 +57,10 @@ class WXTextScreen : public WXTextPanel 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 +83,7 @@ class WXTextScreen : public WXTextPanel void OnCopy(wxCommandEvent&); void Init(int col, int row); - void DoSize(); + void ResetFit(); void InvalidateText(); void Draw() override;