Quellcode durchsuchen

*** empty log message ***

gregw vor 25 Jahren
Ursprung
Commit
be2b62c779
3 geänderte Dateien mit 154 neuen und 126 gelöschten Zeilen
  1. 13 3
      direct/src/gui/Button.py
  2. 126 121
      direct/src/gui/Frame.py
  3. 15 2
      direct/src/gui/PickList.py

+ 13 - 3
direct/src/gui/Button.py

@@ -4,6 +4,9 @@ import GuiLabel
 import GuiButton
 import Vec3
 
+#import ClockObject
+#clock = ClockObject.ClockObject.getGlobalClock()
+
 guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node())
 font = (loader.loadModelOnce("phase_3/models/fonts/ttf-comic")).node()
 
@@ -18,22 +21,29 @@ class Button:
             self.label = label
         # up
         self.l1 = GuiLabel.GuiLabel.makeSimpleTextLabel(self.label, font)
+        #print "made the label: t = %.3f" % clock.getRealTime()
         self.l1.setForegroundColor(0., 0., 0., 1.)
-        self.l1.setBackgroundColor(1., 1., 1., 1.)
+        #print "set the label colors: t = %.3f" % clock.getRealTime()        
         # roll-over up
         self.l2 = GuiLabel.GuiLabel.makeSimpleTextLabel(self.label, font)
+        #print "made the label: t = %.3f" % clock.getRealTime()
         self.l2.setForegroundColor(0., 0., 0., 1.)
-        self.l2.setBackgroundColor(1., 1., 0., 1.)
+        self.l2.setBackgroundColor(1., 1., 0., 1.)        
+        #print "set the label colors: t = %.3f" % clock.getRealTime()
         # roll-over down
         self.l3 = GuiLabel.GuiLabel.makeSimpleTextLabel(self.label, font)
+        #print "made the label: t = %.3f" % clock.getRealTime()
         self.l3.setForegroundColor(1., 1., 1., 1.)
         self.l3.setBackgroundColor(0., 0., 0., 1.)
+        #print "set the label colors: t = %.3f" % clock.getRealTime()        
         self.button = GuiButton.GuiButton(self.name, self.l1, self.l2,
                                           self.l3, self.l3, self.l1)
+        #print "made the button: t = %.3f" % clock.getRealTime()
         self.setScale(0.1)
-        self.setPos(0., 0.)
+        #print "scale button: t = %.3f" % clock.getRealTime()                
         self.managed = 0
 
+
     def __del__(self):
         if (self.managed):
             self.button.unmanage()

+ 126 - 121
direct/src/gui/Frame.py

