Beispiel #1
0
	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 )
Beispiel #2
0
	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 )
Beispiel #3
0
    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)