layer_shika_composition/
lib.rs

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
59/// Result type alias using layer-shika's Error
60pub type Result<T> = StdResult<T, Error>;
61
62/// Error types for layer-shika operations
63#[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}