Skip to main content

dioxus_dnd/
lib.rs

1#![doc = include_str!("../README.md")]
2#![allow(non_snake_case)]
3
4pub mod core;
5
6pub mod a11y;
7pub mod animate;
8pub mod autoscroll;
9pub mod board;
10pub mod canvas;
11pub mod debug;
12#[cfg(feature = "desktop")]
13pub mod desktop;
14pub mod dragout;
15pub mod external;
16pub mod files;
17pub mod grid;
18pub mod multiselect;
19pub mod sortable;
20mod sortable_kernel;
21pub mod test;
22pub mod tree;
23
24/// One-stop import: `use dioxus_dnd::prelude::*;`
25pub mod prelude {
26    pub use crate::a11y::{LiveRegion, ReorderButtons};
27    pub use crate::animate::FlipItem;
28    pub use crate::autoscroll::{edge_delta, frame_delta, AutoScroll, ScrollAxis};
29    pub use crate::board::{
30        apply_move, BoardColumn, BoardItem, BoardPayload, BoardSlot, ContainerId, MoveEvent,
31    };
32    pub use crate::bridge_drop_zone;
33    pub use crate::canvas::{
34        canvas_keyboard_pointer, canvas_position, canvas_to_client, client_to_canvas, Bounds,
35        CanvasDrop, CanvasDropZone, CanvasKeyboardPlacement, SnapGrid,
36    };
37    pub use crate::core::{
38        apply_clone_or_move, apply_list_clone_or_move, apply_modifiers, client_point, edge_of,
39        effective_effect, element_point, rank_collisions, screen_delta_to_world, screen_to_world,
40        transition, try_apply_clone_or_move, try_apply_list_clone_or_move, use_bridge_world,
41        use_dnd, use_dnd_model, use_dnd_monitor, use_dnd_provider, use_dnd_strings, use_dnd_world,
42        use_joined_window, use_rect_refresh, use_zone_id, use_zone_registry, world_delta_to_screen,
43        world_to_screen, ActivationConstraint, ActivationPolicy, Activator, ApplyDropError,
44        BridgeDropZone, BridgeGeometry, BridgeWorld, CancelReason, CanvasViewport, Collision,
45        CollisionDetector, CollisionRequest, CollisionStrategy, Direction, DndContext, DndEvent,
46        DndProvider, DndScope, DndStrings, DndWorld, DragHandle, DragId, DragMode, DragModifier,
47        DragOverlay, DragSnapshot, DragStart, DragState, Draggable, DropEffect, DropEffects,
48        DropOutcome, DropQuery, DropReceipt, DropZone, Edge, EdgeSet, GestureEffect, GestureEvent,
49        GesturePhase, JoinedWindow, ModifierCtx, NoDrag, ParentZone, Point, PointerKind, Rect,
50        RectRefresh, ReleasePolicy, SettleSlot, TouchSense, WindowGeometry, WindowKey,
51        ZoneCandidate, ZoneId, ZoneRecord, ZoneRegistration, ZoneRegistry,
52    };
53    pub use crate::debug::DndDebugOverlay;
54    #[cfg(feature = "desktop")]
55    pub use crate::desktop::MultiWindowProvider;
56    #[cfg(feature = "serde")]
57    pub use crate::dragout::TypedDragSource;
58    pub use crate::dragout::{ExternalDragSource, OutboundContent};
59    pub use crate::external::{classify, ExternalDrop, ExternalDropZone, ExternalPayload};
60    #[cfg(feature = "serde")]
61    pub use crate::external::{TypedDrop, TypedDropZone};
62    pub use crate::files::{FileDrop, FileDropZone, FileFilter, FileRejection};
63    pub use crate::grid::{cell_of, index_of, SortableGrid};
64    pub use crate::multiselect::{
65        use_selection, use_selection_from_signal, SelectableDraggable, Selection, SelectionCount,
66    };
67    pub use crate::sortable::{
68        apply_reorder, apply_sort, apply_swap, displacement, project_layout, Axis, DropPlacement,
69        ItemTransform, Placement, ReorderEvent, ReorderMode, SortEvent, SortStrategy,
70        SortableCollection, SortableGroup, SortableGroupId, SortableHandle, SortableItem,
71        SortableList, SortablePayload, SortableProvider,
72    };
73    pub use crate::tree::{
74        intent_from_offset, would_create_cycle, DropIntent, NodeId, TreeDropEvent, TreeNodeTarget,
75    };
76}