Browse Source

fun fun fun

Cary Sandvig 25 years ago
parent
commit
f2c62f162e
3 changed files with 27 additions and 26 deletions
  1. 5 2
      direct/src/gui/Button.py
  2. 6 20
      direct/src/gui/ForceAcknowledge.py
  3. 16 4
      direct/src/gui/GuiGlobals.py

+ 5 - 2
direct/src/gui/Button.py

@@ -22,7 +22,7 @@ class Button(DirectObject):
                  litStyle = Label.ButtonLit,
                  downStyle = Label.ButtonDown,
                  inactiveStyle = Label.ButtonInactive,
-                 event = None):
+                 event = None, rolloverSound = None, clickSound = None):
         self.name = name
         self.width = width
 
@@ -94,8 +94,11 @@ class Button(DirectObject):
             self.lInactive = self.lUp
 
         self.button = GuiButton.GuiButton(self.name, self.lUp, self.lLit,
-                                          self.lDown, self.lDown, self.lInactive)
+                                          self.lDown, self.lDown,
+                                          self.lInactive)
         self.button.setDrawOrder(drawOrder)
+        self.button.setRolloverFunctor(getNewRolloverFunctor(rolloverSound))
+        self.button.setBehaviorFunctor(getNewClickFunctor(clickSound))
 
         if (event != None):
             self.button.setBehaviorEvent(event)

+ 6 - 20
direct/src/gui/ForceAcknowledge.py

@@ -11,8 +11,6 @@ class ForceAcknowledge(StateData.StateData):
     def __init__(self, doneEvent, message):
 	"""___init___(self, Event)"""
 	StateData.StateData.__init__(self, doneEvent)
-	self.soundRollover = None
-	self.soundOk = None
 	return None
 
     def enter(self, message):
@@ -27,7 +25,6 @@ class ForceAcknowledge(StateData.StateData):
 
 	if self.okButton:
 	    self.okButton.manage()
-	    self.accept("ForceAcknowledge-rollover", self.__handleRollover)
 	    self.accept("ForceAcknowledge-ok", self.__handleOk)
 	return None
 
@@ -37,7 +34,6 @@ class ForceAcknowledge(StateData.StateData):
 	if self.isLoaded == 0:
 	    return None
 
-	self.ignore("ForceAcknowledge-rollover")
 	self.ignore("ForceAcknowledge-ok")
 
 	self.text.reparentTo(hidden)
@@ -55,11 +51,10 @@ class ForceAcknowledge(StateData.StateData):
                                               scale = 0.08,
                                               pos = (0.0, 0.25))
 	# create a button
-	self.okButton = Button.Button("ForceAcknowledge", "OK")
+	self.okButton = Button.Button("ForceAcknowledge", "OK",
+                                      event = "ForceAcknowledge-ok")
 	self.okButton.setPos(0.0, -0.5)
 	# set rollover event
-	self.okButton.button.setUpRolloverEvent("ForceAcknowledge-rollover")
-	self.okButton.button.setDownRolloverEvent("ForceAcknowledge-ok")
 	self.okButton.button.setPriority(self.okButton.button, GuiItem.PHighest)
 
 	self.isLoaded = 1
@@ -79,16 +74,7 @@ class ForceAcknowledge(StateData.StateData):
 	self.isLoaded = 0
 	return None
 
-    def __handleRollover(self):
-	return None
-
-    def __handleOk(self):
-	self.doneStatus = "ok"	
-	messenger.send(self.doneEvent)
-
-
-
-
-
-
-
+    def __handleOk(self, item):
+        if (item == self.okButton.button):
+            self.doneStatus = "ok"	
+            messenger.send(self.doneEvent)

+ 16 - 4
direct/src/gui/GuiGlobals.py

@@ -9,6 +9,7 @@ guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node(),
 font = None
 panel = None
 drawOrder = 100
+massiveLeak = []
 
 def getDefaultFont():
     global font
@@ -34,20 +35,31 @@ def setDefaultDrawOrder(newDrawOrder):
     global drawOrder
     drawOrder = newDrawOrder
 
-def getNewRolloverFunctor():
+def getNewRolloverFunctor(sound = None):
     val = None
     if base.wantSound:
-        roll = loader.loadSound("phase_3/audio/sfr/GUI_rollover.mp3")
+        if sound:
+            roll = sound
+        else:
+            roll = loader.loadSound("phase_3/audio/sfr/GUI_rollover.mp3")
         val = AudioGuiFunctor(roll)
     else:
         val = AudioGuiFunctor()
+    global massiveLeak
+    massiveLeak.append(val)
     return val
 
-def getNewClickFunctor():
+def getNewClickFunctor(sound = None):
     val = None
     if base.wantSound:
-        click = loader.loadSound("phase_3/audio/sfx/GUI_create_toon_fwd.mp3")
+        if sound:
+            click = sound
+        else:
+            click = loader.loadSound(
+                "phase_3/audio/sfx/GUI_create_toon_fwd.mp3")
         val = AudioGuiFunctor(click)
     else:
         val = AudioGuiFunctor()
+    global massiveLeak
+    massiveLeak.append(val)
     return val