add the first plugins

This commit is contained in:
2021-11-26 18:19:57 +01:00
parent 1ea10e2933
commit 0e27cb2b26
13 changed files with 543 additions and 197 deletions

View File

@@ -0,0 +1,26 @@
from typing import Callable
from raven.plugins.domain.raction import RAction
class RMenu():
def __init__(self, label: str):
super(RMenu, self).__init__()
self.label = label
self.actions = []
self.listeners = []
def add_action(self, action: RAction):
self.actions.append(action)
self._notify()
def clear(self):
self.actions.clear()
self._notify()
def _notify(self):
for listener in self.listeners:
listener()
def add_change_listener(self, listener: Callable[[], None]):
self.listeners.append(listener)