Skip to main content

khora_core/ui/editor/
mod.rs

1// Copyright 2025 eraflo
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Abstract editor framework: panel system, dock layout, UI builder, and theme.
16//!
17//! All types here are backend-agnostic. Concrete implementations (egui, etc.)
18//! live in `khora-infra`.
19
20pub mod camera;
21pub mod command;
22pub mod dock;
23pub mod gizmo;
24pub mod gizmo_interact;
25pub mod icons;
26pub mod log_capture;
27pub mod panel;
28pub mod shell;
29pub mod state;
30pub mod ui_builder;
31pub mod viewport_texture;
32
33pub use camera::EditorCamera;
34pub use command::{CommandHistory, EditorCommand};
35pub use dock::{
36    ratio_from_pointer, zone_at, DockLayout, DockNode, DockRect, DockTree, DropZone, SplitAxis,
37    SplitId, SplitterLayout, TabGroupLayout,
38};
39pub use gizmo::{
40    generate_selection_gizmos, gizmo_world_size, GizmoKind, GizmoLineInstance, SelectionGizmo,
41};
42pub use gizmo_interact::{
43    gizmo_basis, pick_handle, GizmoAxis, GizmoBasis, GizmoDelta, GizmoDrag, GizmoTransform,
44};
45pub use icons::Icon;
46pub use log_capture::EditorLogCapture;
47pub use panel::{EditorPanel, PanelLocation};
48pub use shell::EditorShell;
49pub use state::{
50    AssetEntry, ComponentJson, EditorMode, EditorState, EntityIcon, GizmoMode, InspectedEntity,
51    LogEntry, LogLevel, PlayMode, PropertyEdit, SceneNode, StatusBarData,
52};
53pub use ui_builder::{FontFamilyHint, InlineEditEvent, Interaction, TextAlign, UiBuilder};
54pub use viewport_texture::ViewportTextureHandle;