Source code for

# region Import
from __future__ import annotations
from typing import Any, Tuple

from ooodev.format.inner.kind.format_kind import FormatKind
from ooodev.format.inner.common.props.border_props import BorderProps
from ooodev.format.inner.common.abstract.abstract_padding import AbstractPadding

# endregion Import

[docs]class Spacing(AbstractPadding): """ Frame Spacing Any properties starting with ``prop_`` set or get current instance values. All methods starting with ``fmt_`` can be used to chain together properties. .. versionadded:: 0.9.0 """ # region Overrides def _supported_services(self) -> Tuple[str, ...]: try: return self._supported_services_values except AttributeError: self._supported_services_values = ( "", "", "", "", "", ) return self._supported_services_values def _is_valid_obj(self, obj: Any) -> bool: """ Gets if ``obj`` supports one of the services required by style class Args: obj (Any): UNO object that must have requires service Returns: bool: ``True`` if has a required service; Otherwise, ``False`` """ if super()._is_valid_obj(obj): return True # check if obj has matching property # Some objects such as '' sometime support this style. # Such is the case when a shape is added to a Writer drawing page. # Assume if on attribute matches then it all is a match. return hasattr(obj, self._props.left) @property def prop_format_kind(self) -> FormatKind: """Gets the kind of style""" try: return self._format_kind_prop except AttributeError: self._format_kind_prop = FormatKind.DOC | FormatKind.STYLE return self._format_kind_prop @property def _props(self) -> BorderProps: try: return self._props_internal_attributes except AttributeError: self._props_internal_attributes = BorderProps( left="LeftMargin", top="TopMargin", right="RightMargin", bottom="BottomMargin" ) return self._props_internal_attributes
# endregion Overrides