From 823f0612f52356136ec7c0fc75cdc7f961875679 Mon Sep 17 00:00:00 2001 From: gregw <> Date: Sat, 11 Nov 2000 00:53:15 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/gui/Button.py | 42 +++++++++++++++++++++++++++++ direct/src/gui/Frame.py | 58 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 direct/src/gui/Button.py create mode 100644 direct/src/gui/Frame.py diff --git a/direct/src/gui/Button.py b/direct/src/gui/Button.py new file mode 100644 index 0000000000..41c86d2b8c --- /dev/null +++ b/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) diff --git a/direct/src/gui/Frame.py b/direct/src/gui/Frame.py new file mode 100644 index 0000000000..2c06ee7bd5 --- /dev/null +++ b/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) +