41 lines
932 B
Python
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
|