Skip to main content

ferroui_base/
lib.rs

1//! FerroUI base library: the object model, property system, layout, input,
2//! media and rendering contracts shared by every other FerroUI crate.
3
4#[doc(hidden)]
5pub use paste::paste as __paste;
6
7pub mod animation;
8pub mod collections;
9pub mod controls;
10pub mod data;
11pub mod diagnostics;
12/// Thread-local variables for every target (`ferroui_system::ferro_thread_local`): the module and
13/// the macro, at the paths they had when they were defined here.
14pub use ferroui_system::ferro_thread_local;
15#[doc(hidden)]
16pub use ferroui_system::__ferro_thread_local_table;
17pub mod input;
18pub mod interactivity;
19pub mod layout;
20pub mod logging;
21pub mod logical_tree;
22pub mod media;
23pub mod metadata;
24pub mod numerics;
25pub mod platform;
26pub mod reactive;
27pub mod rendering;
28pub mod styling;
29pub mod threading;
30pub mod utilities;
31pub mod visual_tree;
32
33#[doc(hidden)]
34pub mod property_store;
35
36mod class_binding_manager;
37mod combined_geometry;
38mod corner_radius;
39mod direct_property;
40mod ferro_internal_exception;
41mod ferro_locator;
42mod ferro_object;
43mod ferro_object_extensions;
44mod ferro_property;
45mod ferro_property_changed_event_args;
46mod ferro_property_metadata;
47mod ferro_property_registry;
48mod i_data_context_provider;
49mod i_named;
50mod i_support_initialize;
51mod markup_types;
52mod matrix;
53mod pixel_point;
54mod pixel_rect;
55mod pixel_size;
56mod pixel_vector;
57mod point;
58mod rect;
59mod register_types;
60mod rust_paths;
61mod relative_point;
62mod relative_rect;
63mod relative_scalar;
64mod render_target_corrupted_exception;
65mod render_target_not_ready_exception;
66mod rotate_3d_transform;
67mod rounded_rect;
68mod size;
69mod styled_element;
70mod styled_element_extensions;
71mod styled_property;
72mod thickness;
73mod type_system;
74mod element_ref;
75mod vector;
76mod vector3d;
77mod visual;
78mod visual_tree_attachment_event_args;
79
80pub use class_binding_manager::ClassBindingManager;
81pub use corner_radius::CornerRadius;
82pub use direct_property::{DirectProperty, DirectPropertyBase};
83pub use ferro_internal_exception::FerroInternalException;
84pub use ferro_locator::{FerroLocator, IFerroDependencyResolver, LocatorExtensions, RegistrationHelper, ServiceHandle};
85pub use ferro_object::{FerroObject, FerroObjectImpl, FerroObjectImplExt, FerroObjectVTable};
86pub use ferro_object_extensions::{to_binding, FerroObjectExtensions, ObjectPropertyChangedObservable, TypedProperty};
87pub use ferro_property::{
88    AnyValue, BoxedValue, DoNothingType, FerroProperty, NotifyingCallback, PropertyChangedObservable,
89    PropertyValue, StyledPropertyOptions, UnsetValueType,
90};
91pub use ferro_property_changed_event_args::{FerroPropertyChangedEventArgs, OwnedFerroPropertyChangedEventArgs};
92pub use ferro_property_metadata::{
93    CoerceValueCallback, DirectPropertyMetadata, FerroPropertyMetadata, StyledPropertyMetadata,
94};
95pub use ferro_property_registry::{FerroPropertyRegistry, Registrable};
96pub use i_data_context_provider::IDataContextProvider;
97pub use i_named::INamed;
98pub use i_support_initialize::{ISupportInitialize, InitializationError};
99pub use matrix::{Matrix, MatrixDecomposed};
100pub use pixel_point::PixelPoint;
101pub use pixel_rect::PixelRect;
102pub use pixel_size::PixelSize;
103pub use pixel_vector::PixelVector;
104pub use point::Point;
105pub use rect::Rect;
106pub use metadata::IServiceProvider;
107pub use register_types::register_types;
108pub use relative_point::{RelativePoint, RelativeUnit};
109pub use relative_rect::RelativeRect;
110pub use relative_scalar::RelativeScalar;
111pub use render_target_corrupted_exception::RenderTargetCorruptedException;
112pub use render_target_not_ready_exception::RenderTargetNotReadyException;
113pub use rounded_rect::RoundedRect;
114pub use size::Size;
115pub use styled_element::{StyledElement, StyledElementImpl, StyledElementImplExt, StyledElementVTable};
116pub use styled_property::{AttachedProperty, StyledProperty};
117pub use thickness::Thickness;
118pub use element_ref::ElementRef;
119pub use type_system::{
120    __forwards_to_parent, __register_class, cast_this, instantiate, parent_vtable, ClassDefaults, IntoRef, Nullable,
121    ObjectType, Ref, StaticType, Subclassable, TypeInfo, Upcast, WeakRef,
122};
123#[cfg(feature = "tagged-weak-references")]
124pub use type_system::WEAK_REFERENCE_TAG;
125pub use vector::Vector;
126pub use visual::{Visual, VisualImpl, VisualImplExt, VisualVTable};
127pub use visual_tree_attachment_event_args::VisualTreeAttachmentEventArgs;
128pub use vector3d::Vector3D;
129
130#[cfg(test)]
131mod ferro_object_tests;
132#[cfg(test)]
133mod flow_direction_tests;
134
135#[cfg(test)]
136mod tree_tests;
137#[cfg(test)]
138mod visual_render_tests;
139#[cfg(test)]
140mod tests;