Source code for ooodev.adapter.awt.extended_toolkit_partial
from __future__ import annotations
from typing import Any, TYPE_CHECKING
from com.sun.star.awt import XExtendedToolkit
from ooodev.exceptions import ex as mEx
from ooodev.loader import lo as mLo
if TYPE_CHECKING:
from com.sun.star.awt import XFocusListener
from com.sun.star.awt import XKeyHandler
from com.sun.star.awt import XTopWindowListener
from com.sun.star.uno import XInterface
from com.sun.star.awt import XTopWindow
from ooodev.utils.type_var import UnoInterface
[docs]class ExtendedToolkitPartial:
"""
Partial class for XExtendedToolkit.
"""
[docs] def __init__(self, component: XExtendedToolkit, interface: UnoInterface | None = XExtendedToolkit) -> None:
"""
Constructor
Args:
component (XExtendedToolkit): UNO Component that implements ``com.sun.star.awt.XExtendedToolkit`` interface.
interface (UnoInterface, optional): The interface to be validated. Defaults to ``XExtendedToolkit``.
"""
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 XExtendedToolkit
[docs] def add_focus_listener(self, listener: XFocusListener) -> None:
"""
Add a new listener that is called on com.sun.star.awt.FocusEvent.
Use this focus broadcaster to keep track of the object that currently has the input focus.
"""
self.__component.addFocusListener(listener)
[docs] def add_key_handler(self, handler: XKeyHandler) -> None:
"""
Add a new listener that is called on com.sun.star.awt.KeyEvent.
Every listener is given the opportunity to consume the event, i.e. prevent the not yet called listeners from being called.
"""
self.__component.addKeyHandler(handler)
[docs] def add_top_window_listener(self, listener: XTopWindowListener) -> None:
"""
Add a new listener that is called for events that involve com.sun.star.awt.XTopWindow.
After having obtained the current list of existing top-level windows you can keep this list up-to-date by listening to opened or closed top-level windows. Wait for activations or deactivations of top-level windows to keep track of the currently active frame.
"""
self.__component.addTopWindowListener(listener)
[docs] def fire_focus_gained(self, source: XInterface) -> None:
"""
Broadcasts the a focusGained on all registered focus listeners.
"""
self.__component.fireFocusGained(source)
[docs] def fire_focus_lost(self, source: XInterface) -> None:
"""
Broadcasts the a focusGained on all registered focus listeners.
"""
self.__component.fireFocusLost(source)
[docs] def get_active_top_window(self) -> XTopWindow:
"""
Return the currently active top-level window, i.e.
which has currently the input focus.
"""
return self.__component.getActiveTopWindow()
[docs] def get_top_window(self, idx: int) -> XTopWindow:
"""
Return a reference to the specified top-level window.
Note that the number of top-level windows may change between a call to getTopWindowCount() and successive calls to this function.
Raises:
com.sun.star.lang.IndexOutOfBoundsException: ``IndexOutOfBoundsException``
"""
return self.__component.getTopWindow(idx)
[docs] def get_top_window_count(self) -> int:
"""
This function returns the number of currently existing top-level windows.
"""
return self.__component.getTopWindowCount()
[docs] def remove_focus_listener(self, listener: XFocusListener) -> None:
"""
Remove the specified listener from the list of listeners.
"""
self.__component.removeFocusListener(listener)
[docs] def remove_key_handler(self, handler: XKeyHandler) -> None:
"""
Remove the specified listener from the list of listeners.
"""
self.__component.removeKeyHandler(handler)
[docs] def remove_top_window_listener(self, xListener: XTopWindowListener) -> None:
"""
Remove the specified listener from the list of listeners.
"""
self.__component.removeTopWindowListener(xListener)
# endregion XExtendedToolkit