Esempio n. 1
0
class BoolSocket(SocketBase):
    def __init__(self, node, name):
        SocketBase.__init__(self, node, name)

        self.type = INSOCKET

        self.frame = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1),
            frameSize=(-1, 0, -self.height, 0),
            parent=node.frame,
        )

        SocketBase.createPlug(self, self.frame)
        '''
        self.text = DirectLabel(
            frameColor=(0, 0, 0, 0),
            frameSize=(0, 1, -self.height, 0),
            scale=(1, 1, 1),
            text=self.name,
            text_align=TextNode.A_left,
            text_scale=(0.1, 0.1),
            text_pos=(0.1, -0.02),
            text_fg=(1, 1, 1, 1),
            text_bg=(0, 0, 0, 0),
            parent=self.frame,
        )'''

        self.checkbox = DirectCheckButton(text=name,
                                          pos=(0.5, 0, 0),
                                          scale=.1,
                                          command=self.updateConnectedNodes,
                                          parent=self.frame)

        self.resize(1)

    def setValue(self, value):
        self.checkbox["indicatorValue"] = value
        self.checkbox.setIndicatorValue()

    def getValue(self):
        return self.checkbox["indicatorValue"]

    def show(self, z, left):
        self.frame.setZ(z)
        self.frame.setX(left)

    def resize(self, newWidth):
        self.frame["frameSize"] = (0, newWidth, -self.height / 2,
                                   self.height / 2)
        #self.text["frameSize"] = (0, newWidth, -self.height/2, self.height/2)

    def setConnected(self, connected):
        if connected:
            self.checkbox["state"] = DGG.DISABLED
        else:
            self.checkbox["state"] = DGG.NORMAL
        self.connected = connected
Esempio n. 2
0
class OutSocket(SocketBase):
    def __init__(self, node, name):
        SocketBase.__init__(self, node, name)

        self.type = OUTSOCKET

        self.frame = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1),
            frameSize=(-1, 0, -self.height, 0),
            parent=node.frame,
        )

        SocketBase.createPlug(self, self.frame)

        self.text = DirectLabel(
            frameColor=(0, 0, 0, 0),
            frameSize=(-1, 0, -self.height, 0),
            scale=(1, 1, 1),
            text=self.name,
            text_align=TextNode.A_right,
            text_scale=(0.1, 0.1),
            text_pos=(-0.1, -0.02),
            text_fg=(1, 1, 1, 1),
            text_bg=(0, 0, 0, 0),
            parent=self.frame,
        )

        self.resize(1)

    def show(self, z, right):
        self.frame.setZ(z)
        self.frame.setX(right)

    def resize(self, newWidth):
        self.frame["frameSize"] = (-newWidth, 0, -self.height / 2,
                                   self.height / 2)
        self.text["frameSize"] = (-newWidth, 0, -self.height / 2,
                                  self.height / 2)
Esempio n. 3
0
class NumericSocket(SocketBase):
    def __init__(self, node, name):
        SocketBase.__init__(self, node, name)

        self.type = INSOCKET

        self.frame = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1),
            frameSize=(-1, 0, -self.height, 0),
            parent=node.frame,
        )

        SocketBase.createPlug(self, self.frame)

        self.text = DirectLabel(
            frameColor=(0, 0, 0, 0),
            frameSize=(0, 1, -self.height, 0),
            scale=(1, 1, 1),
            text=self.name,
            text_align=TextNode.A_left,
            text_scale=(0.1, 0.1),
            text_pos=(0.1, -0.02),
            text_fg=(1, 1, 1, 1),
            text_bg=(0, 0, 0, 0),
            parent=self.frame,
        )

        self.spinBox = DirectSpinBox(
            pos=(0.5,0,0),
            value=5,
            minValue=-100,
            maxValue=100,
            repeatdelay=0.125,
            buttonOrientation=DGG.HORIZONTAL,
            valueEntry_text_align=TextNode.ACenter,
            borderWidth=(0.1,0.1),
            parent=self.frame,
            valueChangeCallback=self.updateConnectedNodes)
        self.spinBox.setScale(0.1)

        self.resize(1)

    def setValue(self, value):
        self.spinBox.setValue(value)

    def getValue(self):
        return self.spinBox.getValue()

    def show(self, z, left):
        self.frame.setZ(z)
        self.frame.setX(left)

    def resize(self, newWidth):
        self.frame["frameSize"] = (0, newWidth, -self.height/2, self.height/2)
        self.text["frameSize"] = (0, newWidth, -self.height/2, self.height/2)

    def setConnected(self, connected):
        if connected:
            self.spinBox["state"] = DGG.DISABLED
            self.spinBox.incButton["state"] = DGG.DISABLED
            self.spinBox.decButton["state"] = DGG.DISABLED
            self.spinBox.valueEntry["state"] = DGG.DISABLED
        else:
            self.spinBox["state"] = DGG.NORMAL
            self.spinBox.incButton["state"] = DGG.NORMAL
            self.spinBox.decButton["state"] = DGG.NORMAL
            self.spinBox.valueEntry["state"] = DGG.NORMAL
        self.connected = connected