easymacro/source/easymacro/easyevents.py

41 lines
932 B
Python

#!/usr/bin/env python3
import unohelper
from com.sun.star.awt import XActionListener
from com.sun.star.lang import XEventListener
__all__ = [
'EventsButton',
]
class EventsListenerBase(unohelper.Base, XEventListener):
def __init__(self, controller, name, window=None):
self._controller = controller
self._name = name
self._window = window
@property
def name(self):
return self._name
def disposing(self, event):
self._controller = None
if not self._window is None:
self._window.setMenuBar(None)
class EventsButton(EventsListenerBase, XActionListener):
def __init__(self, controller, name):
super().__init__(controller, name)
def actionPerformed(self, event):
event_name = f'{self.name}_action'
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return