Skip to main content

teksilo_core/
lib.rs

1#![allow(clippy::type_complexity)]
2// SPDX-License-Identifier: MPL-2.0
3// SPDX-FileCopyrightText: 2026 FernTech
4
5pub mod accessibility;
6pub mod action;
7pub mod animated_quad;
8pub mod animation;
9pub mod animation_builder;
10pub mod announcer;
11pub mod app_event;
12pub mod arena;
13pub mod async_completion;
14pub mod binding;
15pub mod build_context;
16pub mod color_prop;
17pub mod deferred_subtree;
18pub mod dim_when_inactive;
19pub mod drag_payload;
20pub(crate) mod drag_state;
21pub mod environment;
22pub mod event;
23pub(crate) mod event_handlers;
24pub mod event_source;
25pub mod focus;
26pub mod frame_tick_scheduler;
27pub mod gesture;
28pub mod idle;
29pub mod ime;
30pub mod intent;
31pub mod kinetic;
32pub mod menu_item_id;
33pub mod modal;
34pub mod motion_visibility;
35pub mod overlay;
36pub mod overscroll;
37pub mod paint_prop;
38pub mod partition;
39pub mod pointer;
40pub mod presets;
41/// Per-node press state — see the module docs for why the router owns it.
42pub(crate) mod press;
43pub mod raw_handle;
44pub mod shortcut;
45pub mod signal;
46pub mod styles;
47pub mod telemetry;
48pub mod text_surface;
49pub mod text_touch;
50pub mod widget;
51pub mod widget_builder;
52pub mod widget_builder_branching;
53pub mod widget_id;
54pub mod widget_tree;
55pub mod window;
56pub mod window_chrome;
57
58#[cfg(test)]
59pub(crate) mod test_widgets;
60
61pub use accessibility::{AccessNodeBuilder, AccessibilityInfo, Announcement};
62pub use action::{Action, ActionBuilder, ActionHandler};
63pub use animated_quad::{AnimatedQuadHandle, AnimatedQuadKind, AnimatedQuadRegistry};
64pub use animation::AnimationRequest;
65pub use animation::AnimationScheduler;
66pub use animation_builder::AnimationSpec;
67pub use announcer::Politeness;
68pub use app_event::{AppEvent, RepaintWindowRequest};
69pub use arena::WidgetArena;
70pub use async_completion::{AsyncCompletionHandle, AsyncCompletionPayload};
71pub use binding::{BindingLevel, BindingRegistry};
72pub use build_context::BuildContext;
73pub use color_prop::{ColorProp, TextStyleProp};
74pub use drag_payload::{
75    DragData, DragImageData, DragOrigin, DragPayload, DropOutcome, ExternalDropData,
76    OutboundDragData,
77};
78pub use drag_state::DropFeedback;
79pub use environment::{Environment, ExploreByTouch, LayoutDirection, ScreenReaderState};
80pub use event::{
81    ButtonMask, EventResponse, Key, Modifiers, PointerButton, ScrollDelta, WidgetEvent,
82};
83pub use event_source::{
84    AppEventPoster, EventSource, EventSourceAdapter, SubscriptionHandle, SubscriptionId,
85};
86pub use focus::{FocusOrigin, TraversalScopePolicy};
87pub use frame_tick_scheduler::{FrameTickScheduler, FrameTickSubscription};
88pub use gesture::{
89    DoubleTapRecognizer, DragRecognizer, GestureArena, GestureArenaSet, GestureEvent, GestureProto,
90    GestureRecognizer, GestureResult, LongPressRecognizer, MultiContact, RawPointerEvent,
91    RecognizerContext, SwipeDirection, SwipeRecognizer, TapEvent, TapRecognizer, TapStreak,
92    TripleTapRecognizer,
93};
94pub use idle::IdleDeadline;
95pub use ime::{ImeContext, ImePurpose};
96pub use intent::{Intent, IntentKind, IntentResponse};
97pub use kinetic::{
98    BouncingSimulation, ClampingSimulation, FlingDriver, KineticScroller, ScrollSimulation,
99    ScrollStep, VelocityEstimate, VelocityTracker, rubber_band,
100};
101pub use menu_item_id::MenuItemId;
102pub use modal::{
103    ModalBuilder, ModalCloseBehavior, ModalContent, ModalPresentation, ModalRequest,
104    QueuedModalRequest,
105};
106pub use overlay::{
107    DismissBehavior, OverlayId, OverlayLayer, OverlayManager, OverlayPlacement, OverlayRequest,
108};
109pub use overscroll::{OverscrollBehavior, SCROLL_MOVE_EPSILON};
110pub use paint_prop::{GradientStopProp, PaintProp, angle_to_endpoints};
111pub use partition::{TargetRegion, partition_targets};
112pub use pointer::clock::{InputClock, ManualClock, MonotonicClock};
113pub use pointer::hit_slop::{HitCandidate, HitContext, HitSlop};
114pub use pointer::touch_action::{Axis, PanAxes, PanClaim, TouchAction};
115pub use pointer::{
116    BackendDeviceKey, CancelReason, CoalescedSample, EventTime, PointerAxes, PointerId,
117    PointerIdAllocator, PointerInfo, PointerPhase, PointerSample, ScrollPhase, ScrollSample,
118    ScrollSource,
119};
120pub use raw_handle::ParentHandle;
121pub use shortcut::{
122    CaptureHandle, EffectiveShortcut, KeyCaptureCallback, KeyStroke, KeyStrokeOverride, Shortcut,
123    ShortcutBuilder, ShortcutOnActivate, ShortcutRegistry, ShortcutScope, SlotOverride,
124};
125pub use signal::{ObserverHandle, Prop, Signal, SignalAccessError};
126pub use styles::{Theme, ThemeAppearance, ThemeExtensions, ThemeId};
127pub use widget::{
128    CursorIcon, EventContext, LayoutContext, LayoutResponse, PaintContext, PendingChild, Widget,
129    WidgetPlacement,
130};
131pub use widget_builder::{
132    AccessSubtreeMode, AccessibilityOverrides, HandlerSet, WidgetBuilder, WidgetWithHandlers,
133};
134pub use widget_builder_branching::{
135    IntoTeksiChild, IntoTeksiCondition, TeksiBranch, TeksiBranch3, TeksiBranch4,
136};
137pub use widget_id::WidgetId;
138pub use widget_tree::WidgetTree;
139pub use widget_tree::pan_arbiter::ScrollDelivery;
140pub use widget_tree::touch_route::LongPressRole;
141pub use window::state::WindowStateInit;
142pub use window::{
143    CloseBlockedCallback, CloseGuard, CloseResponse, DecorationsMode, ModalConfig, NoopWindowOps,
144    PostRootBuilder, RootBuilder, SizeToContent, TeksiloWindowId, UserAttentionKind, WindowCommand,
145    WindowConfig, WindowIcon, WindowOps, WindowPlacement, WindowRemovedCallback,
146    WindowRemovedEvent, WindowState,
147};
148pub use window_chrome::{
149    ControlTarget, HitRegions, PlatformError, PlatformTitleBarHost, ResizeBorders, ResizeEdge,
150    TitleBarHostCallbacks, TitleBarHoverEvent, TitleBarSyntheticEvent,
151};
152
153pub use accesskit;