+/* A TUI window that doesn't scroll. */
+
+struct tui_noscroll_window : public virtual tui_win_info
+{
+public:
+ virtual bool can_scroll () const final override
+ {
+ return false;
+ }
+
+protected:
+ virtual void do_scroll_vertical (int num_to_scroll) final override
+ {
+ }
+
+ /* Scroll the contents horizontally. This is only called via
+ left_scroll and right_scroll. */
+ virtual void do_scroll_horizontal (int num_to_scroll) final override
+ {
+ }
+};
+
+/* A TUI window that cannot have focus. */
+
+struct tui_nofocus_window : public virtual tui_win_info
+{
+public:
+ virtual bool can_focus () const final override
+ {
+ return false;
+ }
+};
+
+/* A TUI window that occupies a single line. */
+
+struct tui_oneline_window : public virtual tui_win_info
+{
+ int max_height () const final override
+ {
+ return 1;
+ }
+
+ int min_height () const final override
+ {
+ return 1;
+ }
+};
+
+/* A TUI window that has no border. */
+
+struct tui_nobox_window : public virtual tui_win_info
+{
+ bool can_box () const final override
+ {
+ return false;
+ }
+};
+
+/* A TUI window that is not refreshed. */
+
+struct tui_norefresh_window : public virtual tui_win_info
+{
+ virtual void refresh_window () final override
+ {
+ }
+};
+
+/* A TUI window that is always visible. */
+
+struct tui_always_visible_window : public virtual tui_win_info
+{
+ virtual void make_visible (bool visible) final override
+ {
+ }
+};
+