1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
""" The *definition* of a tool bar. """
# Enthought library imports.
from enthought.traits.api import Instance, List, Str
# Local imports.
from group import Group
from location import Location
# fixme: Remove duplication (in menu.py too!)
class CGroup(Instance):
""" A trait type for a 'Group' or anything that can be cast to a 'Group'.
Currently, the only cast allowed is from string -> Group using the
string as the group's ID.
"""
###########################################################################
# 'object' interface.
###########################################################################
def __init__(self, **kw):
""" Constructor. """
super(CGroup, self).__init__(klass=Group, **kw)
return
###########################################################################
# 'TraitType' interface.
###########################################################################
def validate(self, object, name, value):
""" Validate a value. """
if isinstance(value, basestring):
value = Group(id=value)
return super(CGroup, self).validate(object, name, value)
class ToolBar(Location):
""" The *definition* of a menu in a menu bar or menu. """
# The tool bars's unique identifier (unique within the multi-toolbar
# that the tool bar is to be added to).
id = Str
# The tool bar name (appears when the tool bar is 'undocked').
name = Str
# The groups in the tool bar.
groups = List(CGroup)
# The optional name of a class that implements the tool bar. The class must
# support the **enthought.pyface.action.ToolBarManager** protocol.
class_name = Str
###########################################################################
# 'object' interface
###########################################################################
def __str__(self):
""" Return the 'informal' string representation of the object. """
return 'ToolBar(%s)' % self.name
__repr__ = __str__
###########################################################################
# 'Location' interface
###########################################################################
def _path_default(self):
""" Trait initializer. """
return 'ToolBar'
###########################################################################
# 'ToolBar' interface
###########################################################################
def _id_default(self):
""" Trait initializer. """
return self.name
#### EOF ######################################################################
|