Skip to content
Snippets Groups Projects
actions.py 1.1 KiB
Newer Older
import osc, log

class Action:
    def __init__(self, text, **kwargs):
        self.text = text
Benoit Favre's avatar
Benoit Favre committed
        for key, value in kwargs.items():
            setattr(self, key, value)

class ActionManager:
Benoit Favre's avatar
Benoit Favre committed
    def __init__(self, confirmer, highlighter, logger=log.ConsoleLogger()):
        #self.client = osc.Client(host, port)
        self.confirmer = confirmer
        self.highlighter = highlighter
        self.logger = logger

    def confirmed_perform(self, action):
        osc.client.send_action(action)
        self.highlighter.highlight(action)
        self.logger.log(action)

    def perform(self, action, confirm=True, timeout=3):
        if confirm:
Benoit Favre's avatar
Benoit Favre committed
            self.confirmer.confirm('Perform action "%s"?' % action.text, timeout, lambda: self.confirmed_perform(action))
        else:
            self.confirmed_perform(action)

manager = None

Benoit Favre's avatar
Benoit Favre committed
def setup(confirmer, highlighter, logger=log.ConsoleLogger()):
    global manager
    manager = ActionManager(confirmer, highlighter, logger)

def perform_action(action, confirm=True, timeout=3):
    global manager
    manager.perform(action, confirm, timeout)