Commit graph

30 commits

Author SHA1 Message Date
Héctor Ramón Jiménez
d779057d9c Replace magic boolean with new Hinting enum 2025-12-01 13:59:55 -07:00
romanstingler
a2f1f4b2a0
refactor: address clippy warnings and improve code quality (#409)
- Fix string formatting with modern interpolation syntax
- Improve Debug implementation with finish_non_exhaustive()
- Fix function placement in shape.rs to avoid items_after_statements warning
- Use more idiomatic Rust patterns (map_or_else, next_back)
- Clean up conditional imports in vi.rs
- Convert multiple methods to `const` functions for optimization and consistency
- Introduce `core_maths` for enhanced no-std compatibility
- Update `Cargo.toml` for the new optional dependency and feature adjustments
2025-08-11 13:58:59 -06:00
Wren [Undefined]
a03faa654d
Variable font support (#400)
* Variable font support

Here's a pretty naïve solution for variable fonts.

The iterator doesn't use the match keys' weight, but instead tries to
get the requested ideal weight, if the font is variable, otherwise it is
ignored and the actual (non-variable) weight is used. This is because I
didn't implement finding variable weight support for match keys; doing
so would be impossible without parsing TTF files when matching and I
didn't want to add that potentially expensive infrastructure if not
entirely necessary.

This is a breaking change, and I'm open for ideas on how to fix that
if it's an issue.

* cargo fmt

* Add variable font example to rich-text example
2025-07-07 08:50:40 -06:00
dsgallups
f05a69a9d9 resolve all lints, update MSRV 2025-01-22 17:00:01 -07:00
Jeremy Soller
21e88ebc45
Move line height calculation to LayoutLine 2024-06-07 10:52:26 -06:00
Jeremy Soller
37688747e1 Use line height from attrs 2024-06-06 19:38:40 -06:00
Christopher Serr
8582173128 Fix no_std build
This fixes the `no_std` build and also makes sure it's tested properly
in the CI workflow.
2024-02-12 10:37:49 -07:00
dtzxporter
cc75bb66b4 Adds a separate wrapping option to allow word to glyph fallback. 2024-02-02 10:40:30 -07:00
Jeremy Soller
bd5f2f95e8 Add capability to synthesize italic 2024-01-17 13:31:03 -07:00
Jeremy Soller
04c96f39c5
Allow Clone of layout structs 2023-11-30 13:00:02 -07:00
Jeremy Soller
bd58940c42
Merge pull request #153 from forkgull/more-debug
Add more Debug implementations
2023-07-24 09:45:58 -06:00
John Nunley
440d24ffa0
Add more Debug implementations
I generally like to implement Debug on these kind of types.
2023-07-07 21:44:21 -07:00
John Nunley
aa1b37aede
Add Align::End for end-based alignment
For use cases that want to reverse the alignment of RTL
lines, this avoids needing to check the RTL status of every line
manually.

This is a breaking change.
2023-07-07 21:31:17 -07:00
Jeremy Soller
85ac473056
Fix tests 2023-07-06 06:47:12 -06:00
Héctor Ramón Jiménez
c3cd24dc97
Truncate Y coordinate in LayoutGlyph::physical 2023-06-20 06:39:06 +02:00
Héctor Ramón Jiménez
eb09cf0259
Introduce PhysicalGlyph for offsetting and scaling 2023-06-20 06:07:24 +02:00
Héctor Ramón Jiménez
c2bef6a345
Align glyphs in a LayoutRun to baseline 2023-06-16 02:15:44 +02:00
Hojjat
00ff5b72f3 Align Left, Right, and Center works 2023-02-22 18:31:49 -07:00
Hojjat
b9fef72f76 Added an enum with the option for "No Wraping" 2022-12-20 13:38:34 -07:00
Hojjat
48087b592b Updated Doc String 2022-12-20 13:37:21 -07:00
Hojjat
089a926615 Bidi reordering works with wrapping. 2022-12-20 04:48:53 -07:00
Héctor Ramón Jiménez
034c5248d9 Replace unless ... not with simply if ... in docs 2022-12-16 13:50:40 -07:00
Héctor Ramón Jiménez
be6dea75a8 Clarify when to use x_offset and y_offset in LayoutGlyph 2022-12-16 13:50:40 -07:00
Héctor Ramón Jiménez
01f6c1fd89 Expose subpixel offsets in LayoutGlyph 2022-12-16 13:50:40 -07:00
Héctor Ramón Jiménez
67950724c3 Add line width field to LayoutLine 2022-12-15 11:17:54 -07:00
Jeremy Soller
8bf0032974
Add custom metadata to Attrs, copied to ShapeGlyph and LayoutGlyph 2022-12-14 09:19:03 -07:00
Jeremy Soller
268805ba0c no_std support 2022-11-08 13:24:14 -07:00
Jeremy Soller
8f8cf80bf6
Update documentation 2022-10-27 10:29:19 -06:00
Jeremy Soller
4798c7ee1a
Add initial rich text example 2022-10-26 14:16:48 -06:00
Jeremy Soller
a9b7b4e914
Add layout run iterator 2022-10-25 12:52:46 -06:00