class NewGoldChat(ui.Window):
def __init__(self, parent = None, x = 0, y = 0):
ui.Window.__init__(self)
self.texts = {}
self.parent = parent
self.SpaceBet = 14
self.maxY = 0
self.x = x
self.y = y
self.ColorValue = 0xFFFFFFFF
self.show = self.Button('Show Yang', x, y+3, self.showYang, 'gold_dialog/btn_expand_normal.tga', 'gold_dialog/btn_expand_over.tga', 'gold_dialog/btn_expand_down.tga')
self.hide = self.Button('Hide Yang', x, y+3, self.hideYang, 'gold_dialog/btn_minimize_normal.tga', 'gold_dialog/btn_minimize_over.tga', 'gold_dialog/btn_minimize_down.tga')
self.show.Hide()
self.Show()
def Button(self, tooltipText, x, y, func, UpVisual, OverVisual, DownVisual):
button = ui.Button()
if self.parent != None:
button.SetParent(self.parent)
button.SetPosition(x, y)
button.SetUpVisual(UpVisual)
button.SetOverVisual(OverVisual)
button.SetDownVisual(DownVisual)
button.SetToolTipText(tooltipText)
button.Show()
button.SetEvent(func)
return button
def showYang(self):
for i in xrange(len(self.texts)):
self.texts.Show()
self.hide.Show()
self.show.Hide()
self.Show()
def hideYang(self):
for i in xrange(len(self.texts)):
self.texts.Hide()
self.hide.Hide()
self.show.Show()
self.Hide()
def GetMaxY(self):
return self.maxY
def AddGoldValue(self, text):
for i in xrange(len(self.texts)):
if len(self.texts) == 10 and i == 0:
self.texts.Hide()
x, y = self.texts.GetLocalPosition()
self.texts.SetPosition(x, y-self.SpaceBet)
i = 0
if len(self.texts) == 10:
for i in xrange(len(self.texts)-1):
self.texts = self.texts[i+1]
i = 9
else:
i = len(self.texts)
self.texts = ui.TextLine("Tahoma:14")
if self.parent != None:
self.texts.SetParent(self.parent)
self.texts.SetPosition(self.x, self.y)
self.texts.SetPackedFontColor(self.ColorValue)
self.texts[i].SetHorizontalAlignLeft()
self.texts[i].SetOutline(TRUE)
self.texts[i].SetText(text)
if self.hide.IsShow():
self.texts[i].Show()
if self.hide.IsShow():
x, y = self.texts[0].GetLocalPosition()
x2, y2 = self.hide.GetLocalPosition()
self.hide.SetPosition(x2, y-10)
def ClearAll(self):
self.Hide()
self.texts = {}
self.show.Hide()
self.show = None
self.hide.Hide()
self.hide = None
def OnRender(self):
if len(self.texts) > 0 and self.hide.IsShow():
x, y = self.hide.GetGlobalPosition()
w, h = self.texts[0].GetTextSize()
grp.SetColor(grp.GenerateColor(0.0, 0.0, 0.0, 0.5))
grp.RenderBar(x, y+h-6, 108, h*len(self.texts)+4)