//! Viewport widget events.
//!
//! ## Events
//! - [`ZoomViewportEvent`] - Set zoom level directly
//! - [`ResetViewportEvent`] - Reset to default zoom/pan
//! - [`FitViewportEvent`] - Fit image to viewport (AutoFit mode)
//! - [`Viewport100Event`] - Set 100% zoom (Auto100 mode)
//! - [`ViewportRefreshEvent`] - Force frame re-render (used after attribute changes)
//!
//! ## ViewportRefreshEvent Flow
//! ```text
//! AttrsChangedEvent → increment_epoch() → emit ViewportRefreshEvent
//! → viewport_state.request_refresh()
//! → epoch mismatch detected → frame refreshed
//! ```
;
;
;
;
/// Force viewport to refresh current frame (e.g., after attribute changes)
;