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