cosmic/
lib.rs

1// Copyright 2022 System76 <info@system76.com>
2// SPDX-License-Identifier: MPL-2.0
3
4#![allow(clippy::module_name_repetitions)]
5#![cfg_attr(target_os = "redox", feature(lazy_cell))]
6
7/// Recommended default imports.
8pub mod prelude {
9    #[cfg(feature = "winit")]
10    pub use crate::ApplicationExt;
11    pub use crate::ext::*;
12    pub use crate::{Also, Apply, Element, Renderer, Task, Theme};
13}
14
15pub use apply::{Also, Apply};
16
17/// Actions are managed internally by the cosmic runtime.
18pub mod action;
19pub use action::Action;
20
21#[cfg(feature = "winit")]
22pub mod app;
23#[cfg(feature = "winit")]
24#[doc(inline)]
25pub use app::{Application, ApplicationExt};
26
27#[cfg(feature = "applet")]
28pub mod applet;
29
30pub mod command;
31
32/// State which is managed by the cosmic runtime.
33pub mod core;
34#[doc(inline)]
35pub use core::Core;
36
37pub mod config;
38
39#[doc(inline)]
40pub use cosmic_config;
41
42#[doc(inline)]
43pub use cosmic_theme;
44
45#[cfg(feature = "single-instance")]
46pub mod dbus_activation;
47#[cfg(feature = "single-instance")]
48pub use dbus_activation::DbusActivation;
49
50#[cfg(feature = "desktop")]
51pub mod desktop;
52
53#[cfg(any(feature = "xdg-portal", feature = "rfd"))]
54pub mod dialog;
55
56pub mod executor;
57#[cfg(feature = "tokio")]
58pub use executor::single::Executor as SingleThreadExecutor;
59
60mod ext;
61
62pub mod font;
63
64#[doc(inline)]
65pub use iced;
66
67#[doc(inline)]
68pub use iced_core;
69
70#[doc(inline)]
71pub use iced_futures;
72
73#[doc(inline)]
74pub use iced_renderer;
75
76#[doc(inline)]
77pub use iced_runtime;
78
79#[doc(inline)]
80pub use iced_widget;
81
82#[doc(inline)]
83#[cfg(feature = "winit")]
84pub use iced_winit;
85
86#[doc(inline)]
87#[cfg(feature = "wgpu")]
88pub use iced_wgpu;
89
90pub mod icon_theme;
91pub mod keyboard_nav;
92
93#[cfg(all(target_env = "gnu", not(target_os = "windows")))]
94pub(crate) mod malloc;
95
96#[cfg(all(feature = "process", not(windows)))]
97pub mod process;
98
99#[cfg(feature = "wayland")]
100pub use cctk;
101
102pub mod surface;
103
104pub use iced::Task;
105pub mod task;
106
107pub mod theme;
108
109#[doc(inline)]
110pub use theme::{Theme, style};
111
112pub mod widget;
113type Plain = iced_core::text::paragraph::Plain<<Renderer as iced_core::text::Renderer>::Paragraph>;
114type Paragraph = <Renderer as iced_core::text::Renderer>::Paragraph;
115pub type Renderer = iced::Renderer;
116pub type Element<'a, Message> = iced::Element<'a, Message, crate::Theme, Renderer>;