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
|
#-------------------------------------------------------------------------------
#
# Adds an 'options' feature to DockWindow which allows users to configure
# a view's options if the object associated with a DockControl has an
# 'options' view.
#
# Written by: David C. Morrill
#
# Date: 07/04/2006
#
# (c) Copyright 2006 by David C. Morrill
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports:
#-------------------------------------------------------------------------------
from enthought.traits.api \
import HasTraits
from enthought.traits.ui.api \
import View
from enthought.pyface.dock.api \
import DockWindowFeature
from enthought.pyface.image_resource \
import ImageResource
#-------------------------------------------------------------------------------
# 'OptionsFeature' class:
#-------------------------------------------------------------------------------
class OptionsFeature ( DockWindowFeature ):
#---------------------------------------------------------------------------
# Class variables:
#---------------------------------------------------------------------------
# The user interface name of the feature:
feature_name = 'Options'
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
# The current image to display on the feature bar:
image = ImageResource( 'options_feature' )
# The tooltip to display when the mouse is hovering over the image:
tooltip = 'Click to set view options.'
#---------------------------------------------------------------------------
# Handles the user left clicking on the feature image:
#---------------------------------------------------------------------------
def click ( self ):
""" Handles the user left clicking on the feature image.
"""
self.dock_control.object.edit_traits(
view = 'options',
kind = 'livemodal',
parent = self.dock_control.control
)
#-- Overidable Class Methods ---------------------------------------------------
#---------------------------------------------------------------------------
# Returns whether or not the DockWindowFeature is a valid feature for a
# specified DockControl:
#---------------------------------------------------------------------------
def is_feature_for ( self, dock_control ):
""" Returns whether or not the DockWindowFeature is a valid feature for
a specified DockControl.
"""
object = dock_control.object
return (isinstance( object, HasTraits ) and
isinstance( object.trait_view( 'options' ), View ))
is_feature_for = classmethod( is_feature_for )
|