minui 0.3.1

A minimalist Rust framework for TUIs and terminal games.
Documentation
//! Viewport and scrolling support (planned feature).
//!
//! This module will provide advanced viewport functionality for scrollable content areas.
//! Currently, basic viewport functionality is provided by `WindowView` in the `common` module.
//!
//! ## Planned Features
//!
//! - **Scrollable Viewports**: Support for content larger than the display area
//! - **Smooth Scrolling**: Animated scrolling transitions
//! - **Scroll Indicators**: Visual indicators showing scroll position
//! - **Virtual Scrolling**: Efficient handling of very large content
//! - **Nested Viewports**: Support for viewports within viewports
//!
//! ## Current Status
//!
//! Basic viewport functionality is currently provided by `WindowView` in the widgets
//! common module. This provides:
//!
//! - Clipped drawing operations
//! - Coordinate translation
//! - Bounded rendering
//!
//! ## Future API Design
//!
//! The planned viewport system will likely provide:
//!
//! ```rust,ignore
//! use minui::render::Viewport;
//!
//! let mut viewport = Viewport::new(0, 0, 40, 20)
//!     .with_content_size(100, 50)
//!     .with_scroll_position(10, 5);
//!
//! // Draw content within the scrolled viewport
//! viewport.draw_content(|view| {
//!     // Drawing operations here are automatically scrolled and clipped
//!     view.write_str(0, 0, "This content can be scrolled");
//! });
//!
//! // Handle scroll events
//! if let Some(scroll_event) = input.get_scroll()? {
//!     viewport.scroll(scroll_event.delta_x, scroll_event.delta_y);
//! }
//! ```

// TODO: Implement advanced viewport functionality
// Currently basic viewport support is provided by WindowView in widgets/common.rs

/*
use crate::widgets::common::WindowView;
use crate::{Result, Window};

pub struct Viewport {
    // Dimensions of the viewport area
    width: u16,
    height: u16,

    // Scroll offset values for the viewport area
    scroll_x: u16,
    scroll_y: u16,

    // Content dimensions
    content_width: u16,
    content_height: u16,
}
*/