This commit is contained in:
Mark Mine 2003-10-01 01:28:03 +00:00
parent 30a41eac86
commit 5fba7e2cae

View File

@ -8,6 +8,7 @@ class PieMenu(NodePath, PandaObject):
NodePath.__init__(self) NodePath.__init__(self)
# Create a toplevel node for aspect ratio scaling # Create a toplevel node for aspect ratio scaling
self.assign(hidden.attachNewNode('PieMenu')) self.assign(hidden.attachNewNode('PieMenu'))
self.dr = direct.dr
# Attach the menu # Attach the menu
self.visibleMenu = visibleMenu self.visibleMenu = visibleMenu
# Try to flatten the visibleMenu (note, flattenStrong is too strong # Try to flatten the visibleMenu (note, flattenStrong is too strong
@ -45,15 +46,14 @@ class PieMenu(NodePath, PandaObject):
taskMgr.remove('pieMenuTask') taskMgr.remove('pieMenuTask')
# Where did the user press the button? # Where did the user press the button?
self.originX = direct.dr.mouseX self.originX = self.dr.mouseX
self.originY = direct.dr.mouseY self.originY = self.dr.mouseY
# Pop up menu # Pop up menu
self.reparentTo(render2d) self.reparentTo(render2d)
self.setPos(self.originX,0.0,self.originY) self.setPos(self.originX,0.0,self.originY)
# Compensate for window aspect ratio # Compensate for window aspect ratio
self.setScale(1.0, 1.0,1.0) self.setScale(1.0, 1.0,1.0)
#direct.dr.width/float(direct.dr.height))
# Start drawing the selection line # Start drawing the selection line
self.lines.reset() self.lines.reset()
self.lines.moveTo(0,0,0) self.lines.moveTo(0,0,0)
@ -65,8 +65,8 @@ class PieMenu(NodePath, PandaObject):
taskMgr.add(self.pieMenuTask, 'pieMenuTask') taskMgr.add(self.pieMenuTask, 'pieMenuTask')
def pieMenuTask(self,state): def pieMenuTask(self,state):
mouseX = direct.dr.mouseX mouseX = self.dr.mouseX
mouseY = direct.dr.mouseY mouseY = self.dr.mouseY
deltaX = mouseX - self.originX deltaX = mouseX - self.originX
deltaY = mouseY - self.originY deltaY = mouseY - self.originY
@ -124,7 +124,14 @@ class TextPieMenu(PieMenu):
newMenu = hidden.attachNewNode('TextMenu') newMenu = hidden.attachNewNode('TextMenu')
# Compute angle per item # Compute angle per item
angle = deg2Rad(360.0/numItems) angle = deg2Rad(360.0/numItems)
aspectRatio = direct.dr.getWidth()/float(direct.dr.getHeight()) prop = base.win.getProperties()
if prop.hasSize():
width = prop.getXSize()
height = prop.getYSize()
else:
width = 640
height = 480
aspectRatio = width/float(height)
# Add items # Add items
from DirectGuiGlobals import getDefaultFont from DirectGuiGlobals import getDefaultFont
for i in range (numItems): for i in range (numItems):