Skip to content
Snippets Groups Projects
Commit d3bffa58 authored by sam edelsten's avatar sam edelsten
Browse files

user editable min padding on center infiniteline

parent 79de1d66
No related branches found
No related tags found
No related merge requests found
...@@ -27,7 +27,6 @@ fn setup( ...@@ -27,7 +27,6 @@ fn setup(
"😀😀😀 x => y", "😀😀😀 x => y",
attrs, attrs,
), ),
text_position: CosmicTextPosition::Center,
sprite_bundle: SpriteBundle { sprite_bundle: SpriteBundle {
sprite: Sprite { sprite: Sprite {
custom_size: Some(Vec2::new(primary_window.width(), primary_window.height())), custom_size: Some(Vec2::new(primary_window.width(), primary_window.height())),
......
...@@ -23,7 +23,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) { ...@@ -23,7 +23,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
vec![("Banana", attrs)], vec![("Banana", attrs)],
attrs, attrs,
), ),
text_position: CosmicTextPosition::Center,
..default() ..default()
},)) },))
.id(); .id();
......
...@@ -101,7 +101,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) { ...@@ -101,7 +101,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
lines, lines,
attrs, attrs,
), ),
text_position: bevy_cosmic_edit::CosmicTextPosition::Center,
..default() ..default()
}) })
.id(); .id();
...@@ -117,7 +116,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) { ...@@ -117,7 +116,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
"Widget 2.\nClick on me =>", "Widget 2.\nClick on me =>",
attrs_2, attrs_2,
), ),
text_position: CosmicTextPosition::Center,
..default() ..default()
}) })
.id(); .id();
......
...@@ -22,7 +22,6 @@ fn setup( ...@@ -22,7 +22,6 @@ fn setup(
attrs = attrs.color(bevy_color_to_cosmic(Color::PURPLE)); attrs = attrs.color(bevy_color_to_cosmic(Color::PURPLE));
commands.spawn(CosmicEditBundle { commands.spawn(CosmicEditBundle {
text_position: CosmicTextPosition::Center,
fill_color: FillColor(Color::ALICE_BLUE), fill_color: FillColor(Color::ALICE_BLUE),
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text( buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text(
&mut font_system, &mut font_system,
...@@ -44,7 +43,6 @@ fn setup( ...@@ -44,7 +43,6 @@ fn setup(
}); });
commands.spawn(CosmicEditBundle { commands.spawn(CosmicEditBundle {
text_position: CosmicTextPosition::Center,
fill_color: FillColor(Color::GRAY.with_a(0.5)), fill_color: FillColor(Color::GRAY.with_a(0.5)),
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text( buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text(
&mut font_system, &mut font_system,
......
...@@ -24,7 +24,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) { ...@@ -24,7 +24,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
CosmicEditBundle { CosmicEditBundle {
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(20., 20.)) buffer: CosmicBuffer::new(&mut font_system, Metrics::new(20., 20.))
.with_rich_text(&mut font_system, vec![("", attrs)], attrs), .with_rich_text(&mut font_system, vec![("", attrs)], attrs),
text_position: CosmicTextPosition::Center,
..default() ..default()
}, },
Placeholder::new( Placeholder::new(
......
...@@ -23,7 +23,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) { ...@@ -23,7 +23,6 @@ fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
// spawn editor // spawn editor
let cosmic_edit = commands let cosmic_edit = commands
.spawn(CosmicEditBundle { .spawn(CosmicEditBundle {
text_position: CosmicTextPosition::Center,
buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text( buffer: CosmicBuffer::new(&mut font_system, Metrics::new(14., 18.)).with_text(
&mut font_system, &mut font_system,
"😀😀😀 x => y\nRead only widget", "😀😀😀 x => y\nRead only widget",
......
...@@ -123,7 +123,7 @@ pub(crate) fn input_mouse( ...@@ -123,7 +123,7 @@ pub(crate) fn input_mouse(
} }
let (padding_x, padding_y) = match text_position { let (padding_x, padding_y) = match text_position {
CosmicTextPosition::Center => ( CosmicTextPosition::Center { padding: _ } => (
get_x_offset_center(width * scale_factor, &buffer), get_x_offset_center(width * scale_factor, &buffer),
get_y_offset_center(height * scale_factor, &buffer), get_y_offset_center(height * scale_factor, &buffer),
), ),
......
...@@ -46,7 +46,7 @@ pub fn set_padding( ...@@ -46,7 +46,7 @@ pub fn set_padding(
} }
padding.0 = match position { padding.0 = match position {
CosmicTextPosition::Center => Vec2::new( CosmicTextPosition::Center { padding: _ } => Vec2::new(
get_x_offset_center(size.0.x, &buffer) as f32, get_x_offset_center(size.0.x, &buffer) as f32,
get_y_offset_center(size.0.y, &buffer) as f32, get_y_offset_center(size.0.y, &buffer) as f32,
), ),
...@@ -91,7 +91,7 @@ pub fn set_buffer_size( ...@@ -91,7 +91,7 @@ pub fn set_buffer_size(
) { ) {
for (mut buffer, mode, size, position) in query.iter_mut() { for (mut buffer, mode, size, position) in query.iter_mut() {
let padding_x = match position { let padding_x = match position {
CosmicTextPosition::Center => 0., CosmicTextPosition::Center { padding: _ } => 0.,
CosmicTextPosition::TopLeft { padding } => *padding as f32, CosmicTextPosition::TopLeft { padding } => *padding as f32,
CosmicTextPosition::Left { padding } => *padding as f32, CosmicTextPosition::Left { padding } => *padding as f32,
}; };
...@@ -148,8 +148,7 @@ pub fn set_x_offset( ...@@ -148,8 +148,7 @@ pub fn set_x_offset(
} }
let padding_x = match position { let padding_x = match position {
// TODO: This 5 should be specified by user CosmicTextPosition::Center { padding } => *padding as f32,
CosmicTextPosition::Center => 5.,
CosmicTextPosition::TopLeft { padding } => *padding as f32, CosmicTextPosition::TopLeft { padding } => *padding as f32,
CosmicTextPosition::Left { padding } => *padding as f32, CosmicTextPosition::Left { padding } => *padding as f32,
}; };
......
...@@ -55,16 +55,17 @@ pub enum CursorConfig { ...@@ -55,16 +55,17 @@ pub enum CursorConfig {
} }
/// Enum representing the position of the cosmic text. /// Enum representing the position of the cosmic text.
#[derive(Clone, Component, Default)] #[derive(Clone, Component)]
pub enum CosmicTextPosition { pub enum CosmicTextPosition {
#[default] Center { padding: i32 },
Center, TopLeft { padding: i32 },
TopLeft { Left { padding: i32 },
padding: i32, }
},
Left { impl Default for CosmicTextPosition {
padding: i32, fn default() -> Self {
}, CosmicTextPosition::Center { padding: 5 }
}
} }
#[derive(Event, Debug)] #[derive(Event, Debug)]
......
...@@ -4,8 +4,8 @@ use image::{imageops::FilterType, GenericImageView}; ...@@ -4,8 +4,8 @@ use image::{imageops::FilterType, GenericImageView};
use crate::{ use crate::{
layout::{CosmicPadding, CosmicWidgetSize}, layout::{CosmicPadding, CosmicWidgetSize},
CosmicBackground, CosmicBuffer, CosmicEditor, CosmicFontSystem, CursorColor, DefaultAttrs, CosmicBackground, CosmicBuffer, CosmicEditor, CosmicFontSystem, CosmicTextPosition,
FillColor, ReadOnly, SelectionColor, XOffset, CursorColor, DefaultAttrs, FillColor, ReadOnly, SelectionColor, XOffset,
}; };
#[derive(Resource)] #[derive(Resource)]
...@@ -77,6 +77,7 @@ pub(crate) fn render_texture( ...@@ -77,6 +77,7 @@ pub(crate) fn render_texture(
&CosmicPadding, &CosmicPadding,
&XOffset, &XOffset,
Option<&ReadOnly>, Option<&ReadOnly>,
&CosmicTextPosition,
)>, )>,
mut font_system: ResMut<CosmicFontSystem>, mut font_system: ResMut<CosmicFontSystem>,
mut images: ResMut<Assets<Image>>, mut images: ResMut<Assets<Image>>,
...@@ -95,6 +96,7 @@ pub(crate) fn render_texture( ...@@ -95,6 +96,7 @@ pub(crate) fn render_texture(
padding, padding,
x_offset, x_offset,
readonly_opt, readonly_opt,
position,
) in query.iter_mut() ) in query.iter_mut()
{ {
// Draw background // Draw background
...@@ -133,6 +135,12 @@ pub(crate) fn render_texture( ...@@ -133,6 +135,12 @@ pub(crate) fn render_texture(
.color_opt .color_opt
.unwrap_or(cosmic_text::Color::rgb(0, 0, 0)); .unwrap_or(cosmic_text::Color::rgb(0, 0, 0));
let min_pad = match position {
CosmicTextPosition::Center { padding } => *padding as f32,
CosmicTextPosition::TopLeft { padding } => *padding as f32,
CosmicTextPosition::Left { padding } => *padding as f32,
};
let draw_closure = |x, y, w, h, color| { let draw_closure = |x, y, w, h, color| {
for row in 0..h as i32 { for row in 0..h as i32 {
for col in 0..w as i32 { for col in 0..w as i32 {
...@@ -140,8 +148,7 @@ pub(crate) fn render_texture( ...@@ -140,8 +148,7 @@ pub(crate) fn render_texture(
&mut pixels, &mut pixels,
size.0.x as i32, size.0.x as i32,
size.0.y as i32, size.0.y as i32,
// TODO: padding should draw from a user specified minumum here x + col + padding.x.max(min_pad) as i32 - x_offset.left as i32,
x + col + padding.x.max(5.) as i32 - x_offset.left as i32,
y + row + padding.y as i32, y + row + padding.y as i32,
color, color,
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment