Not quite finished plugin interface

bzr-revno: 6
This commit is contained in:
Eric Searcy 2008-02-07 20:02:16 +00:00
parent b597b8115f
commit ba0539cb11
2 changed files with 68 additions and 2 deletions

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
# Ignore compiled python files
*.pyc

68
plugin.py Normal file
View File

@ -0,0 +1,68 @@
"""
Custom classes for plugins
"""
import wx
# OOSItem should be extended into a plugin-specific object that encapsulates
# the data needed for that plugin to reference back to its internal data
# (like the songid or the path to a video file)
class OOSItem:
"'Order of Service' entry item"
def __init__(self):
"OOSItem constructor"
self.title = "Scaffold item"
def gettitle(self):
"Accessor for title"
return self.title
def golive(self, window):
"Display this item onscreen"
pass
def blank(self, window):
"Blank the screen, plugin is allowed to keep data ready"
pass
def stop(self, window):
"Stop this plugin and destroy any canvases"
pass
# OLPPlugin describes a base class which will be extended by the each particular
# plugin. The plugin provides a series of objects to the host application:
# * panel to add to the control interface (class Controller)
# * operations for `go live', `[un]blank', `stop'
class OLPPlugin(wx.Panel):
"Plugin type"
def __init__(self, parent, *args, **kwargs):
"Panel constructor"
wx.Panel.__init__(self, parent, *args, **kwargs)
oospanel = oos.OrderOfService(self)
self.goblank = wx.RadioButton(self, label="Blank Screen",
style=wx.RB_GROUP)
self.golive = wx.RadioButton(self, label="Go Live")
blankersizer = wx.BoxSizer(wx.HORIZONTAL)
blankersizer.AddStretchSpacer()
blankersizer.Add(self.goblank, 0, wx.RIGHT|wx.ALIGN_CENTER, 10)
blankersizer.Add(self.golive, 0, wx.ALIGN_CENTER)
blankersizer.AddStretchSpacer()
mainsizer = wx.BoxSizer(wx.VERTICAL)
mainsizer.Add(oospanel, 1, wx.GROW|wx.BOTTOM, 10)
mainsizer.Add(blankersizer, 0, wx.GROW)
self.SetSizer(mainsizer)
# vim: autoindent shiftwidth=4 expandtab textwidth=80