forked from metin2/client
420 lines
9.9 KiB
Python
420 lines
9.9 KiB
Python
import ui
|
|
import locale
|
|
import app
|
|
import ime
|
|
import uiScriptLocale
|
|
|
|
class PopupDialog(ui.ScriptWindow):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
self.__LoadDialog()
|
|
self.acceptEvent = lambda *arg: None
|
|
|
|
def __del__(self):
|
|
ui.ScriptWindow.__del__(self)
|
|
|
|
def __LoadDialog(self):
|
|
try:
|
|
PythonScriptLoader = ui.PythonScriptLoader()
|
|
PythonScriptLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")
|
|
|
|
self.board = self.GetChild("board")
|
|
self.message = self.GetChild("message")
|
|
self.accceptButton = self.GetChild("accept")
|
|
self.accceptButton.SetEvent(ui.__mem_func__(self.Close))
|
|
|
|
except:
|
|
import exception
|
|
exception.Abort("PopupDialog.LoadDialog.BindObject")
|
|
|
|
def Open(self):
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
def Close(self):
|
|
self.Hide()
|
|
self.acceptEvent()
|
|
|
|
def Destroy(self):
|
|
self.Close()
|
|
self.ClearDictionary()
|
|
|
|
def SetWidth(self, width):
|
|
height = self.GetHeight()
|
|
self.SetSize(width, height)
|
|
self.board.SetSize(width, height)
|
|
self.SetCenterPosition()
|
|
self.UpdateRect()
|
|
|
|
def SetText(self, text):
|
|
self.message.SetText(text)
|
|
|
|
def SetAcceptEvent(self, event):
|
|
self.acceptEvent = event
|
|
|
|
def SetButtonName(self, name):
|
|
self.accceptButton.SetText(ButtonName)
|
|
|
|
def OnPressEscapeKey(self):
|
|
self.Close()
|
|
return TRUE
|
|
|
|
def OnIMEReturn(self):
|
|
self.Close()
|
|
return TRUE
|
|
|
|
class InputDialog(ui.ScriptWindow):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
|
|
self.__CreateDialog()
|
|
|
|
def __del__(self):
|
|
ui.ScriptWindow.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/inputdialog.py")
|
|
|
|
getObject = self.GetChild
|
|
self.board = getObject("Board")
|
|
self.acceptButton = getObject("AcceptButton")
|
|
self.cancelButton = getObject("CancelButton")
|
|
self.inputSlot = getObject("InputSlot")
|
|
self.inputValue = getObject("InputValue")
|
|
|
|
def Open(self):
|
|
self.inputValue.SetFocus()
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
def Close(self):
|
|
self.ClearDictionary()
|
|
self.board = None
|
|
self.acceptButton = None
|
|
self.cancelButton = None
|
|
self.inputSlot = None
|
|
self.inputValue = None
|
|
self.Hide()
|
|
|
|
def SetTitle(self, name):
|
|
self.board.SetTitleName(name)
|
|
|
|
def SetNumberMode(self):
|
|
self.inputValue.SetNumberMode()
|
|
|
|
def SetSecretMode(self):
|
|
self.inputValue.SetSecret()
|
|
|
|
def SetFocus(self):
|
|
self.inputValue.SetFocus()
|
|
|
|
def SetMaxLength(self, length):
|
|
width = length * 6 + 10
|
|
self.SetBoardWidth(max(width + 50, 160))
|
|
self.SetSlotWidth(width)
|
|
self.inputValue.SetMax(length)
|
|
|
|
def SetSlotWidth(self, width):
|
|
self.inputSlot.SetSize(width, self.inputSlot.GetHeight())
|
|
self.inputValue.SetSize(width, self.inputValue.GetHeight())
|
|
if self.IsRTL():
|
|
self.inputValue.SetPosition(self.inputValue.GetWidth(), 0)
|
|
|
|
def SetBoardWidth(self, width):
|
|
self.SetSize(max(width + 50, 160), self.GetHeight())
|
|
self.board.SetSize(max(width + 50, 160), self.GetHeight())
|
|
if self.IsRTL():
|
|
self.board.SetPosition(self.board.GetWidth(), 0)
|
|
self.UpdateRect()
|
|
|
|
def SetAcceptEvent(self, event):
|
|
self.acceptButton.SetEvent(event)
|
|
self.inputValue.OnIMEReturn = event
|
|
|
|
def SetCancelEvent(self, event):
|
|
self.board.SetCloseEvent(event)
|
|
self.cancelButton.SetEvent(event)
|
|
self.inputValue.OnPressEscapeKey = event
|
|
|
|
def GetText(self):
|
|
return self.inputValue.GetText()
|
|
|
|
class InputDialogWithDescription(InputDialog):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
|
|
self.__CreateDialog()
|
|
|
|
def __del__(self):
|
|
InputDialog.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
if locale.IsARABIC() :
|
|
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "inputdialogwithdescription.py")
|
|
else:
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/inputdialogwithdescription.py")
|
|
|
|
try:
|
|
getObject = self.GetChild
|
|
self.board = getObject("Board")
|
|
self.acceptButton = getObject("AcceptButton")
|
|
self.cancelButton = getObject("CancelButton")
|
|
self.inputSlot = getObject("InputSlot")
|
|
self.inputValue = getObject("InputValue")
|
|
self.description = getObject("Description")
|
|
|
|
except:
|
|
import exception
|
|
exception.Abort("InputDialogWithDescription.LoadBoardDialog.BindObject")
|
|
|
|
def SetDescription(self, text):
|
|
self.description.SetText(text)
|
|
|
|
class InputDialogWithDescription2(InputDialog):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
|
|
self.__CreateDialog()
|
|
|
|
def __del__(self):
|
|
InputDialog.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/inputdialogwithdescription2.py")
|
|
|
|
try:
|
|
getObject = self.GetChild
|
|
self.board = getObject("Board")
|
|
self.acceptButton = getObject("AcceptButton")
|
|
self.cancelButton = getObject("CancelButton")
|
|
self.inputSlot = getObject("InputSlot")
|
|
self.inputValue = getObject("InputValue")
|
|
self.description1 = getObject("Description1")
|
|
self.description2 = getObject("Description2")
|
|
|
|
except:
|
|
import exception
|
|
exception.Abort("InputDialogWithDescription.LoadBoardDialog.BindObject")
|
|
|
|
def SetDescription1(self, text):
|
|
self.description1.SetText(text)
|
|
|
|
def SetDescription2(self, text):
|
|
self.description2.SetText(text)
|
|
|
|
class QuestionDialog(ui.ScriptWindow):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
self.__CreateDialog()
|
|
|
|
def __del__(self):
|
|
ui.ScriptWindow.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/questiondialog.py")
|
|
|
|
self.board = self.GetChild("board")
|
|
self.textLine = self.GetChild("message")
|
|
self.acceptButton = self.GetChild("accept")
|
|
self.cancelButton = self.GetChild("cancel")
|
|
|
|
def Open(self):
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
def Close(self):
|
|
self.Hide()
|
|
|
|
def SetWidth(self, width):
|
|
height = self.GetHeight()
|
|
self.SetSize(width, height)
|
|
self.board.SetSize(width, height)
|
|
self.SetCenterPosition()
|
|
self.UpdateRect()
|
|
|
|
def SAFE_SetAcceptEvent(self, event):
|
|
self.acceptButton.SAFE_SetEvent(event)
|
|
|
|
def SAFE_SetCancelEvent(self, event):
|
|
self.cancelButton.SAFE_SetEvent(event)
|
|
|
|
def SetAcceptEvent(self, event):
|
|
self.acceptButton.SetEvent(event)
|
|
|
|
def SetCancelEvent(self, event):
|
|
self.cancelButton.SetEvent(event)
|
|
|
|
def SetText(self, text):
|
|
self.textLine.SetText(text)
|
|
|
|
def SetAcceptText(self, text):
|
|
self.acceptButton.SetText(text)
|
|
|
|
def SetCancelText(self, text):
|
|
self.cancelButton.SetText(text)
|
|
|
|
def OnPressEscapeKey(self):
|
|
self.Close()
|
|
return TRUE
|
|
|
|
class QuestionDialog2(QuestionDialog):
|
|
|
|
def __init__(self):
|
|
QuestionDialog.__init__(self)
|
|
self.__CreateDialog()
|
|
|
|
def __del__(self):
|
|
QuestionDialog.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/questiondialog2.py")
|
|
|
|
self.board = self.GetChild("board")
|
|
self.textLine1 = self.GetChild("message1")
|
|
self.textLine2 = self.GetChild("message2")
|
|
self.acceptButton = self.GetChild("accept")
|
|
self.cancelButton = self.GetChild("cancel")
|
|
|
|
def SetText1(self, text):
|
|
self.textLine1.SetText(text)
|
|
|
|
def SetText2(self, text):
|
|
self.textLine2.SetText(text)
|
|
|
|
class QuestionDialogWithTimeLimit(QuestionDialog2):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
|
|
self.__CreateDialog()
|
|
self.endTime = 0
|
|
|
|
def __del__(self):
|
|
QuestionDialog2.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/questiondialog2.py")
|
|
|
|
self.board = self.GetChild("board")
|
|
self.textLine1 = self.GetChild("message1")
|
|
self.textLine2 = self.GetChild("message2")
|
|
self.acceptButton = self.GetChild("accept")
|
|
self.cancelButton = self.GetChild("cancel")
|
|
|
|
def Open(self, msg, timeout):
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
self.SetText1(msg)
|
|
self.endTime = app.GetTime() + timeout
|
|
|
|
def OnUpdate(self):
|
|
leftTime = max(0, self.endTime - app.GetTime())
|
|
self.SetText2(locale.UI_LEFT_TIME % (leftTime))
|
|
|
|
class MoneyInputDialog(ui.ScriptWindow):
|
|
|
|
def __init__(self):
|
|
ui.ScriptWindow.__init__(self)
|
|
|
|
self.moneyHeaderText = locale.MONEY_INPUT_DIALOG_SELLPRICE
|
|
self.__CreateDialog()
|
|
self.SetMaxLength(9)
|
|
|
|
def __del__(self):
|
|
ui.ScriptWindow.__del__(self)
|
|
|
|
def __CreateDialog(self):
|
|
|
|
pyScrLoader = ui.PythonScriptLoader()
|
|
pyScrLoader.LoadScriptFile(self, "uiscript/moneyinputdialog.py")
|
|
|
|
getObject = self.GetChild
|
|
self.board = self.GetChild("board")
|
|
self.acceptButton = getObject("AcceptButton")
|
|
self.cancelButton = getObject("CancelButton")
|
|
self.inputValue = getObject("InputValue")
|
|
self.inputValue.SetNumberMode()
|
|
self.inputValue.OnIMEUpdate = ui.__mem_func__(self.__OnValueUpdate)
|
|
self.moneyText = getObject("MoneyValue")
|
|
|
|
def Open(self):
|
|
self.inputValue.SetText("")
|
|
self.inputValue.SetFocus()
|
|
self.__OnValueUpdate()
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
def Close(self):
|
|
self.ClearDictionary()
|
|
self.board = None
|
|
self.acceptButton = None
|
|
self.cancelButton = None
|
|
self.inputValue = None
|
|
self.Hide()
|
|
|
|
def SetTitle(self, name):
|
|
self.board.SetTitleName(name)
|
|
|
|
def SetFocus(self):
|
|
self.inputValue.SetFocus()
|
|
|
|
def SetMaxLength(self, length):
|
|
length = min(9, length)
|
|
self.inputValue.SetMax(length)
|
|
|
|
def SetMoneyHeaderText(self, text):
|
|
self.moneyHeaderText = text
|
|
|
|
def SetAcceptEvent(self, event):
|
|
self.acceptButton.SetEvent(event)
|
|
self.inputValue.OnIMEReturn = event
|
|
|
|
def SetCancelEvent(self, event):
|
|
self.board.SetCloseEvent(event)
|
|
self.cancelButton.SetEvent(event)
|
|
self.inputValue.OnPressEscapeKey = event
|
|
|
|
def SetValue(self, value):
|
|
value=str(value)
|
|
self.inputValue.SetText(value)
|
|
self.__OnValueUpdate()
|
|
ime.SetCursorPosition(len(value))
|
|
|
|
|
|
def GetText(self):
|
|
return self.inputValue.GetText()
|
|
|
|
def __OnValueUpdate(self):
|
|
ui.EditLine.OnIMEUpdate(self.inputValue)
|
|
|
|
text = self.inputValue.GetText()
|
|
|
|
money = 0
|
|
if text and text.isdigit():
|
|
try:
|
|
money = int(text)
|
|
except ValueError:
|
|
money = 199999999
|
|
|
|
self.moneyText.SetText(self.moneyHeaderText + locale.NumberToMoneyString(money))
|