瀏覽代碼

*** empty log message ***

gregw 25 年之前
父節點
當前提交
823f0612f5
共有 2 個文件被更改,包括 100 次插入0 次删除
  1. 42 0
      direct/src/gui/Button.py
  2. 58 0
      direct/src/gui/Frame.py

+ 42 - 0
direct/src/gui/Button.py

@@ -0,0 +1,42 @@
+from ShowBaseGlobal import *
+import GuiManager
+import GuiLabel
+import GuiButton
+import Vec3
+
+guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node())
+font = (loader.loadModelOnce("fonts/ttf-comic")).node()
+
+class Button:
+
+    def __init__(self, name):
+        self.name = name
+        self.l1 = GuiLabel.GuiLabel.makeSimpleTextLabel(name, font)
+        self.l1.setForegroundColor(0., 0., 0., 1.)
+        self.l1.setBackgroundColor(1., 1., 1., 1.)
+        self.l2 = GuiLabel.GuiLabel.makeSimpleTextLabel(name, font)
+        self.l2.setForegroundColor(1., 1., 1., 1.)
+        self.l2.setBackgroundColor(0., 0., 0., 1.)
+        self.button = GuiButton.GuiButton(name, self.l1, self.l1,
+                                          self.l2, self.l2, self.l1)
+        self.setScale(0.1)
+        self.setPos(0., 0.)
+
+    def __str__(self):
+        return "Button: %s" % self.name
+    
+    def getName(self):
+        return name
+    
+    def getGuiItem(self):
+        return self.button
+    
+    def manage(self):
+        self.button.manage(guiMgr, base.eventMgr.eventHandler)
+
+    def setPos(self, x, y):
+        v3 = Vec3.Vec3(x, 0., y)
+        self.button.setPos(v3)
+
+    def setScale(self, scale):
+        self.button.setScale(scale)

+ 58 - 0
direct/src/gui/Frame.py

@@ -0,0 +1,58 @@
+from ShowBaseGlobal import *
+import GuiManager
+import GuiFrame
+import Vec3
+
+guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node())
+font = (loader.loadModelOnce("fonts/ttf-comic")).node()
+
+class Frame:
+
+    # special methods
+    def __init__(self, name):
+        self.name = name
+        self.frame = GuiFrame.GuiFrame(name)
+        self.items = []
+
+    def __str__(self):
+        return "Frame: %s = %s" % self.name, self.items
+
+    # frame functions
+    def getName(self):
+        return self.name
+    
+    def manage(self):
+        self.frame.manage(guiMgr, base.eventMgr.eventHandler)
+
+    def setPos(Self, x, y):
+        v3 = Vec3.Vec3(x, 0., y)
+        self.frame.setPos(v3)
+
+    def setScale(self, scale):
+        self.frame.setScale(scale)
+
+    # content functions
+    def addItem(self, item):
+        self.frame.addItem(item.getGuiItem())
+        self.items.append(item)
+
+    def getItems(self):
+        return self.items
+
+    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())
+
+    def makeVetical(self):
+        # 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)
+
+    def makeHorizontal(self):
+        # 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)
+