-
sam edelsten authored
unicode chars are buggy in this commit
e9b4ea93
lib.rs 22.34 KiB
#![allow(clippy::type_complexity)]
mod cursor;
mod input;
mod render;
use std::{collections::VecDeque, path::PathBuf};
use bevy::{prelude::*, render::texture::DEFAULT_IMAGE_HANDLE, transform::TransformSystem};
pub use cosmic_text::{
Action, Attrs, AttrsOwned, Color as CosmicColor, Cursor, Edit, Family, Style as FontStyle,
Weight as FontWeight,
};
use cosmic_text::{
AttrsList, Buffer, BufferLine, Editor, FontSystem, Metrics, Shaping, SwashCache,
};
use cursor::{change_cursor, hover_sprites, hover_ui};
pub use cursor::{TextHoverIn, TextHoverOut};
use input::{input_kb, input_mouse, undo_redo, ClickTimer};
#[cfg(target_arch = "wasm32")]
use input::{poll_wasm_paste, WasmPaste, WasmPasteAsyncChannel};
use render::{
blink_cursor, cosmic_edit_redraw_buffer, freeze_cursor_blink, hide_inactive_or_readonly_cursor,
hide_password_text, on_scale_factor_change, restore_password_text, set_initial_scale,
CursorBlinkTimer, CursorVisibility, PasswordStates, SwashCacheState,
};
#[cfg(feature = "multicam")]
#[derive(Component)]
pub struct CosmicPrimaryCamera;
#[derive(Clone, Component, PartialEq, Debug)]
pub enum CosmicText {
OneStyle(String),
MultiStyle(Vec<Vec<(String, AttrsOwned)>>),
}
impl Default for CosmicText {
fn default() -> Self {
Self::OneStyle(String::new())
}
}
#[derive(Clone, Component, PartialEq, Default)]
pub enum CosmicMode {
InfiniteLine,
AutoHeight,
#[default]
Wrap,
}
#[derive(Default)]
pub enum CursorConfig {
#[default]
Default,
Events,
None,
}
/// Enum representing the position of the cosmic text.
#[derive(Clone, Component, Default)]
pub enum CosmicTextPosition {
#[default]
Center,
TopLeft {
padding: i32,
},
Left {
padding: i32,
},