vizia_core/
lib.rs

1//! Vizia
2
3#![allow(clippy::type_complexity)]
4// To allow a match syntax in event handlers with one event variant
5#![allow(clippy::single_match)]
6// To allow enum names with the same prefix
7#![allow(clippy::enum_variant_names)]
8#![allow(clippy::only_used_in_recursion)]
9#![allow(clippy::uninlined_format_args)]
10// #![warn(missing_docs)]
11
12extern crate self as vizia;
13
14pub(crate) mod accessibility;
15pub mod animation;
16pub mod binding;
17#[doc(hidden)]
18pub(crate) mod cache;
19pub mod context;
20#[doc(hidden)]
21pub(crate) mod entity;
22pub mod environment;
23pub mod events;
24pub mod input;
25pub mod layout;
26pub mod localization;
27pub mod model;
28pub mod modifiers;
29pub mod resource;
30pub mod style;
31pub(crate) mod systems;
32pub(crate) mod text;
33#[doc(hidden)]
34pub mod tree;
35/// Helper utilities
36pub mod util;
37pub mod view;
38pub mod views;
39pub mod window;
40
41mod storage;
42
43/// Contains types and functions used for custom drawing within views. This is a re-export of [skia-safe](https://github.com/rust-skia/rust-skia).
44pub mod vg {
45    pub use skia_safe::*;
46}
47
48/// A collection of built-in SVG icons.
49pub mod icons;
50
51#[doc(hidden)]
52pub mod backend {
53    pub use super::accessibility::IntoNode;
54    pub use super::context::backend::BackendContext;
55    pub use vizia_window::WindowDescription;
56}
57
58/// Members which we recommend you wildcard-import.
59#[doc(hidden)]
60pub mod prelude {
61    pub use super::binding::{
62        Binding, Data, Index, Lens, LensExt, LensValue, Map, MapRef, Res, ResGet, StaticLens, Then,
63        UnwrapLens, Wrapper,
64    };
65
66    pub use super::impl_res_simple;
67
68    pub use crate::model::Model;
69
70    pub use super::animation::{Animation, AnimationBuilder, KeyframeBuilder};
71    pub use super::context::{
72        AccessContext, AccessNode, Context, ContextProxy, DataContext, DrawContext, EmitContext,
73        EventContext, ProxyEmitError, WindowState,
74    };
75    pub use super::entity::Entity;
76    pub use super::environment::{AppTheme, Environment, EnvironmentEvent, ThemeMode};
77    pub use super::events::{Event, Propagation, Timer, TimerAction};
78    pub use super::include_style;
79    pub use super::input::{Keymap, KeymapEntry, KeymapEvent};
80    pub use super::layout::{BoundingBox, GeoChanged};
81    pub use super::localization::{Localized, ToStringLocalized};
82    pub use super::modifiers::{
83        AbilityModifiers, AccessibilityModifiers, ActionModifiers, LayoutModifiers,
84        LinearGradientBuilder, ShadowBuilder, StyleModifiers, TextModifiers,
85    };
86    pub use super::resource::{ImageId, ImageRetentionPolicy};
87    pub use super::util::{IntoCssStr, CSS};
88    pub use super::view::{Handle, View};
89    pub use super::views::*;
90    pub use super::window::{DropData, WindowEvent};
91    pub use accesskit::{Action, Live, Role};
92    pub use skia_safe::Canvas;
93    pub use vizia_derive::{Data, Lens};
94    pub use vizia_id::GenerationalId;
95    pub use vizia_input::{Code, Key, KeyChord, Modifiers, MouseButton, MouseButtonState};
96    pub use vizia_storage::{Tree, TreeExt};
97    pub use vizia_window::{Anchor, AnchorTarget, WindowButtons, WindowPosition, WindowSize};
98
99    pub use super::style::*;
100
101    pub use morphorm::Units::*;
102    pub use morphorm::{LayoutType, PositionType, Units};
103    pub use unic_langid::{langid, LanguageIdentifier};
104    pub use web_time::{Duration, Instant};
105}