1#![allow(clippy::pub_use)]
2
3mod event_loop;
4mod layer_surface;
5mod popup_builder;
6mod selection;
7mod selector;
8mod shell;
9mod shell_config;
10mod shell_runtime;
11mod surface_registry;
12mod system;
13pub mod value_conversion;
14
15use layer_shika_adapters::errors::LayerShikaError;
16use layer_shika_domain::errors::DomainError;
17use std::result::Result as StdResult;
18
19pub use event_loop::{EventLoopHandle, ShellEventLoop};
20pub use layer_shika_adapters::PopupWindow;
21pub use layer_shika_adapters::platform::{slint, slint_interpreter};
22pub use layer_shika_domain::entities::output_registry::OutputRegistry;
23pub use layer_shika_domain::prelude::AnchorStrategy;
24pub use layer_shika_domain::value_objects::anchor::AnchorEdges;
25pub use layer_shika_domain::value_objects::handle::{Handle, SurfaceHandle};
26pub use layer_shika_domain::value_objects::keyboard_interactivity::KeyboardInteractivity;
27pub use layer_shika_domain::value_objects::layer::Layer;
28pub use layer_shika_domain::value_objects::output_handle::OutputHandle;
29pub use layer_shika_domain::value_objects::output_info::{OutputGeometry, OutputInfo};
30pub use layer_shika_domain::value_objects::output_policy::OutputPolicy;
31pub use layer_shika_domain::value_objects::popup_positioning_mode::PopupPositioningMode;
32pub use layer_shika_domain::value_objects::popup_request::{
33 PopupHandle, PopupPlacement, PopupRequest, PopupSize,
34};
35pub use layer_shika_domain::value_objects::surface_instance_id::SurfaceInstanceId;
36pub use layer_surface::{LayerSurfaceHandle, ShellSurfaceConfigHandler};
37pub use popup_builder::PopupBuilder;
38pub use selection::Selection;
39pub use selector::{Output, Selector, Surface, SurfaceInfo};
40pub use shell_runtime::{DEFAULT_SURFACE_NAME, ShellRuntime};
41pub use system::{
42 CallbackContext, EventDispatchContext, RuntimeSurfaceConfigBuilder, ShellControl,
43 SurfaceControlHandle, SurfaceTarget,
44};
45pub use value_conversion::IntoValue;
46
47pub use shell::{
48 DEFAULT_COMPONENT_NAME, Shell, ShellBuilder, ShellEventContext, SurfaceConfigBuilder,
49};
50
51pub use surface_registry::{SurfaceDefinition, SurfaceEntry, SurfaceMetadata, SurfaceRegistry};
52
53pub use shell_config::{CompiledUiSource, ShellConfig, SurfaceComponentConfig};
54
55pub mod calloop {
56 pub use layer_shika_adapters::platform::calloop::*;
57}
58
59pub type Result<T> = StdResult<T, Error>;
61
62#[derive(Debug, thiserror::Error)]
64pub enum Error {
65 #[error("Adapter error: {0}")]
66 Adapter(#[from] LayerShikaError),
67
68 #[error("Domain error: {0}")]
69 Domain(#[from] DomainError),
70
71 #[error("App has been dropped")]
72 SystemDropped,
73}
74
75pub mod prelude {
76 pub use crate::{
77 AnchorEdges, AnchorStrategy, CompiledUiSource, DEFAULT_COMPONENT_NAME,
78 DEFAULT_SURFACE_NAME, EventDispatchContext, EventLoopHandle, Handle, IntoValue,
79 KeyboardInteractivity, Layer, LayerSurfaceHandle, Output, OutputGeometry, OutputHandle,
80 OutputInfo, OutputPolicy, OutputRegistry, PopupBuilder, PopupHandle, PopupPlacement,
81 PopupPositioningMode, PopupRequest, PopupSize, PopupWindow, Result, Selection, Selector,
82 Shell, ShellBuilder, ShellConfig, ShellControl, ShellEventContext, ShellEventLoop,
83 ShellRuntime, ShellSurfaceConfigHandler, Surface, SurfaceComponentConfig,
84 SurfaceConfigBuilder, SurfaceControlHandle, SurfaceDefinition, SurfaceEntry, SurfaceHandle,
85 SurfaceInfo, SurfaceMetadata, SurfaceRegistry,
86 };
87
88 pub use crate::calloop::{Generic, Interest, Mode, PostAction, RegistrationToken, Timer};
89
90 pub use crate::{slint, slint_interpreter};
91
92 pub use layer_shika_domain::prelude::{
93 LogicalSize, Margins, PhysicalSize, ScaleFactor, SurfaceConfig, SurfaceDimension, UiSource,
94 };
95
96 pub use layer_shika_adapters::platform::wayland::Anchor;
97}