Hello, I'm testing the class "BigBoardControl"
Code:
class BigBoardControl(ui.Bar):
FONT_WIDTH = 18
FONT_HEIGHT = 18
LINE_WIDTH = 500
LINE_HEIGHT = FONT_HEIGHT + 5
STEP_HEIGHT = LINE_HEIGHT * 2
LINE_CHANGE_LIMIT_WIDTH = 450
BIG_TEXTBAR_MAX_HIGHT = 1000
FRAME_IMAGE_FILE_NAME_LIST = [
"season1/interface/oxevent/frame_new_0.sub",
"season1/interface/oxevent/frame_new_1.sub",
]
FRAME_IMAGE_STEP = 256
FRAME_BASE_X = -20
FRAME_BASE_Y = -12
def __init__(self):
ui.Bar.__init__(self)
self.AddFlag("not_pick")
self.tipList = []
self.curPos = 0
self.dstPos = 0
self.nextScrollTime = 0
self.scrollstop = 0
self.pretexsize = 0
self.nexttextsize = 0
self.changeline = 0
self.addtipListcount = 0
self.SetPosition(0, 150)
self.SetSize(512, 55)
self.SetColor(grp.GenerateColor(0.0, 0.0, 0.0, 0.5))
self.SetWindowHorizontalAlignCenter()
self.__CreateTextBar()
self.__LoadFrameImages()
def __LoadFrameImages(self):
x = self.FRAME_BASE_X
y = self.FRAME_BASE_Y
self.imgList = []
for imgFileName in self.FRAME_IMAGE_FILE_NAME_LIST:
self.imgList.append(self.__LoadImage(x, y, imgFileName))
def __LoadImage(self, x, y, fileName):
img = ui.ImageBox()
img.SetParent(self)
img.AddFlag("not_pick")
img.LoadImage(fileName)
img.SetPosition(x, y)
img.Show()
return img
def __del__(self):
self.tipList = []
self.textBar.ClearBar()
self.Hide()
ui.Bar.__del__(self)
def __CreateTextBar(self):
x, y = self.GetGlobalPosition()
self.textBar = BigTextBar(self.LINE_WIDTH, self.BIG_TEXTBAR_MAX_HIGHT, self.FONT_HEIGHT)
self.textBar.SetParent(self)
self.textBar.SetPosition(6, 8)
self.textBar.SetTextColor(242, 231, 193)
self.textBar.SetClipRect(0, y+8, wndMgr.GetScreenWidth(), y+8+self.STEP_HEIGHT)
self.textBar.Show()
def __CleanOldTip(self):
self.tipList = []
self.textBar.ClearBar()
self.Hide()
def __RefreshBoard(self):
self.textBar.ClearBar()
preaddtipListcount = self.addtipListcount
self.addtipListcount = 0
index = 0
for text in self.tipList:
(text_width, text_height) = self.textBar.GetTextExtent(text)
if index == 0:
self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
index += 1
self.addtipListcount += 1
if index == (len(self.tipList) - (len(self.tipList) - self.pretexsize))+1 and not self.pretexsize == 0:
self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
index += 1
self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
index += 1
self.addtipListcount += 2
self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, text)
index += 1
if self.tipList:
index += 1
self.addtipListcount += 1
self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
def SetTip(self, text):
if not app.IsVisibleNotice():
return
if text == "#start" or text == "#end" or text == "#send":
pass
else:
self.__AppendText(text)
if text == "#start" or text == "#send":
if text == "#send" and self.pretexsize == 0:
text = "#end"
self.__RefreshBoard()
if text == "#start":
self.STEP_HEIGHT = (self.LINE_HEIGHT * (len(self.tipList) + self.addtipListcount))
self.pretexsize = len(self.tipList)
x, y = self.GetGlobalPosition()
self.textBar.SetClipRect(0, y+8, wndMgr.GetScreenWidth(), y+8+self.STEP_HEIGHT)
self.SetSize(512, 10 + (self.LINE_HEIGHT * (len(self.tipList) + self.addtipListcount))+10)
self.imgList[1].SetPosition(self.FRAME_BASE_X, self.STEP_HEIGHT + 10)
self.scrollstop = 0
self.changeline = 1
if text == "#send":
self.scrollstop = 1
self.nexttextsize = len(self.tipList) - self.pretexsize
if not self.IsShow():
self.curPos = -self.STEP_HEIGHT
self.dstPos = -self.STEP_HEIGHT
self.textBar.SetPosition(3, 8 - self.curPos)
self.Show()
if text == "#end":
self.curPos = -self.STEP_HEIGHT
self.dstPos = -self.STEP_HEIGHT
self.textBar.SetPosition(3, 8 - self.curPos)
self.textcount = 0
self.changeline = 0
self.pretexsize = 0
self.nexttextsize = 0
self.addtipListcount = 0
self.__CleanOldTip()
I made:
def Test(self):
self.BINARY_SetBigControlMessage("message1")
self.BINARY_SetBigControlMessage("message1")
self.BINARY_SetBigControlMessage("#send")
However, the code does not pause, it goes straight as soon as it shows the message, does anyone have any idea how this code works correctly?
Originally, it shows the message, stops at the message and then continues.
Thanks.