manimpango 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ManimPango-0.2.2 → ManimPango-0.2.3/ManimPango.egg-info}/PKG-INFO +1 -1
- {ManimPango-0.2.2/ManimPango.egg-info → ManimPango-0.2.3}/PKG-INFO +1 -1
- {ManimPango-0.2.2 → ManimPango-0.2.3}/manimpango/_version.py +1 -1
- {ManimPango-0.2.2 → ManimPango-0.2.3}/manimpango/cmanimpango.pxd +27 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/manimpango/cmanimpango.pyx +63 -1
- {ManimPango-0.2.2 → ManimPango-0.2.3}/LICENSE +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/MANIFEST.in +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/ManimPango.egg-info/SOURCES.txt +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/ManimPango.egg-info/dependency_links.txt +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/ManimPango.egg-info/not-zip-safe +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/ManimPango.egg-info/top_level.txt +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/README.md +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/manimpango/__init__.py +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/pyproject.toml +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/setup.cfg +0 -0
- {ManimPango-0.2.2 → ManimPango-0.2.3}/setup.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
__version__ = "0.2.
|
|
2
|
+
__version__ = "0.2.3"
|
|
@@ -183,3 +183,30 @@ ELIF UNAME_SYSNAME == "Windows":
|
|
|
183
183
|
DWORD fl,
|
|
184
184
|
unsigned int pdv
|
|
185
185
|
)
|
|
186
|
+
ELIF UNAME_SYSNAME == "Darwin":
|
|
187
|
+
cdef extern from "Carbon/Carbon.h":
|
|
188
|
+
ctypedef struct CFURLRef:
|
|
189
|
+
pass
|
|
190
|
+
ctypedef enum CTFontManagerScope:
|
|
191
|
+
kCTFontManagerScopeProcess
|
|
192
|
+
ctypedef unsigned int UInt8
|
|
193
|
+
ctypedef long CFIndex
|
|
194
|
+
ctypedef unsigned int UInt32
|
|
195
|
+
ctypedef UInt32 CFStringEncoding
|
|
196
|
+
CFURLRef CFURLCreateWithBytes(
|
|
197
|
+
void*,
|
|
198
|
+
unsigned char *URLBytes,
|
|
199
|
+
CFIndex length,
|
|
200
|
+
CFStringEncoding encoding,
|
|
201
|
+
void*
|
|
202
|
+
)
|
|
203
|
+
bint CTFontManagerRegisterFontsForURL(
|
|
204
|
+
CFURLRef fontURL,
|
|
205
|
+
CTFontManagerScope scope,
|
|
206
|
+
void* error
|
|
207
|
+
)
|
|
208
|
+
bint CTFontManagerUnregisterFontsForURL(
|
|
209
|
+
CFURLRef fontURL,
|
|
210
|
+
CTFontManagerScope scope,
|
|
211
|
+
void* error
|
|
212
|
+
)
|
|
@@ -332,7 +332,7 @@ class MarkupUtils:
|
|
|
332
332
|
g_object_unref(layout)
|
|
333
333
|
raise MemoryError("Pango.FontDesc can't be created.")
|
|
334
334
|
pango_font_description_set_size(font_desc, pango_units_from_double(font_size))
|
|
335
|
-
if font:
|
|
335
|
+
if font is not None and len(font) != 0:
|
|
336
336
|
pango_font_description_set_family(font_desc, font.encode("utf-8"))
|
|
337
337
|
pango_font_description_set_style(font_desc, PangoUtils.str2style(slant).value)
|
|
338
338
|
pango_font_description_set_weight(font_desc, PangoUtils.str2weight(weight).value)
|
|
@@ -518,3 +518,65 @@ IF UNAME_SYSNAME == "Windows":
|
|
|
518
518
|
FR_PRIVATE,
|
|
519
519
|
0
|
|
520
520
|
)
|
|
521
|
+
ELIF UNAME_SYSNAME == "Darwin":
|
|
522
|
+
cpdef bint register_font(str font_path):
|
|
523
|
+
"""This function registers the font file using ``CoreText`` API so that
|
|
524
|
+
it is available for use by Pango.
|
|
525
|
+
Parameters
|
|
526
|
+
==========
|
|
527
|
+
font_path : :class:`str`
|
|
528
|
+
Relative or absolute path to font file.
|
|
529
|
+
Returns
|
|
530
|
+
=======
|
|
531
|
+
:class:`bool`
|
|
532
|
+
True means it worked without any error.
|
|
533
|
+
False means there was an unknown error
|
|
534
|
+
Examples
|
|
535
|
+
--------
|
|
536
|
+
>>> register_font("/home/roboto.tff")
|
|
537
|
+
1
|
|
538
|
+
Raises
|
|
539
|
+
------
|
|
540
|
+
AssertionError
|
|
541
|
+
Font is missing.
|
|
542
|
+
"""
|
|
543
|
+
a = Path(font_path)
|
|
544
|
+
assert a.exists(), f"font doesn't exist at {a.absolute()}"
|
|
545
|
+
font_path_bytes_py = str(a.absolute().as_uri()).encode('utf-8')
|
|
546
|
+
cdef unsigned char* font_path_bytes = <bytes>font_path_bytes_py
|
|
547
|
+
b = len(a.absolute().as_uri())
|
|
548
|
+
cdef CFURLRef cf_url = CFURLCreateWithBytes(NULL, font_path_bytes, b, 0x08000100, NULL)
|
|
549
|
+
return CTFontManagerRegisterFontsForURL(
|
|
550
|
+
cf_url,
|
|
551
|
+
kCTFontManagerScopeProcess,
|
|
552
|
+
NULL
|
|
553
|
+
)
|
|
554
|
+
cpdef bint unregister_font(str font_path):
|
|
555
|
+
"""This function unregisters(removes) the font file using
|
|
556
|
+
native ``CoreText`` API. It is mostly optional to call this.
|
|
557
|
+
Mainly used in tests.
|
|
558
|
+
Parameters
|
|
559
|
+
==========
|
|
560
|
+
font_path : :class:`str`
|
|
561
|
+
Relative or absolute path to font file.
|
|
562
|
+
Returns
|
|
563
|
+
=======
|
|
564
|
+
:class:`bool`
|
|
565
|
+
True means it worked without any error.
|
|
566
|
+
False means there was an unknown error
|
|
567
|
+
Raises
|
|
568
|
+
------
|
|
569
|
+
AssertionError
|
|
570
|
+
Font is missing.
|
|
571
|
+
"""
|
|
572
|
+
a = Path(font_path)
|
|
573
|
+
assert a.exists(), f"font doesn't exist at {a.absolute()}"
|
|
574
|
+
font_path_bytes_py = str(a.absolute().as_uri()).encode('utf-8')
|
|
575
|
+
cdef unsigned char* font_path_bytes = <bytes>font_path_bytes_py
|
|
576
|
+
b = len(a.absolute().as_uri())
|
|
577
|
+
cdef CFURLRef cf_url = CFURLCreateWithBytes(NULL, font_path_bytes, b, 0x08000100, NULL)
|
|
578
|
+
return CTFontManagerUnregisterFontsForURL(
|
|
579
|
+
cf_url,
|
|
580
|
+
kCTFontManagerScopeProcess,
|
|
581
|
+
NULL
|
|
582
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|