96 lines
3.9 KiB
Python
96 lines
3.9 KiB
Python
from otp.otpbase import OTPGlobals
|
|
from otp.otpbase import OTPLauncherGlobals
|
|
from otp.otpbase import OTPLocalizer
|
|
from direct.gui.DirectGui import *
|
|
from panda3d.core import *
|
|
import os
|
|
|
|
class LeaveToPayDialog:
|
|
|
|
def __init__(self, paidUser, destructorHook = None, doneFunc = None):
|
|
self.destructorHook = destructorHook
|
|
self.dialog = None
|
|
self.okHandler = self.__handleLeaveToPayOK
|
|
self.cancelHandler = self.__handleLeaveToPayCancel
|
|
self.paidUser = paidUser
|
|
self.doneFunc = doneFunc
|
|
return
|
|
|
|
def setOK(self, handler):
|
|
self.okHandler = handler
|
|
|
|
def setCancel(self, handler):
|
|
self.cancelHandler = handler
|
|
|
|
def show(self):
|
|
if self.paidUser:
|
|
if base.cr.productName in ['DisneyOnline-AP',
|
|
'DisneyOnline-UK',
|
|
'JP',
|
|
'FR']:
|
|
directFrameText = OTPLocalizer.LeaveToEnableChatUK
|
|
directButtonYesText = OTPLocalizer.LeaveToEnableChatUKYes
|
|
directButtonNoText = OTPLocalizer.LeaveToEnableChatUKNo
|
|
else:
|
|
directFrameText = OTPLocalizer.LeaveToSetParentPassword
|
|
directButtonYesText = OTPLocalizer.LeaveToSetParentPasswordYes
|
|
directButtonNoText = OTPLocalizer.LeaveToSetParentPasswordNo
|
|
else:
|
|
directFrameText = OTPLocalizer.LeaveToPay
|
|
directButtonYesText = OTPLocalizer.LeaveToPayYes
|
|
directButtonNoText = OTPLocalizer.LeaveToPayNo
|
|
if self.dialog == None:
|
|
buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
|
|
okButtonImage = (buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr'))
|
|
cancelButtonImage = (buttons.find('**/CloseBtn_UP'), buttons.find('**/CloseBtn_DN'), buttons.find('**/CloseBtn_Rllvr'))
|
|
self.dialog = DirectFrame(parent=aspect2dp, pos=(0.0, 0.0, 0.0), relief=None, image=DGG.getDefaultDialogGeom(), image_color=OTPGlobals.GlobalDialogColor, image_scale=(0.9, 1.0, 0.5), text=directFrameText, text_align=TextNode.ALeft, text_wordwrap=14, text_scale=OTPLocalizer.LTPDdirectFrameText, text_pos=(-0.4, 0.15), textMayChange=0)
|
|
DirectButton(self.dialog, image=okButtonImage, relief=None, text=directButtonYesText, text_scale=OTPLocalizer.LTPDdirectButtonYesText, text_pos=(0.0, -0.1), textMayChange=0, pos=(-0.23, 0.0, -0.1), command=self.okHandler)
|
|
DirectButton(self.dialog, image=cancelButtonImage, relief=None, text=directButtonNoText, text_scale=OTPLocalizer.LTPDdirectButtonNoText, text_pos=(0.0, -0.1), textMayChange=0, pos=(0.23, 0.0, -0.1), command=self.cancelHandler)
|
|
buttons.removeNode()
|
|
self.dialog.show()
|
|
return
|
|
|
|
def hide(self):
|
|
self.dialog.hide()
|
|
|
|
def destroy(self):
|
|
if self.destructorHook:
|
|
self.destructorHook()
|
|
if self.dialog:
|
|
self.dialog.hide()
|
|
self.dialog.destroy()
|
|
self.destructorHook
|
|
self.dialog = None
|
|
self.okHandler = None
|
|
self.cancelHandler = None
|
|
return
|
|
|
|
def removed(self):
|
|
if hasattr(self, 'dialog') and self.dialog:
|
|
return self.dialog.removed()
|
|
else:
|
|
return 1
|
|
|
|
def __handleLeaveToPayOK(self):
|
|
self.destroy()
|
|
errorCode = None
|
|
if self.paidUser:
|
|
if base.cr.productName in ['DisneyOnline-AP',
|
|
'DisneyOnline-UK',
|
|
'JP',
|
|
'DE',
|
|
'FR']:
|
|
errorCode = OTPLauncherGlobals.ExitEnableChat
|
|
else:
|
|
errorCode = OTPLauncherGlobals.ExitSetParentPassword
|
|
else:
|
|
errorCode = OTPLauncherGlobals.ExitPurchase
|
|
base.setExitErrorCode(errorCode)
|
|
base.cr.loginFSM.request('shutdown', [errorCode])
|
|
return
|
|
|
|
def __handleLeaveToPayCancel(self):
|
|
if self.doneFunc:
|
|
self.doneFunc()
|
|
self.destroy()
|