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