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
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
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
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
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