def __init__( self, plug, **kw ) : column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing = 4 ) GafferUI.PlugValueWidget.__init__( self, column, plug, **kw ) with column : with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing = 4 ) : GafferUI.Spacer( IECore.V2i( 0 ), parenting = { "expand" : True } ) GafferUI.LabelPlugValueWidget( plug["basis"], horizontalAlignment=GafferUI.Label.HorizontalAlignment.Right ) GafferUI.SplineBasisPlugValueWidget( plug ) self.__splineWidget = GafferUI.SplineWidget() self.__splineWidget.setDrawMode( self.__splineWidget.DrawMode.Ramp ) self.__splineWidget._qtWidget().setMinimumHeight( 50 ) self.__slider = GafferUI.Slider() self.__slider.setSizeEditable( True ) self.__slider.setMinimumSize( 2 ) self.__positionsChangedConnection = self.__slider.positionChangedSignal().connect( Gaffer.WeakMethod( self.__positionsChanged ) ) self.__indexRemovedConnection = self.__slider.indexRemovedSignal().connect( Gaffer.WeakMethod( self.__indexRemoved ) ) self.__selectedIndexChangedConnection = self.__slider.selectedIndexChangedSignal().connect( Gaffer.WeakMethod( self.__selectedIndexChanged ) ) self.__lastPositionChangedReason = None self.__positionsMergeGroupId = 0 with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing = 4 ) : self.__positionLabel = GafferUI.LabelPlugValueWidget( plug.pointXPlug( 0 ) ) self.__positionField = GafferUI.NumericPlugValueWidget( plug.pointXPlug( 0 ) ) self.__valueLabel = GafferUI.LabelPlugValueWidget( plug.pointYPlug( 0 ) ) self.__valueField = GafferUI.ColorPlugValueWidget( plug.pointYPlug( 0 ) ) self.setPlug( plug )
def __init__( self, plug, **kw ) : column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing = 4 ) GafferUI.PlugValueWidget.__init__( self, column, plug, **kw ) with column : with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing = 4 ) : GafferUI.Label( "Display Mode" ) drawModeWidget = GafferUI.MultiSelectionMenu( allowMultipleSelection = False, allowEmptySelection = False ) drawModeWidget.append( "Ramp" ) drawModeWidget.append( "Curves" ) drawModeWidget.setSelection( "Ramp" ) self.__drawModeChangedConnection = drawModeWidget.selectionChangedSignal().connect( Gaffer.WeakMethod( self.__drawModeChanged ) ) GafferUI.Spacer( imath.V2i( 0 ), parenting = { "expand" : True } ) # TODO: Since we don't have a good way to register metadata on child plugs, we just write the # metadata on this child plug right before constructing a widget for it. There should probably # be some way to do this genericly during initialization Gaffer.Metadata.registerValue( plug['interpolation'], "plugValueWidget:type", "GafferUI.PresetsPlugValueWidget", persistent=False ) for name, value in sorted( Gaffer.SplineDefinitionInterpolation.names.items() ): Gaffer.Metadata.registerValue( plug['interpolation'], "preset:" + name, value, persistent=False ) GafferUI.PlugWidget( GafferUI.PlugValueWidget.create( plug["interpolation"] ) ) self.__splineWidget = GafferUI.SplineWidget() if isinstance( plug, ( Gaffer.SplinefColor3fPlug, Gaffer.SplinefColor4fPlug ) ) : self.__splineWidget.setDrawMode( self.__splineWidget.DrawMode.Ramp ) else: self.__splineWidget.setDrawMode( self.__splineWidget.DrawMode.Splines ) self.__splineWidget._qtWidget().setMinimumHeight( 50 ) self.__slider = GafferUI.Slider() self.__slider.setSizeEditable( True ) self.__slider.setMinimumSize( 2 ) self.__positionsChangedConnection = self.__slider.positionChangedSignal().connect( Gaffer.WeakMethod( self.__positionsChanged ) ) self.__indexRemovedConnection = self.__slider.indexRemovedSignal().connect( Gaffer.WeakMethod( self.__indexRemoved ) ) self.__selectedIndexChangedConnection = self.__slider.selectedIndexChangedSignal().connect( Gaffer.WeakMethod( self.__selectedIndexChanged ) ) self.__lastPositionChangedReason = None self.__positionsMergeGroupId = 0 with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing = 4 ) : self.__positionLabel = GafferUI.LabelPlugValueWidget( plug.pointXPlug( 0 ) ) self.__positionField = GafferUI.NumericPlugValueWidget( plug.pointXPlug( 0 ) ) self.__valueLabel = GafferUI.LabelPlugValueWidget( plug.pointYPlug( 0 ) ) if isinstance( plug.pointYPlug( 0 ), Gaffer.FloatPlug ): self.__valueField = GafferUI.NumericPlugValueWidget( plug.pointYPlug( 0 ) ) else: self.__valueField = GafferUI.ColorPlugValueWidget( plug.pointYPlug( 0 ) ) self.setPlug( plug )
def __init__(self, plug, **kw): column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing=4) GafferUI.PlugValueWidget.__init__(self, column, plug, **kw) with column: with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing=4): GafferUI.Label("Display Mode") drawModeWidget = GafferUI.MultiSelectionMenu( allowMultipleSelection=False, allowEmptySelection=False) drawModeWidget.append("Ramp") drawModeWidget.append("Curves") drawModeWidget.setSelection("Ramp") drawModeWidget.selectionChangedSignal().connect( Gaffer.WeakMethod(self.__drawModeChanged), scoped=False) GafferUI.Spacer(imath.V2i(0), parenting={"expand": True}) GafferUI.PlugWidget( GafferUI.PlugValueWidget.create(plug["interpolation"])) self.__splineWidget = GafferUI.SplineWidget() if isinstance( plug, (Gaffer.SplinefColor3fPlug, Gaffer.SplinefColor4fPlug)): self.__splineWidget.setDrawMode( self.__splineWidget.DrawMode.Ramp) else: self.__splineWidget.setDrawMode( self.__splineWidget.DrawMode.Splines) self.__splineWidget._qtWidget().setMinimumHeight(50) self.__slider = GafferUI.Slider() self.__slider.setMinimumSize(2) self.__positionsChangedConnection = self.__slider.positionChangedSignal( ).connect(Gaffer.WeakMethod(self.__positionsChanged), scoped=False) self.__slider.indexRemovedSignal().connect(Gaffer.WeakMethod( self.__indexRemoved), scoped=False) self.__slider.selectedIndexChangedSignal().connect( Gaffer.WeakMethod(self.__selectedIndexChanged), scoped=False) self.__lastPositionChangedReason = None self.__positionsMergeGroupId = 0 with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing=4): self.__positionLabel = GafferUI.LabelPlugValueWidget( plug.pointXPlug(0)) self.__positionField = GafferUI.NumericPlugValueWidget( plug.pointXPlug(0)) self.__valueLabel = GafferUI.LabelPlugValueWidget( plug.pointYPlug(0)) if isinstance(plug.pointYPlug(0), Gaffer.FloatPlug): self.__valueField = GafferUI.NumericPlugValueWidget( plug.pointYPlug(0)) else: self.__valueField = GafferUI.ColorPlugValueWidget( plug.pointYPlug(0)) self.setPlug(plug)