from panda3d.core import * from otp.otpbase.OTPGlobals import * from direct.gui.DirectGui import * from .MultiPageTextFrame import * from direct.directnotify import DirectNotifyGlobal from otp.otpbase import OTPLocalizer from otp.otpgui import OTPDialog class PrivacyPolicyTextPanel(getGlobalDialogClass()): notify = DirectNotifyGlobal.directNotify.newCategory('PrivacyPolicyTextPanel') def __init__(self, doneEvent, hidePageNum = 0, pageChangeCallback = None, textList = []): dialogClass = getGlobalDialogClass() dialogClass.__init__(self, parent=aspect2d, dialogName='privacyPolicyTextDialog', doneEvent=doneEvent, okButtonText=OTPLocalizer.PrivacyPolicyClose, style=OTPDialog.Acknowledge, text='', topPad=1.5, sidePad=1.2, pos=(0, 0, -.55), scale=0.9) self.privacyPolicyText = MultiPageTextFrame(parent=self, textList=textList, hidePageNum=hidePageNum, pageChangeCallback=pageChangeCallback, pos=(0, 0, 0.7), width=2.4, height=1.5) self['image'] = self['image'] self['image_pos'] = (0, 0, 0.65) self['image_scale'] = (2.7, 1, 1.9) closeButton = self.getChild(0) closeButton.setZ(-.13) class PrivacyPolicyPanel(getGlobalDialogClass()): notify = DirectNotifyGlobal.directNotify.newCategory('PrivacyPolicyPanel') def __init__(self, doneEvent, hidePageNum = 0, pageChangeCallback = None, textList = 1): dialogClass = getGlobalDialogClass() dialogClass.__init__(self, parent=aspect2d, dialogName='privacyPolicyDialog', doneEvent=doneEvent, okButtonText=OTPLocalizer.PrivacyPolicyClose, style=OTPDialog.Acknowledge, text='', topPad=1.5, sidePad=1.2, pos=(0, 0, -.15), scale=0.6) self.chatPrivacyPolicy = None self.fsm = ClassicFSM.ClassicFSM('privacyPolicyPanel', [State.State('off', self.enterOff, self.exitOff), State.State('version1Adult', self.enterVersion1Adult, self.exitPrivacyPolicy), State.State('version1Kids', self.enterVersion1Kids, self.exitPrivacyPolicy), State.State('version2Adult', self.enterVersion2Adult, self.exitPrivacyPolicy), State.State('version2Kids', self.enterVersion2Kids, self.exitPrivacyPolicy)], 'off', 'off') self.fsm.enterInitialState() guiButton = loader.loadModel('phase_3/models/gui/quit_button') moreButtonImage = (guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')) DirectFrame(self, pos=(-0.4, 0.1, 0.4), relief=None, text=OTPLocalizer.PrivacyPolicyText_Intro, text_align=TextNode.ALeft, text_wordwrap=28, text_scale=0.09, text_pos=(-0.82, 1.0), textMayChange=0) textScale = 0.05 buttonFrame = DirectFrame(self, pos=(0.0, 0.1, 0.0), scale=1.4, relief=None) DirectButton(buttonFrame, image=moreButtonImage, image_scale=(1.75, 1.0, 1.0), relief=None, text=OTPLocalizer.ActivateChatPrivacyPolicy_Button1A, text_scale=textScale, text_pos=(0, -0.01), textMayChange=0, pos=(-0.45, 0.0, 0.4), command=self.__handlePrivacyPolicy, extraArgs=['version1Adult']) DirectButton(buttonFrame, image=moreButtonImage, image_scale=(1.75, 1.0, 1.0), relief=None, text=OTPLocalizer.ActivateChatPrivacyPolicy_Button1K, text_scale=textScale, text_pos=(0, -0.01), textMayChange=0, pos=(-0.45, 0.0, 0.2), command=self.__handlePrivacyPolicy, extraArgs=['version1Kids']) DirectButton(buttonFrame, image=moreButtonImage, image_scale=(1.75, 1.0, 1.0), relief=None, text=OTPLocalizer.ActivateChatPrivacyPolicy_Button2A, text_scale=textScale, text_pos=(0, -0.01), textMayChange=0, pos=(0.45, 0.0, 0.4), command=self.__handlePrivacyPolicy, extraArgs=['version2Adult']) DirectButton(buttonFrame, image=moreButtonImage, image_scale=(1.75, 1.0, 1.0), relief=None, text=OTPLocalizer.ActivateChatPrivacyPolicy_Button2K, text_scale=textScale, text_pos=(0, -0.01), textMayChange=0, pos=(0.45, 0.0, 0.2), command=self.__handlePrivacyPolicy, extraArgs=['version2Kids']) self['image'] = self['image'] self['image_pos'] = (0, 0, 0.65) self['image_scale'] = (2.7, 1, 1.9) closeButton = self.getChild(0) closeButton.setZ(-.13) return def delete(self): self.ignoreAll() del self.fsm if self.chatPrivacyPolicy: self.chatPrivacyPolicy.destroy() self.chatPrivacyPolicy = None return def __handlePrivacyPolicy(self, state, *oooo): self.fsm.request(state) def __privacyPolicyTextDone(self): self.exitPrivacyPolicy() def enterPrivacyPolicy(self, textList): if self.chatPrivacyPolicy == None: self.chatPrivacyPolicy = PrivacyPolicyTextPanel('privacyPolicyTextDone', textList=textList) self.chatPrivacyPolicy.show() self.acceptOnce('privacyPolicyTextDone', self.__privacyPolicyTextDone) return def exitPrivacyPolicy(self): self.ignore('privacyPolicyTextDone') if self.chatPrivacyPolicy: cleanupDialog('privacyPolicyTextDialog') self.chatPrivacyPolicy = None return def enterVersion1Adult(self): self.enterPrivacyPolicy(OTPLocalizer.PrivacyPolicyText_1A) def enterVersion1Kids(self): self.enterPrivacyPolicy(OTPLocalizer.PrivacyPolicyText_1K) def enterVersion2Adult(self): self.enterPrivacyPolicy(OTPLocalizer.PrivacyPolicyText_2A) def enterVersion2Kids(self): self.enterPrivacyPolicy(OTPLocalizer.PrivacyPolicyText_2K) def enterOff(self): self.ignoreAll() self.exitPrivacyPolicy() def exitOff(self): pass