Commit Graph

63 Commits

Author SHA1 Message Date
Bruce Mitchener b6d2529ca9 More clippy fixes. (#629) 2023-08-07 17:42:26 +00:00
Bruce Mitchener 855319c0e2 Apple renamed CTFontOrientation values. (#630)
* `kCTFontDefaultOrientation` -> `kCTFontOrientationDefault`
* `kCTFontOrientationHorizontal` -> `kCTFontOrientationHorizontal`
* `kCTFontOrientationVertical` -> `kCTFontOrientationVertical`

The old names were deprecated in macOS 10.11, iOS 9. The new names
were introduced in macOS 10.8, iOS 6.

Fixes #438.
2023-08-07 17:41:35 +00:00
Bruce Mitchener 18df9aafe7 Some clippy fixes. (#624) 2023-08-03 14:20:26 +00:00
micolous b009c87f2d Auto-format code with "cargo fmt" and check in CI (#615)
* add rustfmt check to CI

* Run "cargo fmt" (rustfmt) over core-foundation-rs
2023-07-25 02:22:25 +00:00
Jeff Muizelaar d10ad8dead Get tests passing on macOS 13
macOS 13 uses NSTaggedPointerString for short CFStrings
which means the retain counts aren't meaningful. Increasing the length
of the strings avoids this.

Empty arrays also seem to refer to a shared constant object that
doesn't have meaningful retain counts either.

Fixes #597
2023-06-20 09:49:19 -04:00
michaelwright235 4938a33fdb sys: Move UniChar type back to string module
Fixes a semver breakage
2023-06-20 13:23:36 +03:00
michaelwright235 b742606a5c sys: string: Remove repeating type
Removes `UniChar` type because it's already defined in base.rs.
2023-06-01 15:50:12 +03:00
ssssota b0e0dd8bf4 Add get name function 2022-02-16 12:09:01 +09:00
Jeff Muizelaar aee417874f Expose bindings to CTFontCreateUIFontForLanguage 2021-12-13 12:42:52 -05:00
Jeff Muizelaar 5dff9e13fd Add some more tests around system fonts and variations 2021-12-08 20:23:44 -05:00
Jeff Muizelaar 77ffcfe731 core-text: out_of_range_variations: Add support for macOS 12 2021-12-08 19:02:22 -05:00
Jeff Muizelaar 3d6c103a14 core-text: Add a test for out of range variations. 2021-12-08 14:53:53 -05:00
Jeff Muizelaar 1ad12536ec Test that we can create a new CTFont from the descriptor attributes. 2021-11-22 19:22:41 -05:00
Jeff Muizelaar 39956a4d8e Add some documentation about using an autorelease pool 2020-12-22 21:13:41 -05:00
bors-servo 7a2ec12906 Auto merge of #421 - jrmuizel:copy-system, r=jdm
Test that copying system fonts doesn't change the url
2020-11-19 10:42:26 -05:00
Jeff Muizelaar 11247e3e8d Test that copying system fonts doesn't change the url 2020-11-04 09:11:49 -05:00
Jeff Muizelaar 0f3eaa7416 Add create_font_descriptor_with_data
This allows create a font from a CFData instead of slice.
More importantly this allows using a CFData that was created
with a custom allocator.
2020-11-03 10:58:40 -05:00
Jeff Muizelaar 597a12983a Make CTFontDescriptor Send and Sync and expose attributes() 2020-10-28 12:13:03 -04:00
Jeff Muizelaar 5a9ab37c01 Make sure we can round trip data fonts through descriptors. 2020-10-26 14:46:13 -04:00
Jeff Muizelaar f8b2abf407 Expose CTFontDescriptorCreateCopyWithAttributes 2020-10-21 11:34:27 -04:00
Josh Matthews d3336c3a21 Version bumps for cocoa, core-foundation-sys, core-foundation, core-text, core-graphics-types, core-graphics. 2020-09-15 12:19:56 -04:00
Wang Kai d76d3deb29 Add CTFontManagerCreateFontDescriptorFromData for avoid CGFont 2020-09-13 20:03:50 +08:00
Colin Rofls a7075f3b9d Use wrap_under_get_rule where expected
I had initially thought I could skip a retain in these cases since
we can trivially track the lifetime of the reference, but I ran into
a segfault in a test that used the empty string, which I tracked
down to here.

I'm not totally sure what's actually going on under the hood, but I
do know that this fixes my crash and also that I was being overly
clever anyway.
2020-06-29 15:06:27 -04:00
Colin Rofls 560b591ad5 Add CTFrame::get_line_origins and CTFrame::get_path 2020-05-11 14:40:31 -04:00
Colin Rofls bab39948b1 Add CTFrame::get_lines
This is a bit unsatisfactory; there doesn't seem to be a memory safe
way to get access to the lines without an intermediate allocation.
2020-05-11 14:31:01 -04:00
bors-servo d4f514d12b Auto merge of #381 - cmyr:typographic-bounds, r=jdm
Add CTLine::get_typographic_bounds

This also adds a type, TypographicBounds, for reporting the result
of this method.

Again I'm happy to do this with pointers if that is preferred. 🤷
2020-05-09 12:12:20 -04:00
bors-servo 515b4b1646 Auto merge of #380 - cmyr:framesetter-size-with-constraints, r=jdm
Add CTFramesetter::suggest_frame_size_with_constraints

I'm not sure if there's a policy of trying to match the documented API exactly? It feels nice to not take pointers for return values, but I'm happy to do it either way.
2020-05-09 12:06:45 -04:00
Colin Rofls 9d56623167 Add CTFramesetter::suggest_frame_size_with_constraints 2020-05-09 11:45:08 -04:00
Colin Rofls 17801cceb3 Add CTLine::get_string_range 2020-05-09 11:43:36 -04:00
Colin Rofls b205c0fe7e Add CTLine::get_typographic_bounds
This also adds a type, TypographicBounds, for reporting the result
of this method.
2020-05-09 11:42:27 -04:00
Kornel acf2c86930 Fix style warnings 2020-05-08 11:42:06 +01:00
brunohgouveia b68e9c782a Change CFMutableAttributedString::set_attribute argument type 2020-04-17 20:35:11 +01:00
brunohgouveia 1f4c983cee Add missing APIs to CTLine 2020-04-13 21:25:53 +01:00
Max Brunsfeld 8c932e649b Add binding for CTRunGetStringIndices (CTRun::string_indices) 2020-01-08 16:42:33 -08:00
Anthony Ramine 24d9ccc2c3 Properly make core_text::font::Font be Send and Sync
The Apple documentation says:

> All individual functions in Core Text are thread-safe. Font objects (CTFont,
> CTFontDescriptor, and associated objects) can be used simultaneously by
> multiple operations, work queues, or threads. However, the layout objects
> (CTTypesetter, CTFramesetter, CTRun, CTLine, CTFrame, and associated objects)
> should be used in a single operation, work queue, or thread.

https://developer.apple.com/documentation/coretext
2019-11-05 12:17:49 +01:00
Wesley Moore bc20614a3b Add get_available_font_tables to CTFont 2019-10-11 16:49:05 +11:00
Birunthan Mohanathas 28557ccc85 Implement CTFontDescriptor::font_format() 2019-07-14 12:07:35 +03:00
Bruce Mitchener 0fbabb35e9 Use assert_eq! when possible instead of assert! 2019-03-21 21:55:00 +07:00
Bruce Mitchener d0a08919f4 core-text: Remove use of mem::transmute. 2019-03-18 09:27:59 +07:00
Bruce Mitchener 3e8acddee2 clippy: Use is_null instead of != ptr::null(). 2019-03-14 21:12:12 +07:00
Sam Rijs 20348e0b8f implement CTFont::get_glyph_with_name 2019-02-09 12:30:48 +11:00
Jeff Muizelaar 42889636bf Add some minimal bindings for CTLine and CTRun 2018-11-08 16:03:21 -05:00
Ryan Leckey 7ec49da393 Add CTFrame and CTFramesetter 2018-08-20 16:29:13 -07:00
Jeff Muizelaar eb8c53f8cd Comment out unused function 2018-08-07 17:28:17 -04:00
Patrick Walton d7b3893a2b Add a binding to CTFontGetGlyphCount() 2018-08-02 14:36:53 -07:00
Patrick Walton f89d2345de Make CTFontCollection::get_descriptors() return an Option.
It returns null if there are no matching fonts.
2018-07-27 15:09:47 -07:00
Patrick Walton 46f432ef1b Make get_advances_for_glyphs and get_vertical_translations_for_glyphs unsafe.
Closes #238.
2018-07-25 14:10:03 -07:00
Patrick Walton 243472042a Add several new functions to Core Graphics and Core Text for font-kit's use.
This bumps the major version of `core-text` since the previous version of
`get_glyphs_for_characters` was unsoundly marked safe before and is now marked
unsafe.
2018-07-25 08:50:35 -07:00
Jeff Muizelaar 645779912b Consistently use std::os::raw::c_void instead of libc::c_void
The major versions of cocoa and core-graphics are bumped as I believe
they are the only crates that meaningfully expose c_void.

Fixes #212
2018-05-06 19:00:37 -04:00
Jeff Muizelaar 5e77c85500 Expose CTFontCopyVariationAxes.
WebRender uses this function so it's probably useful to expose.
2018-05-03 17:01:26 -04:00