forked from metin2/client
356 lines
9.1 KiB
Python
356 lines
9.1 KiB
Python
|
import app
|
||
|
import ui
|
||
|
import locale
|
||
|
import uiScriptLocale
|
||
|
|
||
|
class MarkItem(ui.ListBoxEx.Item):
|
||
|
def __init__(self, fileName):
|
||
|
ui.ListBoxEx.Item.__init__(self)
|
||
|
self.imgWidth=0
|
||
|
self.imgHeight=0
|
||
|
self.canLoad=0
|
||
|
self.textLine=self.__CreateTextLine(fileName)
|
||
|
self.imgBox=self.__CreateImageBox("upload/"+fileName)
|
||
|
|
||
|
def __del__(self):
|
||
|
ui.ListBoxEx.Item.__del__(self)
|
||
|
|
||
|
def GetText(self):
|
||
|
return self.textLine.GetText()
|
||
|
|
||
|
def SetSize(self, width, height):
|
||
|
ui.ListBoxEx.Item.SetSize(self, 20 + 6*len(self.textLine.GetText()) + 4, height)
|
||
|
|
||
|
def __CreateTextLine(self, fileName):
|
||
|
textLine=ui.TextLine()
|
||
|
textLine.SetParent(self)
|
||
|
textLine.SetPosition(20, 0)
|
||
|
textLine.SetText(fileName)
|
||
|
textLine.Show()
|
||
|
return textLine
|
||
|
|
||
|
def __CreateImageBox(self, fileName):
|
||
|
(self.canLoad, self.imgWidth, self.imgHeight)=app.GetImageInfo(fileName)
|
||
|
|
||
|
if 1==self.canLoad:
|
||
|
if 16==self.imgWidth and 12==self.imgHeight:
|
||
|
imgBox=ui.ImageBox()
|
||
|
imgBox.AddFlag("not_pick")
|
||
|
imgBox.SetParent(self)
|
||
|
imgBox.SetPosition(0, 2)
|
||
|
imgBox.LoadImage(fileName)
|
||
|
imgBox.Show()
|
||
|
return imgBox
|
||
|
else:
|
||
|
return 0
|
||
|
else:
|
||
|
return 0
|
||
|
|
||
|
class SymbolItem(ui.ListBoxEx.Item):
|
||
|
def __init__(self, fileName):
|
||
|
ui.ListBoxEx.Item.__init__(self)
|
||
|
self.textLine=self.__CreateTextLine(fileName)
|
||
|
(self.canLoad, self.imgWidth, self.imgHeight)=app.GetImageInfo("upload/"+fileName)
|
||
|
|
||
|
def __del__(self):
|
||
|
ui.ListBoxEx.Item.__del__(self)
|
||
|
|
||
|
def GetText(self):
|
||
|
return self.textLine.GetText()
|
||
|
|
||
|
def SetSize(self, width, height):
|
||
|
ui.ListBoxEx.Item.SetSize(self, 6*len(self.textLine.GetText()) + 4, height)
|
||
|
|
||
|
def __CreateTextLine(self, fileName):
|
||
|
textLine=ui.TextLine()
|
||
|
textLine.SetParent(self)
|
||
|
textLine.SetPosition(1, 2)
|
||
|
textLine.SetText(fileName)
|
||
|
textLine.Show()
|
||
|
return textLine
|
||
|
|
||
|
class PopupDialog(ui.ScriptWindow):
|
||
|
def __init__(self, parent):
|
||
|
print "NEW POPUP WINDOW ----------------------------------------------------------------------------"
|
||
|
ui.ScriptWindow.__init__(self)
|
||
|
|
||
|
self.__Load()
|
||
|
self.__Bind()
|
||
|
|
||
|
def __del__(self):
|
||
|
ui.ScriptWindow.__del__(self)
|
||
|
print "---------------------------------------------------------------------------- DELETE POPUP WINDOW"
|
||
|
|
||
|
def __Load(self):
|
||
|
try:
|
||
|
pyScrLoader = ui.PythonScriptLoader()
|
||
|
pyScrLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("PopupDialog.__Load")
|
||
|
|
||
|
def __Bind(self):
|
||
|
try:
|
||
|
self.textLine=self.GetChild("message")
|
||
|
self.okButton=self.GetChild("accept")
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("PopupDialog.__Bind")
|
||
|
|
||
|
self.okButton.SetEvent(ui.__mem_func__(self.__OnOK))
|
||
|
|
||
|
def Open(self, msg):
|
||
|
self.textLine.SetText(msg)
|
||
|
self.SetCenterPosition()
|
||
|
self.Show()
|
||
|
self.SetTop()
|
||
|
|
||
|
def __OnOK(self):
|
||
|
self.Hide()
|
||
|
|
||
|
class MarkSelectDialog(ui.ScriptWindow):
|
||
|
def __init__(self):
|
||
|
print "NEW MARK LIST WINDOW ----------------------------------------------------------------------------"
|
||
|
ui.ScriptWindow.__init__(self)
|
||
|
|
||
|
self.selectEvent=None
|
||
|
self.isLoaded=0
|
||
|
|
||
|
def __del__(self):
|
||
|
ui.ScriptWindow.__del__(self)
|
||
|
print "---------------------------------------------------------------------------- DELETE MARK LIST WINDOW"
|
||
|
|
||
|
def Show(self):
|
||
|
if self.isLoaded==0:
|
||
|
self.isLoaded=1
|
||
|
|
||
|
self.__Load()
|
||
|
|
||
|
ui.ScriptWindow.Show(self)
|
||
|
|
||
|
def Open(self):
|
||
|
self.Show()
|
||
|
|
||
|
self.SetCenterPosition()
|
||
|
self.SetTop()
|
||
|
|
||
|
if self.markListBox.IsEmpty():
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_PATH)
|
||
|
|
||
|
def Close(self):
|
||
|
self.popupDialog.Hide()
|
||
|
self.Hide()
|
||
|
|
||
|
def OnPressEscapeKey(self):
|
||
|
self.Close()
|
||
|
return TRUE
|
||
|
|
||
|
def SAFE_SetSelectEvent(self, event):
|
||
|
self.selectEvent=ui.__mem_func__(event)
|
||
|
|
||
|
def __CreateMarkListBox(self):
|
||
|
markListBox=ui.ListBoxEx()
|
||
|
markListBox.SetParent(self)
|
||
|
markListBox.SetPosition(15, 50)
|
||
|
markListBox.Show()
|
||
|
return markListBox
|
||
|
|
||
|
def __Load(self):
|
||
|
self.popupDialog=PopupDialog(self)
|
||
|
|
||
|
try:
|
||
|
pyScrLoader = ui.PythonScriptLoader()
|
||
|
if locale.IsVIETNAM():
|
||
|
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "MarkListWindow.py")
|
||
|
else:
|
||
|
pyScrLoader.LoadScriptFile(self, "UIScript/MarkListWindow.py")
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("MarkListBox.__Load")
|
||
|
|
||
|
try:
|
||
|
self.markListBox=self.__CreateMarkListBox()
|
||
|
self.markListBox.SetScrollBar(self.GetChild("ScrollBar"))
|
||
|
|
||
|
self.popupText = self.popupDialog.GetChild("message")
|
||
|
self.popupDialog.GetChild("accept").SetEvent(ui.__mem_func__(self.popupDialog.Hide))
|
||
|
|
||
|
self.board=self.GetChild("board")
|
||
|
self.okButton=self.GetChild("ok")
|
||
|
self.cancelButton=self.GetChild("cancel")
|
||
|
self.refreshButton=self.GetChild("refresh")
|
||
|
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("MarkListBox.__Bind")
|
||
|
|
||
|
self.refreshButton.SetEvent(ui.__mem_func__(self.__OnRefresh))
|
||
|
self.cancelButton.SetEvent(ui.__mem_func__(self.__OnCancel))
|
||
|
self.okButton.SetEvent(ui.__mem_func__(self.__OnOK))
|
||
|
self.board.SetCloseEvent(ui.__mem_func__(self.__OnCancel))
|
||
|
self.UpdateRect()
|
||
|
|
||
|
self.__RefreshFileList()
|
||
|
|
||
|
def __PopupMessage(self, msg):
|
||
|
self.popupDialog.Open(msg)
|
||
|
|
||
|
def __OnOK(self):
|
||
|
selItem=self.markListBox.GetSelectedItem()
|
||
|
if selItem:
|
||
|
if selItem.canLoad!=1:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_FILE_FORMAT)
|
||
|
elif selItem.imgWidth!=16:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_16_WIDTH)
|
||
|
elif selItem.imgHeight!=12:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_12_HEIGHT)
|
||
|
else:
|
||
|
self.selectEvent(selItem.GetText())
|
||
|
self.Hide()
|
||
|
else:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_SELECT)
|
||
|
|
||
|
def __OnCancel(self):
|
||
|
self.Hide()
|
||
|
|
||
|
def __OnRefresh(self):
|
||
|
self.__RefreshFileList()
|
||
|
|
||
|
def __RefreshFileList(self):
|
||
|
self.__ClearFileList()
|
||
|
self.__AppendFileList("bmp")
|
||
|
self.__AppendFileList("tga")
|
||
|
self.__AppendFileList("jpg")
|
||
|
|
||
|
def __ClearFileList(self):
|
||
|
self.markListBox.RemoveAllItems()
|
||
|
|
||
|
def __AppendFileList(self, filter):
|
||
|
fileNameList=app.GetFileList("upload/*."+filter)
|
||
|
for fileName in fileNameList:
|
||
|
self.__AppendFile(fileName)
|
||
|
|
||
|
def __AppendFile(self, fileName):
|
||
|
self.markListBox.AppendItem(MarkItem(fileName))
|
||
|
|
||
|
class SymbolSelectDialog(ui.ScriptWindow):
|
||
|
def __init__(self):
|
||
|
print "NEW SYMBOL LIST WINDOW ----------------------------------------------------------------------------"
|
||
|
ui.ScriptWindow.__init__(self)
|
||
|
|
||
|
self.selectEvent=None
|
||
|
self.isLoaded=0
|
||
|
|
||
|
def __del__(self):
|
||
|
ui.ScriptWindow.__del__(self)
|
||
|
print "---------------------------------------------------------------------------- DELETE SYMBOL LIST WINDOW"
|
||
|
|
||
|
def Show(self):
|
||
|
if self.isLoaded==0:
|
||
|
self.isLoaded=1
|
||
|
|
||
|
self.__Load()
|
||
|
|
||
|
ui.ScriptWindow.Show(self)
|
||
|
|
||
|
def Open(self):
|
||
|
self.Show()
|
||
|
|
||
|
self.SetCenterPosition()
|
||
|
self.SetTop()
|
||
|
|
||
|
if self.symbolListBox.IsEmpty():
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_PATH)
|
||
|
|
||
|
def Close(self):
|
||
|
self.popupDialog.Hide()
|
||
|
self.Hide()
|
||
|
|
||
|
def OnPressEscapeKey(self):
|
||
|
self.Close()
|
||
|
return TRUE
|
||
|
|
||
|
def SAFE_SetSelectEvent(self, event):
|
||
|
self.selectEvent=ui.__mem_func__(event)
|
||
|
|
||
|
def __CreateSymbolListBox(self):
|
||
|
symbolListBox=ui.ListBoxEx()
|
||
|
symbolListBox.SetParent(self)
|
||
|
symbolListBox.SetPosition(15, 50)
|
||
|
symbolListBox.Show()
|
||
|
return symbolListBox
|
||
|
|
||
|
def __Load(self):
|
||
|
self.popupDialog=PopupDialog(self)
|
||
|
|
||
|
try:
|
||
|
pyScrLoader = ui.PythonScriptLoader()
|
||
|
pyScrLoader.LoadScriptFile(self, "UIScript/MarkListWindow.py")
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("SymbolListBox.__Load")
|
||
|
|
||
|
try:
|
||
|
self.symbolListBox=self.__CreateSymbolListBox()
|
||
|
self.symbolListBox.SetScrollBar(self.GetChild("ScrollBar"))
|
||
|
|
||
|
self.popupText = self.popupDialog.GetChild("message")
|
||
|
self.popupDialog.GetChild("accept").SetEvent(ui.__mem_func__(self.popupDialog.Hide))
|
||
|
|
||
|
self.board=self.GetChild("board")
|
||
|
self.okButton=self.GetChild("ok")
|
||
|
self.cancelButton=self.GetChild("cancel")
|
||
|
self.refreshButton=self.GetChild("refresh")
|
||
|
|
||
|
except:
|
||
|
import exception
|
||
|
exception.Abort("SymbolListBox.__Bind")
|
||
|
|
||
|
self.refreshButton.SetEvent(ui.__mem_func__(self.__OnRefresh))
|
||
|
self.cancelButton.SetEvent(ui.__mem_func__(self.__OnCancel))
|
||
|
self.okButton.SetEvent(ui.__mem_func__(self.__OnOK))
|
||
|
self.board.SetCloseEvent(ui.__mem_func__(self.__OnCancel))
|
||
|
self.board.SetTitleName(locale.SYMBOLLIST_TITLE)
|
||
|
self.UpdateRect()
|
||
|
|
||
|
self.__RefreshFileList()
|
||
|
|
||
|
def __PopupMessage(self, msg):
|
||
|
self.popupDialog.Open(msg)
|
||
|
|
||
|
def __OnOK(self):
|
||
|
selItem=self.symbolListBox.GetSelectedItem()
|
||
|
if selItem:
|
||
|
if selItem.canLoad!=1:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_FILE_FORMAT)
|
||
|
elif selItem.imgWidth!=64:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_64_WIDTH)
|
||
|
elif selItem.imgHeight!=128:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_128_HEIGHT)
|
||
|
else:
|
||
|
self.selectEvent(selItem.GetText())
|
||
|
self.Hide()
|
||
|
else:
|
||
|
self.__PopupMessage(locale.GUILDMARK_UPLOADER_ERROR_SELECT)
|
||
|
|
||
|
def __OnCancel(self):
|
||
|
self.Hide()
|
||
|
|
||
|
def __OnRefresh(self):
|
||
|
self.__RefreshFileList()
|
||
|
|
||
|
def __RefreshFileList(self):
|
||
|
self.__ClearFileList()
|
||
|
self.__AppendFileList("jpg")
|
||
|
|
||
|
def __ClearFileList(self):
|
||
|
self.symbolListBox.RemoveAllItems()
|
||
|
|
||
|
def __AppendFileList(self, filter):
|
||
|
fileNameList=app.GetFileList("upload/*."+filter)
|
||
|
for fileName in fileNameList:
|
||
|
self.__AppendFile(fileName)
|
||
|
|
||
|
def __AppendFile(self, fileName):
|
||
|
self.symbolListBox.AppendItem(SymbolItem(fileName))
|