
from Base import *

_plugins = []

def get_plugins():
  return _plugins

def register_plugin(new_plugin):
  _plugins.append(new_plugin)

def call_plugins(action_name, args = ()):
  results = []
  for p in _plugins:
    res = apply(eval('p.%s' % action_name), args)
    if res != None:
      results.append(res)
  return results

class Plugin(PMailObject):
  def __init__(self):
    PMailObject.__init__(self)

  def name(self):
    pass

  def new_mail_arrived(self, messages):
    pass

  def new_mail_sent(self, message):
    pass

  def message_displayed(self, message, message_window):
    pass

  def message_list_updated(self, message_list_window):
    pass

  def preferences_panel(self):
    pass

  def menu(self):
    pass

  def message_list_popup_items(self, message):
    pass

  def application_initialized(self):
    pass

  def source_created(self, new_source):
    pass
  
