*** empty log message ***

This commit is contained in:
gregw 2000-11-29 22:23:37 +00:00
parent 1a928e113f
commit d7ef955fb4
4 changed files with 124 additions and 44 deletions

View File

@ -751,16 +751,22 @@ class Actor(PandaObject, NodePath):
return None
def loadModel(self, modelPath, partName="modelRoot", lodName="lodRoot"):
"""loadModel(self, string, string="modelRoot", string="base")
def loadModel(self, modelPath, partName="modelRoot", lodName="lodRoot",
copy = 1):
"""loadModel(self, string, string="modelRoot", string="lodRoot",
bool = 0)
Actor model loader. Takes a model name (ie file path), a part
name(defaults to "modelRoot") and an lod name(defaults to "lodRoot").
If copy is set to 0, do a lodModelOnce instead of a loadModelCopy.
"""
Actor.notify.info("in loadModel: %s , part: %s, lod: %s" % \
(modelPath, partName, lodName))
Actor.notify.info("in loadModel: %s , part: %s, lod: %s, copy: %s" % \
(modelPath, partName, lodName, copy))
# load the model and extract its part bundle
model = loader.loadModelCopy(modelPath)
if (copy):
model = loader.loadModelCopy(modelPath)
else:
model = loader.loadModelOnce(modelPath)
bundle = NodePath(model, "**/+PartBundleNode")
if (bundle.isEmpty()):
Actor.notify.warning("%s is not a character!" % (modelPath))

View File

@ -22,7 +22,7 @@ class Frame:
del(self.frame)
def __str__(self):
return "Frame: %s = %s" % self.name, self.items
return "Frame: %s = %s" % (self.name, self.items)
# accessing
def getName(self):
@ -52,6 +52,9 @@ class Frame:
def recompute(self):
self.frame.recompute()
def clearAllPacking(self):
self.frame.clearAllPacking()
# content functions
def addItem(self, item):
@ -68,18 +71,23 @@ class Frame:
def printItems(self):
print "frame items: %s" % (self.items)
def packItem(self, itemNum, relation, otherItemNum):
self.frame.packItem(self.items[itemNum].getGuiItem(), relation,
self.items[otherItemNum].getGuiItem(), self.offset)
def packItem(self, item, relation, otherItem):
if (item in self.items) and (otherItem in self.items):
self.frame.packItem(item.getGuiItem(), relation,
otherItem.getGuiItem(), self.offset)
else:
print "warning: tried to pack item that aren't in frame"
# convenience functions
def makeVertical(self):
# remove any previous packing
self.frame.clearAllPacking()
# make each item (except first) align under the last
for itemNum in range(1, len(self.items)):
self.packItem(itemNum, GuiFrame.GuiFrame.UNDER, itemNum - 1)
self.packItem(itemNum, GuiFrame.GuiFrame.ALIGNLEFT, itemNum - 1)
for itemNum in range(1, len(self.items)):
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.UNDER,
self.items[itemNum - 1])
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.ALIGNLEFT,
self.items[itemNum - 1])
self.frame.recompute()
def makeHorizontal(self):
@ -87,8 +95,10 @@ class Frame:
self.frame.clearAllPacking()
# make each item (except first) align right of the last
for itemNum in range(1, len(self.items)):
self.packItem(itemNum, GuiFrame.GuiFrame.RIGHT, itemNum - 1)
self.packItem(itemNum, GuiFrame.GuiFrame.ALIGNABOVE, itemNum - 1)
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.RIGHT,
self.items[itemNum - 1])
self.packItem(self.items[itemNum], GuiFrame.GuiFrame.ALIGNABOVE,
self.items[itemNum - 1])
self.frame.recompute()
def makeWideAsWidest(self):

View File

@ -126,8 +126,6 @@ class PickList(PandaObject.PandaObject):
for choice in self.choiceList:
if not (self.choiceList.index(choice) == self.choice):
choice.getGuiItem().exit()
# throw a rollover event
messenger.send(self.name + "-rollover")
def __exitChoice(self):
# reset choice when mouse exits a button
@ -148,10 +146,11 @@ class PickList(PandaObject.PandaObject):
task = Task.Task(buttonUp)
task.choice = self.choiceList[self.choice]
taskMgr.spawnTaskNamed(Task.doLater(.035, task,
"buttonUp-Later"),
"buttonUp-later"),
"doLater-buttonUp-later")
# let everyone know a choice was made
messenger.send(self.eventName, [self.choice])

View File

@ -19,21 +19,21 @@ class ScrollingLabel(PandaObject.PandaObject):
self.frame.setOffset(0.015)
self.item = 0
self.items = []
# display the name of the scrolling label
self.keyFocus = 1
# create the new title
label = GuiLabel.GuiLabel.makeSimpleTextLabel(self.name, font)
label.setForegroundColor(1., 0., 0., 1.)
label.setBackgroundColor(1., 1., 1., 0.)
name = Sign.Sign(self.name, label)
self.frame.addItem(name)
self.title = Sign.Sign(self.name, label)
self.frame.addItem(self.title)
# create a sign for each item in itemList
for item in itemList:
#thisLabel = GuiLabel.GuiLabel.makeSimpleTextLabel(item, font)
#thisLabel.setForegroundColor(0., 0., 0., 1.)
#thisLabel.setBackgroundColor(1., 1., 1., 1.)
#thisSign = Sign.Sign(item, thisLabel)
thisSign = Button.Button(item)
thisLabel = GuiLabel.GuiLabel.makeSimpleTextLabel(item, font)
thisLabel.setForegroundColor(0., 0., 0., 1.)
thisLabel.setBackgroundColor(1., 1., 1., 1.)
thisSign = Sign.Sign(item, thisLabel)
self.items.append(thisSign)
# add each item temporarily
self.frame.addItem(thisSign)
@ -46,24 +46,34 @@ class ScrollingLabel(PandaObject.PandaObject):
self.frame.removeItem(self.items[itemNum])
# pack the first label under the name
self.frame.packItem(1, GuiFrame.GuiFrame.UNDER, 0)
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.UNDER,
self.title)
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.ALIGNLEFT,
self.title)
# create the scroll buttons
leftButton = Button.Button(self.name + "-left", " < ")
leftButton.getGuiItem().setDownRolloverEvent(self.name + "-left")
self.frame.addItem(leftButton)
self.frame.packItem(2, GuiFrame.GuiFrame.UNDER ,0)
self.frame.packItem(2, GuiFrame.GuiFrame.LEFT ,0)
rightButton = Button.Button(self.name + "-right", " > ")
rightButton.getGuiItem().setDownRolloverEvent(self.name + "-right")
self.frame.addItem(rightButton)
self.frame.packItem(3, GuiFrame.GuiFrame.UNDER ,0)
self.frame.packItem(3, GuiFrame.GuiFrame.RIGHT ,0)
self.leftButton = Button.Button(self.name + "-left", " < ")
self.leftButton.getGuiItem().setDownRolloverEvent(self.name + "-left")
self.frame.addItem(self.leftButton)
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.UNDER,
self.title)
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.LEFT,
self.title)
self.rightButton = Button.Button(self.name + "-right", " > ")
self.rightButton.getGuiItem().setDownRolloverEvent(self.name +
"-right")
self.frame.addItem(self.rightButton)
self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.UNDER,
self.title)
self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.RIGHT,
self.title)
# listen for the scroll buttons
self.accept(self.name + "-left", self.handleLeftButton)
self.accept(self.name + "-right", self.handleRightButton)
# listen for keyboard hits
self.setKeyFocus(1)
# refresh the frame
self.frame.recompute()
@ -77,14 +87,25 @@ class ScrollingLabel(PandaObject.PandaObject):
# ignore events
self.ignore(self.name + "-left")
self.ignore(self.name + "-right")
self.setKeyFocus(0)
# accessing
def getName(self):
def getTitle(self):
return self.name
def setTitle(self, name):
self.name = name
self.title.setText(name)
self.frame.recompute()
def getItem(self):
return self.item
return self.items[self.item]
def setItem(self, item):
self.frame.removeItem(self.items[self.item])
self.item = item
self.addItem()
def getEventName(self):
return self.eventName
@ -93,12 +114,30 @@ class ScrollingLabel(PandaObject.PandaObject):
def setPos(self, x, y):
self.frame.setPos(x, y)
self.frame.recompute()
def setScale(self, scale):
self.frame.setScale(scale)
self.frame.recompute()
def getKeyFocus(self):
return self.keyFocus
def setKeyFocus(self, focus):
self.keyFocus = focus
if (focus == 1):
# listen for keyboard hits
self.accept("left-up", self.handleLeftArrow)
self.accept("right-up", self.handleRightArrow)
else:
# ignore keyboard hits
self.ignore("left-up")
self.ignore("right-up")
# actions
def recompute(self):
self.frame.recompute()
def manage(self):
self.frame.manage()
@ -121,12 +160,38 @@ class ScrollingLabel(PandaObject.PandaObject):
self.item = 0
self.addItem()
def handleLeftArrow(self):
# make the button toggle
self.leftButton.getGuiItem().down()
self.spawnButtonUpTask(self.leftButton)
# then act like a mouse click
self.handleLeftButton()
def handleRightArrow(self):
# make the button toggle
self.rightButton.getGuiItem().down()
self.spawnButtonUpTask(self.rightButton)
# then act like a mouse click
self.handleRightButton()
def spawnButtonUpTask(self, button):
def buttonUp(state):
state.button.getGuiItem().up()
return Task.done
task = Task.Task(buttonUp)
task.button = button
taskMgr.spawnTaskNamed(Task.doLater(.035, task, "buttonUp-later"),
"doLater-buttonUp-later")
def addItem(self):
self.frame.addItem(self.items[self.item])
self.frame.packItem(3, GuiFrame.GuiFrame.UNDER, 0)
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.UNDER,
self.title)
self.frame.packItem(self.items[self.item], GuiFrame.GuiFrame.ALIGNLEFT,
self.title)
self.items[self.item].manage()
self.frame.recompute()
messenger.send(self.eventName + str(self.item))
messenger.send(self.eventName, [self.item])