43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from typing import Any, Optional, Tuple, Union
|
|
|
|
from ..constants import AnnotationFlag
|
|
from ..generic._base import (
|
|
BooleanObject,
|
|
NameObject,
|
|
)
|
|
from ..generic._data_structures import DictionaryObject
|
|
from ..generic._rectangle import RectangleObject
|
|
from ._base import AnnotationDictionary
|
|
|
|
DEFAULT_ANNOTATION_FLAG = AnnotationFlag(0)
|
|
|
|
|
|
class Popup(AnnotationDictionary):
|
|
def __init__(
|
|
self,
|
|
*,
|
|
rect: Union[RectangleObject, Tuple[float, float, float, float]],
|
|
parent: Optional[DictionaryObject] = None,
|
|
open: bool = False,
|
|
**kwargs: Any,
|
|
):
|
|
super().__init__(**kwargs)
|
|
self.update(
|
|
{
|
|
NameObject("/Subtype"): NameObject("/Popup"),
|
|
NameObject("/Rect"): RectangleObject(rect),
|
|
NameObject("/Open"): BooleanObject(open),
|
|
}
|
|
)
|
|
if parent:
|
|
# This needs to be an indirect object
|
|
try:
|
|
self[NameObject("/Parent")] = parent.indirect_reference
|
|
except AttributeError:
|
|
from .._utils import logger_warning
|
|
|
|
logger_warning(
|
|
"Unregistered Parent object : No Parent field set",
|
|
__name__,
|
|
)
|