From 04f874d5a4a5ad78d4fecfe4b5e901f8c2f08df6 Mon Sep 17 00:00:00 2001 From: StaffEngineer <velo.app1@gmail.com> Date: Sun, 17 Sep 2023 11:55:19 +0100 Subject: [PATCH] rename to focus --- Cargo.lock | 2 +- Cargo.toml | 2 +- examples/basic_sprite.rs | 8 +++----- examples/basic_ui.rs | 8 +++----- examples/bevy_api_testing.rs | 8 +++----- examples/every_option.rs | 10 ++++------ examples/font_per_widget.rs | 8 ++++---- examples/image_background.rs | 9 +++------ examples/multiple_sprites.rs | 8 ++++---- examples/readonly.rs | 7 +++---- examples/restricted_input.rs | 10 ++++------ src/lib.rs | 32 +++++++++++++++----------------- src/utils.rs | 10 +++------- 13 files changed, 51 insertions(+), 71 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ebc893..026a1f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -388,7 +388,7 @@ dependencies = [ [[package]] name = "bevy_cosmic_edit" -version = "0.11.0" +version = "0.12.0" dependencies = [ "arboard", "bevy", diff --git a/Cargo.toml b/Cargo.toml index 6894731..e635cf9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_cosmic_edit" -version = "0.11.0" +version = "0.12.0" edition = "2021" license = "MIT OR Apache-2.0" description = "Bevy cosmic-text multiline text input" diff --git a/examples/basic_sprite.rs b/examples/basic_sprite.rs index 59fa638..1019ce1 100644 --- a/examples/basic_sprite.rs +++ b/examples/basic_sprite.rs @@ -1,7 +1,7 @@ use bevy::{core_pipeline::clear_color::ClearColorConfig, prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - ActiveEditor, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, - CosmicFontConfig, CosmicMetrics, CosmicText, CosmicTextPosition, + AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, CosmicFontConfig, + CosmicMetrics, CosmicText, CosmicTextPosition, Focus, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -38,9 +38,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { let cosmic_edit = commands.spawn(cosmic_edit).id(); - commands.insert_resource(ActiveEditor { - entity: Some(cosmic_edit), - }); + commands.insert_resource(Focus(Some(cosmic_edit))); } fn main() { diff --git a/examples/basic_ui.rs b/examples/basic_ui.rs index f390de5..09235a7 100644 --- a/examples/basic_ui.rs +++ b/examples/basic_ui.rs @@ -1,7 +1,7 @@ use bevy::{core_pipeline::clear_color::ClearColorConfig, prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - ActiveEditor, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicEditor, - CosmicFontConfig, CosmicMetrics, CosmicText, CosmicTextPosition, + AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicEditor, CosmicFontConfig, + CosmicMetrics, CosmicText, CosmicTextPosition, Focus, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -39,9 +39,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { let cosmic_edit = commands.spawn(cosmic_edit).id(); - commands.insert_resource(ActiveEditor { - entity: Some(cosmic_edit), - }); + commands.insert_resource(Focus(Some(cosmic_edit))); } fn print_text( diff --git a/examples/bevy_api_testing.rs b/examples/bevy_api_testing.rs index 83a85f2..7bc27c1 100644 --- a/examples/bevy_api_testing.rs +++ b/examples/bevy_api_testing.rs @@ -1,7 +1,7 @@ use bevy::prelude::*; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, ActiveEditor, - Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, CosmicEditUiBundle, + bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, Attrs, AttrsOwned, + CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, CosmicEditUiBundle, Focus, }; fn setup(mut commands: Commands) { @@ -36,9 +36,7 @@ fn setup(mut commands: Commands) { }) .id(); - commands.insert_resource(ActiveEditor { - entity: Some(sprite_editor), - }); + commands.insert_resource(Focus(Some(sprite_editor))); } fn main() { diff --git a/examples/every_option.rs b/examples/every_option.rs index 1a9697b..0fe4f19 100644 --- a/examples/every_option.rs +++ b/examples/every_option.rs @@ -1,9 +1,9 @@ use bevy::{prelude::*, ui::FocusPolicy, window::PrimaryWindow}; use bevy_cosmic_edit::{ bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, get_x_offset, - ActiveEditor, Attrs, AttrsOwned, CosmicAttrs, CosmicBackground, CosmicEditPlugin, - CosmicEditUiBundle, CosmicEditor, CosmicMaxChars, CosmicMaxLines, CosmicMetrics, CosmicText, - CosmicTextPosition, Edit, + Attrs, AttrsOwned, CosmicAttrs, CosmicBackground, CosmicEditPlugin, CosmicEditUiBundle, + CosmicEditor, CosmicMaxChars, CosmicMaxLines, CosmicMetrics, CosmicText, CosmicTextPosition, + Edit, Focus, }; #[derive(Resource)] @@ -53,9 +53,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { }) .id(); - commands.insert_resource(ActiveEditor { - entity: Some(editor), - }); + commands.insert_resource(Focus(Some(editor))); commands.insert_resource(TextChangeTimer(Timer::from_seconds( 1., diff --git a/examples/font_per_widget.rs b/examples/font_per_widget.rs index b8721cb..089a17b 100644 --- a/examples/font_per_widget.rs +++ b/examples/font_per_widget.rs @@ -2,9 +2,9 @@ use bevy::{prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, ActiveEditor, - Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicFontConfig, - CosmicMetrics, CosmicText, CosmicTextPosition, Family, FontStyle, FontWeight, + bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, Attrs, AttrsOwned, + CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicFontConfig, CosmicMetrics, CosmicText, + CosmicTextPosition, Family, Focus, FontStyle, FontWeight, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -259,7 +259,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { }); // Set active editor - commands.insert_resource(ActiveEditor { entity: id }); + commands.insert_resource(Focus(id)); } fn main() { diff --git a/examples/image_background.rs b/examples/image_background.rs index 135ee71..7945c74 100644 --- a/examples/image_background.rs +++ b/examples/image_background.rs @@ -1,7 +1,7 @@ use bevy::prelude::*; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, ActiveEditor, - Attrs, AttrsOwned, CosmicAttrs, CosmicBackground, CosmicEditPlugin, CosmicEditUiBundle, + bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, + Attrs, AttrsOwned, CosmicAttrs, CosmicBackground, CosmicEditPlugin, CosmicEditUiBundle, Focus, }; fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { @@ -26,10 +26,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { ..default() }) .id(); - - commands.insert_resource(ActiveEditor { - entity: Some(editor), - }); + commands.insert_resource(Focus(Some(editor))); } fn main() { diff --git a/examples/multiple_sprites.rs b/examples/multiple_sprites.rs index fd240f1..2c2c74a 100644 --- a/examples/multiple_sprites.rs +++ b/examples/multiple_sprites.rs @@ -1,8 +1,8 @@ use bevy::{core_pipeline::clear_color::ClearColorConfig, prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, ActiveEditor, - Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, CosmicFontConfig, - CosmicMetrics, CosmicText, CosmicTextPosition, Family, + bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, Attrs, AttrsOwned, + CosmicAttrs, CosmicEditPlugin, CosmicEditSpriteBundle, CosmicFontConfig, CosmicMetrics, + CosmicText, CosmicTextPosition, Family, Focus, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -64,7 +64,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { let id = commands.spawn(cosmic_edit_1).id(); - commands.insert_resource(ActiveEditor { entity: Some(id) }); + commands.insert_resource(Focus(Some(id))); commands.spawn(cosmic_edit_2); } diff --git a/examples/readonly.rs b/examples/readonly.rs index 4c67c1b..efbacca 100644 --- a/examples/readonly.rs +++ b/examples/readonly.rs @@ -1,8 +1,7 @@ use bevy::{prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, ActiveEditor, Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, - CosmicEditUiBundle, CosmicFontConfig, CosmicMetrics, CosmicText, CosmicTextPosition, Family, - ReadOnly, + bevy_color_to_cosmic, Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, + CosmicFontConfig, CosmicMetrics, CosmicText, CosmicTextPosition, Family, Focus, ReadOnly, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -49,7 +48,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { }); // Set active editor - commands.insert_resource(ActiveEditor { entity: id }); + commands.insert_resource(Focus(id)); } fn main() { diff --git a/examples/restricted_input.rs b/examples/restricted_input.rs index 847e0eb..e43b2aa 100644 --- a/examples/restricted_input.rs +++ b/examples/restricted_input.rs @@ -1,8 +1,8 @@ use bevy::{prelude::*, window::PrimaryWindow}; use bevy_cosmic_edit::{ - bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, ActiveEditor, - Attrs, AttrsOwned, CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicMaxChars, - CosmicMaxLines, CosmicMetrics, CosmicText, + bevy_color_to_cosmic, change_active_editor_sprite, change_active_editor_ui, Attrs, AttrsOwned, + CosmicAttrs, CosmicEditPlugin, CosmicEditUiBundle, CosmicMaxChars, CosmicMaxLines, + CosmicMetrics, CosmicText, Focus, }; fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { @@ -40,9 +40,7 @@ fn setup(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) { }) .id(); - commands.insert_resource(ActiveEditor { - entity: Some(editor), - }); + commands.insert_resource(Focus(Some(editor))); } fn main() { diff --git a/src/lib.rs b/src/lib.rs index 0bdcd28..0a669d3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,7 +14,8 @@ use bevy::{ window::{PrimaryWindow, WindowScaleFactorChanged}, }; pub use cosmic_text::{ - Action, Attrs, AttrsOwned, Cursor, Edit, Family, Style as FontStyle, Weight as FontWeight, + 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, @@ -402,8 +403,7 @@ impl Plugin for CosmicEditPlugin { clear_inactive_selection, ), ) - .init_resource::<ActiveEditor>() - // .add_asset::<CosmicFont>() + .init_resource::<Focus>() .insert_resource(SwashCacheState { swash_cache: SwashCache::new(), }) @@ -412,10 +412,8 @@ impl Plugin for CosmicEditPlugin { } /// Resource struct that keeps track of the currently active editor entity. -#[derive(Resource, Default)] -pub struct ActiveEditor { - pub entity: Option<Entity>, -} +#[derive(Resource, Default, Deref, DerefMut)] +pub struct Focus(pub Option<Entity>); /// Resource struct that holds configuration options for cosmic fonts. #[derive(Resource, Clone)] @@ -689,7 +687,7 @@ pub fn get_x_offset(buffer: &Buffer) -> i32 { // the meat of the input management fn cosmic_edit_bevy_events( windows: Query<&Window, With<PrimaryWindow>>, - active_editor: Res<ActiveEditor>, + active_editor: Res<Focus>, keys: Res<Input<KeyCode>>, mut char_evr: EventReader<ReceivedCharacter>, buttons: Res<Input<MouseButton>>, @@ -743,7 +741,7 @@ fn cosmic_edit_bevy_events( let attrs = &attrs.0; - if active_editor.entity == Some(entity) { + if active_editor.0 == Some(entity) { let now_ms = get_timestamp(); #[cfg(target_os = "macos")] @@ -1308,10 +1306,10 @@ fn blink_cursor( mut visible: Local<bool>, mut timer: Local<Option<Timer>>, time: Res<Time>, - active_editor: ResMut<ActiveEditor>, + active_editor: ResMut<Focus>, mut cosmic_editor_q: Query<&mut CosmicEditor, Without<ReadOnly>>, ) { - if let Some(e) = active_editor.entity { + if let Some(e) = active_editor.0 { if let Ok(mut editor) = cosmic_editor_q.get_mut(e) { let timer = timer.get_or_insert_with(|| Timer::from_seconds(0.53, TimerMode::Repeating)); @@ -1343,14 +1341,14 @@ fn blink_cursor( fn hide_inactive_cursor( mut cosmic_editor_q: Query<(Entity, &mut CosmicEditor)>, - active_editor: Res<ActiveEditor>, + active_editor: Res<Focus>, ) { - if !active_editor.is_changed() || active_editor.entity.is_none() { + if !active_editor.is_changed() || active_editor.0.is_none() { return; } for (e, mut editor) in &mut cosmic_editor_q.iter_mut() { - if e != active_editor.entity.unwrap() { + if e != active_editor.0.unwrap() { let mut cursor = editor.0.cursor(); cursor.color = Some(cosmic_text::Color::rgba(0, 0, 0, 0)); editor.0.set_cursor(cursor); @@ -1361,14 +1359,14 @@ fn hide_inactive_cursor( fn clear_inactive_selection( mut cosmic_editor_q: Query<(Entity, &mut CosmicEditor)>, - active_editor: Res<ActiveEditor>, + active_editor: Res<Focus>, ) { - if !active_editor.is_changed() || active_editor.entity.is_none() { + if !active_editor.is_changed() || active_editor.0.is_none() { return; } for (e, mut editor) in &mut cosmic_editor_q.iter_mut() { - if e != active_editor.entity.unwrap() { + if e != active_editor.0.unwrap() { editor.0.set_select_opt(None); } } diff --git a/src/utils.rs b/src/utils.rs index b3d72d9..0e519db 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -11,7 +11,7 @@ pub fn get_timestamp() -> f64 { duration.as_millis() as f64 } -use crate::{ActiveEditor, CosmicEditor, ReadOnly}; +use crate::{CosmicEditor, Focus, ReadOnly}; use bevy::{prelude::*, ui::Interaction, window::PrimaryWindow}; // util fns for examples @@ -28,9 +28,7 @@ pub fn change_active_editor_ui( ) { for (interaction, entity) in interaction_query.iter_mut() { if let Interaction::Pressed = interaction { - commands.insert_resource(ActiveEditor { - entity: Some(entity), - }); + commands.insert_resource(Focus(Some(entity))); } } } @@ -57,9 +55,7 @@ pub fn change_active_editor_sprite( if let Some(pos) = window.cursor_position() { if let Some(pos) = camera.viewport_to_world_2d(camera_transform, pos) { if x_min < pos.x && pos.x < x_max && y_min < pos.y && pos.y < y_max { - commands.insert_resource(ActiveEditor { - entity: Some(entity), - }); + commands.insert_resource(Focus(Some(entity))) }; } }; -- GitLab