Closed KuabeM closed 1 year ago
Actually, after having a closer look at raqote and arc()
, I noticed that just the last piece of the path was missing.. It was fine for filling the surface but the line back to the start point was not part of the path. A simple pb.line_to(x, y + top_left)
fixes this.
Anyway, it might still be better to implement your suggestion. What do you think?
Some more pictures:
This one has a corner-radius of 8 and a border-width of 2.0
For more extreme values, it starts to look weird, radius and width of 20.0. The border will eat up space of the inner content.
Yep, I'm good with this impl. The only thing I don't like is a non-optional border inside RoundedRect
. Something like this would be way better imo:
pub struct Border {
border_color: Color,
border_width: f32,
}
pub struct RoundedRect {
radius: Radius,
color: Color,
boder: Option<Border>,
}
impl RoundedRect {
fn new(radius: Radius, color: Color) -> Self { .. }
fn with_border(self, border: Border) -> Self { Self { border, ..self } }
}
So no need to call stroke
for empty border and to modify input_text.rs. Then i guess, the meaningful behavior is to draw some border if at least one of params (color/width) is specified and having Backgrond
struct inside background::Params
(so defaults are remain in config).
Makes sense to me, I tried to follow your suggestion and added a Border
with a simple method to add a stroke to a path. Is this what you had in mind?
Looks good to me, thanks for your contribution!
This adds support for drawing borders around
RoundedRect
. I added two paramsbg_border_color
andbg_border_width
for background in the first commit. The defaults are red and 2.0 which is probably a bad idea. Would you rather disable the border per default? I.e. transparent color and 0.0 width.The second commit draws the border just on the same path as the actual background. The left side is unfortunately not shown (see picture). I guess it lies just outside the background surface? Do you see a way to still re-use the background path for this?
I didn't yet add support for borders on the input text, but this would be straightforward. Let me know if what you think about adding it on the input text, too.
Resolves #140