Source code for PyXA.apps.FontBook

""".. versionadded:: 0.0.6

Control the macOS FontBook application using JXA-like syntax.
"""

from typing import Union

import AppKit

from PyXA import XABase
from PyXA import XABaseScriptable
from ..XAProtocols import XAClipboardCodable


[docs] class XAFontBookApplication(XABaseScriptable.XASBApplication): """A class for managing and interacting with Font Book.app. .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) self.xa_wcls = XAFontBookWindow @property def name(self) -> str: """The name of the application.""" return self.xa_scel.name() @property def version(self) -> str: """The version of the Font Book application.""" return self.xa_scel.version() @property def validate_fonts_before_installing(self) -> bool: """Whether to validate fonts before installing them.""" return self.xa_scel.validateFontsBeforeInstalling() @validate_fonts_before_installing.setter def validate_fonts_before_installing(self, validate_fonts_before_installing: bool): self.set_property( "validateFontsBeforeInstalling", validate_fonts_before_installing ) @property def installation_target(self) -> "XAFontBookFontLibrary": """The library where new fonts are installed.""" return self._new_element( self.xa_scel.installationTarget(), XAFontBookFontLibrary ) @installation_target.setter def installation_target(self, installation_target: "XAFontBookFontLibrary"): self.set_property("installationTarget", installation_target.xa_elem) @property def fonts_library(self) -> "XAFontBookFontBookAllFontsLibraryObject": """The All Fonts library.""" return self._new_element( self.xa_scel.fontsLibrary(), XAFontBookFontBookAllFontsLibraryObject ) @property def selection(self) -> "XAFontBookTypefaceList": """The currently selected typefaces.""" ls = self.xa_scel.selection() return self._new_element(ls, XAFontBookTypefaceList) @selection.setter def selection( self, selection: Union["XAFontBookTypefaceList", list["XAFontBookTypeface"]] ): if isinstance(selection, list): selection = [x.xa_elem for x in selection] self.set_property("selection", selection) else: self.set_property("selection", selection.xa_elem) @property def selected_font_families(self) -> "XAFontBookFontFamilyList": """The currently selected font families.""" ls = self.xa_scel.selectedFontFamilies() return self._new_element(ls, XAFontBookFontFamilyList) @selected_font_families.setter def selected_font_families( self, selected_font_families: Union[ "XAFontBookFontFamilyList", list["XAFontBookFontFamily"] ], ): if isinstance(selected_font_families, list): selected_font_families = [x.xa_elem for x in selected_font_families] self.set_property("selectedFontFamilies", selected_font_families) else: self.set_property("selectedFontFamilies", selected_font_families.xa_elem) @property def selected_collections(self) -> "XAFontBookFontCollectionList": """The currently selected collections.""" ls = self.xa_scel.selectedCollections() return self._new_element(ls, XAFontBookFontCollectionList) @selected_collections.setter def selected_collections( self, selected_collections: Union[ "XAFontBookFontCollectionList", list["XAFontBookFontCollection"] ], ): if isinstance(selected_collections, list): selected_collections = [x.xa_elem for x in selected_collections] self.set_property("selectedCollections", selected_collections) else: self.set_property("selectedCollections", selected_collections.xa_elem)
[docs] def documents(self, filter: dict = None) -> "XAFontBookDocumentList": """Returns a list of documents matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.documents(), XAFontBookDocumentList, filter )
[docs] def font_families(self, filter: dict = None) -> "XAFontBookFontFamilyList": """Returns a list of font families matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.fontFamilies(), XAFontBookFontFamilyList, filter )
[docs] def typefaces(self, filter: dict = None) -> "XAFontBookTypefaceList": """Returns a list of typefaces matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.typefaces(), XAFontBookTypefaceList, filter )
[docs] def font_collections(self, filter: dict = None) -> "XAFontBookFontCollectionList": """Returns a list of font collections matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.fontCollections(), XAFontBookFontCollectionList, filter )
[docs] def font_domains(self, filter: dict = None) -> "XAFontBookFontDomainList": """Returns a list of font domains matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.fontDomains(), XAFontBookFontDomainList, filter )
[docs] def font_libraries(self, filter: dict = None) -> "XAFontBookFontLibraryList": """Returns a list of font libraries matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.fontLibraries(), XAFontBookFontLibraryList, filter )
[docs] def font_containers(self, filter: dict = None) -> "XAFontBookFontContainerList": """Returns a list of font containers matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_scel.fontContainers(), XAFontBookFontContainerList, filter )
[docs] class XAFontBookWindow(XABaseScriptable.XASBWindow): """A class for managing and interacting with documents in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def titled(self) -> bool: """Whether the window has a title bar.""" return self.xa_elem.titled() @property def floating(self) -> bool: """Whether the window floats.""" return self.xa_elem.floating() @property def modal(self) -> bool: """Whether the window is a modal window.""" return self.xa_elem.modal()
[docs] class XAFontBookDocumentList(XABase.XAList): """A wrapper around lists of Font Book documents that employs fast enumeration techniques. All properties of documents can be called as methods on the wrapped list, returning a list containing each document's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, XAFontBookDocument, filter)
[docs] def path(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("path") or [])
[docs] def modified(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("modified") or [])
[docs] def name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("name") or [])
[docs] def by_path(self, path: str) -> "XAFontBookDocument": return self.by_property("path", path)
[docs] def by_modified(self, modified: bool) -> "XAFontBookDocument": return self.by_property("modified", modified)
[docs] def by_name(self, name: str) -> "XAFontBookDocument": return self.by_property("name", name)
[docs] class XAFontBookDocument(XABase.XAObject): """A class for managing and interacting with documents in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def path(self) -> XABase.XAPath: """The file path of the document.""" return XABase.XAPath(self.xa_elem.path()) @path.setter def path(self, path: XABase.XAPath): self.set_property("path", path.path) @property def modified(self) -> bool: """Whether the document has been modified since its last save.""" return self.xa_elem.modified() @property def name(self) -> str: """The name of the document.""" return self.xa_elem.name() @name.setter def name(self, name: str): self.set_property("name", name)
[docs] class XAFontBookFontFamilyList(XABase.XAList, XAClipboardCodable): """A wrapper around lists of Font Book font families that employs fast enumeration techniques. All properties of font families can be called as methods on the wrapped list, returning a list containing each font family's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, XAFontBookFontFamily, filter)
[docs] def properties(self) -> list[dict]: return list(self.xa_elem.arrayByApplyingSelector_("properties") or [])
[docs] def name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("name") or [])
[docs] def display_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayName") or [])
[docs] def displayed_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayedName") or [])
[docs] def enabled(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("enabled") or [])
[docs] def duplicated(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("duplicated") or [])
[docs] def files(self) -> list[list[XABase.XAPath]]: ls = self.xa_elem.arrayByApplyingSelector_("files") or [] return [XABase.XAURL(x) for x in [y for y in ls]]
[docs] def by_properties(self, properties: dict) -> "XAFontBookFontFamily": return self.by_property("properties", properties)
[docs] def by_name(self, name: str) -> "XAFontBookFontFamily": return self.by_property("name", name)
[docs] def by_display_name(self, display_name: str) -> "XAFontBookFontFamily": return self.by_property("displayName", display_name)
[docs] def by_displayed_name(self, displayed_name: str) -> "XAFontBookFontFamily": return self.by_property("displayedName", displayed_name)
[docs] def by_enabled(self, enabled: bool) -> "XAFontBookFontFamily": return self.by_property("enabled", enabled)
[docs] def by_duplicates(self, duplicated: bool) -> "XAFontBookFontFamily": return self.by_property("duplicated", duplicated)
[docs] def by_files(self, files: list[XABase.XAPath]) -> "XAFontBookFontFamily": return files == self.files()
[docs] def get_clipboard_representation(self) -> list[str]: """Gets a clipboard-codable representation of each font family in the list. When the clipboard content is set to a list of font families, the name of each font family is added to the clipboard. :return: The list of font family names :rtype: list[str] .. versionadded:: 0.0.8 """ return self.name()
def __repr__(self): return "<" + str(type(self)) + str(self.name()) + ">"
[docs] class XAFontBookFontFamily(XABase.XAObject, XAClipboardCodable): """A class for managing and interacting with font families in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def properties(self) -> dict: """All properties of the font family.""" return self.xa_elem.properties() @property def name(self) -> str: """The name of the font family.""" return self.xa_elem.name() @property def display_name(self) -> str: """The display name of the font family.""" return self.xa_elem.displayName() @property def displayed_name(self) -> str: """The display name of the font family.""" return self.xa_elem.displayedName() @property def enabled(self) -> bool: """Whether the font family is enabled.""" return self.xa_elem.enabled() @enabled.setter def enabled(self, enabled: bool): self.set_property("enabled", enabled) @property def duplicated(self) -> bool: """Whether teh font family contains duplicated faces.""" return self.xa_elem.duplicated() @property def files(self) -> list[XABase.XAPath]: """The font files of the font family.""" ls = self.xa_elem.files() return [XABase.XAPath(x) for x in ls]
[docs] def delete(self): """Permanently deletes the typeface. .. versionadded:: 0.0.6 """ self.xa_elem.delete()
[docs] def typefaces(self, filter: dict = None) -> "XAFontBookTypefaceList": """Returns a list of typefaces matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.typefaces(), XAFontBookTypefaceList, filter )
[docs] def get_clipboard_representation(self) -> str: """Gets a clipboard-codable representation of the font family. When the clipboard content is set to a font family, the name of the font family is added to the clipboard. :return: The name of the font family :rtype: str .. versionadded:: 0.0.8 """ return self.name
def __repr__(self): return "<" + str(type(self)) + str(self.name) + ">"
[docs] class XAFontBookTypefaceList(XABase.XAList, XAClipboardCodable): """A wrapper around lists of Font Book documents that employs fast enumeration techniques. All properties of documents can be called as methods on the wrapped list, returning a list containing each document's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, XAFontBookTypeface, filter)
[docs] def properties(self) -> list[dict]: return list(self.xa_elem.arrayByApplyingSelector_("properties") or [])
[docs] def name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("name") or [])
[docs] def display_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayName") or [])
[docs] def displayed_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayedName") or [])
[docs] def font_family(self) -> XAFontBookFontFamilyList: ls = self.xa_elem.arrayByApplyingSelector_("fontFamily") or [] return self._new_element(ls, XAFontBookFontFamilyList)
[docs] def family_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("familyName") or [])
[docs] def style_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("styleName") or [])
[docs] def post_script_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("postScriptName") or [])
[docs] def id(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("id") or [])
[docs] def enabled(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("enabled") or [])
[docs] def duplicated(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("duplicated") or [])
[docs] def font_type(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("fontType") or [])
[docs] def copyright(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("copyright") or [])
[docs] def font_container(self) -> "XAFontBookFontContainerList": ls = self.xa_elem.arrayByApplyingSelector_("fontContainer") or [] return self._new_element(ls, XAFontBookFontContainerList)
[docs] def files(self) -> list[XABase.XAPath]: ls = self.xa_elem.arrayByApplyingSelector_("files") or [] return [XABase.XAPath(x) for y in ls for x in y]
[docs] def by_properties(self, properties: dict) -> "XAFontBookTypeface": return self.by_property("properties", properties)
[docs] def by_name(self, name: str) -> "XAFontBookTypeface": return self.by_property("name", name)
[docs] def by_display_name(self, display_name: str) -> "XAFontBookTypeface": return self.by_property("displayName", display_name)
[docs] def by_displayed_name(self, displayed_name: str) -> "XAFontBookTypeface": return self.by_property("displayedName", displayed_name)
[docs] def by_font_family(self, font_family: XAFontBookFontFamily) -> "XAFontBookTypeface": return self.by_property("fontFamily", font_family.xa_elem)
[docs] def by_family_name(self, family_name: str) -> "XAFontBookTypeface": return self.by_property("familyName", family_name)
[docs] def by_style_name(self, style_name: str) -> "XAFontBookTypeface": return self.by_property("styleName", style_name)
[docs] def by_post_script_name(self, post_script_name: str) -> "XAFontBookTypeface": return self.by_property("postScriptName", post_script_name)
[docs] def by_id(self, id: str) -> "XAFontBookTypeface": return self.by_property("id", id)
[docs] def by_enabled(self, enabled: bool) -> "XAFontBookTypeface": return self.by_property("enabled", enabled)
[docs] def by_duplicated(self, duplicated: bool) -> "XAFontBookTypeface": return self.by_property("duplicated", duplicated)
[docs] def by_font_type(self, font_type: str) -> "XAFontBookTypeface": return self.by_property("fontType", font_type)
[docs] def by_font_container( self, font_container: "XAFontBookFontContainer" ) -> "XAFontBookTypeface": return self.by_property("fontContainer", font_container.xa_elem)
[docs] def by_files(self, files: list[XABase.XAPath]) -> "XAFontBookTypeface": for typeface in self: if typeface.files == files: return typeface
[docs] def get_clipboard_representation(self) -> list[str]: """Gets a clipboard-codable representation of each typeface in the list. When the clipboard content is set to a list of typefaces, the name of each typeface is added to the clipboard. :return: The list of typeface names :rtype: list[str] .. versionadded:: 0.0.8 """ return self.name()
def __repr__(self): return "<" + str(type(self)) + str(self.name()) + ">"
[docs] class XAFontBookTypeface(XABase.XAObject, XAClipboardCodable): """A class for managing and interacting with typefaces in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def properties(self) -> dict: """All properties of the typeface.""" return self.xa_elem.properties() @property def name(self) -> str: """The name of the typeface.""" return self.xa_elem.name() @property def display_name(self) -> str: """The display name of the typeface.""" return self.xa_elem.displayName() @property def displayed_name(self) -> str: """The display name of the typeface.""" return self.xa_elem.displayedName() @property def font_family(self) -> XAFontBookFontFamily: """The font family that contains the typeface.""" return self._new_element(self.xa_elem.fontFamily(), XAFontBookFontFamily) @property def family_name(self) -> str: """The name of the typeface's font family.""" return self.xa_elem.familyName() @property def style_name(self) -> str: """The name of the typeface's style.""" return self.xa_elem.styleName() @property def post_script_name(self) -> str: """The PostScript font name.""" return self.xa_elem.PostScriptName() @property def id(self) -> str: """The unique identifier for the typeface.""" return self.xa_elem.ID() @property def enabled(self) -> bool: """Whether the typeface is enabled.""" return self.xa_elem.enabled() @enabled.setter def enabled(self, enabled: bool): self.set_property("enabled", enabled) @property def duplicated(self) -> bool: """Whether the typeface is duplicated.""" return self.xa_elem.duplicated() @property def font_type(self) -> str: """The type of the typeface.""" return self.xa_elem.fontType() @property def copyright(self) -> str: """The copyright string for the typeface.""" return self.xa_elem.copyright() @property def font_container(self) -> "XAFontBookFontContainer": """The container of the typeface.""" return self._new_element(self.xa_elem.fontContainer(), XAFontBookFontContainer) @property def files(self) -> list[XABase.XAPath]: """The font files for the typeface.""" ls = self.xa_elem.files() return [XABase.XAPath(x) for x in ls]
[docs] def get_clipboard_representation(self) -> str: """Gets a clipboard-codable representation of the typeface. When the clipboard content is set to a typeface, the name of the typeface is added to the clipboard. :return: The name of the typeface :rtype: str .. versionadded:: 0.0.8 """ return self.name
def __repr__(self): return "<" + str(type(self)) + str(self.name) + ">"
[docs] class XAFontBookFontContainerList(XABase.XAList, XAClipboardCodable): """A wrapper around lists of Font Book font containers that employs fast enumeration techniques. All properties of font containers can be called as methods on the wrapped list, returning a list containing each container's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, XAFontBookFontContainer, filter)
[docs] def properties(self) -> list[dict]: return list(self.xa_elem.arrayByApplyingSelector_("properties") or [])
[docs] def name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("name") or [])
[docs] def path(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("path") or [])
[docs] def files(self) -> list[XABase.XAPath]: ls = self.xa_elem.arrayByApplyingSelector_("files") or [] return [XABase.XAPath(x) for y in ls for x in y]
[docs] def domain(self) -> "XAFontBookFontDomainList": ls = self.xa_elem.arrayByApplyingSelector_("domain") or [] return self._new_element(ls, XAFontBookFontDomainList)
[docs] def id(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("id") or [])
[docs] def by_properties(self, properties: dict) -> "XAFontBookFontContainer": return self.by_property("properties", properties)
[docs] def by_name(self, name: str) -> "XAFontBookFontContainer": return self.by_property("name", name)
[docs] def by_path(self, path: str) -> "XAFontBookFontContainer": return self.by_property("path", path)
[docs] def by_files(self, files: list[XABase.XAPath]) -> "XAFontBookFontContainer": return files == self.files()
[docs] def by_domain(self, domain: "XAFontBookFontDomain") -> "XAFontBookFontContainer": return self.by_property("domain", domain.xa_elem)
[docs] def by_id(self, id: str) -> "XAFontBookFontContainer": return self.by_property("id", id)
[docs] def get_clipboard_representation(self) -> list[str]: """Gets a clipboard-codable representation of each container in the list. When the clipboard content is set to a list of containers, the name of each container is added to the clipboard. :return: The list of container names :rtype: list[str] .. versionadded:: 0.0.8 """ return self.name()
def __repr__(self): return "<" + str(type(self)) + str(self.name()) + ">"
[docs] class XAFontBookFontContainer(XABase.XAObject, XAClipboardCodable): """A class for managing and interacting with font containers in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def properties(self) -> dict: """All properties of the container.""" return self.xa_elem.properties() @property def name(self) -> str: """The name of the container.""" return self.xa_elem.name() @property def path(self) -> str: """The path to the main container.""" return self.xa_elem.path() @property def files(self) -> list[XABase.XAPath]: """The files for the container.""" ls = self.xa_elem.files() return [XABase.XAPath(x) for x in ls] @property def domain(self) -> "XAFontBookFontDomain": """The font domain for the container.""" return self._new_element(self.xa_elem.domain(), XAFontBookFontDomain) @property def id(self) -> str: """The unique identifier of the container.""" return self.xa_elem.ID()
[docs] def font_families(self, filter: dict = None) -> "XAFontBookFontFamilyList": """Returns a list of font families matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.fontFamilies(), XAFontBookFontFamilyList, filter )
[docs] def typefaces(self, filter: dict = None) -> "XAFontBookTypefaceList": """Returns a list of typefaces matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.typefaces(), XAFontBookTypefaceList, filter )
[docs] def font_domains(self, filter: dict = None) -> "XAFontBookFontDomainList": """Returns a list of font domains matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.fontDomains(), XAFontBookFontDomainList, filter )
[docs] def get_clipboard_representation(self) -> str: """Gets a clipboard-codable representation of the container. When the clipboard content is set to a container, the name of the container is added to the clipboard. :return: The name of the container :rtype: str .. versionadded:: 0.0.8 """ return self.name
def __repr__(self): return "<" + str(type(self)) + str(self.name) + ">"
[docs] class XAFontBookFontCollectionList(XABase.XAList, XAClipboardCodable): """A wrapper around lists of Font Book font containers that employs fast enumeration techniques. All properties of font containers can be called as methods on the wrapped list, returning a list containing each container's value for the property. .. versionadded:: 0.0.6 """ def __init__( self, properties: dict, filter: Union[dict, None] = None, obj_class=None ): if obj_class is None: obj_class = XAFontBookFontCollection super().__init__(properties, obj_class, filter)
[docs] def properties(self) -> list[dict]: return list(self.xa_elem.arrayByApplyingSelector_("properties") or [])
[docs] def name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("name") or [])
[docs] def display_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayName") or [])
[docs] def displayed_name(self) -> list[str]: return list(self.xa_elem.arrayByApplyingSelector_("displayedName") or [])
[docs] def enabled(self) -> list[bool]: return list(self.xa_elem.arrayByApplyingSelector_("enabled") or [])
[docs] def by_properties(self, properties: dict) -> "XAFontBookFontCollection": return self.by_property("properties", properties)
[docs] def by_name(self, name: str) -> "XAFontBookFontCollection": return self.by_property("name", name)
[docs] def by_display_name(self, display_name: str) -> "XAFontBookFontCollection": return self.by_property("displayName", display_name)
[docs] def by_displayed_name(self, displayed_name: str) -> "XAFontBookFontCollection": return self.by_property("displayedName", displayed_name)
[docs] def by_enabled(self, enabled: bool) -> "XAFontBookFontCollection": return self.by_property("enabled", enabled)
[docs] def get_clipboard_representation(self) -> list[str]: """Gets a clipboard-codable representation of each collection in the list. When the clipboard content is set to a list of collections, the name of each collection is added to the clipboard. :return: The list of collection names :rtype: list[str] .. versionadded:: 0.0.8 """ return self.name()
def __repr__(self): return "<" + str(type(self)) + str(self.name()) + ">"
[docs] class XAFontBookFontCollection(XABase.XAObject, XAClipboardCodable): """A class for managing and interacting with font collections in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def properties(self) -> dict: """All properties of the collection.""" return self.xa_elem.properties() @property def name(self) -> str: """The name of the collection.""" return self.xa_elem.name() @name.setter def name(self, name: str): self.set_property("name", name) @property def display_name(self) -> str: """The display name of the collection.""" return self.xa_elem.displayName() @property def displayed_name(self) -> str: """The display name of the collection.""" return self.xa_elem.displayedName() @property def enabled(self) -> bool: """Whether the collection is enabled.""" return self.xa_elem.enabled() @enabled.setter def enabled(self, enabled: bool): self.set_property("enabled", enabled)
[docs] def font_families(self, filter: dict = None) -> "XAFontBookFontFamilyList": """Returns a list of font families matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.fontFamilies(), XAFontBookFontFamilyList, filter )
[docs] def typefaces(self, filter: dict = None) -> "XAFontBookTypefaceList": """Returns a list of typefaces matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.typefaces(), XAFontBookTypefaceList, filter )
[docs] def get_clipboard_representation(self) -> str: """Gets a clipboard-codable representation of the collection. When the clipboard content is set to a collection, the name of the collection is added to the clipboard. :return: The name of the collection :rtype: str .. versionadded:: 0.0.8 """ return self.name
def __repr__(self): return "<" + str(type(self)) + str(self.name) + ">"
[docs] class XAFontBookFontLibraryList(XAFontBookFontCollectionList): """A wrapper around lists of Font Book font libraries that employs fast enumeration techniques. All properties of font libraries can be called as methods on the wrapped list, returning a list containing each library's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, filter, XAFontBookFontLibrary)
[docs] class XAFontBookFontLibrary(XAFontBookFontCollection): """A class for managing and interacting with font libraries in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties) @property def id(self) -> str: """The unique identifier of the domain.""" return self.xa_elem.ID()
[docs] def font_containers(self, filter: dict = None) -> "XAFontBookFontContainerList": """Returns a list of font containers matching the filter. .. versionadded:: 0.0.6 """ return self._new_element( self.xa_elem.fontContainers(), XAFontBookFontContainerList, filter )
[docs] class XAFontBookFontDomainList(XAFontBookFontLibraryList): """A wrapper around lists of Font Book font domains that employs fast enumeration techniques. All properties of font domains can be called as methods on the wrapped list, returning a list containing each domain's value for the property. .. versionadded:: 0.0.6 """ def __init__(self, properties: dict, filter: Union[dict, None] = None): super().__init__(properties, filter, XAFontBookFontDomain)
[docs] class XAFontBookFontDomain(XAFontBookFontLibrary): """A class for managing and interacting with font domains in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties)
[docs] class XAFontBookFontBookAllFontsLibraryObject(XAFontBookFontDomain): """A class for managing and interacting with the all fonts library object in Font Book.app. .. seealso:: :class:`XAFontBookApplication` .. versionadded:: 0.0.6 """ def __init__(self, properties): super().__init__(properties)