def _createGuestPage(self):
     page = DirectFrame(self.frame)
     page.setName('PartyPlannerGuestPage')
     self.guestTitleLabel = DirectLabel(parent = page, relief = None, text = TTLocalizer.PartyPlannerGuestTitle, pos = self.gui.find('**/title_locator').getPos(), scale = self.titleScale)
     self.guestBackgroundLabel = DirectLabel(parent = page, relief = None, image = self.gui.find('**/guestListBackground_flat'), scale = (1.2, 1.0, 1.0))
     self.friendList = ScrolledFriendList(page, self.gui, makeItemsCheckBoxes = True)
     if len(base.localAvatar.friendsList) == 0:
         self.noFriends = True
     else:
         self.noFriends = False
         for friendPair in base.localAvatar.friendsList:
             self.friendList.addFriend(determineFriendName(friendPair), friendPair[0])
         
         self.friendList.scrollTo(0)
     pos = self.gui.find('**/step_04_partyWillBe_locator').getPos()
     self.publicPrivateLabel = DirectLabel(parent = page, relief = None, text = TTLocalizer.PartyPlannerPublicPrivateLabel, text_align = TextNode.ACenter, text_scale = 0.065000000000000002, pos = pos)
     self.publicDescriptionLabel = DirectLabel(parent = page, relief = None, text = TTLocalizer.PartyPlannerPublicDescription, text_align = TextNode.ACenter, text_scale = TTLocalizer.PPpbulicDescriptionLabel, pos = (pos[0] - 0.52000000000000002, pos[1], pos[2]))
     self.publicDescriptionLabel.stash()
     self.privateDescriptionLabel = DirectLabel(parent = page, relief = None, text = TTLocalizer.PartyPlannerPrivateDescription, text_align = TextNode.ACenter, text_scale = TTLocalizer.PPprivateDescriptionLabel, pos = (pos[0] + 0.55000000000000004, pos[1], pos[2]))
     self.privateDescriptionLabel.stash()
     pos = self.gui.find('**/step_04_public_locator').getPos()
     self.publicButton = DirectButton(parent = page, relief = None, geom = (self.gui.find('**/publicButton_up'), self.gui.find('**/publicButton_down'), self.gui.find('**/publicButton_rollover'), self.gui.find('**/publicButton_inactive')), text = TTLocalizer.PartyPlannerPublic, text_pos = (pos[0], pos[2]), text_scale = TTLocalizer.PPpublicButton, command = self._PartyPlanner__doTogglePublicPrivate)
     self.publicButton['state'] = DirectGuiGlobals.DISABLED
     self.publicButton.bind(DirectGuiGlobals.ENTER, self._PartyPlanner__enterPublic)
     self.publicButton.bind(DirectGuiGlobals.EXIT, self._PartyPlanner__exitPublic)
     pos = self.gui.find('**/step_04_private_locator').getPos()
     self.privateButton = DirectButton(parent = page, relief = None, geom = (self.gui.find('**/privateButton_up'), self.gui.find('**/privateButton_down'), self.gui.find('**/privateButton_rollover'), self.gui.find('**/privateButton_inactive')), text = TTLocalizer.PartyPlannerPrivate, text_pos = (pos[0], pos[2]), text_scale = TTLocalizer.PPprivateButton, command = self._PartyPlanner__doTogglePublicPrivate)
     self.privateButton.bind(DirectGuiGlobals.ENTER, self._PartyPlanner__enterPrivate)
     self.privateButton.bind(DirectGuiGlobals.EXIT, self._PartyPlanner__exitPrivate)
     self.checkAllButton = DirectButton(parent = page, relief = None, geom = (self.gui.find('**/checkAllButton_up'), self.gui.find('**/checkAllButton_down'), self.gui.find('**/checkAllButton_rollover')), command = self._PartyPlanner__doCheckAll)
     self.uncheckAllButton = DirectButton(parent = page, relief = None, geom = (self.gui.find('**/uncheckAllButton_up'), self.gui.find('**/uncheckAllButton_down'), self.gui.find('**/uncheckAllButton_rollover')), command = self._PartyPlanner__doUncheckAll)
     return page
    def addFriend(self, id):
        name = determineFriendName(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
    def _createGuestPage(self):
        page = DirectFrame(self.frame)
        page.setName('PartyPlannerGuestPage')
        self.guestTitleLabel = DirectLabel(parent=page, relief=None, text=TTLocalizer.PartyPlannerGuestTitle, pos=self.gui.find('**/title_locator').getPos(), scale=self.titleScale)
        self.guestBackgroundLabel = DirectLabel(parent=page, relief=None, image=self.gui.find('**/guestListBackground_flat'), scale=(1.2, 1.0, 1.0))
        self.friendList = ScrolledFriendList(page, self.gui, makeItemsCheckBoxes=True)
        if len(base.localAvatar.friendsList) == 0:
            self.noFriends = True
        else:
            self.noFriends = False
            for friendPair in base.localAvatar.friendsList:
                self.friendList.addFriend(determineFriendName(friendPair), friendPair[0])

            self.friendList.scrollTo(0)
        pos = self.gui.find('**/step_04_partyWillBe_locator').getPos()
        self.publicPrivateLabel = DirectLabel(parent=page, relief=None, text=TTLocalizer.PartyPlannerPublicPrivateLabel, text_align=TextNode.ACenter, text_scale=0.065, pos=pos)
        self.publicDescriptionLabel = DirectLabel(parent=page, relief=None, text=TTLocalizer.PartyPlannerPublicDescription, text_align=TextNode.ACenter, text_scale=TTLocalizer.PPpbulicDescriptionLabel, pos=(pos[0] - 0.52, pos[1], pos[2]))
        self.publicDescriptionLabel.stash()
        self.privateDescriptionLabel = DirectLabel(parent=page, relief=None, text=TTLocalizer.PartyPlannerPrivateDescription, text_align=TextNode.ACenter, text_scale=TTLocalizer.PPprivateDescriptionLabel, pos=(pos[0] + 0.55, pos[1], pos[2]))
        self.privateDescriptionLabel.stash()
        pos = self.gui.find('**/step_04_public_locator').getPos()
        self.publicButton = DirectButton(parent=page, relief=None, geom=(self.gui.find('**/publicButton_up'),
         self.gui.find('**/publicButton_down'),
         self.gui.find('**/publicButton_rollover'),
         self.gui.find('**/publicButton_inactive')), text=TTLocalizer.PartyPlannerPublic, text_pos=(pos[0], pos[2]), text_scale=TTLocalizer.PPpublicButton, command=self.__doTogglePublicPrivate)
        self.publicButton['state'] = DirectGuiGlobals.DISABLED
        self.publicButton.bind(DirectGuiGlobals.ENTER, self.__enterPublic)
        self.publicButton.bind(DirectGuiGlobals.EXIT, self.__exitPublic)
        pos = self.gui.find('**/step_04_private_locator').getPos()
        self.privateButton = DirectButton(parent=page, relief=None, geom=(self.gui.find('**/privateButton_up'),
         self.gui.find('**/privateButton_down'),
         self.gui.find('**/privateButton_rollover'),
         self.gui.find('**/privateButton_inactive')), text=TTLocalizer.PartyPlannerPrivate, text_pos=(pos[0], pos[2]), text_scale=TTLocalizer.PPprivateButton, command=self.__doTogglePublicPrivate)
        self.privateButton.bind(DirectGuiGlobals.ENTER, self.__enterPrivate)
        self.privateButton.bind(DirectGuiGlobals.EXIT, self.__exitPrivate)
        self.checkAllButton = DirectButton(parent=page, relief=None, geom=(self.gui.find('**/checkAllButton_up'), self.gui.find('**/checkAllButton_down'), self.gui.find('**/checkAllButton_rollover')), command=self.__doCheckAll)
        self.uncheckAllButton = DirectButton(parent=page, relief=None, geom=(self.gui.find('**/uncheckAllButton_up'), self.gui.find('**/uncheckAllButton_down'), self.gui.find('**/uncheckAllButton_rollover')), command=self.__doUncheckAll)
        return page