Exemplo n.º 1
0
    def __init__(self, holder=None):
        SCObject.__init__(self)
        self.SerialNum = SCMenu.SerialNum
        SCMenu.SerialNum += 1
        node = hidden.attachNewNode('SCMenu%s' % self.SerialNum)
        NodePath.__init__(self, node)
        self.setHolder(holder)
        self.FinalizeTaskName = 'SCMenu%s_Finalize' % self.SerialNum
        self.ActiveMemberSwitchTaskName = 'SCMenu%s_SwitchActiveMember' % self.SerialNum
        self.bg = loader.loadModel(self.BackgroundModelName)

        def findNodes(names, model=self.bg):
            results = []
            for name in names:
                for nm in makeTuple(name):
                    node = model.find('**/%s' % nm)
                    if not node.isEmpty():
                        results.append(node)
                        break

            return results

        self.bgTop, self.bgBottom, self.bgLeft, self.bgRight, self.bgMiddle, self.bgTopLeft, self.bgBottomLeft, self.bgTopRight, self.bgBottomRight = findNodes(
            [('top', 'top1'), 'bottom', 'left', 'right', 'middle', 'topLeft',
             'bottomLeft', 'topRight', 'bottomRight'])
        self.bg.reparentTo(self, -1)
        self.__members = []
        self.activeMember = None
        self.activeCandidate = None
        self.fadeIval = None
        self.width = 1
        self.inFinalize = 0
        return
Exemplo n.º 2
0
    def __init__(self, holder=None):
        SCObject.__init__(self)

        self.SerialNum = SCMenu.SerialNum
        SCMenu.SerialNum += 1

        node = hidden.attachNewNode('SCMenu%s' % self.SerialNum)
        NodePath.__init__(self, node)

        # if 'None', this menu is a top-level menu (it's not under anything)
        self.setHolder(holder)

        self.FinalizeTaskName = 'SCMenu%s_Finalize' % self.SerialNum
        self.ActiveMemberSwitchTaskName = (
            'SCMenu%s_SwitchActiveMember' % self.SerialNum)

        self.bg = loader.loadModel(self.BackgroundModelName)
        def findNodes(names, model=self.bg):
            results = []
            for name in names:
                # if name is a tuple we need to look for the first match
                for nm in makeTuple(name):
                    node = model.find('**/%s' % nm)
                    if not node.isEmpty():
                        results.append(node)
                        break
            return results

        # Maya doesn't allow nodes to be named 'top' so it's named
        # 'top1' in the Pirates model
        (self.bgTop, self.bgBottom, self.bgLeft, self.bgRight,
         self.bgMiddle, self.bgTopLeft, self.bgBottomLeft,
         self.bgTopRight, self.bgBottomRight) = findNodes(
            [('top', 'top1'), 'bottom', 'left', 'right',
             'middle', 'topLeft', 'bottomLeft',
             'topRight', 'bottomRight'])

        # give the bg frame a render order that puts it behind the rest
        # of our children
        self.bg.reparentTo(self, -1)

        # the member elements in this menu
        # note that our member list should be manipulated by applying
        # list operations to 'self'
        self.__members = []

        # Each menu can have a maximum of one 'active' member ('active'
        # being interpreted based on the member's element type; menu holders
        # show their menu when active, etc.)
        self.activeMember = None
        self.activeCandidate = None

        self.fadeIval = None

        # initialized; only used for horizonal centering
        self.width = 1

        # to prevent recursive invalidates from members
        self.inFinalize = 0
Exemplo n.º 3
0
 def __init__(self, parentMenu=None):
     SCObject.__init__(self)
     self.SerialNum = SCElement.SerialNum
     SCElement.SerialNum += 1
     node = hidden.attachNewNode('SCElement%s' % self.SerialNum)
     NodePath.__init__(self, node)
     self.FinalizeTaskName = 'SCElement%s_Finalize' % self.SerialNum
     self.parentMenu = parentMenu
     self.__active = 0
     self.__viewable = 1
     self.lastWidth = 0
     self.lastHeight = 0
     self.setDimensions(0, 0)
     self.padX = 0.25
     self.padZ = 0.1
 def __init__(self, parentMenu = None):
     SCObject.__init__(self)
     self.SerialNum = SCElement.SerialNum
     SCElement.SerialNum += 1
     node = hidden.attachNewNode('SCElement%s' % self.SerialNum)
     NodePath.__init__(self, node)
     self.FinalizeTaskName = 'SCElement%s_Finalize' % self.SerialNum
     self.parentMenu = parentMenu
     self.__active = 0
     self.__viewable = 1
     self.lastWidth = 0
     self.lastHeight = 0
     self.setDimensions(0, 0)
     self.padX = 0.25
     self.padZ = 0.1
Exemplo n.º 5
0
    def __init__(self, holder = None):
        SCObject.__init__(self)
        self.SerialNum = SCMenu.SerialNum
        SCMenu.SerialNum += 1
        node = hidden.attachNewNode('SCMenu%s' % self.SerialNum)
        NodePath.__init__(self, node)
        self.setHolder(holder)
        self.FinalizeTaskName = 'SCMenu%s_Finalize' % self.SerialNum
        self.ActiveMemberSwitchTaskName = 'SCMenu%s_SwitchActiveMember' % self.SerialNum
        self.bg = loader.loadModel(self.BackgroundModelName)
        
        def findNodes(names, model = self.bg):
            results = []
            for name in names:
                for nm in makeTuple(name):
                    node = model.find('**/%s' % nm)
                    if not node.isEmpty():
                        results.append(node)
                        break
                        continue
                
            
            return results

        (self.bgTop, self.bgBottom, self.bgLeft, self.bgRight, self.bgMiddle, self.bgTopLeft, self.bgBottomLeft, self.bgTopRight, self.bgBottomRight) = findNodes([
            ('top', 'top1'),
            'bottom',
            'left',
            'right',
            'middle',
            'topLeft',
            'bottomLeft',
            'topRight',
            'bottomRight'])
        self.bg.reparentTo(self, -1)
        self._SCMenu__members = []
        self.activeMember = None
        self.activeCandidate = None
        self.fadeIval = None
        self.width = 1
        self.inFinalize = 0
Exemplo n.º 6
0
    def __init__(self, parentMenu=None):
        SCObject.__init__(self)

        self.SerialNum = SCElement.SerialNum
        SCElement.SerialNum += 1
        node = hidden.attachNewNode('SCElement%s' % self.SerialNum)
        NodePath.__init__(self, node)

        self.FinalizeTaskName = 'SCElement%s_Finalize' % self.SerialNum

        self.parentMenu = parentMenu
        self.__active = 0
        self.__viewable = 1

        # these are used to detect changes to the size of this element
        # to avoid unnecessary button rebuilds
        self.lastWidth = 0
        self.lastHeight = 0

        self.setDimensions(0,0)

        # how much space to put in around the edges of the button
        self.padX = .25
        self.padZ = .1