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 menu_item_id;
32pub mod modal;
33pub mod motion_visibility;
34pub mod overlay;
35pub mod overscroll;
36pub mod paint_prop;
37pub mod presets;
38pub mod raw_handle;
39pub mod shortcut;
40pub mod signal;
41pub mod styles;
42pub mod telemetry;
43pub mod text_surface;
44pub mod widget;
45pub mod widget_builder;
46pub mod widget_builder_branching;
47pub mod widget_id;
48pub mod widget_tree;
49pub mod window;
50pub mod window_chrome;
51
52#[cfg(test)]
53pub(crate) mod test_widgets;
54
55pub use accessibility::{AccessNodeBuilder, AccessibilityInfo, Announcement};
56pub use action::{Action, ActionBuilder, ActionHandler};
57pub use animated_quad::{AnimatedQuadHandle, AnimatedQuadKind, AnimatedQuadRegistry};
58pub use animation::AnimationRequest;
59pub use animation::AnimationScheduler;
60pub use animation_builder::AnimationSpec;
61pub use announcer::Politeness;
62pub use app_event::{AppEvent, RepaintWindowRequest};
63pub use arena::WidgetArena;
64pub use async_completion::{AsyncCompletionHandle, AsyncCompletionPayload};
65pub use binding::{BindingLevel, BindingRegistry};
66pub use build_context::BuildContext;
67pub use color_prop::{ColorProp, TextStyleProp};
68pub use drag_payload::{
69    DragData, DragImageData, DragOrigin, DragPayload, DropOutcome, ExternalDropData,
70    OutboundDragData,
71};
72pub use drag_state::DropFeedback;
73pub use environment::{Environment, LayoutDirection};
74pub use event::{
75    ButtonMask, EventResponse, Key, Modifiers, PointerButton, ScrollDelta, WidgetEvent,
76};
77pub use event_source::{
78    AppEventPoster, EventSource, EventSourceAdapter, SubscriptionHandle, SubscriptionId,
79};
80pub use focus::{FocusOrigin, TraversalScopePolicy};
81pub use frame_tick_scheduler::{FrameTickScheduler, FrameTickSubscription};
82pub use gesture::{
83    DoubleTapRecognizer, DragRecognizer, GestureArena, GestureEvent, GestureRecognizer,
84    GestureResult, LongPressRecognizer, RawPointerEvent, SwipeDirection, SwipeRecognizer, TapEvent,
85    TapRecognizer, TripleTapRecognizer,
86};
87pub use idle::IdleDeadline;
88pub use ime::{ImeContext, ImePurpose};
89pub use intent::{Intent, IntentKind, IntentResponse};
90pub use menu_item_id::MenuItemId;
91pub use modal::{
92    ModalBuilder, ModalCloseBehavior, ModalContent, ModalPresentation, ModalRequest,
93    QueuedModalRequest,
94};
95pub use overlay::{
96    DismissBehavior, OverlayId, OverlayLayer, OverlayManager, OverlayPlacement, OverlayRequest,
97};
98pub use overscroll::{OverscrollBehavior, SCROLL_MOVE_EPSILON};
99pub use paint_prop::{GradientStopProp, PaintProp, angle_to_endpoints};
100pub use raw_handle::ParentHandle;
101pub use shortcut::{
102    CaptureHandle, EffectiveShortcut, KeyCaptureCallback, KeyStroke, KeyStrokeOverride, Shortcut,
103    ShortcutBuilder, ShortcutOnActivate, ShortcutRegistry, ShortcutScope, SlotOverride,
104};
105pub use signal::{ObserverHandle, Prop, Signal, SignalAccessError};
106pub use styles::{Theme, ThemeAppearance, ThemeExtensions, ThemeId};
107pub use widget::{
108    CursorIcon, EventContext, LayoutContext, LayoutResponse, PaintContext, PendingChild, Widget,
109    WidgetPlacement,
110};
111pub use widget_builder::{
112    AccessSubtreeMode, AccessibilityOverrides, HandlerSet, WidgetBuilder, WidgetWithHandlers,
113};
114pub use widget_builder_branching::{
115    IntoTeksiChild, IntoTeksiCondition, TeksiBranch, TeksiBranch3, TeksiBranch4,
116};
117pub use widget_id::WidgetId;
118pub use widget_tree::WidgetTree;
119pub use window::state::WindowStateInit;
120pub use window::{
121    CloseBlockedCallback, CloseGuard, CloseResponse, DecorationsMode, ModalConfig, NoopWindowOps,
122    PostRootBuilder, RootBuilder, SizeToContent, TeksiloWindowId, UserAttentionKind, WindowCommand,
123    WindowConfig, WindowIcon, WindowOps, WindowPlacement, WindowRemovedCallback,
124    WindowRemovedEvent, WindowState,
125};
126pub use window_chrome::{
127    ControlTarget, HitRegions, PlatformError, PlatformTitleBarHost, ResizeBorders, ResizeEdge,
128    TitleBarHostCallbacks, TitleBarHoverEvent, TitleBarSyntheticEvent,
129};
130
131pub use accesskit;