mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-23 03:35:12 -06:00
57 lines
No EOL
2.2 KiB
Python
57 lines
No EOL
2.2 KiB
Python
from direct.gui.DirectGui import *
|
|
|
|
class OptionChooser:
|
|
|
|
def __init__(self, book, labelText, row, indexCommand, extraArgs, exitCommand):
|
|
options_text_scale = 0.052
|
|
leftMargin = -0.72
|
|
buttonbase_xcoord = 0.35
|
|
textStartHeight = 0.45
|
|
textRowHeight = 0.145
|
|
y = textStartHeight - row * textRowHeight
|
|
matGui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
|
|
arrow_image = (matGui.find('**/tt_t_gui_mat_shuffleArrowUp'), matGui.find('**/tt_t_gui_mat_shuffleArrowDown'))
|
|
|
|
self.indexCommand = indexCommand
|
|
self.extraArgs = extraArgs
|
|
self.exit = exitCommand
|
|
self.label = DirectLabel(book, relief=None, text=labelText, text_align=TextNode.ALeft, text_scale=options_text_scale, text_wordwrap=16, pos=(leftMargin, 0, y))
|
|
self.display = DirectLabel(book, relief=None, scale=0.06, text_wordwrap=9, pos=(buttonbase_xcoord, 0, y))
|
|
self.leftButton = DirectButton(book, relief=None, image=arrow_image, scale=0.45, pos=(textStartHeight - 0.4, 0, y), command=self.offsetIndex, extraArgs=[-1])
|
|
self.rightButton = DirectButton(book, relief=None, image=arrow_image, scale=-0.45, pos=(textStartHeight + 0.2, 0, y), command=self.offsetIndex, extraArgs=[1])
|
|
self.index = -1
|
|
matGui.removeNode()
|
|
|
|
def unload(self):
|
|
self.label.destroy()
|
|
del self.label
|
|
self.display.destroy()
|
|
del self.display
|
|
self.leftButton.destroy()
|
|
del self.leftButton
|
|
self.rightButton.destroy()
|
|
del self.rightButton
|
|
|
|
def offsetIndex(self, offset):
|
|
self.index += offset
|
|
self.indexCommand(*self.extraArgs)
|
|
|
|
def setIndex(self, index):
|
|
self.index = index
|
|
|
|
def setDisplayText(self, text):
|
|
self.display['text'] = text
|
|
|
|
def setDisplayFont(self, font):
|
|
self.display['text_font'] = font
|
|
|
|
def decideButtons(self, minCount, maxCount):
|
|
if self.index <= minCount:
|
|
self.leftButton.hide()
|
|
else:
|
|
self.leftButton.show()
|
|
|
|
if self.index >= maxCount:
|
|
self.rightButton.hide()
|
|
else:
|
|
self.rightButton.show() |