@@ -1,121 +1,126 @@
-from ShowBaseGlobal import *
-import GuiManager
-import GuiFrame
-import Vec3
-
-guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node())
-font = (loader.loadModelOnce("phase_3/models/fonts/ttf-comic")).node()
-
-class Frame:
-
-    # special methods
-    def __init__(self, name):
-        self.name = name
-        self.managed = 0
-        self.offset = 0
-        self.frame = GuiFrame.GuiFrame(name)
-        self.items = []
-
-    def __del__(self):
-        if (self.managed):
-            self.frame.unmanage()
-        del(self.frame)
-        
-    def __str__(self):
-        return "Frame: %s = %s" % (self.name, self.items)
-
-    # accessing
-    def getName(self):
-        return self.name
-    
-    def setPos(self, x, y):
-        v3 = Vec3.Vec3(x, 0., y)
-        self.frame.setPos(v3)
-
-    def setScale(self, scale):
-        self.frame.setScale(scale)
-
-    def getOffset(self):
-        return self.offset
-
-    def setOffset(self, offset):
-        self.offset = offset
-
-    # actions
-    def manage(self):
-        self.frame.manage(guiMgr, base.eventMgr.eventHandler)
-        self.managed = 1
-        
-    def unmanage(self):
-        self.frame.unmanage()
-        self.managed = 0
-
-    def recompute(self):
-        self.frame.recompute()
-
-    def clearAllPacking(self):
-        self.frame.clearAllPacking()
-        
-    # content functions
-    def addItem(self, item):
-        self.frame.addItem(item.getGuiItem())
-        self.items.append(item)
-
-    def removeItem(self, item):
-        self.frame.removeItem(item.getGuiItem())
-        self.items.remove(item)
-        
-    def getItems(self):
-        return self.items
-
-    def printItems(self):
-        print "frame items: %s" % (self.items)
-        
-    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(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):
-        # remove any previous packing
-        #self.frame.clearAllPacking()
-        # make each item (except first) align right of the last
-        for itemNum in range(1, len(self.items)):
-            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):
-        # make all the buttons as wide as the widest button in
-        # the frame
-        widest = 0
-        widestWidth = 0.0
-        # find the widest
-        for item in self.items:
-            thisWidth = item.getWidth()
-            if (thisWidth > widestWidth):
-                widest = self.items.index(item)
-                widestWidth = thisWidth
-
-        # make them all this wide
-        for item in self.items:
-            item.setWidth(widestWidth)
-
-            
-        
+from ShowBaseGlobal import *
+import GuiManager
+import GuiFrame
+import Vec3
+
+#import ClockObject
+#clock = ClockObject.ClockObject.getGlobalClock()
+
+guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node())
+font = (loader.loadModelOnce("phase_3/models/fonts/ttf-comic")).node()
+
+class Frame:
+
+    # special methods
+    def __init__(self, name):
+        self.name = name
+        self.managed = 0
+        self.offset = 0
+        self.frame = GuiFrame.GuiFrame(name)
+        self.items = []
+
+    def __del__(self):
+        if (self.managed):
+            self.frame.unmanage()
+        del(self.frame)
+        
+    def __str__(self):
+        return "Frame: %s = %s" % (self.name, self.items)
+
+    # accessing
+    def getName(self):
+        return self.name
+    
+    def setPos(self, x, y):
+        v3 = Vec3.Vec3(x, 0., y)
+        self.frame.setPos(v3)
+
+    def setScale(self, scale):
+        self.frame.setScale(scale)
+
+    def getOffset(self):
+        return self.offset
+
+    def setOffset(self, offset):
+        self.offset = offset
+
+    # actions
+    def manage(self):
+        self.frame.manage(guiMgr, base.eventMgr.eventHandler)
+        self.managed = 1
+        
+    def unmanage(self):
+        self.frame.unmanage()
+        self.managed = 0
+
+    def recompute(self):
+        self.frame.recompute()
+
+    def clearAllPacking(self):
+        self.frame.clearAllPacking()
+        
+    # content functions
+    def addItem(self, item):
+        self.frame.addItem(item.getGuiItem())
+        self.items.append(item)
+
+    def removeItem(self, item):
+        self.frame.removeItem(item.getGuiItem())
+        self.items.remove(item)
+        
+    def getItems(self):
+        return self.items
+
+    def printItems(self):
+        print "frame items: %s" % (self.items)
+        
+    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 isn'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(self.items[itemNum], GuiFrame.GuiFrame.UNDER,
+                          self.items[itemNum - 1])
+            self.packItem(self.items[itemNum], GuiFrame.GuiFrame.ALIGNLEFT,
+                          self.items[itemNum - 1])
+        #print "MakeVert: done packing: t = %.3f" % clock.getRealTime()
+        self.frame.recompute()
+        #print "MakeVert: done recompute: t = %.3f" % clock.getRealTime()
+            
+    def makeHorizontal(self):
+        # remove any previous packing
+        #self.frame.clearAllPacking()
+        # make each item (except first) align right of the last
+        for itemNum in range(1, len(self.items)):
+            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):
+        # make all the buttons as wide as the widest button in
+        # the frame
+        widest = 0
+        widestWidth = 0.0
+        # find the widest
+        for item in self.items:
+            thisWidth = item.getWidth()
+            if (thisWidth > widestWidth):
+                widest = self.items.index(item)
+                widestWidth = thisWidth
+
+        # make them all this wide
+        for item in self.items:
+            item.setWidth(widestWidth)
+
+            
+        

+ 15 - 2
direct/src/gui/PickList.py

@@ -5,6 +5,9 @@ import PandaObject
 import Frame
 import Button
 
+#import ClockObject
+#clock = ClockObject.ClockObject.getGlobalClock()
+
 class PickList(PandaObject.PandaObject):
     """PickList class: display a menu of choices and report users
     choice (via mouse or keyboard) as an event with the choice as
@@ -14,6 +17,8 @@ class PickList(PandaObject.PandaObject):
     # special methods
     def __init__(self, name, choiceList):
 
+        #print "In pick list init: t = %.3f" % clock.getRealTime()
+        
         self.name = name
         self.frame = Frame.Frame(name)
         
@@ -65,9 +70,11 @@ class PickList(PandaObject.PandaObject):
         """__displayChoices(self, string[])
         Display the list of choices
         """
+        #print "starting choiceList: t = %.3f" % clock.getRealTime()  
         for choice in choiceList:
             # create a button for each choice
             button = Button.Button(choice)
+            #print "done with button cons: t = %.3f" % clock.getRealTime()
             choiceIndex = choiceList.index(choice)
             # set the rollover-up event
             eventName = self.name + "-up-" + str(choiceIndex)
@@ -82,13 +89,19 @@ class PickList(PandaObject.PandaObject):
             button.button.setUpEvent(eventName)
             self.accept(eventName, self.__exitChoice)
             # keep a list of the choice buttons
+            #print "done with button events: t = %.3f" % clock.getRealTime()
             self.frame.addItem(button)
+            #print "frame add button: t = %.3f" % clock.getRealTime()
             self.choiceList.append(button)
-
+            #print "list add button: t = %.3f" % clock.getRealTime()
+        
+        #print "done with choiceList: t = %.3f" % clock.getRealTime() 
         # set up the frame
         self.frame.makeWideAsWidest()
+        #print "done with makeWideAsWidest: t = %.3f" % clock.getRealTime()
         self.frame.makeVertical()
-        
+        #print "done with makeVertical: t = %.3f" % clock.getRealTime()
+
     def manage(self):
         self.frame.manage()