#-----------------------------------------------------------------------------
# Name: UserCompanions.py
# Purpose: Add your own companion classes to this module
# If you wish to define companion in separate modules, import
# their contents into this module. Use from module import *
#
# Created: 2001/02/04
# RCS-ID: $Id: UserCompanions.plug-in.py,v 1.9 2005/05/18 12:11:50 riaan Exp $
#-----------------------------------------------------------------------------
import wx
from Companions import BasicCompanions
from PropEdit import PropertyEditors
try:
import wx.lib.bcrtl
except ImportError:
raise ImportError, 'The "bcrtl" package is not installed, turn on "installBCRTL" under Preferences'
#-------------------------------------------------------------------------------
# Objects which Boa will need at design-time needs to be imported into the
# Companion module's namespace
import wx.lib.bcrtl.user.ExampleST
# Silly barebones example of a companion for a new component that is not
# available in the wxPython distribution
class ExampleSTDTC(BasicCompanions.StaticTextDTC):
def writeImports(self):
return 'import wx.lib.bcrtl.user.ExampleST'
#-------------------------------------------------------------------------------
# Example of a composite control, control itself, implemented in
# wxPython.lib.bcrtl.user.StaticTextCtrl
import wx.lib.bcrtl.user.StaticTextCtrl
class StaticTextCtrlDTC(BasicCompanions.TextCtrlDTC):
def __init__(self, name, designer, parent, ctrlClass):
BasicCompanions.TextCtrlDTC.__init__(self, name, designer, parent, ctrlClass)
self.editors['CaptionAlignment'] = PropertyEditors.EnumPropEdit
self.options['CaptionAlignment'] = [wx.TOP, wx.LEFT]
self.names['CaptionAlignment'] = {'wx.TOP': wx.TOP, 'wx.LEFT': wx.LEFT}
def constructor(self):
return {'Value': 'value', 'Position': 'pos', 'Size': 'size',
'Style': 'style', 'Name': 'name',
'Caption': 'caption'}
def writeImports(self):
return 'import wx.lib.bcrtl.user.StaticTextCtrl'
def designTimeSource(self, position = 'wx.DefaultPosition', size = 'wx.DefaultSize'):
dts = BasicCompanions.TextCtrlDTC.designTimeSource(self, position, size)
dts['caption'] = `self.name`
return dts
#-------------------------------------------------------------------------------
import Plugins
# Register the components
Plugins.registerComponents('User',
(wx.lib.bcrtl.user.ExampleST.ExampleStaticText,
'ExampleStaticText', ExampleSTDTC),
(wx.lib.bcrtl.user.StaticTextCtrl.StaticTextCtrl,
'StaticTextCtrl', StaticTextCtrlDTC),
)
|