oldschool-toontown/toontown/parties/ScrolledFriendList.py

36 lines
2.4 KiB
Python
Raw Normal View History

2019-11-02 17:27:54 -05:00
from direct.gui.DirectGui import DirectFrame, DirectButton, DirectLabel
from direct.gui.DirectGui import DirectScrolledList, DirectCheckButton
from direct.gui.DirectCheckBox import DirectCheckBox
from direct.gui import DirectGuiGlobals
from toontown.toonbase import ToontownGlobals
from panda3d.core import Vec3, Vec4, PlaneNode, Plane, Point3, TextNode, VBase4, NodePath
2019-11-02 17:27:54 -05:00
class ScrolledFriendList(DirectScrolledList):
def __init__(self, parent, gui, clickCallback = None, makeItemsCheckBoxes = False):
self.makeItemsCheckBoxes = makeItemsCheckBoxes
self.clickCallback = clickCallback
2022-01-18 15:12:05 -06:00
self._parent = parent
2019-11-02 17:27:54 -05:00
self.gui = gui
self.scrollSpeed = 1
DirectScrolledList.__init__(self, parent=parent, relief=None, incButton_image=(self.gui.find('**/inviteButtonDown_up'), self.gui.find('**/inviteButtonDown_down'), self.gui.find('**/inviteButtonDown_rollover')), incButton_relief=None, incButton_pos=(0.0, 0.0, -0.03), incButton_image3_color=Vec4(0.6, 0.6, 0.6, 0.6), decButton_image=(self.gui.find('**/inviteButtonUp_up'), self.gui.find('**/inviteButtonUp_down'), self.gui.find('**/inviteButtonUp_rollover')), decButton_relief=None, decButton_pos=(0.0, 0.0, 0.02), decButton_image3_color=Vec4(0.6, 0.6, 0.6, 0.6), itemFrame_relief=None, forceHeight=0.084, numItemsVisible=8, items=[], incButtonCallback=self.scrollButtonPressed, decButtonCallback=self.scrollButtonPressed, itemFrame_pos=(0.0, 0.0, -0.01))
2022-01-18 15:12:05 -06:00
self._DirectScrolledList__incButtonCallback = None
self._DirectScrolledList__decButtonCallback = None
2019-11-02 17:27:54 -05:00
self.setForceHeight()
return
def scrollButtonPressed(self):
pass
def addFriend(self, name, id):
if self.makeItemsCheckBoxes:
checkedImage = self.gui.find('**/inviteButtonChecked')
uncheckedImage = self.gui.find('**/inviteButtonUnchecked')
widget = DirectCheckButton(relief=None, scale=0.1, boxBorder=0.08, boxImage=(uncheckedImage, checkedImage, None), boxImageScale=10.0, boxRelief=None, text=name, text_align=TextNode.ALeft, text_scale=0.7, text_pos=(-3.7, -0.25), command=self.clickCallback, indicator_pos=(-4.8, 0.0, 0.0))
widget['extraArgs'] = [widget]
else:
widget = DirectLabel(relief=None, text=name, text_align=TextNode.ALeft, text_pos=(-0.6, 0.0, 0.0), scale=0.055)
widget.setPythonTag('id', id)
self.addItem(widget)
return