def METHOD_NAME(
    self,
    focused: Match | None = None,
    if_no_focused: bool = False,
    layout: Iterable[str] | str | None = None,
    when_floating: bool = True,
) -> "LazyCall":
    """Enable call only for given layout(s) and floating state
    Parameters
    ----------
    focused: Match or None
        Match criteria to enable call for the current window.
    if_no_focused: bool
        Whether or not the `focused` attribute should also
        match when there is no focused window.
        This is useful when the `focused` attribute is e.g. set
        to a regex that should also match when there is
        no focused window.
        By default this is set to `False` so that the focused
        attribute only matches when there is actually a focused window.
    layout: str, Iterable[str], or None
        Restrict call to one or more layouts.
        If None, enable the call for all layouts.
    when_floating: bool
        Enable call when the current window is floating.
    """
    self._focused = focused
    self._if_no_focused = if_no_focused
    if layout is not None:
        self._layouts = {layout} if isinstance(layout, str) else set(layout)
    self._when_floating = when_floating
    return self