--- nono/lib/monitor.h 2026/04/29 17:05:12 1.1.1.3 +++ nono/lib/monitor.h 2026/04/29 17:05:15 1.1.1.4 @@ -36,10 +36,17 @@ static constexpr int ID_SUBWIN_CACHE(int static constexpr int ID_MONITOR_MEMDUMP(int n) { return ID_MONITOR_MEMDUMP0 + n; } +static constexpr int ID_MONITOR_XPMEMDUMP(int n) { + return ID_MONITOR_XPMEMDUMP0 + n; +} // 判定 static constexpr bool IS_MONITOR_MEMDUMP(int id) { return (ID_MONITOR_MEMDUMP0 <= id && - id < (ID_MONITOR_MEMDUMP0 + MAX_MEMDUMP_MONITOR)); + id < ID_MONITOR_MEMDUMP(MAX_MEMDUMP_MONITOR)); +} +static constexpr bool IS_MONITOR_XPMEMDUMP(int id) { + return (ID_MONITOR_XPMEMDUMP0 <= id && + id < ID_MONITOR_XPMEMDUMP(MAX_XPMEMDUMP_MONITOR)); } class Monitor; @@ -84,6 +91,12 @@ class Monitor // 削除。 void Unregist(); + // ID を表示用文字列にして返す。 + static const char *GetIdText(int id); + + // このモニターの ID を表示用文字列にして返す。 + const char *GetIdText() const { return GetIdText(id); } + private: // モニター識別子 int id; @@ -93,6 +106,9 @@ class Monitor // 縦に可変長の場合の最大表示行数 (固定長なら 0) int maxh {}; + + // ID を表示用のテキストにしたものとの対応表。 + static const std::vector> idtext; }; // @@ -167,11 +183,11 @@ class MonitorManager // 現在登録されているモニターのリスト std::vector list {}; - // 事前に設定されているモニター情報 - static const std::vector info; - // モニタの登録は -M オプションの処理が始まるまでに終えないといけない。 bool fixed {}; + + // 事前に設定されているモニター情報 + static const std::vector info; }; extern MonitorManager *gMonitorManager;