Source code for ooodev.adapter.awt.toolkit_partial
from __future__ import annotations
from typing import Any, TYPE_CHECKING, Tuple
from com.sun.star.awt import XToolkit
from ooodev.exceptions import ex as mEx
from ooodev.loader import lo as mLo
if TYPE_CHECKING:
from com.sun.star.awt import Rectangle # struct
from com.sun.star.awt import WindowDescriptor # struct
from com.sun.star.awt import XDevice
from com.sun.star.awt import XRegion
from com.sun.star.awt import XWindowPeer
from ooodev.utils.type_var import UnoInterface
[docs]class ToolkitPartial:
"""
Partial class for XToolkit.
"""
[docs] def __init__(self, component: XToolkit, interface: UnoInterface | None = XToolkit) -> None:
"""
Constructor
Args:
component (XToolkit): UNO Component that implements ``com.sun.star.awt.XToolkit`` interface.
interface (UnoInterface, optional): The interface to be validated. Defaults to ``XToolkit``.
"""
def validate(comp: Any, obj_type: Any) -> None:
if obj_type is None:
return
if not mLo.Lo.is_uno_interfaces(comp, obj_type):
raise mEx.MissingInterfaceError(obj_type)
validate(component, interface)
self.__component = component
# region XToolkit
[docs] def create_region(self) -> XRegion:
"""
Creates a region.
"""
return self.__component.createRegion()
[docs] def create_screen_compatible_device(self, width: int, height: int) -> XDevice:
"""
Creates a virtual device that is compatible with the screen.
"""
return self.__component.createScreenCompatibleDevice(width, height)
[docs] def create_window(self, descriptor: WindowDescriptor) -> XWindowPeer:
"""
Creates a new window using the given descriptor.
Raises:
com.sun.star.lang.IllegalArgumentException: ``IllegalArgumentException``
"""
return self.__component.createWindow(descriptor)
[docs] def create_windows(self, *descriptors: WindowDescriptor) -> Tuple[XWindowPeer, ...]:
"""
Gets a sequence of windows which are newly created using the given descriptors.
Raises:
com.sun.star.lang.IllegalArgumentException: ``IllegalArgumentException``
"""
return self.__component.createWindows(descriptors)
[docs] def get_desktop_window(self) -> XWindowPeer:
"""
Gets the desktop window.
"""
return self.__component.getDesktopWindow()
[docs] def get_work_area(self) -> Rectangle:
"""
For LibreOffice versions < 4.1, this method just returned an empty rectangle.
After that, it started returning a valid value.
"""
return self.__component.getWorkArea()
# endregion XToolkit