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